[
Lists Home |
Date Index |
Thread Index
]
>I always assumed you needed to know what namespaces were in scope to
>determine what namespace a particular element was bound to:
>
><x:root xmlns:x="http://www.example.org/">
> <x:child/>
></x:root>
>
>In the above the in scope namespace for child is "http://www.example.org"
>bound to the "x" prefix. Without the in scope namespaces you would need to
>redeclare the namespace at every level wouldn't you?
You do indeed have to know the namespaces in scope in order to
determine the namespace of x:child. The question is, how long do you
have to keep this information around for? In this case, you only need
to keep it while you're parsing, since the parser can replace or
augment x:child with the resolved version (which you might write
{http://www.example.org}child).
But consider this, from a stylesheet:
<xsl:template match="x:child">
The parser doesn't know that x:child is going to be interpreted as a
QName; it can't distinguish it from something like:
<db:read file="c:mydatabase">
Only the XSLT processor knows what the attribute means. So the parser
must (somehow or other) provide the XSLT processor with the list of
bindings at each point in the document, and that's what some people
don't like.
-- Richard
|