Schemas and catalog
authorScott Cantor <cantor.2@osu.edu>
Sun, 19 Feb 2006 03:54:56 +0000 (03:54 +0000)
committerScott Cantor <cantor.2@osu.edu>
Sun, 19 Feb 2006 03:54:56 +0000 (03:54 +0000)
schemas/Makefile.am [new file with mode: 0644]
schemas/catalog.xml.in [new file with mode: 0644]
schemas/xenc-schema.xsd [new file with mode: 0644]
schemas/xml.xsd [new file with mode: 0644]
schemas/xmldsig-core-schema.xsd [new file with mode: 0644]

diff --git a/schemas/Makefile.am b/schemas/Makefile.am
new file mode 100644 (file)
index 0000000..ebc1d31
--- /dev/null
@@ -0,0 +1,28 @@
+## $Id:$ \r
+\r
+AUTOMAKE_OPTIONS = foreign\r
+\r
+pkgxmldir = $(datadir)/xml/@PACKAGE@\r
+\r
+pkgxml_DATA = \\r
+                               catalog.xml \\r
+                               xenc-schema.xsd \\r
+                xmldsig-core-schema.xsd \\r
+                xml.xsd\r
+\r
+#\r
+# Some of these need building\r
+#\r
+do-build-file:\r
+       rm -f ${FILE}.tmp\r
+       sed < ${srcdir}/${FILE}.in > ${FILE}.tmp \\r
+           -e 's:@-PKGXMLDIR-@:${pkgxmldir}:'\r
+       cmp -s ${FILE} ${FILE}.tmp || mv ${FILE}.tmp ${FILE}\r
+       rm -f ${FILE}.tmp\r
+\r
+catalog.xml: ${srcdir}/catalog.xml.in Makefile ${top_builddir}/config.status\r
+       $(MAKE) do-build-file FILE=$@\r
+\r
+CLEANFILES = catalog.xml\r
+\r
+EXTRA_DIST = .cvsignore catalog.xml.in\r
diff --git a/schemas/catalog.xml.in b/schemas/catalog.xml.in
new file mode 100644 (file)
index 0000000..fa19a59
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+    <uri name="http://www.w3.org/XML/1998/namespace" uri="@-PKGXMLDIR-@/xml.xsd"/>
+    <uri name="http://www.w3.org/2001/04/xmlenc#" uri="@-PKGXMLDIR-@/xenc-schema.xsd"/>
+    <uri name="http://www.w3.org/2000/09/xmldsig#" uri="@-PKGXMLDIR-@/xmldsig-core-schema.xsd"/>
+</catalog>
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
diff --git a/schemas/xml.xsd b/schemas/xml.xsd
new file mode 100644 (file)
index 0000000..07d6934
--- /dev/null
@@ -0,0 +1,146 @@
+<?xml version='1.0'?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
+
+ <xs:annotation>
+  <xs:documentation>
+   See http://www.w3.org/XML/1998/namespace.html and
+   http://www.w3.org/TR/REC-xml for information about this namespace.
+
+    This schema document describes the XML namespace, in a form
+    suitable for import by other schema documents.  
+
+    Note that local names in this namespace are intended to be defined
+    only by the World Wide Web Consortium or its subgroups.  The
+    following names are currently defined in this namespace and should
+    not be used with conflicting semantics by any Working Group,
+    specification, or document instance:
+
+    base (as an attribute name): denotes an attribute whose value
+         provides a URI to be used as the base for interpreting any
+         relative URIs in the scope of the element on which it
+         appears; its value is inherited.  This name is reserved
+         by virtue of its definition in the XML Base specification.
+
+    id   (as an attribute name): denotes an attribute whose value
+         should be interpreted as if declared to be of type ID.
+         The xml:id specification is not yet a W3C Recommendation,
+         but this attribute is included here to facilitate experimentation
+         with the mechanisms it proposes.  Note that it is _not_ included
+         in the specialAttrs attribute group.
+
+    lang (as an attribute name): denotes an attribute whose value
+         is a language code for the natural language of the content of
+         any element; its value is inherited.  This name is reserved
+         by virtue of its definition in the XML specification.
+  
+    space (as an attribute name): denotes an attribute whose
+         value is a keyword indicating what whitespace processing
+         discipline is intended for the content of the element; its
+         value is inherited.  This name is reserved by virtue of its
+         definition in the XML specification.
+
+    Father (in any context at all): denotes Jon Bosak, the chair of 
+         the original XML Working Group.  This name is reserved by 
+         the following decision of the W3C XML Plenary and 
+         XML Coordination groups:
+
+             In appreciation for his vision, leadership and dedication
+             the W3C XML Plenary on this 10th day of February, 2000
+             reserves for Jon Bosak in perpetuity the XML name
+             xml:Father
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>This schema defines attributes and an attribute group
+        suitable for use by
+        schemas wishing to allow xml:base, xml:lang, xml:space or xml:id
+        attributes on elements they define.
+
+        To enable this, such a schema must import this schema
+        for the XML namespace, e.g. as follows:
+        &lt;schema . . .>
+         . . .
+         &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                    schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+        Subsequently, qualified reference to any of the attributes
+        or the group defined below will have the desired effect, e.g.
+
+        &lt;type . . .>
+         . . .
+         &lt;attributeGroup ref="xml:specialAttrs"/>
+         will define a type which will schema-validate an instance
+         element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>In keeping with the XML Schema WG's standard versioning
+   policy, this schema document will persist at
+   http://www.w3.org/2005/08/xml.xsd.
+   At the date of issue it can also be found at
+   http://www.w3.org/2001/xml.xsd.
+   The schema document at that URI may however change in the future,
+   in order to remain compatible with the latest version of XML Schema
+   itself, or with the XML namespace itself.  In other words, if the XML
+   Schema or XML namespaces change, the version of this document at
+   http://www.w3.org/2001/xml.xsd will change
+   accordingly; the version at
+   http://www.w3.org/2005/08/xml.xsd will not change.
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang">
+  <xs:annotation>
+   <xs:documentation>Attempting to install the relevant ISO 2- and 3-letter
+         codes as the enumerated possible values is probably never
+         going to be a realistic possibility.  See
+         RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry
+         at http://www.iana.org/assignments/lang-tag-apps.htm for
+         further information.
+
+         The union allows for the 'un-declaration' of xml:lang with
+         the empty string.</xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+   <xs:union memberTypes="xs:language">
+    <xs:simpleType>    
+     <xs:restriction base="xs:string">
+      <xs:enumeration value=""/>
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:union>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+  <xs:simpleType>
+   <xs:restriction base="xs:NCName">
+    <xs:enumeration value="default"/>
+    <xs:enumeration value="preserve"/>
+   </xs:restriction>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+  <xs:annotation>
+   <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+                     information about this attribute.</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="id" type="xs:ID">
+  <xs:annotation>
+   <xs:documentation>See http://www.w3.org/TR/xml-id/ for
+                     information about this attribute.</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+  <xs:attribute ref="xml:base"/>
+  <xs:attribute ref="xml:lang"/>
+  <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+
+</xs:schema>
diff --git a/schemas/xmldsig-core-schema.xsd b/schemas/xmldsig-core-schema.xsd
new file mode 100644 (file)
index 0000000..a1f0a03
--- /dev/null
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- Schema for XML Signatures\r
+    http://www.w3.org/2000/09/xmldsig#\r
+    $Revision: 1.2 $ on $Date: 2005/06/03 03:09:24 $ by $Author: cantor $\r
+\r
+    Copyright 2001 The Internet Society and W3C (Massachusetts Institute\r
+    of Technology, Institut National de Recherche en Informatique et en\r
+    Automatique, Keio University). All Rights Reserved.\r
+    http://www.w3.org/Consortium/Legal/\r
+\r
+    This document is governed by the W3C Software License [1] as described\r
+    in the FAQ [2].\r
+\r
+    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720\r
+    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD\r
+-->\r
+\r
+\r
+<schema xmlns="http://www.w3.org/2001/XMLSchema"\r
+        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"\r
+        targetNamespace="http://www.w3.org/2000/09/xmldsig#"\r
+        version="0.1" elementFormDefault="qualified"> \r
+\r
+<!-- Basic Types Defined for Signatures -->\r
+\r
+<simpleType name="CryptoBinary">\r
+  <restriction base="base64Binary">\r
+  </restriction>\r
+</simpleType>\r
+\r
+<!-- Start Signature -->\r
+\r
+<element name="Signature" type="ds:SignatureType"/>\r
+<complexType name="SignatureType">\r
+  <sequence> \r
+    <element ref="ds:SignedInfo"/> \r
+    <element ref="ds:SignatureValue"/> \r
+    <element ref="ds:KeyInfo" minOccurs="0"/> \r
+    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> \r
+  </sequence>  \r
+  <attribute name="Id" type="ID" use="optional"/>\r
+</complexType>\r
+\r
+  <element name="SignatureValue" type="ds:SignatureValueType"/> \r
+  <complexType name="SignatureValueType">\r
+    <simpleContent>\r
+      <extension base="base64Binary">\r
+        <attribute name="Id" type="ID" use="optional"/>\r
+      </extension>\r
+    </simpleContent>\r
+  </complexType>\r
+\r
+<!-- Start SignedInfo -->\r
+\r
+<element name="SignedInfo" type="ds:SignedInfoType"/>\r
+<complexType name="SignedInfoType">\r
+  <sequence> \r
+    <element ref="ds:CanonicalizationMethod"/> \r
+    <element ref="ds:SignatureMethod"/> \r
+    <element ref="ds:Reference" maxOccurs="unbounded"/> \r
+  </sequence>  \r
+  <attribute name="Id" type="ID" use="optional"/> \r
+</complexType>\r
+\r
+  <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> \r
+  <complexType name="CanonicalizationMethodType" mixed="true">\r
+    <sequence>\r
+      <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>\r
+      <!-- (0,unbounded) elements from (1,1) namespace -->\r
+    </sequence>\r
+    <attribute name="Algorithm" type="anyURI" use="required"/> \r
+  </complexType>\r
+\r
+  <element name="SignatureMethod" type="ds:SignatureMethodType"/>\r
+  <complexType name="SignatureMethodType" mixed="true">\r
+    <sequence>\r
+      <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>\r
+      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>\r
+      <!-- (0,unbounded) elements from (1,1) external namespace -->\r
+    </sequence>\r
+    <attribute name="Algorithm" type="anyURI" use="required"/> \r
+  </complexType>\r
+\r
+<!-- Start Reference -->\r
+\r
+<element name="Reference" type="ds:ReferenceType"/>\r
+<complexType name="ReferenceType">\r
+  <sequence> \r
+    <element ref="ds:Transforms" minOccurs="0"/> \r
+    <element ref="ds:DigestMethod"/> \r
+    <element ref="ds:DigestValue"/> \r
+  </sequence>\r
+  <attribute name="Id" type="ID" use="optional"/> \r
+  <attribute name="URI" type="anyURI" use="optional"/> \r
+  <attribute name="Type" type="anyURI" use="optional"/> \r
+</complexType>\r
+\r
+  <element name="Transforms" type="ds:TransformsType"/>\r
+  <complexType name="TransformsType">\r
+    <sequence>\r
+      <element ref="ds:Transform" maxOccurs="unbounded"/>  \r
+    </sequence>\r
+  </complexType>\r
+\r
+  <element name="Transform" type="ds:TransformType"/>\r
+  <complexType name="TransformType" mixed="true">\r
+    <choice minOccurs="0" maxOccurs="unbounded"> \r
+      <any namespace="##other" processContents="lax"/>\r
+      <!-- (1,1) elements from (0,unbounded) namespaces -->\r
+      <element name="XPath" type="string"/> \r
+    </choice>\r
+    <attribute name="Algorithm" type="anyURI" use="required"/> \r
+  </complexType>\r
+\r
+<!-- End Reference -->\r
+\r
+<element name="DigestMethod" type="ds:DigestMethodType"/>\r
+<complexType name="DigestMethodType" mixed="true"> \r
+  <sequence>\r
+    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
+  </sequence>    \r
+  <attribute name="Algorithm" type="anyURI" use="required"/> \r
+</complexType>\r
+\r
+<element name="DigestValue" type="ds:DigestValueType"/>\r
+<simpleType name="DigestValueType">\r
+  <restriction base="base64Binary"/>\r
+</simpleType>\r
+\r
+<!-- End SignedInfo -->\r
+\r
+<!-- Start KeyInfo -->\r
+\r
+<element name="KeyInfo" type="ds:KeyInfoType"/> \r
+<complexType name="KeyInfoType" mixed="true">\r
+  <choice maxOccurs="unbounded">     \r
+    <element ref="ds:KeyName"/> \r
+    <element ref="ds:KeyValue"/> \r
+    <element ref="ds:RetrievalMethod"/> \r
+    <element ref="ds:X509Data"/> \r
+    <element ref="ds:PGPData"/> \r
+    <element ref="ds:SPKIData"/>\r
+    <element ref="ds:MgmtData"/>\r
+    <any processContents="lax" namespace="##other"/>\r
+    <!-- (1,1) elements from (0,unbounded) namespaces -->\r
+  </choice>\r
+  <attribute name="Id" type="ID" use="optional"/> \r
+</complexType>\r
+\r
+  <element name="KeyName" type="string"/>\r
+  <element name="MgmtData" type="string"/>\r
+\r
+  <element name="KeyValue" type="ds:KeyValueType"/> \r
+  <complexType name="KeyValueType" mixed="true">\r
+   <choice>\r
+     <element ref="ds:DSAKeyValue"/>\r
+     <element ref="ds:RSAKeyValue"/>\r
+     <any namespace="##other" processContents="lax"/>\r
+   </choice>\r
+  </complexType>\r
+\r
+  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> \r
+  <complexType name="RetrievalMethodType">\r
+    <sequence>\r
+      <element ref="ds:Transforms" minOccurs="0"/> \r
+    </sequence>  \r
+    <attribute name="URI" type="anyURI"/>\r
+    <attribute name="Type" type="anyURI" use="optional"/>\r
+  </complexType>\r
+\r
+<!-- Start X509Data -->\r
+\r
+<element name="X509Data" type="ds:X509DataType"/> \r
+<complexType name="X509DataType">\r
+  <sequence maxOccurs="unbounded">\r
+    <choice>\r
+      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>\r
+      <element name="X509SKI" type="base64Binary"/>\r
+      <element name="X509SubjectName" type="string"/>\r
+      <element name="X509Certificate" type="base64Binary"/>\r
+      <element name="X509CRL" type="base64Binary"/>\r
+      <any namespace="##other" processContents="lax"/>\r
+    </choice>\r
+  </sequence>\r
+</complexType>\r
+\r
+<complexType name="X509IssuerSerialType"> \r
+  <sequence> \r
+    <element name="X509IssuerName" type="string"/> \r
+    <element name="X509SerialNumber" type="integer"/> \r
+  </sequence>\r
+</complexType>\r
+\r
+<!-- End X509Data -->\r
+\r
+<!-- Begin PGPData -->\r
+\r
+<element name="PGPData" type="ds:PGPDataType"/> \r
+<complexType name="PGPDataType"> \r
+  <choice>\r
+    <sequence>\r
+      <element name="PGPKeyID" type="base64Binary"/> \r
+      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> \r
+      <any namespace="##other" processContents="lax" minOccurs="0"\r
+       maxOccurs="unbounded"/>\r
+    </sequence>\r
+    <sequence>\r
+      <element name="PGPKeyPacket" type="base64Binary"/> \r
+      <any namespace="##other" processContents="lax" minOccurs="0"\r
+       maxOccurs="unbounded"/>\r
+    </sequence>\r
+  </choice>\r
+</complexType>\r
+\r
+<!-- End PGPData -->\r
+\r
+<!-- Begin SPKIData -->\r
+\r
+<element name="SPKIData" type="ds:SPKIDataType"/> \r
+<complexType name="SPKIDataType">\r
+  <sequence maxOccurs="unbounded">\r
+    <element name="SPKISexp" type="base64Binary"/>\r
+    <any namespace="##other" processContents="lax" minOccurs="0"/>\r
+  </sequence>\r
+</complexType> \r
+\r
+<!-- End SPKIData -->\r
+\r
+<!-- End KeyInfo -->\r
+\r
+<!-- Start Object (Manifest, SignatureProperty) -->\r
+\r
+<element name="Object" type="ds:ObjectType"/> \r
+<complexType name="ObjectType" mixed="true">\r
+  <sequence minOccurs="0" maxOccurs="unbounded">\r
+    <any namespace="##any" processContents="lax"/>\r
+  </sequence>\r
+  <attribute name="Id" type="ID" use="optional"/> \r
+  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->\r
+  <attribute name="Encoding" type="anyURI" use="optional"/> \r
+</complexType>\r
+\r
+<element name="Manifest" type="ds:ManifestType"/> \r
+<complexType name="ManifestType">\r
+  <sequence>\r
+    <element ref="ds:Reference" maxOccurs="unbounded"/> \r
+  </sequence>\r
+  <attribute name="Id" type="ID" use="optional"/> \r
+</complexType>\r
+\r
+<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> \r
+<complexType name="SignaturePropertiesType">\r
+  <sequence>\r
+    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> \r
+  </sequence>\r
+  <attribute name="Id" type="ID" use="optional"/> \r
+</complexType>\r
+\r
+   <element name="SignatureProperty" type="ds:SignaturePropertyType"/> \r
+   <complexType name="SignaturePropertyType" mixed="true">\r
+     <choice maxOccurs="unbounded">\r
+       <any namespace="##other" processContents="lax"/>\r
+       <!-- (1,1) elements from (1,unbounded) namespaces -->\r
+     </choice>\r
+     <attribute name="Target" type="anyURI" use="required"/> \r
+     <attribute name="Id" type="ID" use="optional"/> \r
+   </complexType>\r
+\r
+<!-- End Object (Manifest, SignatureProperty) -->\r
+\r
+<!-- Start Algorithm Parameters -->\r
+\r
+<simpleType name="HMACOutputLengthType">\r
+  <restriction base="integer"/>\r
+</simpleType>\r
+\r
+<!-- Start KeyValue Element-types -->\r
+\r
+<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>\r
+<complexType name="DSAKeyValueType">\r
+  <sequence>\r
+    <sequence minOccurs="0">\r
+      <element name="P" type="ds:CryptoBinary"/>\r
+      <element name="Q" type="ds:CryptoBinary"/>\r
+    </sequence>\r
+    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>\r
+    <element name="Y" type="ds:CryptoBinary"/>\r
+    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>\r
+    <sequence minOccurs="0">\r
+      <element name="Seed" type="ds:CryptoBinary"/>\r
+      <element name="PgenCounter" type="ds:CryptoBinary"/>\r
+    </sequence>\r
+  </sequence>\r
+</complexType>\r
+\r
+<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>\r
+<complexType name="RSAKeyValueType">\r
+  <sequence>\r
+    <element name="Modulus" type="ds:CryptoBinary"/> \r
+    <element name="Exponent" type="ds:CryptoBinary"/> \r
+  </sequence>\r
+</complexType> \r
+\r
+<!-- End KeyValue Element-types -->\r
+\r
+<!-- End Signature -->\r
+\r
+</schema>\r