xmldsig-core-schema.xsd (10592B)
1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- !DOCTYPE schema 3 PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "XMLSchema.dtd" 4 [ 5 <!ATTLIST schema 6 xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#"> 7 <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'> 8 <!ENTITY % p ''> 9 <!ENTITY % s ''> 10 ] --> 11 12 <!-- Schema for XML Signatures 13 http://www.w3.org/2000/09/xmldsig# 14 $Revision: 1.2 $ on $Date: 2006/02/15 16:36:35 $ by $Author: hpl $ 15 16 Copyright 2001 The Internet Society and W3C (Massachusetts Institute 17 of Technology, Institut National de Recherche en Informatique et en 18 Automatique, Keio University). All Rights Reserved. 19 http://www.w3.org/Consortium/Legal/ 20 21 This document is governed by the W3C Software License [1] as described 22 in the FAQ [2]. 23 24 [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720 25 [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD 26 --> 27 28 29 <schema xmlns="http://www.w3.org/2001/XMLSchema" 30 xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 31 targetNamespace="http://www.w3.org/2000/09/xmldsig#" 32 version="0.1" elementFormDefault="qualified"> 33 34 <!-- Basic Types Defined for Signatures --> 35 36 <simpleType name="CryptoBinary"> 37 <restriction base="base64Binary"> 38 </restriction> 39 </simpleType> 40 41 <!-- Start Signature --> 42 43 <element name="Signature" type="ds:SignatureType"/> 44 <complexType name="SignatureType"> 45 <sequence> 46 <element ref="ds:SignedInfo"/> 47 <element ref="ds:SignatureValue"/> 48 <element ref="ds:KeyInfo" minOccurs="0"/> 49 <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> 50 </sequence> 51 <attribute name="Id" type="ID" use="optional"/> 52 </complexType> 53 54 <element name="SignatureValue" type="ds:SignatureValueType"/> 55 <complexType name="SignatureValueType"> 56 <simpleContent> 57 <extension base="base64Binary"> 58 <attribute name="Id" type="ID" use="optional"/> 59 </extension> 60 </simpleContent> 61 </complexType> 62 63 <!-- Start SignedInfo --> 64 65 <element name="SignedInfo" type="ds:SignedInfoType"/> 66 <complexType name="SignedInfoType"> 67 <sequence> 68 <element ref="ds:CanonicalizationMethod"/> 69 <element ref="ds:SignatureMethod"/> 70 <element ref="ds:Reference" maxOccurs="unbounded"/> 71 </sequence> 72 <attribute name="Id" type="ID" use="optional"/> 73 </complexType> 74 75 <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> 76 <complexType name="CanonicalizationMethodType" mixed="true"> 77 <sequence> 78 <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/> 79 <!-- (0,unbounded) elements from (1,1) namespace --> 80 </sequence> 81 <attribute name="Algorithm" type="anyURI" use="required"/> 82 </complexType> 83 84 <element name="SignatureMethod" type="ds:SignatureMethodType"/> 85 <complexType name="SignatureMethodType" mixed="true"> 86 <sequence> 87 <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/> 88 <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> 89 <!-- (0,unbounded) elements from (1,1) external namespace --> 90 </sequence> 91 <attribute name="Algorithm" type="anyURI" use="required"/> 92 </complexType> 93 94 <!-- Start Reference --> 95 96 <element name="Reference" type="ds:ReferenceType"/> 97 <complexType name="ReferenceType"> 98 <sequence> 99 <element ref="ds:Transforms" minOccurs="0"/> 100 <element ref="ds:DigestMethod"/> 101 <element ref="ds:DigestValue"/> 102 </sequence> 103 <attribute name="Id" type="ID" use="optional"/> 104 <attribute name="URI" type="anyURI" use="optional"/> 105 <attribute name="Type" type="anyURI" use="optional"/> 106 </complexType> 107 108 <element name="Transforms" type="ds:TransformsType"/> 109 <complexType name="TransformsType"> 110 <sequence> 111 <element ref="ds:Transform" maxOccurs="unbounded"/> 112 </sequence> 113 </complexType> 114 115 <element name="Transform" type="ds:TransformType"/> 116 <complexType name="TransformType" mixed="true"> 117 <choice minOccurs="0" maxOccurs="unbounded"> 118 <any namespace="##other" processContents="lax"/> 119 <!-- (1,1) elements from (0,unbounded) namespaces --> 120 <element name="XPath" type="string"/> 121 </choice> 122 <attribute name="Algorithm" type="anyURI" use="required"/> 123 </complexType> 124 125 <!-- End Reference --> 126 127 <element name="DigestMethod" type="ds:DigestMethodType"/> 128 <complexType name="DigestMethodType" mixed="true"> 129 <sequence> 130 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 131 </sequence> 132 <attribute name="Algorithm" type="anyURI" use="required"/> 133 </complexType> 134 135 <element name="DigestValue" type="ds:DigestValueType"/> 136 <simpleType name="DigestValueType"> 137 <restriction base="base64Binary"/> 138 </simpleType> 139 140 <!-- End SignedInfo --> 141 142 <!-- Start KeyInfo --> 143 144 <element name="KeyInfo" type="ds:KeyInfoType"/> 145 <complexType name="KeyInfoType" mixed="true"> 146 <choice maxOccurs="unbounded"> 147 <element ref="ds:KeyName"/> 148 <element ref="ds:KeyValue"/> 149 <element ref="ds:RetrievalMethod"/> 150 <element ref="ds:X509Data"/> 151 <element ref="ds:PGPData"/> 152 <element ref="ds:SPKIData"/> 153 <element ref="ds:MgmtData"/> 154 <any processContents="lax" namespace="##other"/> 155 <!-- (1,1) elements from (0,unbounded) namespaces --> 156 </choice> 157 <attribute name="Id" type="ID" use="optional"/> 158 </complexType> 159 160 <element name="KeyName" type="string"/> 161 <element name="MgmtData" type="string"/> 162 163 <element name="KeyValue" type="ds:KeyValueType"/> 164 <complexType name="KeyValueType" mixed="true"> 165 <choice> 166 <element ref="ds:DSAKeyValue"/> 167 <element ref="ds:RSAKeyValue"/> 168 <any namespace="##other" processContents="lax"/> 169 </choice> 170 </complexType> 171 172 <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> 173 <complexType name="RetrievalMethodType"> 174 <sequence> 175 <element ref="ds:Transforms" minOccurs="0"/> 176 </sequence> 177 <attribute name="URI" type="anyURI"/> 178 <attribute name="Type" type="anyURI" use="optional"/> 179 </complexType> 180 181 <!-- Start X509Data --> 182 183 <element name="X509Data" type="ds:X509DataType"/> 184 <complexType name="X509DataType"> 185 <sequence maxOccurs="unbounded"> 186 <choice> 187 <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/> 188 <element name="X509SKI" type="base64Binary"/> 189 <element name="X509SubjectName" type="string"/> 190 <element name="X509Certificate" type="base64Binary"/> 191 <element name="X509CRL" type="base64Binary"/> 192 <any namespace="##other" processContents="lax"/> 193 </choice> 194 </sequence> 195 </complexType> 196 197 <complexType name="X509IssuerSerialType"> 198 <sequence> 199 <element name="X509IssuerName" type="string"/> 200 <element name="X509SerialNumber" type="integer"/> 201 </sequence> 202 </complexType> 203 204 <!-- End X509Data --> 205 206 <!-- Begin PGPData --> 207 208 <element name="PGPData" type="ds:PGPDataType"/> 209 <complexType name="PGPDataType"> 210 <choice> 211 <sequence> 212 <element name="PGPKeyID" type="base64Binary"/> 213 <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> 214 <any namespace="##other" processContents="lax" minOccurs="0" 215 maxOccurs="unbounded"/> 216 </sequence> 217 <sequence> 218 <element name="PGPKeyPacket" type="base64Binary"/> 219 <any namespace="##other" processContents="lax" minOccurs="0" 220 maxOccurs="unbounded"/> 221 </sequence> 222 </choice> 223 </complexType> 224 225 <!-- End PGPData --> 226 227 <!-- Begin SPKIData --> 228 229 <element name="SPKIData" type="ds:SPKIDataType"/> 230 <complexType name="SPKIDataType"> 231 <sequence maxOccurs="unbounded"> 232 <element name="SPKISexp" type="base64Binary"/> 233 <any namespace="##other" processContents="lax" minOccurs="0"/> 234 </sequence> 235 </complexType> 236 237 <!-- End SPKIData --> 238 239 <!-- End KeyInfo --> 240 241 <!-- Start Object (Manifest, SignatureProperty) --> 242 243 <element name="Object" type="ds:ObjectType"/> 244 <complexType name="ObjectType" mixed="true"> 245 <sequence minOccurs="0" maxOccurs="unbounded"> 246 <any namespace="##any" processContents="lax"/> 247 </sequence> 248 <attribute name="Id" type="ID" use="optional"/> 249 <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet --> 250 <attribute name="Encoding" type="anyURI" use="optional"/> 251 </complexType> 252 253 <element name="Manifest" type="ds:ManifestType"/> 254 <complexType name="ManifestType"> 255 <sequence> 256 <element ref="ds:Reference" maxOccurs="unbounded"/> 257 </sequence> 258 <attribute name="Id" type="ID" use="optional"/> 259 </complexType> 260 261 <element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 262 <complexType name="SignaturePropertiesType"> 263 <sequence> 264 <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 265 </sequence> 266 <attribute name="Id" type="ID" use="optional"/> 267 </complexType> 268 269 <element name="SignatureProperty" type="ds:SignaturePropertyType"/> 270 <complexType name="SignaturePropertyType" mixed="true"> 271 <choice maxOccurs="unbounded"> 272 <any namespace="##other" processContents="lax"/> 273 <!-- (1,1) elements from (1,unbounded) namespaces --> 274 </choice> 275 <attribute name="Target" type="anyURI" use="required"/> 276 <attribute name="Id" type="ID" use="optional"/> 277 </complexType> 278 279 <!-- End Object (Manifest, SignatureProperty) --> 280 281 <!-- Start Algorithm Parameters --> 282 283 <simpleType name="HMACOutputLengthType"> 284 <restriction base="integer"/> 285 </simpleType> 286 287 <!-- Start KeyValue Element-types --> 288 289 <element name="DSAKeyValue" type="ds:DSAKeyValueType"/> 290 <complexType name="DSAKeyValueType"> 291 <sequence> 292 <sequence minOccurs="0"> 293 <element name="P" type="ds:CryptoBinary"/> 294 <element name="Q" type="ds:CryptoBinary"/> 295 </sequence> 296 <element name="G" type="ds:CryptoBinary" minOccurs="0"/> 297 <element name="Y" type="ds:CryptoBinary"/> 298 <element name="J" type="ds:CryptoBinary" minOccurs="0"/> 299 <sequence minOccurs="0"> 300 <element name="Seed" type="ds:CryptoBinary"/> 301 <element name="PgenCounter" type="ds:CryptoBinary"/> 302 </sequence> 303 </sequence> 304 </complexType> 305 306 <element name="RSAKeyValue" type="ds:RSAKeyValueType"/> 307 <complexType name="RSAKeyValueType"> 308 <sequence> 309 <element name="Modulus" type="ds:CryptoBinary"/> 310 <element name="Exponent" type="ds:CryptoBinary"/> 311 </sequence> 312 </complexType> 313 314 <!-- End KeyValue Element-types --> 315 316 <!-- End Signature --> 317 318 </schema>