- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 10 Oct 2008 08:39:42 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=6152
Summary: Superfluous Namespace Declarations
Product: XPath / XQuery / XSLT
Version: Recommendation
Platform: PC
OS/Version: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: Serialization
AssignedTo: zongaro@ca.ibm.com
ReportedBy: tim@cbcl.co.uk
QAContact: public-qt-comments@w3.org
Consider the query:
declare default element namespace 'http://www.example.org";
element a { element b {} }
or the equivalent query:
declare default element namespace 'http://www.example.org";
<a><b/></a>
We believe the serialized result of this is:
<a xmlns="http://www.example.org/">
<b xmlns="http://www.example.org/"/>
</a>
Each namespace binding here is created as a result of the rule in Section 3.7.4
(In-scope Namespaces of a Constructed Element):
"For each namespace used in the name of the constructed element or in the names
of its attributes, a namespace binding must exist. If a namespace binding does
not already exist for one of these namespaces, a new namespace binding is
created for it. "
and the namespace binding on element b is retained during the copying of
content described in XQ 3.7.1.3 Content. As we understand it, the namespace
binding on element a is only created _after_ its content has been evaluated,
following the pattern in 3.7.3.1 Computed Element Constructors:
1. Deal with the element name
2. Deal with the element content
3. Create the element
Clearly the resulting namespace declaration on element b is superfluous.
However, we can't find any text in the serialization specification which would
lead be to believe we are allowed to strip such superfluous namespace
declarations.
The only reference I can find to removing namespace declarations is section 5
(XML Output Method)
"The result tree MAY contain namespace nodes that are not present in the
reconstructed tree, as the process of creating an instance of the data model
MAY ignore namespace declarations in some circumstances. See Section 6.2.3
Construction from an InfosetDM and Section 6.2.4 Construction from a PSVIDM of
[XQuery 1.0 and XPath 2.0 Data Model] for additional information."
and from the referenced documents
"Implementations may ignore namespace information items for namespaces which
are not known to be used. A namespace is known to be used if:
* It appears in the expanded QName of the node-name of the element.
* It appears in the expanded QName of the node-name of any of the element's
attributes.
* It appears in the expanded QName of any values of type xs:QName that
appear among the element's children or the typed values of its attributes."
None of these appear to apply in this case.
Section 4.6 of Canonical XML Version 1.0 (Superfluous Namespace Declarations)
covers the issue, but this isn't part of the serialization process.
I would be grateful for some help with this issue.
--
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, 10 October 2008 08:39:56 UTC