[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Client recognition of XML Namespace prefixes

  • From: "Clark C. Evans" <cce@c...>
  • To: Will Bradley <willbr@m...>
  • Date: Tue, 05 Dec 2000 21:29:18 -0500 (EST)

xml namespace case sensitive
>   <tree xmlns:dog="http://dogs.com/some/schema"
>         xmlns:people="http://people.com/some/schema">
>     <dog:name>Fido</dog:name>
>
> When a client application recieves this xml block, and wants to interpret
> it, can it, and should it, make assumptions about the namespace prefix?

The namespace prefix is informational, and thus a
program may make use of the prefix.  However, I would
not make any assumptions about it.  See below.

> How do you find the tag you want within a hierarchy, without knowing what
> prefix its namespace happens to be using.  It seems that there is no way to
> be absolutely sure that if I search for "/root//dog:name", another app would
> not have gone and switched the namespace prefix to "Dog", in which case my
> search would fail due to case sensitivity, but the XML Validator would NOT
> fail, because the grammar is still valid.

The stylesheet below should produce the expected result,
printing out a line for each dog's name found.

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:foo="http://dogs.com/some/schema" > 
  <xsl:template match="/" >
    <xsl:for-each select="//foo:name" >
      I found a dog, named <xsl:value-of select="." />!
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>
  

Note that "foo" is used for the prefix here. XPath expressions
do not match literally on the prefix, internally it is turned
into a QName pair { "http://dogs.com/some/schema", "name" }
and this pair is what is matched.   I don't know DOM 
well enough to describe how it would work for you.
There must be _some_ namespace binding context for
XPath to operate however...

Note that, in XSLT, the prefix is informational, since it 
is used by the XSLT processor to figure-out the appropriate
QNames to look for.  I hope this explains the statement
above... that one can use the prefix, however, this is 
different from making assumptions about it.

Best,

Clark

P.S.  There is an XSL list at mulberrytech.com which may 
be more appropriate for additional XSL questions.




PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.