ACTION-549: Proposal for QName handling in C14N 2.0

I propose the following changes to C14N 2.0 based on the June 22 Editor's
Draft.

These changes don't include the actual syntax of the proposed option,
because that's the domain of XML Signature. Pratik, is the material on
specifying c14n 2.0 options in the CanonicalizationMethod element in place
yet? I didn't see it at first glance.

-- Scott

In section 2.2, replace the xsiTypeAware option in the table with a more
general option:

===============
qnameAware

an enumeration of qualified element names, qualified attribute names, and
unqualified attribute names (identified by name, and parent qualified name)

set of nodes whose entire content must be processed as QName-valued or
CURIE-valued for the purposes of canonicalization, including prefix
rewriting and recognition of prefix "visible utilization"

default is empty set
===============

Below the table, the references to xsiTypeAware would be altered to the new
option name.

In section 2.3, the text on Attribute Nodes would be modified:

"Also with prefix rewriting enabled, the attribute content is treated
specially if the attribute is among those enumerated for the qnameAware
option. If so, the QName or CURIE value of the attribute is rewritten with
the new prefix."


In section 2.3, the text on Text Nodes would be modified by adding:

"If the prefix rewriting parameter is set, and if the parent element node is
among those enumerated for the qnameAware option, then the QName or CURIE
value of the attribute is rewritten with the new prefix."

In section 2.5, the "Visibly Utilized" section would be replaced with:

==================
This concept is required for exclusive canonicalization. An element E  in
the document subset visibly utilizes a namespace declaration, i.e. a
namespace prefix P and bound value V, if any of the following conditions are
true:

    * The element E itself has a qualified name that uses the prefix P.
(Note if an element does not have a prefix, that means it visibily utilizes
the default namespace.)
    * OR The element E is among those enumerated for the qnameAware option,
and the QName or CURIE value of the element uses the prefix P (or, lacking a
prefix, it visibly utilizes the default namespace)
    * OR An attribute A of that element has a qualified name that uses the
prefix P, and that attribute is not in the exclusion list. (Note: unlike
elements, if an attribute doesn't have a prefix, that means it is a locally
scoped attribute. It does NOT mean that the attribute visibily utilizes the
default namespace.)
    * OR An attribute A of that element is among those enumerated for the
qnameAware option, and the QName or CURIE value of the attribute uses the
prefix P (or, lacking a prefix, it visibly utilizes the default namespace)
    * OR (TBD) Some special attribute or text nodes maybe have an XPath,
e.g. the IncludedXPath and ExcludedXPath attributes in an XML Signature 2.0
Transform. Any prefixes used in this XPath expression are considered to be
visibility utilized.
=================

In section 2.6, replace the last bullet with:

"If the prefixRewrite option is set to other than "none", modify the QNames
for the attribute name to use the new prefixes. Also, if the attribute is
among those enumerated for the qnameAware option, then change its QName or
CURIE value to use the new prefix."

Received on Friday, 16 July 2010 22:12:29 UTC