xmldsig-core-schema.xsd 10 KB

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