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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xmlns created literally, David Carlisle | Thread | RE: [xsl] xmlns created literally, Owen Rees |
Re: [xsl] xmlns created literally, David Carlisle | Date | [xsl] Atypical list, Konstanty Pilecki |
Month |