Add schema errata.
[shibboleth/cpp-xmltooling.git] / schemas / xenc-schema.xsd
1 <?xml version="1.0" encoding="utf-8"?>\r
2 <schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'\r
3         xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'\r
4         xmlns:ds='http://www.w3.org/2000/09/xmldsig#'\r
5         targetNamespace='http://www.w3.org/2001/04/xmlenc#'\r
6         elementFormDefault='qualified'>\r
7 \r
8   <import namespace='http://www.w3.org/2000/09/xmldsig#'\r
9           schemaLocation='xmldsig-core-schema.xsd'/>\r
10 \r
11   <complexType name='EncryptedType' abstract='true'>\r
12     <sequence>\r
13       <element name='EncryptionMethod' type='xenc:EncryptionMethodType'\r
14        minOccurs='0'/>\r
15       <element ref='ds:KeyInfo' minOccurs='0'/>\r
16       <element ref='xenc:CipherData'/>\r
17       <element ref='xenc:EncryptionProperties' minOccurs='0'/>\r
18     </sequence>\r
19     <attribute name='Id' type='ID' use='optional'/>\r
20     <attribute name='Type' type='anyURI' use='optional'/>\r
21     <attribute name='MimeType' type='string' use='optional'/>\r
22     <attribute name='Encoding' type='anyURI' use='optional'/>\r
23   </complexType>\r
24   \r
25   <complexType name='EncryptionMethodType' mixed='true'>\r
26     <sequence>\r
27       <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>\r
28       <element name='OAEPparams' minOccurs='0' type='base64Binary'/>\r
29       <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>\r
30     </sequence>\r
31     <attribute name='Algorithm' type='anyURI' use='required'/>\r
32   </complexType>\r
33 \r
34     <simpleType name='KeySizeType'>\r
35       <restriction base="integer"/>\r
36     </simpleType>\r
37 \r
38   <element name='CipherData' type='xenc:CipherDataType'/>\r
39   <complexType name='CipherDataType'>\r
40      <choice>\r
41        <element name='CipherValue' type='base64Binary'/>\r
42        <element ref='xenc:CipherReference'/>\r
43      </choice>\r
44     </complexType>\r
45 \r
46    <element name='CipherReference' type='xenc:CipherReferenceType'/>\r
47    <complexType name='CipherReferenceType'>\r
48        <choice>\r
49          <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>\r
50        </choice>\r
51        <attribute name='URI' type='anyURI' use='required'/>\r
52    </complexType>\r
53 \r
54      <complexType name='TransformsType'>\r
55        <sequence>\r
56          <element ref='ds:Transform' maxOccurs='unbounded'/>\r
57        </sequence>\r
58      </complexType>\r
59 \r
60 \r
61   <element name='EncryptedData' type='xenc:EncryptedDataType'/>\r
62   <complexType name='EncryptedDataType'>\r
63     <complexContent>\r
64       <extension base='xenc:EncryptedType'>\r
65        </extension>\r
66     </complexContent>\r
67   </complexType>\r
68 \r
69   <!-- Children of ds:KeyInfo -->\r
70 \r
71   <element name='EncryptedKey' type='xenc:EncryptedKeyType'/>\r
72   <complexType name='EncryptedKeyType'>\r
73     <complexContent>\r
74       <extension base='xenc:EncryptedType'>\r
75         <sequence>\r
76           <element ref='xenc:ReferenceList' minOccurs='0'/>\r
77           <element name='CarriedKeyName' type='string' minOccurs='0'/>\r
78         </sequence>\r
79         <attribute name='Recipient' type='string'\r
80          use='optional'/>\r
81       </extension>\r
82     </complexContent>\r
83   </complexType>\r
84 \r
85     <element name="AgreementMethod" type="xenc:AgreementMethodType"/>\r
86     <complexType name="AgreementMethodType" mixed="true">\r
87       <sequence>\r
88         <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>\r
89         <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->\r
90         <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>\r
91         <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>\r
92         <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>\r
93       </sequence>\r
94       <attribute name="Algorithm" type="anyURI" use="required"/>\r
95     </complexType>\r
96 \r
97   <!-- End Children of ds:KeyInfo -->\r
98 \r
99   <element name='ReferenceList'>\r
100     <complexType>\r
101       <choice minOccurs='1' maxOccurs='unbounded'>\r
102         <element name='DataReference' type='xenc:ReferenceType'/>\r
103         <element name='KeyReference' type='xenc:ReferenceType'/>\r
104       </choice>\r
105     </complexType>\r
106   </element>\r
107 \r
108   <complexType name='ReferenceType'>\r
109     <sequence>\r
110       <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>\r
111     </sequence>\r
112     <attribute name='URI' type='anyURI' use='required'/>\r
113   </complexType>\r
114 \r
115 \r
116   <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>\r
117   <complexType name='EncryptionPropertiesType'>\r
118     <sequence>\r
119       <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>\r
120     </sequence>\r
121     <attribute name='Id' type='ID' use='optional'/>\r
122   </complexType>\r
123 \r
124     <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>\r
125     <complexType name='EncryptionPropertyType' mixed='true'>\r
126       <choice maxOccurs='unbounded'>\r
127         <any namespace='##other' processContents='lax'/>\r
128       </choice>\r
129       <attribute name='Target' type='anyURI' use='optional'/>\r
130       <attribute name='Id' type='ID' use='optional'/>\r
131       <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>\r
132     </complexType>\r
133 \r
134   <element name="DHKeyValue" type="xenc:DHKeyValueType"/>\r
135   <complexType name="DHKeyValueType">\r
136     <sequence>\r
137       <sequence minOccurs="0">\r
138         <element name="P" type="ds:CryptoBinary"/>\r
139         <element name="Q" type="ds:CryptoBinary"/>\r
140         <element name="Generator" type="ds:CryptoBinary"/>\r
141       </sequence>\r
142       <element name="Public" type="ds:CryptoBinary"/>\r
143       <sequence minOccurs="0">\r
144         <element name="seed" type="ds:CryptoBinary"/>\r
145         <element name="pgenCounter" type="ds:CryptoBinary"/>\r
146       </sequence>\r
147     </sequence>\r
148   </complexType>\r
149   \r
150 </schema>\r
151 \r