XML Enc 1.1 schema
[shibboleth/cpp-xmltooling.git] / schemas / xmldsig11-schema.xsd
1 <?xml version="1.0" encoding="utf-8"?>
2 <schema xmlns="http://www.w3.org/2001/XMLSchema"
3         xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
4         xmlns:dsig11="http://www.w3.org/2009/xmldsig11#"
5         targetNamespace="http://www.w3.org/2009/xmldsig11#"
6         version="0.1" elementFormDefault="qualified">
7
8   <import namespace="http://www.w3.org/2000/09/xmldsig#"
9         schemaLocation="xmldsig-core-schema.xsd"/>
10
11   <element name="ECKeyValue" type="dsig11:ECKeyValueType"/>
12   <complexType name="ECKeyValueType">
13     <sequence>
14       <choice>
15         <element name="ECParameters" type="dsig11:ECParametersType"/>
16         <element name="NamedCurve" type="dsig11:NamedCurveType"/>
17       </choice>
18       <element name="PublicKey" type="dsig11:ECPointType"/>
19     </sequence>
20     <attribute name="Id" type="ID" use="optional"/>
21   </complexType>
22
23   <complexType name="NamedCurveType">
24     <attribute name="URI" type="anyURI" use="required"/>
25   </complexType>
26   
27   <simpleType name="ECPointType">
28     <restriction base="ds:CryptoBinary"/>
29   </simpleType>
30
31   <complexType name="ECParametersType">
32     <sequence>
33       <element name="FieldID" type="dsig11:FieldIDType"/>
34       <element name="Curve" type="dsig11:CurveType"/>
35       <element name="Base" type="dsig11:ECPointType"/>
36       <element name="Order" type="ds:CryptoBinary"/>
37       <element name="CoFactor" type="integer" minOccurs="0"/>
38       <element name="ValidationData"
39                type="dsig11:ECValidationDataType" minOccurs="0"/>
40     </sequence>
41   </complexType>
42   
43   <complexType name="FieldIDType">
44     <choice>
45       <element ref="dsig11:Prime"/>
46       <element ref="dsig11:TnB"/>
47       <element ref="dsig11:PnB"/>
48       <element ref="dsig11:GnB"/>
49       <any namespace="##other" processContents="lax"/>
50     </choice>
51   </complexType>
52
53   <complexType name="CurveType">
54     <sequence>
55       <element name="A" type="ds:CryptoBinary"/>
56       <element name="B" type="ds:CryptoBinary"/>
57     </sequence>
58   </complexType>
59
60   <complexType name="ECValidationDataType">
61     <sequence>
62       <element name="seed" type="ds:CryptoBinary"/>
63     </sequence>
64     <attribute name="hashAlgorithm" type="anyURI" use="required"/>
65   </complexType>
66
67   <element name="Prime" type="dsig11:PrimeFieldParamsType"/>
68   <complexType name="PrimeFieldParamsType">
69     <sequence>
70       <element name="P" type="ds:CryptoBinary"/>
71     </sequence>
72   </complexType>
73
74   <element name="GnB" type="dsig11:CharTwoFieldParamsType"/>
75   <complexType name="CharTwoFieldParamsType">
76     <sequence>
77       <element name="M" type="positiveInteger"/>
78     </sequence>
79   </complexType>
80   
81   <element name="TnB" type="dsig11:TnBFieldParamsType"/>
82   <complexType name="TnBFieldParamsType">
83     <complexContent>
84       <extension base="dsig11:CharTwoFieldParamsType">
85         <sequence>
86           <element name="K" type="positiveInteger"/>
87         </sequence>
88       </extension>
89     </complexContent>
90   </complexType>
91
92   <element name="PnB" type="dsig11:PnBFieldParamsType"/>
93   <complexType name="PnBFieldParamsType">
94     <complexContent>
95       <extension base="dsig11:CharTwoFieldParamsType">
96         <sequence>
97           <element name="K1" type="positiveInteger"/>
98           <element name="K2" type="positiveInteger"/>
99           <element name="K3" type="positiveInteger"/>
100         </sequence>
101       </extension>
102     </complexContent>
103   </complexType>
104
105   <element name="OCSPResponse" type="base64Binary"/>
106
107   <element name="DEREncodedKeyValue" type="dsig11:DEREncodedKeyValueType"/>
108   <complexType name="DEREncodedKeyValueType">
109     <simpleContent>
110       <extension base="base64Binary">
111         <attribute name="Id" type="ID" use="optional"/>
112       </extension>
113     </simpleContent>
114   </complexType>
115
116   <element name="KeyInfoReference" type="dsig11:KeyInfoReferenceType"/> 
117   <complexType name="KeyInfoReferenceType">
118     <attribute name="URI" type="anyURI" use="required"/>
119     <attribute name="Id" type="ID" use="optional"/>
120   </complexType>
121
122   <element name="X509Digest" type="dsig11:X509DigestType"/> 
123   <complexType name="X509DigestType">
124     <simpleContent>
125       <extension base="base64Binary">
126         <attribute name="Algorithm" type="anyURI" use="required"/>
127       </extension>
128     </simpleContent>
129   </complexType>
130
131 </schema>
132