Add LC dsig11 schema, fix SerialNumber type in original.
[shibboleth/cpp-xmltooling.git] / schemas / xmldsig11-schema.xsd
diff --git a/schemas/xmldsig11-schema.xsd b/schemas/xmldsig11-schema.xsd
new file mode 100644 (file)
index 0000000..56c82be
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+        xmlns:dsig11="http://www.w3.org/2009/xmldsig11#"
+        targetNamespace="http://www.w3.org/2009/xmldsig11#"
+        version="0.1" elementFormDefault="qualified">
+
+  <import namespace="http://www.w3.org/2000/09/xmldsig#"
+        schemaLocation="xmldsig-core-schema.xsd"/>
+
+  <element name="ECKeyValue" type="dsig11:ECKeyValueType"/>
+  <complexType name="ECKeyValueType">
+    <sequence>
+      <choice>
+        <element name="ECParameters" type="dsig11:ECParametersType"/>
+        <element name="NamedCurve" type="dsig11:NamedCurveType"/>
+      </choice>
+      <element name="PublicKey" type="dsig11:ECPointType"/>
+    </sequence>
+    <attribute name="Id" type="ID" use="optional"/>
+  </complexType>
+
+  <complexType name="NamedCurveType">
+    <attribute name="URI" type="anyURI" use="required"/>
+  </complexType>
+  
+  <simpleType name="ECPointType">
+    <restriction base="ds:CryptoBinary"/>
+  </simpleType>
+
+  <complexType name="ECParametersType">
+    <sequence>
+      <element name="FieldID" type="dsig11:FieldIDType"/>
+      <element name="Curve" type="dsig11:CurveType"/>
+      <element name="Base" type="dsig11:ECPointType"/>
+      <element name="Order" type="ds:CryptoBinary"/>
+      <element name="CoFactor" type="integer" minOccurs="0"/>
+      <element name="ValidationData"
+               type="dsig11:ECValidationDataType" minOccurs="0"/>
+    </sequence>
+  </complexType>
+  
+  <complexType name="FieldIDType">
+    <choice>
+      <element ref="dsig11:Prime"/>
+      <element ref="dsig11:TnB"/>
+      <element ref="dsig11:PnB"/>
+      <element ref="dsig11:GnB"/>
+      <any namespace="##other" processContents="lax"/>
+    </choice>
+  </complexType>
+
+  <complexType name="CurveType">
+    <sequence>
+      <element name="A" type="ds:CryptoBinary"/>
+      <element name="B" type="ds:CryptoBinary"/>
+    </sequence>
+  </complexType>
+
+  <complexType name="ECValidationDataType">
+    <sequence>
+      <element name="seed" type="ds:CryptoBinary"/>
+    </sequence>
+    <attribute name="hashAlgorithm" type="anyURI" use="required"/>
+  </complexType>
+
+  <element name="Prime" type="dsig11:PrimeFieldParamsType"/>
+  <complexType name="PrimeFieldParamsType">
+    <sequence>
+      <element name="P" type="ds:CryptoBinary"/>
+    </sequence>
+  </complexType>
+
+  <element name="GnB" type="dsig11:CharTwoFieldParamsType"/>
+  <complexType name="CharTwoFieldParamsType">
+    <sequence>
+      <element name="M" type="positiveInteger"/>
+    </sequence>
+  </complexType>
+  
+  <element name="TnB" type="dsig11:TnBFieldParamsType"/>
+  <complexType name="TnBFieldParamsType">
+    <complexContent>
+      <extension base="dsig11:CharTwoFieldParamsType">
+        <sequence>
+          <element name="K" type="positiveInteger"/>
+        </sequence>
+      </extension>
+    </complexContent>
+  </complexType>
+
+  <element name="PnB" type="dsig11:PnBFieldParamsType"/>
+  <complexType name="PnBFieldParamsType">
+    <complexContent>
+      <extension base="dsig11:CharTwoFieldParamsType">
+        <sequence>
+          <element name="K1" type="positiveInteger"/>
+          <element name="K2" type="positiveInteger"/>
+          <element name="K3" type="positiveInteger"/>
+        </sequence>
+      </extension>
+    </complexContent>
+  </complexType>
+
+  <element name="OCSPResponse" type="base64Binary"/>
+
+  <element name="DEREncodedKeyValue" type="dsig11:DEREncodedKeyValueType"/>
+  <complexType name="DEREncodedKeyValueType">
+    <simpleContent>
+      <extension base="base64Binary">
+        <attribute name="Id" type="ID" use="optional"/>
+      </extension>
+    </simpleContent>
+  </complexType>
+
+  <element name="KeyInfoReference" type="dsig11:KeyInfoReferenceType"/> 
+  <complexType name="KeyInfoReferenceType">
+    <attribute name="URI" type="anyURI" use="required"/>
+    <attribute name="Id" type="ID" use="optional"/>
+  </complexType>
+
+</schema>
+