0N/A<?xml version='1.0' encoding='UTF-8'?>
0N/A<!-- http://www.xml.com/lpt/a/2002/01/23/relaxng.html -->
0N/A<!-- http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html -->
0N/A<!-- http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_wildcards_st8.html -->
0N/A<!-- http://lists.oasis-open.org/archives/relax-ng-comment/200206/maillist.html -->
0N/A
0N/A<grammar xmlns='http://relaxng.org/ns/structure/1.0'
0N/A xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
0N/A xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
0N/A ns='http://www.w3.org/2000/09/xmldsig#'
0N/A datatypeLibrary='http://www.w3.org/2001/XMLSchema-datatypes'>
0N/A
0N/A <start>
0N/A <element name='Signature'><ref name='SignatureType'/></element>
0N/A </start>
0N/A
0N/A <define name='CryptoBinary'>
0N/A <data type='base64Binary'/>
0N/A </define>
0N/A
0N/A <define name='SignatureType'>
0N/A <element name='SignedInfo'><ref name='SignedInfoType'/></element>
0N/A <element name='SignatureValue'><ref name='SignatureValueType'/></element>
0N/A <optional><element name='KeyInfo'><ref name='KeyInfoType'/></element></optional>
0N/A <zeroOrMore><element name='Object'><ref name='ObjectType'/></element></zeroOrMore>
0N/A <optional><attribute name='Id'><data type='ID'/></attribute></optional>
0N/A <optional><attribute name='xsi:schemaLocation'/></optional>
0N/A </define>
0N/A
0N/A <define name='SignatureValueType'>
0N/A <data type='base64Binary'/>
0N/A <optional><attribute name='Id'><data type='ID'/></attribute></optional>
0N/A </define>
0N/A
0N/A<!-- Start SignedInfo -->
0N/A
0N/A <define name='SignedInfoType'>
0N/A <element name='CanonicalizationMethod'><ref name='CanonicalizationMethodType'/></element>
0N/A <element name='SignatureMethod'><ref name='SignatureMethodType'/></element>
0N/A <optional><element name='KeyInfo'><ref name='KeyInfoType'/></element></optional>
0N/A <oneOrMore><element name='Reference'><ref name='ReferenceType'/></element></oneOrMore>
0N/A <optional><attribute name='Id'><data type='ID'/></attribute></optional>
0N/A </define>
0N/A
0N/A <define name='CanonicalizationMethodType'>
0N/A <zeroOrMore><ref name='anyThing'/></zeroOrMore>
0N/A <optional><attribute name='Algorithm'><data type='anyURI'/></attribute></optional>
0N/A </define>
0N/A
0N/A
0N/A <define name='SignatureMethodType'>
0N/A <optional><element name='HMACOutputLength'><data type='integer'/></element></optional>
0N/A <zeroOrMore><ref name='anyThing'/></zeroOrMore>
0N/A <optional><attribute name='Algorithm'><data type='anyURI'/></attribute></optional>
0N/A </define>
0N/A
0N/A<!-- Start Reference -->
0N/A
0N/A <define name='ReferenceType'>
0N/A <optional><element name='Transforms'><ref name='TransformsType'/></element></optional>
0N/A <element name='DigestMethod'><ref name='DigestMethodType'/></element>
0N/A <element name='DigestValue'><ref name='DigestValueType'/></element>
0N/A <optional><attribute name='Type'><data type='anyURI'/></attribute></optional>
0N/A <optional><attribute name='URI'><data type='anyURI'/></attribute></optional>
0N/A <optional><attribute name='Id'><data type='ID'/></attribute></optional>
0N/A </define>
0N/A
0N/A <define name='TransformsType'>
0N/A <oneOrMore><element name='Transform'><ref name='TransformType'/></element></oneOrMore>
0N/A </define>
0N/A
0N/A <define name='TransformType'>
0N/A <optional><element name='XPath'><data type='string'/></element></optional>
0N/A <zeroOrMore><ref name='anyThing'/></zeroOrMore>
0N/A <attribute name='Algorithm'><data type='anyURI'/></attribute>
0N/A </define>
0N/A
0N/A<!-- End Reference -->
0N/A
0N/A <define name='DigestMethodType'>
0N/A <zeroOrMore><ref name='anyThing'/></zeroOrMore>
0N/A <attribute name='Algorithm'><data type='anyURI'/></attribute>
0N/A </define>
0N/A
0N/A <define name='DigestValueType'>
0N/A <data type='base64Binary'/>
0N/A </define>
0N/A
0N/A<!-- End SignedInfo -->
0N/A
0N/A<!-- Start KeyInfo -->
0N/A
0N/A <define name='KeyInfoType'>
0N/A <oneOrMore>
0N/A <choice>
0N/A <element name='KeyName'><data type='string'/></element>
0N/A <element name='KeyValue'><ref name='KeyValueType'/></element>
0N/A <element name='RetrievalMethod'><ref name='RetrievalMethodType'/></element>
0N/A <element name='X509Data'><ref name='X509DataType'/></element>
0N/A <element name='PGPData'><ref name='PGPDataType'/></element>
0N/A <element name='SPKIData'><ref name='SPKIDataType'/></element>
0N/A <element name='MgmtData'><data type='string'/></element>
0N/A <ref name='anyThing'/>
0N/A </choice>
0N/A </oneOrMore>
0N/A <optional><attribute name='Id'><data type='ID'/></attribute></optional>
0N/A</define>
0N/A
0N/A <define name='KeyValueType'>
0N/A <choice>
0N/A <text/>
0N/A <element name='DSAKeyValue'><ref name='DSAKeyValueType'/></element>
0N/A <element name='RSAKeyValue'><ref name='RSAKeyValueType'/></element>
0N/A <ref name='anyThing'/>
0N/A </choice>
0N/A </define>
0N/A
0N/A <define name='RetrievalMethodType'>
0N/A <optional><element name='Transforms'><ref name='TransformsType'/></element></optional>
0N/A <optional><attribute name='Type'><data type='anyURI'/></attribute></optional>
0N/A <optional><attribute name='URI'><data type='anyURI'/></attribute></optional>
0N/A </define>
0N/A
0N/A<!-- Start X509Data -->
0N/A
0N/A <define name='X509DataType'>
0N/A <oneOrMore>
0N/A <choice>
0N/A <element name='X509IssuerSerial'>
0N/A <element name='X509IssuerName'>
0N/A <data type='string'/>
0N/A </element>
0N/A <element name='X509SerialNumber'>
0N/A <data type='integer'/>
0N/A </element>
0N/A </element>
0N/A <element name='X509SKI'>
0N/A <data type='base64Binary'/>
0N/A </element>
0N/A <element name='X509SubjectName'>
0N/A <data type='string'/>
0N/A </element>
0N/A <element name='X509Certificate'>
0N/A <data type='base64Binary'/>
0N/A </element>
0N/A <element name='X509CRL'>
0N/A <data type='base64Binary'/>
0N/A </element>
0N/A <ref name='anyThing'/>
0N/A </choice>
0N/A </oneOrMore>
0N/A </define>
0N/A
0N/A<!-- End X509Data -->
0N/A
0N/A<!-- Begin PGPData -->
0N/A
0N/A <define name='PGPDataType'>
0N/A <choice>
0N/A <group>
0N/A <element name='PGPKeyID'>
0N/A <data type='base64Binary'/>
0N/A </element>
0N/A <optional>
0N/A <element name='PGPKeyPacket'>
0N/A <data type='base64Binary'/>
0N/A </element>
0N/A </optional>
0N/A <zeroOrMore>
0N/A <ref name='anyThing'/>
0N/A </zeroOrMore>
0N/A </group>
0N/A <group>
0N/A <element name='PGPKeyPacket'>
0N/A <data type='base64Binary'/>
0N/A </element>
0N/A <zeroOrMore>
0N/A <ref name='anyThing'/>
0N/A </zeroOrMore>
0N/A </group>
0N/A </choice>
0N/A </define>
0N/A
0N/A<!-- End PGPData -->
0N/A
0N/A<!-- Begin SPKIData -->
0N/A
0N/A <define name='SPKIDataType'>
0N/A <oneOrMore>
0N/A <element name='SPKISexp'>
0N/A <data type='base64Binary'/>
0N/A </element>
0N/A <optional>
0N/A <ref name='anyThing'/>
0N/A </optional>
0N/A </oneOrMore>
0N/A </define>
0N/A
0N/A<!-- End SPKIData -->
0N/A
0N/A<!-- End KeyInfo -->
0N/A
0N/A
0N/A<!-- Start Object (Manifest, SignatureProperty) -->
0N/A
0N/A <define name='ObjectType'>
0N/A <zeroOrMore>
0N/A <choice>
0N/A <element name='Manifest'><ref name='ManifestType'/></element>
0N/A <element name='SignatureProperties'><ref name='SignaturePropertiesType'/></element>
0N/A <ref name='anyThing'/>
0N/A </choice>
0N/A </zeroOrMore>
0N/A <optional>
0N/A <attribute name='Encoding'>
0N/A <data type='anyURI'/>
0N/A </attribute>
0N/A </optional>
0N/A <optional>
0N/A <attribute name='MimeType'>
0N/A <data type='string'/>
0N/A </attribute>
0N/A </optional>
0N/A <optional>
0N/A <attribute name='Id'>
0N/A <data type='ID'/>
0N/A </attribute>
0N/A </optional>
0N/A </define>
0N/A
0N/A <define name='ManifestType'>
0N/A <oneOrMore>
0N/A <element name='Reference'><ref name='ReferenceType'/></element>
0N/A </oneOrMore>
0N/A <optional><attribute name='Id'><data type='ID'/></attribute></optional>
0N/A </define>
0N/A
0N/A <define name='SignaturePropertiesType'>
0N/A <oneOrMore>
0N/A <element name='SignatureProperty'><ref name='SignaturePropertyType'/></element>
0N/A </oneOrMore>
0N/A <optional>
0N/A <attribute name='Id'>
0N/A <data type='ID'/>
0N/A </attribute>
0N/A </optional>
0N/A </define>
0N/A
0N/A <define name='SignaturePropertyType'>
0N/A <oneOrMore><ref name='anyThing'/></oneOrMore>
0N/A <optional>
0N/A <attribute name='Id'>
0N/A <data type='ID'/>
0N/A </attribute>
0N/A </optional>
0N/A <attribute name='Target'>
0N/A <data type='anyURI'/>
0N/A </attribute>
0N/A </define>
0N/A
0N/A<!-- End Object (Manifest, SignatureProperty) -->
0N/A
0N/A
0N/A<!-- Start KeyValue Element-types -->
0N/A
0N/A <define name='DSAKeyValueType'>
0N/A <optional>
0N/A <element name='P'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A <element name='Q'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A </optional>
0N/A <optional>
0N/A <element name='G'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A </optional>
0N/A <element name='Y'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A <optional>
0N/A <element name='J'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A </optional>
0N/A <optional>
0N/A <element name='Seed'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A <element name='PgenCounter'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A </optional>
0N/A </define>
0N/A
0N/A <define name='RSAKeyValueType'>
0N/A <element name='Modulus'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A <element name='Exponent'>
0N/A <ref name='CryptoBinary'/>
0N/A </element>
0N/A </define>
0N/A
0N/A
0N/A<!-- End KeyValue Element-types -->
0N/A
0N/A<!-- End Signature -->
0N/A
0N/A
0N/A <!-- This should emulate the ANY content model under lax validation -->
0N/A <define name='anyThing'>
0N/A <zeroOrMore>
0N/A <choice>
0N/A <text/>
0N/A <element>
0N/A <!-- "except" provided for DTD compatibility -->
0N/A <!-- [1] ns='http://www.oasis-open.org/committees/relax-ng/compatibility.html#id' -->
0N/A <anyName>
0N/A <except>
0N/A <nsName/>
0N/A <!-- <nsName ns='http://www.w3.org/2001/04/xmlenc#'/> -->
0N/A </except>
0N/A </anyName>
0N/A <ref name='anyThing'/>
0N/A <zeroOrMore>
0N/A <attribute>
0N/A <anyName/>
0N/A </attribute>
0N/A </zeroOrMore>
0N/A </element>
0N/A </choice>
0N/A </zeroOrMore>
0N/A </define>
0N/A
0N/A
0N/A</grammar>