- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 05 Jan 2007 21:14:56 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4151 Summary: XQTY0086 description is too limited Product: XPath / XQuery / XSLT Version: Proposed Recommendation Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: XQuery AssignedTo: chamberl@almaden.ibm.com ReportedBy: mike@saxonica.com QAContact: public-qt-comments@w3.org One of my users is struggling with the problem of how to use XQuery to make an amended copy of elements with namespace-sensitive content. It really isn't easy (in fact, I don't think it's possible in general); but that's a subject for vendor extensions now and for XQuery 1.1 in due course. Meanwhile, there's a situation that the spec doesn't seem to address. Consider the construct element { node-name($t) } { $e/@*, $e/* } where construction mode is preserve, and one of the attributes is typed as a QName. I think this should give error XQTY0086. But the current description of XQTE0086 is too narrow. It says: <quote> It is a type error [err:XQTY0086] in this case [where copy-namespaces mode specifies no-preserve] if the typed value of the copied element or of any of its attributes is namespace-sensitive. </quote> But in this example the namespace-sensitive attribute does not belong to a copied element, and that's a problem regardless of the copy-namespaces mode. The equivalent XSLT error condition is wider: <quote> [ERR XTTE0950] It is a type error to use the xsl:copy or xsl:copy-of instruction to copy a node that has namespace-sensitive content if the copy-namespaces attribute has the value no and its explicit or implicit validation attribute has the value preserve. It is also a type error if either of these instructions (with validation="preserve") is used to copy an attribute having namespace-sensitive content, unless the parent element is also copied. A node has namespace-sensitive content if its typed value contains an item of type xs:QName or xs:NOTATION or a type derived therefrom. The reason this is an error is because the validity of the content depends on the namespace context being preserved. </quote> I think this needs a new clause, perhaps between D and E, along the lines: <proposed> D2 If construction mode is preserve, and the value of an enclosed expression includes an attribute node whose typed value is namespace-sensitive, then error [err:XQTY0086] is raised. </proposed>
Received on Friday, 5 January 2007 21:15:20 UTC