Re: Schema Contributions to C14N (Was: Suggested additions to 3.0 Processing Rules section)

At 19:43 7/12/2001, Joseph M. Reagle Jr. wrote:
>In speaking to Henry Thompson about this, he realized that the schema spec 
>doesn't provide this info as a normalized attribute value, only as a PSVI 
>normalized attribute value which XPath wouldn't see -- this is a bug 
>meriting an erratum most likely.
>
>I'm still thinking all this through, so it requires more conversation. 
>(Best yet, since XSV (schema validator) is written in python, I'd like to 
>see what kind of node set it returns and what an XPath selection over it 
>returns.)

BTW: Short of playing with an implementation of a nodeset, XSV -r will 
return a reflection of the actual schema augmented Infoset. That reflection 
is a 2 meg file (for a simple 1 line XML document and 4 line schema document 
attached!) with the following, which *seems* to report a default value 
normalized and schema normalized (as it should) despite what Henry said(?):

            <normalizedValue>baz</normalizedValue>
            <psv:schemaNormalizedValue>baz</psv:schemaNormalizedValue>

If so, this default attribute would be manifested in the Canonical XML -- 
assuming schema validation is specified as a Transform if that's what it 
takes...
__

                   <attributes>
                     <attribute>
                       <namespaceName xsi:nil='true'/>
                       <localName>name</localName>
                       <prefix xsi:nil='true'/>
                       <normalizedValue>bar</normalizedValue>
                       <specified>true</specified>
                       <attributeType xsi:nil='true'/>
                       <references xsi:nil='true'/>
                       <psv:validationAttempted>full</psv:validationAttempted>
                       <psv:validationContext>
                         <pointer ref='g1'/>
                       </psv:validationContext>
                       <psv:validity>valid</psv:validity>
                       <psv:schemaErrorCode xsi:nil='true'/>
                       <psv:schemaNormalizedValue>bar</psv:schemaNormalizedValue>
                       <psv:schemaSpecified xsi:nil='true'/>
                       <psv:typeDefinition>
                         <pointer ref='xsd:type.NCName'/>
                       </psv:typeDefinition>
                       <psv:memberTypeDefinition xsi:nil='true'/>
                       <psv:declaration>
                         <pointer ref='attr.name.104'/>
                       </psv:declaration>
                     </attribute>
                     <attribute>
                       <namespaceName xsi:nil='true'/>
                       <localName>type</localName>
                       <prefix xsi:nil='true'/>
                       <normalizedValue>xsd:string</normalizedValue>
                       <specified>true</specified>
                       <attributeType xsi:nil='true'/>
                       <references xsi:nil='true'/>
                       <psv:validationAttempted>full</psv:validationAttempted>
                       <psv:validationContext>
                         <pointer ref='g1'/>
                       </psv:validationContext>
                       <psv:validity>valid</psv:validity>
                       <psv:schemaErrorCode xsi:nil='true'/>
                       <psv:schemaNormalizedValue>xsd:string</psv:schemaNormalizedValue>
                       <psv:schemaSpecified xsi:nil='true'/>
                       <psv:typeDefinition>
                         <pointer ref='QName'/>
                       </psv:typeDefinition>
                       <psv:memberTypeDefinition xsi:nil='true'/>
                       <psv:declaration>
                         <pointer ref='attr.type.141'/>
                       </psv:declaration>
                     </attribute>
                     <attribute>
                       <namespaceName xsi:nil='true'/>
                       <localName>default</localName>
                       <prefix xsi:nil='true'/>
                       <normalizedValue>baz</normalizedValue>
                       <specified>true</specified>
                       <attributeType xsi:nil='true'/>
                       <references xsi:nil='true'/>
                       <psv:validationAttempted>full</psv:validationAttempted>
                       <psv:validationContext>
                         <pointer ref='g1'/>
                       </psv:validationContext>
                       <psv:validity>valid</psv:validity>
                       <psv:schemaErrorCode xsi:nil='true'/>
                       <psv:schemaNormalizedValue>baz</psv:schemaNormalizedValue>
                       <psv:schemaSpecified xsi:nil='true'/>
                       <psv:typeDefinition>
                         <pointer ref='string'/>
                       </psv:typeDefinition>
                       <psv:memberTypeDefinition xsi:nil='true'/>
                       <psv:declaration>
                         <pointer ref='attr.default.147'/>
                       </psv:declaration>
                     </attribute>
                     <attribute>
                       <namespaceName xsi:nil='true'/>
                       <localName>use</localName>
                       <prefix xsi:nil='true'/>
                       <normalizedValue>optional</normalizedValue>
                       <specified>true</specified>
                       <attributeType xsi:nil='true'/>
                       <references xsi:nil='true'/>
                       <psv:validationAttempted>full</psv:validationAttempted>
                       <psv:validationContext>
                         <pointer ref='g1'/>
                       </psv:validationContext>
                       <psv:validity>valid</psv:validity>
                       <psv:schemaErrorCode xsi:nil='true'/>
                       <psv:schemaNormalizedValue>optional</psv:schemaNormalizedValue>
                       <psv:schemaSpecified xsi:nil='true'/>
                       <psv:typeDefinition>
                         <pointer ref='xsd:type._anon_144'/>
                       </psv:typeDefinition>
                       <psv:memberTypeDefinition xsi:nil='true'/>
                       <psv:declaration>
                         <pointer ref='attr.use.145'/>
                       </psv:declaration>
                     </attribute>
                   </attributes>
--
Joseph Reagle Jr.                 http://www.w3.org/People/Reagle/
W3C Policy Analyst                mailto:reagle@w3.org
IETF/W3C XML-Signature Co-Chair   http://www.w3.org/Signature
W3C XML Encryption Chair          http://www.w3.org/Encryption/2001/

Received on Thursday, 12 July 2001 19:55:34 UTC