- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 06 Nov 2009 17:33:21 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=8219 Summary: [XSLT] Shallow copy and xml:base Product: XPath / XQuery / XSLT Version: Recommendation Platform: PC URL: http://www.w3.org/TR/xslt20/#shallow-copy OS/Version: Windows NT Status: NEW Severity: normal Priority: P2 Component: XSLT 2.0 AssignedTo: mike@saxonica.com ReportedBy: tim@cbcl.co.uk QAContact: public-qt-comments@w3.org The following paragraph towards the end of the Shallow copy section "The base URI of a node is copied, except in the case of an element node having an xml:base attribute, in which case the base URI of the new node is taken as the value of the xml:base attribute, resolved if it is relative against the base URI of the xsl:copy instruction. If the copied node is subsequently attached as a child to a new element or document node, the final copy of the node inherits its base URI from its parent node, unless this is overridden using an xml:base attribute." is ambiguous in that it is unclear whether "the case of an element node having an xml:base attribute" refers to: (1) an xml:base attribute of the element being copied, OR (2) an xml:base attribute in the content sequence contained in the xsl:copy. Consider the source document: <?xml version="1.0"?> <doc xml:base="http://source.base.uri"> <inner xml:base="AAA/" /> </doc> and the transformation: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="/doc/inner"> <xsl:variable name="target" as="element()"> <xsl:copy xml:base="http://copy.base.uri"> <xsl:attribute name="xml:base">BBB/</xsl:attribute> </xsl:copy> </xsl:variable> <out> <xsl:value-of select="base-uri($target)" /> </out> </xsl:template> </xsl:stylesheet> Interpretation (1): The xml:base attribute is "AAA/" Resolving against the base URI of xsl:copy gives "http://copy.base.uri/AAA/". The result is therefore: <out>http://copy.base.uri/AAA/</out> Interpretation (2) The xml:base attribute is "BBB/" Resolving against the base URI of xsl:copy gives "http://copy.base.uri/BBB/". The result is therefore: <out>http://copy.base.uri/BBB/</out> I suspect that interpretation 2 is correct, however, when I've tried this with an XSLT 2.0 implementation, the result was: <out>http://source.base.uriAAA/BBB</out> -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Friday, 6 November 2009 17:33:22 UTC