- From: Gregor Karlinger <Gregor.Karlinger@iaik.at>
- Date: Mon, 20 Dec 1999 14:44:07 +0100
- To: "Joseph M. Reagle Jr." <reagle@w3.org>, David Solo <dsolo@alum.mit.edu>, Donald Eastlake <dee3@torque.pothole.com>
- CC: ML W3C XML-Signature <w3c-ietf-xmldsig@w3.org>
- Message-ID: <385E32A7.842F6894@iaik.at>
I also found a lot of bugs in the schema definitions. Additionally a new draft of XML-Schema has appeared (19991217). Below I will try to adapt the definitions. For better comprehension I have explicitely quoted some defaults. ---------------------------------------------------------------------------------------- Section "3.0 Core Signature Syntax": ---------------------------------------------------------------------------------------- <?xml version='1.0'?> <!DOCTYPE schema SYSTEM 'http://www.w3.org/TR/1999/WD-xmlschema-1-19991105/structures.dtd' [ <!ENTITY dsig 'http://www.w3.org/1999/12/signature-core'> ]> <schema targetNS='http://www.w3.org/1999/12/signature-core' version='0.1' xmlns='http://www.w3.org/1999/XMLSchema'> <textEntity name="dsig">http://www.w3.org/1999/12/signature-core</textEntity> There is no provisions for entity definition any more in XML-Schema. So the last line has to be omitted. There are also some old definitions for the namespace URI, which I have changed below. <?xml version='1.0'?> <!DOCTYPE schema SYSTEM 'http://www.w3.org/TR/1999/WD-xmlschema-1-19991105/structures.dtd' [ <!ENTITY dsig 'http://www.w3.org/1999/12/xmldsig-core'> ]> <schema targetNS='http://www.w3.org/1999/12/xmldsig-core' version='0.1' xmlns='http://www.w3.org/1999/XMLSchema'> ---------------------------------------------------------------------------------------- Section "3.0 Core Signature Syntax": ---------------------------------------------------------------------------------------- Old definition: <element name='Signature'> <archetype order='seq' content='elemOnly'> <element ref='SignedInfo'/> <element ref='SignatureValue'/> <element ref='KeyInfo' minOccurs='0' maxOccurs='1' /> <element ref='Object' minOccurs='0' maxOccurs='*'/> <attribute name='Id' type='ID' /> </archetype> </element> New definition: <element name='Signature'> <type content='elementOnly'> <group order='seq' minOccurs='1' maxOccurs='1'> <element ref='SignedInfo' minOccurs='1' maxOccurs='1'/> <element ref='SignatureValue' minOccurs='1' maxOccurs='1'/> <element ref='KeyInfo' minOccurs='0' maxOccurs='1'/> <element ref='Object' minOccurs='0' maxOccurs='*'/> </group> <attribute name='Id' type='ID' minOccurs='0' maxOccurs='1'/> </type> </element> ---------------------------------------------------------------------------------------- Section "3.2 The SignatureValue Element": ---------------------------------------------------------------------------------------- No changes. ---------------------------------------------------------------------------------------- Section "3.3 The SignedInfo Element": ---------------------------------------------------------------------------------------- Old definition: <element name='SignedInfo'> <archetype order='seq' content='elemOnly'> <element ref='CanonicalizationMethod' minOccurs='0' maxOccurs='1'/> <element ref='SignatureMethod'/> <element ref='Reference' minOccurs='1' maxOccurs='*'/> <attribute name='Id' type='ID' /> </archtype> </element> New definition: <element name='SignedInfo'> <type content='elementOnly'> <group order='seq' minOccurs='1' maxOccurs='1'> <element ref='CanonicalizationMethod' minOccurs='0' maxOccurs='1'/> <element ref='SignatureMethod' minOccurs='1' maxOccurs='1'/> <element ref='Reference' minOccurs='1' maxOccurs='*'/> </group> <attribute name='Id' type='ID' minOccurs='0' maxOccurs='1'/> </type> </element> ---------------------------------------------------------------------------------------- Section "3.3.1 The CanonicalizationMethod Element": ---------------------------------------------------------------------------------------- Old definition: <element name='CanonicalizationMethod'> <archetype content='elemOnly' > <element ref='Parameter' > <attribute name='Algorithm' type='uri' /> </archetype> </element> New definition: <element name='CanonicalizationMethod'> <type content='elemOnly'> <element ref='Parameter' minOccurs='1' maxOccurs='1'> <attribute name='Algorithm' type='uri' minOccurs='1' maxOccurs='1'/> <type> </element> ---------------------------------------------------------------------------------------- Section "3.3.2 The SignatureMethod Element": ---------------------------------------------------------------------------------------- Old definition: <element name='SignatureMethod'> <archetype content='elemOnly'> <element ref='Parameter' > <attribute name='Algorithm' type='uri' /> </archetype> </element> New definition: <element name='SignatureMethod'> <type content='elemOnly'> <element ref='Parameter' minOccurs='0' maxOccurs='*'> <attribute name='Algorithm' type='uri' minOccurs='1' maxOccurs='1'/> </type> </element> ---------------------------------------------------------------------------------------- Section "3.3.3 The Reference Element": ---------------------------------------------------------------------------------------- Old definition: <element name='Reference' > <archetype order='seq'> <element ref='Transforms' minOccurs='0' maxOccurs='1'/> <element ref='DigestMethod'/> <element ref='DigestValue'/> <attribute name='Id' type='ID' /> <attribute name='URI' type='uri' /> <attribute name='IDREF' type='IDREF' /> <attribute name='Type' type='uri' /> </archetype> </element> New definition: <element name='Reference'> <type content='elementOnly'> <group order='seq' minOccurs='1' maxOccurs='1'> <element ref='Transforms' minOccurs='0' maxOccurs='1'/> <element ref='DigestMethod' minOccurs='1' maxOccurs='1'/> <element ref='DigestValue' minOccurs='1' maxOccurs='1'/> </group> <attribute name='Id' type='ID' minOccurs='0' maxOccurs='1'/> <attribute name='URI' type='uri' minOccurs='0' maxOccurs='1'/> <attribute name='IDREF' type='IDREF' minOccurs='0' maxOccurs='1'/> <attribute name='Type' type='uri' minOccurs='0' maxOccurs='1'/> </type> </element> ---------------------------------------------------------------------------------------- Section "3.3.3.1 The Transforms Element": ---------------------------------------------------------------------------------------- Old definition: <element name='Transforms' > <archetype> <element ref='Transform' minOccurs='1' maxOccurs='*' /> </archetype> </element> <element name='Transform' > <archetype> <element ref='Parameter' minOccurs='0' maxOccurs='*'/> <attribute name='Algorithm' type='string' /> <attribute name='Type' type='uri' /> <attribute name='Charset' type='string' /> </archetype> </element> New definition: <element name='Transforms' > <type content='elementOnly'> <element ref='Transform' minOccurs='1' maxOccurs='*'/> </type> </element> <element name='Transform'> <type content='elementOnly'> <element ref='Parameter' minOccurs='0' maxOccurs='*'/> <attribute name='Algorithm' type='string' minOccurs='1' maxOccurs='1'/> <attribute name='Type' type='uri' minOccurs='0' maxOccurs='1'/> <attribute name='Charset' type='string' minOccurs='0' maxOccurs='1'/> </type> </element> Maybe consider to change the type of attribute 'Charset' to 'uri'. ---------------------------------------------------------------------------------------- Section "3.3.3.2 The DigestMethod Element": ---------------------------------------------------------------------------------------- Old definition: <element name='DigestMethod'> <archetype content='elemOnly'> <element ref='Parameter' minOccurs='0' maxOccurs='*'/> <attribute name='Algorithm' type='uri' /> </archetype> </element> New definition: <element name='DigestMethod'> <type content='elemOnly'> <element ref='Parameter' minOccurs='0' maxOccurs='*'/> <attribute name='Algorithm' type='uri' minOccurs='1' maxOccurs='1'/> </type> </element> ---------------------------------------------------------------------------------------- Section "3.3.3.3 The DigestValue Element": ---------------------------------------------------------------------------------------- Old definition: <element name='DigestValue' type='string'> <archetype> <attribute name='Encoding' type='uri' default="&dsig;/Base64"/ /> </archetype> </element> New definition: <element name='DigestValue'> <type source='string'> <attribute name='Encoding' type='uri' default='&dsig;/Base64' minOccurs='0' maxOccurs='1'/> </type> </element> ************************************************************************************* This is the first part of schema definitions, including chapter 3.3.3.3. I will have I look at the remaining parts of the draft tomorrow. ************************************************************************************* Regards, Gregor -- --------------------------------------------------------------- Gregor Karlinger mailto://gregor.karlinger@iaik.at Institute for Applied Information Processing and Communications Austria ---------------------------------------------------------------
Received on Monday, 20 December 1999 08:44:15 UTC