OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] xml, xslt and namespaces

[ Lists Home | Date Index | Thread Index ]

Tor Helland wrote:
>>We see definitively that if there is no prefix in the name used in a
>>step, then the null namespace is assigned, not the default namespace.
>>That's why expressions like request/title do not return anything when
>>those elements are in a non-null default namespace.
> 
> 
> So, just to see if I get this right: A default namespace like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <test xmlns="test">
>   <container-abc>
>   ...
>   </container-abc>
> </test>
> 
> leaves the container-abc element only reachable by some non-abbreviated
> syntax like:
>     //*[name()="container-abc"]
> 

That would be local-name(), but it would work.  If there could be 
elements of the same local name in different namespaces, you would have 
to test for the desired namespace as well.  However, the usual thing one 
does is to declare a prefix for the namespace *in the stylesheet*, and 
then use that prefix in the xpath expressions.

> but here:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <test xmlns="test" xmlns:t="test">
>   <container-abc>
>   ...
>   </container-abc>
> </test>
> 
> I would get results with
>     //t:container-abc
> 
> Is that right?
> 

Not quite.  As mentioned above, the namespace prefix that counts is the 
one declared in the stylesheet, not the one declared in the source 
document.  In fact, the stylesheet processor will generally be unaware 
of what prefix was used in the source document, because the parsing of 
the source document does not have to keep the information about specific 
prefixes - of course, it does have to keep information about the 
namespaces themselves.  Now if the source and stylesheet were rolled 
into one (in other words, using an "embedded" stylesheet), then yes, 
that would work.

Remember, BTW, that unprefixed attributes are always in no namespace, 
not in the default namespace, so you always get them without any prefix.

Cheers,

Tom P
-- 
Thomas B. Passin
Explorer's Guide to the Semantic Web (Manning Books)
http://www.manning.com/catalog/view.php?book=passin




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS