Schemas and catalog
[shibboleth/cpp-xmltooling.git] / schemas / xenc-schema.xsd
diff --git a/schemas/xenc-schema.xsd b/schemas/xenc-schema.xsd
new file mode 100644 (file)
index 0000000..a9e2015
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'\r
+        xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'\r
+        xmlns:ds='http://www.w3.org/2000/09/xmldsig#'\r
+        targetNamespace='http://www.w3.org/2001/04/xmlenc#'\r
+        elementFormDefault='qualified'>\r
+\r
+  <import namespace='http://www.w3.org/2000/09/xmldsig#'\r
+          schemaLocation='xmldsig-core-schema.xsd'/>\r
+\r
+  <complexType name='EncryptedType' abstract='true'>\r
+    <sequence>\r
+      <element name='EncryptionMethod' type='xenc:EncryptionMethodType'\r
+       minOccurs='0'/>\r
+      <element ref='ds:KeyInfo' minOccurs='0'/>\r
+      <element ref='xenc:CipherData'/>\r
+      <element ref='xenc:EncryptionProperties' minOccurs='0'/>\r
+    </sequence>\r
+    <attribute name='Id' type='ID' use='optional'/>\r
+    <attribute name='Type' type='anyURI' use='optional'/>\r
+    <attribute name='MimeType' type='string' use='optional'/>\r
+    <attribute name='Encoding' type='anyURI' use='optional'/>\r
+  </complexType>\r
+  \r
+  <complexType name='EncryptionMethodType' mixed='true'>\r
+    <sequence>\r
+      <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>\r
+      <element name='OAEPparams' minOccurs='0' type='base64Binary'/>\r
+      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>\r
+    </sequence>\r
+    <attribute name='Algorithm' type='anyURI' use='required'/>\r
+  </complexType>\r
+\r
+    <simpleType name='KeySizeType'>\r
+      <restriction base="integer"/>\r
+    </simpleType>\r
+\r
+  <element name='CipherData' type='xenc:CipherDataType'/>\r
+  <complexType name='CipherDataType'>\r
+     <choice>\r
+       <element name='CipherValue' type='base64Binary'/>\r
+       <element ref='xenc:CipherReference'/>\r
+     </choice>\r
+    </complexType>\r
+\r
+   <element name='CipherReference' type='xenc:CipherReferenceType'/>\r
+   <complexType name='CipherReferenceType'>\r
+       <choice>\r
+         <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>\r
+       </choice>\r
+       <attribute name='URI' type='anyURI' use='required'/>\r
+   </complexType>\r
+\r
+     <complexType name='TransformsType'>\r
+       <sequence>\r
+         <element ref='ds:Transform' maxOccurs='unbounded'/>\r
+       </sequence>\r
+     </complexType>\r
+\r
+\r
+  <element name='EncryptedData' type='xenc:EncryptedDataType'/>\r
+  <complexType name='EncryptedDataType'>\r
+    <complexContent>\r
+      <extension base='xenc:EncryptedType'>\r
+       </extension>\r
+    </complexContent>\r
+  </complexType>\r
+\r
+  <!-- Children of ds:KeyInfo -->\r
+\r
+  <element name='EncryptedKey' type='xenc:EncryptedKeyType'/>\r
+  <complexType name='EncryptedKeyType'>\r
+    <complexContent>\r
+      <extension base='xenc:EncryptedType'>\r
+        <sequence>\r
+          <element ref='xenc:ReferenceList' minOccurs='0'/>\r
+          <element name='CarriedKeyName' type='string' minOccurs='0'/>\r
+        </sequence>\r
+        <attribute name='Recipient' type='string'\r
+         use='optional'/>\r
+      </extension>\r
+    </complexContent>\r
+  </complexType>\r
+\r
+    <element name="AgreementMethod" type="xenc:AgreementMethodType"/>\r
+    <complexType name="AgreementMethodType" mixed="true">\r
+      <sequence>\r
+        <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>\r
+        <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->\r
+        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>\r
+        <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>\r
+        <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>\r
+      </sequence>\r
+      <attribute name="Algorithm" type="anyURI" use="required"/>\r
+    </complexType>\r
+\r
+  <!-- End Children of ds:KeyInfo -->\r
+\r
+  <element name='ReferenceList'>\r
+    <complexType>\r
+      <choice minOccurs='1' maxOccurs='unbounded'>\r
+        <element name='DataReference' type='xenc:ReferenceType'/>\r
+        <element name='KeyReference' type='xenc:ReferenceType'/>\r
+      </choice>\r
+    </complexType>\r
+  </element>\r
+\r
+  <complexType name='ReferenceType'>\r
+    <sequence>\r
+      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>\r
+    </sequence>\r
+    <attribute name='URI' type='anyURI' use='required'/>\r
+  </complexType>\r
+\r
+\r
+  <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>\r
+  <complexType name='EncryptionPropertiesType'>\r
+    <sequence>\r
+      <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>\r
+    </sequence>\r
+    <attribute name='Id' type='ID' use='optional'/>\r
+  </complexType>\r
+\r
+    <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>\r
+    <complexType name='EncryptionPropertyType' mixed='true'>\r
+      <choice maxOccurs='unbounded'>\r
+        <any namespace='##other' processContents='lax'/>\r
+      </choice>\r
+      <attribute name='Target' type='anyURI' use='optional'/>\r
+      <attribute name='Id' type='ID' use='optional'/>\r
+      <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>\r
+    </complexType>\r
+\r
+</schema>\r
+\r