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