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