Compare Revisions

Namespaces

Revision 473777:

Revision 473777 by Np on

Revision 473781:

Revision 473781 by Np on

Title:
Namespaces
Namespaces
Slug:
Namespaces
Namespaces
Tags:
"Extensions","Add-ons"
"Extensions","Add-ons"
Content:

Revision 473777
Revision 473781
n20      An XML namespace is identified by an unique name (called a n20      An XML namespace is identified by an unique name (called a 
>URI, not a URL, even though it can look like a URL). An URI is an>URI, not a URL, even though it can look like a URL). An URI is an
>y string, although most people choose a URL-based URI because URL>y string, although most people choose a URL-based URI because URL
>s are an easy way to <em>hope</em> for uniqueness. Although there>s are an easy way to <em>hope</em> for uniqueness. Although there
>'s nothing preventing someone else from using the namespace <code>'s nothing preventing someone else from using the namespace <code
>>http:{C}<!-- they avoid an ellipsis in the middle of the namespa>>http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</c
>ce string -->//www.mozilla.org/keymaster/gatekeeper/there.is.only>ode>, it's fairly unlikely anyone would choose that accidentally.
>.xul</code>, it's fairly unlikely anyone would choose that accide> Even if they did accidentally choose it, they may not define the
>ntally. Even if they did accidentally choose it, they may not def> same elements as XUL anyway (e.g., <code>&lt;textbox/&gt;</code>
>ine the same elements as XUL anyway (e.g., <code>&lt;textbox/&gt;>) in their schema/DTD.
></code>) in their schema/DTD. 
t60      There is a very subtle difference here than before. Before t60      There is a very subtle difference here than before. Before 
>I wrote <code>xmlns<strong>:xul</strong>="http{C}<!---->:{C}<!--->I wrote <code>xmlns<strong>:xul</strong>="http://www.mozilla.org/
>->//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"</code>keymaster/gatekeeper/there.is.only.xul"</code> but here the <stro
>> but here the <strong>:xul</strong> piece is omitted. This signi>ng>:xul</strong> piece is omitted. This signifies to the XML pars
>fies to the XML parser that <code>http://www.mozilla.org/keymaste>er that <code>http://www.mozilla.org/keymaster/gatekeeper/there.i
>r/gatekeeper/there.is.only.xul</code> is the <strong>default name>s.only.xul</code> is the <strong>default namespace</strong> for t
>space</strong> for the element and its descendant elements (unles>he element and its descendant elements (unless further overridden
>s further overridden by a default namespace on a descendant eleme> by a default namespace on a descendant element), and that any el
>nt), and that any element without a namespace (i.e., no prefix an>ement without a namespace (i.e., no prefix and colon) belongs to 
>d colon) belongs to the default namespace. That's why we can writ>the default namespace. That's why we can write the shorthand <cod
>e the shorthand <code>&lt;textbox/&gt;</code> instead of <code>&l>e>&lt;textbox/&gt;</code> instead of <code>&lt;xul:textbox/&gt;</
>t;xul:textbox/&gt;</code> in XUL (although the latter is just as >code> in XUL (although the latter is just as correct when not usi
>correct when not using <code>http://www.mozilla.org/keymaster/gat>ng <code>http://www.mozilla.org/keymaster/gatekeeper/there.is.onl
>ekeeper/there.is.only.xul</code> as the default namespace) -- the>y.xul</code> as the default namespace) -- the XUL namespace is de
> XUL namespace is defined as the default on the topmost element. >fined as the default on the topmost element. In other words, a de
>In other words, a default namespace permits a kind of short-hand >fault namespace permits a kind of short-hand to be used for all d
>to be used for all descendants of an element.>escendants of an element.

Back to History