Re: Comments on "XML-Signature Syntax and Processing"

At 22:57 12/13/2000 +0900, muraw3c@attglobal.net wrote:
>The body of the CR has the above dcl, but the DTD actually uses
>%Key.ANY;.
>
><!ELEMENT MgmtData      %Key.ANY; >
><!ELEMENT KeyName       %Key.ANY; >

Oops, ok, they are changed to PCDATA, in the editors' copy of the DTD [1].

[1]http://www.w3.org/Signature/Drafts/xmldsig-core/xmldsig-core-schema.dtd

>In my understanding, KeyValue have either DSAKeyValue, RSAKeyValue, or
>elements of foreign namespaces.
>
> > >- Permissible contents of KeyValue are very different.
> >
> > <element name="KeyValue" type="ds:KeyValueType"/>
> >     <complexType name="KeyValueType" mixed="true">
> >       <choice>
> >         <any namespace="##other" processContents="lax" minOccurs="0"
> >          maxOccurs="unbounded"/>
> >         <element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
> >         <element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
> >       </choice>
> >     </complexType>
>
>But your DTD allows several element types of the very namespace
>"http://www.w3.org/2000/09/xmldsig#".  Is this really intended?

I combined the KeValues and KeyInfo types, but I've now seperated them for 
clarity in [1] (not the spec yet).

>I would rather write:
>
><!ENTITY % Key.ANY "(%ForeignKeyValue; DSAKeyValue|RSAKeyValue)*">
><!ENTITY % ForeignKeyValue "">
>
>and allow users to redefine ForeignKeyValue.  For example:
>
><!ENTITY % ForeignKeyValue "foo:NewKeyValue | ">

I like this approach, represented in [1] (not in spec yet):

<!--

These entity declarations enable external/flexible content in
the Signature content model.

#PCDATA emulates schema string; when combined with element types it
emulates schema's mixed content type.

%foo.External permits the user to include their own element types from
other namespaces, for example:
  <!ENTITY % KeyValue.External 'ecds:ECDSAKeyValue|'>
  <!ELEMENT ecds:ECDSAKeyValue (#PCDATA)  >

-->

<!ENTITY % Object.External ''>
<!ENTITY % Object.ANY 
'(%Object.External;#PCDATA|Signature|SignatureProperties|Manifest)*'>

<!ENTITY % Method.External ''>
<!ENTITY % Method.ANY '(%Method.External;#PCDATA|HMACOutputLength)*'>

<!ENTITY % Transform.External ''>
<!ENTITY % Transform.ANY '(%Transform.External;#PCDATA|XPath|XSLT)*'>

<!ENTITY % SignatureProperty.External ''>
<!ENTITY % SignatureProperty.ANY '(%SignatureProperty.External;#PCDATA)*'>

<!ENTITY % KeyInfo.External ''>
<!ENTITY % KeyInfo.ANY 
'(%KeyInfo.External;#PCDATA|KeyName|KeyValue|RetrievalMethod|
            X509Data|PGPData|MgmtData)*'>

<!ENTITY % KeyValue.External ''>
<!ENTITY % KeyValue.ANY 
'(%KeyValue.External;#PCDATA|DSAKeyValue|RSAKeyValue)*'>


__
Joseph Reagle Jr.
W3C Policy Analyst                mailto:reagle@w3.org
IETF/W3C XML-Signature Co-Chair   http://www.w3.org/People/Reagle/

Received on Thursday, 14 December 2000 15:21:40 UTC