xml editor

Supported platforms

Compatible with Windows7 & Mac OS X Snow Leopard

Ready for data server software
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] xmlns created literally


Subject: RE: [xsl] xmlns created literally
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 26 Feb 2009 12:34:36 -0000

The stylesheet is an XDM instance. Therefore the XSLT processor does not see
an attribute xmlns="{$x}", it sees a namespace node whose name is "" and
whose string value is "{$x}".

Attribute value templates don't come into it. There is no attribute, so
there can be no AVT. Namespaces are not attributes.

XSLT could have defined a rule that namespace URIs within the stylesheet
must not contain curly braces. But it would be a rather curious rule: it's
for XML to define what's allowed in a namespace URI, not for XSLT.

I think the output that shows the namespace URI percent-encoded is wrong. I
can't see any justification for percent-encoding a namespace URI under any
circumstances.

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: jesper.tverskov@xxxxxxxxx 
> [mailto:jesper.tverskov@xxxxxxxxx] On Behalf Of Jesper Tverskov
> Sent: 26 February 2009 11:17
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] xmlns created literally
> 
> We are allowed to create xmlns or xmlns:* the literal way, 
> but we can apparently not use attribute value template for 
> the namespace. This is probably not that surprising since we 
> cannot create xmlns or xmlns:* with xsl:attribute.
> 
> But it surprices me that we don't get an error message. The 
> following stylesheet is tested with Saxon 9 in Oxygen and 
> with AltovaXML 2009 in
> XMLSpy:
> 
> <xsl:stylesheet version="2.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>     <xsl:output indent="yes"/>
>     <xsl:template name="start" match="/">
>         <xsl:param name="x" select="'asdf'"/>
>         <catalog>
>             <product xmlns="asdf">some data</product>
>             <product xmlns="{$x}">some data</product>
>         </catalog>
>     </xsl:template>
> </xsl:stylesheet>
> 
> We get the following output in Oxygen:
> 
> <catalog>
>    <product xmlns="asdf">some data</product>
>    <product xmlns="{$x}">some data</product> </catalog>
> 
> And the following output in XMLSpy:
> 
> <catalog>
> <product xmlns="asdf">some data</product> <product 
> xmlns="%7B$x%7D">some data</product> </catalog>
> 
> The one even more strange than the other! Should it have been 
> an error message instead? Or should the attribute value template work?
> 
> 
> Cheers,
> Jesper Tverskov
> 
> http://www.xmlkurser.dk
> http://www.xmlplease.com


Current Thread
Keywords
XML Editor | XML Author | WYSIWYG Editors | Schema Editor | XSD Documentation | XSL/XSLT Editor | XQuery | XML Databases | SVN Client
© 2002-2011 SyncRO Soft Ltd. All rights reserved. | Sitemap | Privacy Policy | This website was created & generated with <oXygen/>®XML Editor