- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 16 Sep 2005 11:06:30 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=2257 Summary: [xqueryx] brace groups in element content. Product: XPath / XQuery / XSLT Version: Last Call drafts Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: XQueryX AssignedTo: jim.melton@acm.org ReportedBy: davidc@nag.co.uk QAContact: public-qt-comments@w3.org Currently (15th september) the stylesheet puts a brace group around each item in the content of a direct element constructor. It should not do this if the item is itself a direct element constructor, ie the xsl:if tests below should be added. <xsl:template match="xqx:elementContent"> <xsl:for-each select="*"> <xsl:if test="not(self::xqx:elementConstructor)"> <xsl:value-of select="$LBRACE"/> </xsl:if> <xsl:apply-templates select="."/> <xsl:if test="not(self::xqx:elementConstructor)"> <xsl:value-of select="$RBRACE"/> </xsl:if> </xsl:for-each> </xsl:template> Without this change XqueryX can not express the equivalent of <y><z xmlns:a="a"/></y> the nearest it can get is <y>{<z xmlns:a="a"/>}</y> But these are not equivalent: declare copy-namespaces no-preserve,no-inherit; <y><z xmlns:a="a"/></y> evaluates to <y><z xmlns:a="a"/></y> but declare copy-namespaces no-preserve,no-inherit; <y>{<z xmlns:a="a"/>}</y> evaluates to <y><z/></y> as the copy-namespace declaration has no effect on the directly embedded element constructor in the first example, but does affect (prohibit) the copying of the namespace when the sequence constructed by the enclosed expression is copied in the second example. David
Received on Friday, 16 September 2005 11:06:38 UTC