1 <!-- DTD for XML Signatures
2 http://www.w3.org/2000/09/xmldsig#
3 Joseph Reagle $last changed 20001215$
5 http://www.w3.org/2000/09/xmldsig#
6 $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
8 Copyright 2001 The Internet Society and W3C (Massachusetts Institute
9 of Technology, Institut National de Recherche en Informatique et en
10 Automatique, Keio University). All Rights Reserved.
11 http://www.w3.org/Consortium/Legal/
13 This document is governed by the W3C Software License [1] as described
16 [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
17 [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
23 The following entity declarations enable external/flexible content in
24 the Signature content model.
26 #PCDATA emulates schema string; when combined with element types it
27 emulates schema's mixed content type.
29 %foo.ANY permits the user to include their own element types from
30 other namespaces, for example:
31 <!ENTITY % KeyValue.ANY '| ecds:ECDSAKeyValue'>
33 <!ELEMENT ecds:ECDSAKeyValue (#PCDATA) >
37 <!ENTITY % Object.ANY ''>
38 <!ENTITY % Method.ANY ''>
39 <!ENTITY % Transform.ANY ''>
40 <!ENTITY % SignatureProperty.ANY ''>
41 <!ENTITY % KeyInfo.ANY ''>
42 <!ENTITY % KeyValue.ANY ''>
43 <!ENTITY % PGPData.ANY ''>
44 <!ENTITY % X509Data.ANY ''>
45 <!ENTITY % SPKIData.ANY ''>
49 <!-- Start Core Signature declarations, these should NOT be altered -->
51 <!ELEMENT Signature (SignedInfo, SignatureValue, KeyInfo?, Object*) >
53 xmlns CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'
56 <!ELEMENT SignatureValue (#PCDATA) >
57 <!ATTLIST SignatureValue
60 <!ELEMENT SignedInfo (CanonicalizationMethod,
61 SignatureMethod, Reference+) >
66 <!ELEMENT CanonicalizationMethod (#PCDATA %Method.ANY;)* >
67 <!ATTLIST CanonicalizationMethod
68 Algorithm CDATA #REQUIRED >
70 <!ELEMENT SignatureMethod (#PCDATA|HMACOutputLength %Method.ANY;)* >
71 <!ATTLIST SignatureMethod
72 Algorithm CDATA #REQUIRED >
74 <!ELEMENT Reference (Transforms?, DigestMethod, DigestValue) >
81 <!ELEMENT Transforms (Transform+)>
83 <!ELEMENT Transform (#PCDATA|XPath %Transform.ANY;)* >
85 Algorithm CDATA #REQUIRED >
87 <!ELEMENT XPath (#PCDATA) >
89 <!ELEMENT DigestMethod (#PCDATA %Method.ANY;)* >
90 <!ATTLIST DigestMethod
91 Algorithm CDATA #REQUIRED >
93 <!ELEMENT DigestValue (#PCDATA) >
95 <!ELEMENT KeyInfo (#PCDATA|KeyName|KeyValue|RetrievalMethod|
96 X509Data|PGPData|SPKIData|MgmtData %KeyInfo.ANY;)* >
100 <!-- Key Information -->
102 <!ELEMENT KeyName (#PCDATA) >
103 <!ELEMENT KeyValue (#PCDATA|DSAKeyValue|RSAKeyValue %KeyValue.ANY;)* >
104 <!ELEMENT MgmtData (#PCDATA) >
106 <!ELEMENT RetrievalMethod (Transforms?) >
107 <!ATTLIST RetrievalMethod
109 Type CDATA #IMPLIED >
113 <!ELEMENT X509Data ((X509IssuerSerial | X509SKI | X509SubjectName |
114 X509Certificate | X509CRL )+ %X509Data.ANY;)>
115 <!ELEMENT X509IssuerSerial (X509IssuerName, X509SerialNumber) >
116 <!ELEMENT X509IssuerName (#PCDATA) >
117 <!ELEMENT X509SubjectName (#PCDATA) >
118 <!ELEMENT X509SerialNumber (#PCDATA) >
119 <!ELEMENT X509SKI (#PCDATA) >
120 <!ELEMENT X509Certificate (#PCDATA) >
121 <!ELEMENT X509CRL (#PCDATA) >
125 <!ELEMENT PGPData ((PGPKeyID, PGPKeyPacket?) | (PGPKeyPacket) %PGPData.ANY;) >
126 <!ELEMENT PGPKeyPacket (#PCDATA) >
127 <!ELEMENT PGPKeyID (#PCDATA) >
131 <!ELEMENT SPKIData (SPKISexp %SPKIData.ANY;) >
132 <!ELEMENT SPKISexp (#PCDATA) >
134 <!-- Extensible Content -->
136 <!ELEMENT Object (#PCDATA|Signature|SignatureProperties|Manifest %Object.ANY;)* >
139 MimeType CDATA #IMPLIED
140 Encoding CDATA #IMPLIED >
142 <!ELEMENT Manifest (Reference+) >
146 <!ELEMENT SignatureProperties (SignatureProperty+) >
147 <!ATTLIST SignatureProperties
150 <!ELEMENT SignatureProperty (#PCDATA %SignatureProperty.ANY;)* >
151 <!ATTLIST SignatureProperty
152 Target CDATA #REQUIRED
155 <!-- Algorithm Parameters -->
157 <!ELEMENT HMACOutputLength (#PCDATA) >
159 <!ELEMENT DSAKeyValue ((P, Q)?, G?, Y, J?, (Seed, PgenCounter)?) >
160 <!ELEMENT P (#PCDATA) >
161 <!ELEMENT Q (#PCDATA) >
162 <!ELEMENT G (#PCDATA) >
163 <!ELEMENT Y (#PCDATA) >
164 <!ELEMENT J (#PCDATA) >
165 <!ELEMENT Seed (#PCDATA) >
166 <!ELEMENT PgenCounter (#PCDATA) >
168 <!ELEMENT RSAKeyValue (Modulus, Exponent) >
169 <!ELEMENT Modulus (#PCDATA) >
170 <!ELEMENT Exponent (#PCDATA) >