Re: C14N and namespace undeclaring

There are two issues here.  One is what XPath data model you get from
an XML+Namespaces 1.1 document, and the other is how to canonicalise
nodes from such a model.

Of course XPath 1.0 doesn't say anything about 1.1 documents.  And I
don't think there is any plan to update XPath 1.0.  So if C14N is
based on XPath 1.0 and C14N wants to handle Namespaces 1.1, it will
have to explain how to extend XPath 1.0.  In section 5.4 XPath 1.0
says:

  Each element has an associated set of namespace nodes, one for each
  distinct namespace prefix that is in scope for the element [...]

It then summarises - based on Namespaces 1.0 - what namespace nodes
an element will have, and in non-normative Appendix B describes
the correspondence with an obsolete draft of the Infoset spec.  But
the sentence quoted above clearly expresses the intended mapping
between in-scope namespaces and namespace nodes.

Interpreting that with respect to Namespaces 1.1 would give the
natural result that there are no namespace nodes for prefixes that
have been undeclared.  To do anything else would be to subvert the
whole point of namespace undeclaring, and destroy the correspondence
between the XPath data model and the Infoset (which *has* been updated
to take account of Namespaces 1.1).

I don't really have an opinion about what C14N should do.  The whole
idea of canonicalising fragments of documents with element layers
omitted seems like a bad idea to me.  But I would object if it
attempted to define a mapping of XML 1.1 to the XPath data model
that did not correspond to the Infoset.

-- Richard

Received on Wednesday, 28 March 2007 12:04:26 UTC