You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by ge...@apache.org on 2002/09/09 16:47:48 UTC

cvs commit: xml-security/src/org/apache/xml/security/resource/schema etsi.xsd xenc-schema.rng xenc-schema.xsd xmldsig-core-schema.dtd xmldsig-core-schema.rng xmldsig-core-schema.xsd

geuerp      2002/09/09 07:47:48

  Added:       src/org/apache/xml/security/resource/schema etsi.xsd
                        xenc-schema.rng xenc-schema.xsd
                        xmldsig-core-schema.dtd xmldsig-core-schema.rng
                        xmldsig-core-schema.xsd
  Log:
  initial checkin
  
  Revision  Changes    Path
  1.1                  xml-security/src/org/apache/xml/security/resource/schema/etsi.xsd
  
  Index: etsi.xsd
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by XMLSpy v4 (Altova) -->
  <xsd:schema targetNamespace="http://uri.etsi.org/01903/v1.1.1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://uri.etsi.org/01903/v1.1.1#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" xsi:schemaLocation="http://www.w3.org/2000/09/xmldsig# xmldsig-core-schema.xsd">
  	<xsd:element name="Any" type="AnyType"/>
  	<xsd:complexType name="AnyType" mixed="true">
  		<xsd:sequence>
  			<xsd:any namespace="##any"/>
  		</xsd:sequence>
  		<xsd:anyAttribute namespace="##any"/>
  	</xsd:complexType>
  	<xsd:element name="ObjectIdentifier" type="ObjectIdentifierType"/>
  	<xsd:complexType name="ObjectIdentifierType">
  		<xsd:sequence>
  			<xsd:element name="Identifier" type="IdentifierType"/>
  			<xsd:element name="Description" type="xsd:string" minOccurs="0"/>
  			<xsd:element name="DocumentationReferences" type="DocumentationReferencesType" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="IdentifierType">
  		<xsd:simpleContent>
  			<xsd:extension base="xsd:anyURI">
  				<xsd:attribute name="Qualifier" type="QualifierType" use="optional"/>
  			</xsd:extension>
  		</xsd:simpleContent>
  	</xsd:complexType>
  	<xsd:simpleType name="QualifierType">
  		<xsd:restriction base="xsd:string">
  			<xsd:enumeration value="OIDAsURI"/>
  			<xsd:enumeration value="OIDAsURN"/>
  		</xsd:restriction>
  	</xsd:simpleType>
  	<xsd:complexType name="DocumentationReferencesType">
  		<xsd:sequence maxOccurs="unbounded">
  			<xsd:element name="DocumentationReference" type="xsd:anyURI"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="EncapsulatedPKIData" type="EncapsulatedPKIDataType"/>
  	<xsd:complexType name="EncapsulatedPKIDataType">
  		<xsd:simpleContent>
  			<xsd:extension base="xsd:base64Binary">
  				<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  			</xsd:extension>
  		</xsd:simpleContent>
  	</xsd:complexType>
  	<xsd:element name="TimeStamp" type="TimeStampType"/>
  	<xsd:complexType name="TimeStampType">
  		<xsd:sequence>
  			<xsd:element name="HashDataInfo" type="HashDataInfoType" maxOccurs="unbounded"/>
  			<xsd:choice>
  				<xsd:element name="EncapsulatedTimeStamp" type="EncapsulatedPKIDataType"/>
  				<xsd:element name="XMLTimeStamp" type="AnyType"/>
  			</xsd:choice>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="HashDataInfoType">
  		<xsd:sequence>
  			<xsd:element name="Transforms" type="ds:TransformsType" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="uri" type="xsd:anyURI" use="required"/>
  	</xsd:complexType>
  	<xsd:element name="QualifyingProperties" type="QualifyingPropertiesType"/>
  	<xsd:complexType name="QualifyingPropertiesType">
  		<xsd:sequence>
  			<xsd:element name="SignedProperties" type="SignedPropertiesType" minOccurs="0"/>
  			<xsd:element name="UnsignedProperties" type="UnsignedPropertiesType" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="Target" type="xsd:anyURI" use="required"/>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:element name="SignedProperties" type="SignedPropertiesType"/>
  	<xsd:complexType name="SignedPropertiesType">
  		<xsd:sequence>
  			<xsd:element name="SignedSignatureProperties" type="SignedSignaturePropertiesType"/>
  			<xsd:element name="SignedDataObjectProperties" type="SignedDataObjectPropertiesType" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:element name="UnsignedProperties" type="UnsignedPropertiesType"/>
  	<xsd:complexType name="UnsignedPropertiesType">
  		<xsd:sequence>
  			<xsd:element name="UnsignedSignatureProperties" type="UnsignedSignaturePropertiesType" minOccurs="0"/>
  			<xsd:element name="UnsignedDataObjectProperties" type="UnsignedDataObjectPropertiesType" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:element name="SignedSignatureProperties" type="SignedSignaturePropertiesType"/>
  	<xsd:complexType name="SignedSignaturePropertiesType">
  		<xsd:sequence>
  			<xsd:element name="SigningTime" type="xsd:dateTime"/>
  			<xsd:element name="SigningCertificate" type="CertIDListType"/>
  			<xsd:element name="SignaturePolicyIdentifier" type="SignaturePolicyIdentifierType"/>
  			<xsd:element name="SignatureProductionPlace" type="SignatureProductionPlaceType" minOccurs="0"/>
  			<xsd:element name="SignerRole" type="SignerRoleType" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="SignedDataObjectProperties" type="SignedDataObjectPropertiesType"/>
  	<xsd:complexType name="SignedDataObjectPropertiesType">
  		<xsd:sequence>
  			<xsd:element name="DataObjectFormat" type="DataObjectFormatType" minOccurs="0" maxOccurs="unbounded"/>
  			<xsd:element name="CommitmentTypeIndication" type="CommitmentTypeIndicationType" minOccurs="0" maxOccurs="unbounded"/>
  			<xsd:element name="AllDataObjectsTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
  			<xsd:element name="IndividualDataObjectsTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="UnsignedSignatureProperties" type="UnsignedSignaturePropertiesType"/>
  	<xsd:complexType name="UnsignedSignaturePropertiesType">
  		<xsd:sequence>
  			<xsd:element name="CounterSignature" type="CounterSignatureType" minOccurs="0" maxOccurs="unbounded"/>
  			<xsd:element name="SignatureTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
  			<xsd:element name="CompleteCertificateRefs" type="CompleteCertificateRefsType" minOccurs="0"/>
  			<xsd:element name="CompleteRevocationRefs" type="CompleteRevocationRefsType" minOccurs="0"/>
  			<xsd:choice>
  				<xsd:element name="SigAndRefsTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
  				<xsd:element name="RefsOnlyTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
  			</xsd:choice>
  			<xsd:element name="CertificateValues" type="CertificateValuesType" minOccurs="0"/>
  			<xsd:element name="RevocationValues" type="RevocationValuesType" minOccurs="0"/>
  			<xsd:element name="ArchiveTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="UnsignedDataObjectProperties" type="UnsignedDataObjectPropertiesType"/>
  	<xsd:complexType name="UnsignedDataObjectPropertiesType">
  		<xsd:sequence>
  			<xsd:element name="UnsignedDataObjectProperty" type="AnyType" minOccurs="0" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="QualifyingPropertiesReference" type="QualifyingPropertiesReferenceType"/>
  	<xsd:complexType name="QualifyingPropertiesReferenceType">
  		<xsd:sequence>
  			<xsd:element name="Transforms" type="ds:TransformsType" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:element name="SigningTime" type="xsd:dateTime"/>
  	<xsd:element name="SigningCertificate" type="CertIDListType"/>
  	<xsd:complexType name="CertIDListType">
  		<xsd:sequence>
  			<xsd:element name="Cert" type="CertIDType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="CertIDType">
  		<xsd:sequence>
  			<xsd:element name="CertDigest" type="DigestAlgAndValueType"/>
  			<xsd:element name="IssuerSerial" type="ds:X509IssuerSerialType"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="DigestAlgAndValueType">
  		<xsd:sequence>
  			<xsd:element name="DigestMethod" type="ds:DigestMethodType"/>
  			<xsd:element name="DigestValue" type="ds:DigestValueType"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="SignaturePolicyIdentifier" type="SignaturePolicyIdentifierType"/>
  	<xsd:complexType name="SignaturePolicyIdentifierType">
  		<xsd:choice>
  			<xsd:element name="SignaturePolicyId" type="SignaturePolicyIdType"/>
  			<xsd:element name="SignaturePolicyImplied"/>
  		</xsd:choice>
  	</xsd:complexType>
  	<xsd:complexType name="SignaturePolicyIdType">
  		<xsd:sequence>
  			<xsd:element name="SigPolicyId" type="ObjectIdentifierType"/>
  			<xsd:element ref="ds:Transforms" minOccurs="0"/>
  			<xsd:element name="SigPolicyHash" type="DigestAlgAndValueType"/>
  			<xsd:element name="SigPolicyQualifiers" type="SigPolicyQualifiersListType" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="SigPolicyQualifiersListType">
  		<xsd:sequence>
  			<xsd:element name="SigPolicyQualifier" type="AnyType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="SPURI" type="xsd:anyURI"/>
  	<xsd:element name="SPUserNotice" type="SPUserNoticeType"/>
  	<xsd:complexType name="SPUserNoticeType">
  		<xsd:sequence>
  			<xsd:element name="NoticeRef" type="NoticeReferenceType" minOccurs="0"/>
  			<xsd:element name="ExplicitText" type="xsd:string" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="NoticeReferenceType">
  		<xsd:sequence>
  			<xsd:element name="Organization" type="xsd:string"/>
  			<xsd:element name="NoticeNumbers" type="IntegerListType"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="IntegerListType">
  		<xsd:sequence>
  			<xsd:element name="int" type="xsd:integer" minOccurs="0" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="CounterSignature" type="CounterSignatureType"/>
  	<xsd:complexType name="CounterSignatureType">
  		<xsd:sequence>
  			<xsd:element ref="ds:Signature"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="DataObjectFormat" type="DataObjectFormatType"/>
  	<xsd:complexType name="DataObjectFormatType">
  		<xsd:sequence>
  			<xsd:element name="Description" type="xsd:string" minOccurs="0"/>
  			<xsd:element name="ObjectIdentifier" type="ObjectIdentifierType" minOccurs="0"/>
  			<xsd:element name="MimeType" type="xsd:string" minOccurs="0"/>
  			<xsd:element name="Encoding" type="xsd:anyURI" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="ObjectReference" type="xsd:anyURI" use="required"/>
  	</xsd:complexType>
  	<xsd:element name="CommitmentTypeIndication" type="CommitmentTypeIndicationType"/>
  	<xsd:complexType name="CommitmentTypeIndicationType">
  		<xsd:sequence>
  			<xsd:element name="CommitmentTypeId" type="ObjectIdentifierType"/>
  			<xsd:choice>
  				<xsd:element name="ObjectReference" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/>
  				<xsd:element name="AllSignedDataObjects"/>
  			</xsd:choice>
  			<xsd:element name="CommitmentTypeQualifiers" type="CommitmentTypeQualifiersListType" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="CommitmentTypeQualifiersListType">
  		<xsd:sequence>
  			<xsd:element name="CommitmentTypeQualifier" type="AnyType" minOccurs="0" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="SignatureProductionPlace" type="SignatureProductionPlaceType"/>
  	<xsd:complexType name="SignatureProductionPlaceType">
  		<xsd:sequence>
  			<xsd:element name="City" type="xsd:string" minOccurs="0"/>
  			<xsd:element name="StateOrProvince" type="xsd:string" minOccurs="0"/>
  			<xsd:element name="PostalCode" type="xsd:string" minOccurs="0"/>
  			<xsd:element name="CountryName" type="xsd:string" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="SignerRole" type="SignerRoleType"/>
  	<xsd:complexType name="SignerRoleType">
  		<xsd:sequence>
  			<xsd:element name="ClaimedRoles" type="ClaimedRolesListType" minOccurs="0"/>
  			<xsd:element name="CertifiedRoles" type="CertifiedRolesListType" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="ClaimedRolesListType">
  		<xsd:sequence>
  			<xsd:element name="ClaimedRole" type="AnyType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="CertifiedRolesListType">
  		<xsd:sequence>
  			<xsd:element name="CertifiedRole" type="EncapsulatedPKIDataType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="AllDataObjectsTimeStamp" type="TimeStampType"/>
  	<xsd:element name="IndividualDataObjectsTimeStamp" type="TimeStampType"/>
  	<xsd:element name="SignatureTimeStamp" type="TimeStampType"/>
  	<xsd:element name="CompleteCertificateRefs" type="CompleteCertificateRefsType"/>
  	<xsd:complexType name="CompleteCertificateRefsType">
  		<xsd:sequence>
  			<xsd:element name="CertRefs" type="CertIDListType"/>
  		</xsd:sequence>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:element name="CompleteRevocationRefs" type="CompleteRevocationRefsType"/>
  	<xsd:complexType name="CompleteRevocationRefsType">
  		<xsd:sequence>
  			<xsd:element name="CRLRefs" type="CRLRefsType" minOccurs="0"/>
  			<xsd:element name="OCSPRefs" type="OCSPRefsType" minOccurs="0"/>
  			<xsd:element name="OtherRefs" type="OtherCertStatusRefsType" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:complexType name="CRLRefsType">
  		<xsd:sequence>
  			<xsd:element name="CRLRef" type="CRLRefType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="CRLRefType">
  		<xsd:sequence>
  			<xsd:element name="DigestAlgAndValue" type="DigestAlgAndValueType"/>
  			<xsd:element name="CRLIdentifier" type="CRLIdentifierType" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="CRLIdentifierType">
  		<xsd:sequence>
  			<xsd:element name="Issuer" type="xsd:string"/>
  			<xsd:element name="IssueTime" type="xsd:dateTime"/>
  			<xsd:element name="Number" type="xsd:integer" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="URI" type="xsd:anyURI" use="optional"/>
  	</xsd:complexType>
  	<xsd:complexType name="OCSPRefsType">
  		<xsd:sequence>
  			<xsd:element name="OCSPRef" type="OCSPRefType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="OCSPRefType">
  		<xsd:sequence>
  			<xsd:element name="OCSPIdentifier" type="OCSPIdentifierType"/>
  			<xsd:element name="DigestAlgAndValue" type="DigestAlgAndValueType" minOccurs="0"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="OCSPIdentifierType">
  		<xsd:sequence>
  			<xsd:element name="ResponderID" type="xsd:string"/>
  			<xsd:element name="ProducedAt" type="xsd:dateTime"/>
  		</xsd:sequence>
  		<xsd:attribute name="URI" type="xsd:anyURI" use="optional"/>
  	</xsd:complexType>
  	<xsd:complexType name="OtherCertStatusRefsType">
  		<xsd:sequence>
  			<xsd:element name="OtherRef" type="AnyType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="SigAndRefsTimeStamp" type="TimeStampType"/>
  	<xsd:element name="RefsOnlyTimeStamp" type="TimeStampType"/>
  	<xsd:element name="CertificateValues" type="CertificateValuesType"/>
  	<xsd:complexType name="CertificateValuesType">
  		<xsd:choice minOccurs="0" maxOccurs="unbounded">
  			<xsd:element name="EncapsulatedX509Certificate" type="EncapsulatedPKIDataType"/>
  			<xsd:element name="OtherCertificate" type="AnyType"/>
  		</xsd:choice>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:element name="RevocationValues" type="RevocationValuesType"/>
  	<xsd:complexType name="RevocationValuesType">
  		<xsd:sequence>
  			<xsd:element name="CRLValues" type="CRLValuesType" minOccurs="0"/>
  			<xsd:element name="OCSPValues" type="OCSPValuesType" minOccurs="0"/>
  			<xsd:element name="OtherValues" type="OtherCertStatusValuesType" minOccurs="0"/>
  		</xsd:sequence>
  		<xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  	</xsd:complexType>
  	<xsd:complexType name="CRLValuesType">
  		<xsd:sequence>
  			<xsd:element name="EncapsulatedCRLValue" type="EncapsulatedPKIDataType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="OCSPValuesType">
  		<xsd:sequence>
  			<xsd:element name="EncapsulatedOCSPValue" type="EncapsulatedPKIDataType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:complexType name="OtherCertStatusValuesType">
  		<xsd:sequence>
  			<xsd:element name="OtherValue" type="AnyType" maxOccurs="unbounded"/>
  		</xsd:sequence>
  	</xsd:complexType>
  	<xsd:element name="ArchiveTimeStamp" type="TimeStampType"/>
  </xsd:schema>
  
  
  
  1.1                  xml-security/src/org/apache/xml/security/resource/schema/xenc-schema.rng
  
  Index: xenc-schema.rng
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- http://www.xml.com/lpt/a/2002/01/23/relaxng.html -->
  <!-- http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html -->
  <!-- http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_wildcards_st8.html -->
  <!-- http://lists.oasis-open.org/archives/relax-ng-comment/200206/maillist.html -->
  
  <grammar xmlns='http://relaxng.org/ns/structure/1.0'
          xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          ns="http://www.w3.org/2001/04/xmlenc#"
          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  
      <include href="http://www.w3.org/Signature/Drafts/xmldsig-core/xmldsig-core-schema.rng">
      <!-- Used for DigestMethod, KeyInfoType and anyThing -->
      <!-- Since xmldsig-core also has a start, I have to include it
          in the include for redefinition. -->
          <start>
              <choice>
                  <!-- We get to define the permissible root elements! -->
                  <element name="EncryptedData"><ref name="EncryptedDataType"/></element>
                  <element name="EncryptedKey"><ref name="EncryptedKeyType"/></element>
              </choice>
          </start>   
          
          <define name='anyThing'>
              <zeroOrMore>
                  <choice>
                      <text/>
                      <element>
                          <anyName>
                              <except>
                                  <nsName/>
                                  <nsName ns='http://www.w3.org/2000/09/xmldsig#'/>
                              </except>
                          </anyName>
                          <ref name='anyThing'/>
                          <zeroOrMore>
                              <attribute>
                                <anyName/>
                              </attribute>
                          </zeroOrMore>
                      </element>
                  </choice>
              </zeroOrMore>
              </define>
          
          
      </include>
      
          <!-- Import definitions from the xmldsig rng -->
  
          <define name="KeyInfoType" combine="interleave">
              <zeroOrMore>
                  <choice>
                      <element name="EncryptedKey"><ref name="EncryptedKeyType"/></element>
                      <element name="AgreementMethod"><ref name="AgreementMethodType"/></element>
                  </choice>
              </zeroOrMore>    
          </define>
  
          <define name="DigestMethodType" combine="choice">
              <notAllowed/>
           </define>
  
          <define name="TransformType" combine="choice">
              <notAllowed/>
           </define>
  
      <!-- Now redefined in the include statement
          <define name="anyThing" combine="choice">
              <notAllowed/>
           </define>
      -->
  
      <!-- End import -->
          
    
      <define name="EncryptedDataType">
            <ref name="EncryptedType"/>
      </define>
    
    
      <define name="EncryptedKeyType">
              <ref name="EncryptedType"/>
              <optional><element name='ReferenceList'>
                  <ref name="ReferenceListType"/></element>
              </optional>
              <optional><element name='CarriedKeyName'><data type="string"/></element></optional>
              <optional><attribute name='Recipient'> <data type="string"/></attribute></optional>
      </define>
  
      
       <define name="EncryptedType">
          <element name="EncryptionMethod"><ref name="EncryptionMethodType"/></element>
          <optional>
              <element name="KeyInfo" ns="http://www.w3.org/2000/09/xmldsig#">
                  <ref name="KeyInfoType"/>
              </element>
          </optional>
          <optional>
              <element name="CipherData"><ref name="CipherDataType"/></element>
          </optional> 
          <optional>
               <element name="EncryptionProperties"><ref name="EncryptionPropertiesType"/></element>
          </optional>
          <optional><attribute name="Id"><data type="ID"/></attribute></optional>
          <optional><attribute name="Type"><data type="anyURI"/></attribute></optional>
          <optional><attribute name="MimeType"><data type="string"/></attribute></optional>
          <optional><attribute name="Encoding"><data type="anyURI"/></attribute></optional>
          <optional><attribute name='xsi:schemaLocation'/></optional>
      </define> 
  
      <define name="EncryptionMethodType">
          <zeroOrMore>
              <choice>
                  <element name="KeySize">
                      <data type="integer"/>
                  </element>
                  <element name="OAEPparams">
                      <data type="base64Binary"/>
                  </element>
                  <text/>
                  <element name='DigestMethod' ns="http://www.w3.org/2000/09/xmldsig#">
                      <ref name="DigestMethodType"/>
                  </element>
              </choice>
          </zeroOrMore>
          <attribute name="Algorithm"><data type="anyURI"/></attribute>
      </define>
  
              
      <define name="AgreementMethodType">
          <zeroOrMore>
              <choice>
                  <element name="KA-Nonce">
                      <data type="base64Binary"/>
                  </element>
                  <element name='DigestMethod' ns="http://www.w3.org/2000/09/xmldsig#">
                      <ref name="DigestMethodType"/>
                  </element>
                  <text/>
                  <element>
                      <nsName ns="http://www.w3.org/2000/09/xmldsig#"/>
                      <ref name="anyThing"/>
                  </element>
                  <element name="OriginatorKeyInfo"><ref name="KeyInfoType"/></element>
                  <element name="RecipientKeyInfo"><ref name="KeyInfoType"/></element>
              </choice>
          </zeroOrMore>
          <attribute name="Algorithm"><data type="anyURI"/></attribute>
      </define>            
              
              
      <define name="ReferenceListType">
          <oneOrMore>
              <choice>
                  <element name="DataReference">
                      <text/>
                      <attribute name="URI"><data type="anyURI"/></attribute>
                  </element>
                  <element name="KeyReference">
                      <text/>
                      <attribute name="URI"><data type="anyURI"/></attribute>
                  </element>
              </choice>
          </oneOrMore>
      </define>
      
      
      <define name="CipherDataType">
          <choice>
              <element name="CipherValue"><data type="base64Binary"/></element>
              <element name="CipherReference">
                  <element name="Transforms">
                    <oneOrMore>
                        <element name='Transform' ns="http://www.w3.org/2000/09/xmldsig#">
                            <ref name='TransformType'/>
                          </element>
                      </oneOrMore>
                  </element>
                  <attribute name="URI">
                      <data type="anyURI"/>
                  </attribute>      
              </element>
          </choice>
      </define>
      
      
      <define name="EncryptionPropertiesType">        
          <element name="EncryptionProperty">
            <zeroOrMore>
                  <element>
                      <anyName/>
                      <text/>
                  </element>
              </zeroOrMore>
              <optional>
                  <attribute name="Target">
                      <data type="anyURI"/>
                  </attribute>  
              </optional>
              <optional>                
                  <attribute name="Id">
                      <data type="ID"/>
                  </attribute>    
              </optional>
          </element>
          
          <optional>
              <attribute name="Id">
                  <data type="ID"/>
              </attribute>    
          </optional>
          <zeroOrMore>
              <attribute><nsName ns="http://www.w3.org/XML/1998/namespace"/></attribute>
          </zeroOrMore>
      </define>
  
  </grammar>
  
  
  1.1                  xml-security/src/org/apache/xml/security/resource/schema/xenc-schema.xsd
  
  Index: xenc-schema.xsd
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!DOCTYPE schema  PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
   "http://www.w3.org/2001/XMLSchema.dtd"
   [
     <!ATTLIST schema
       xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
       xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'>
     <!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
     <!ENTITY % p ''>
     <!ENTITY % s ''>
    ]>
  
  <schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
          xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
          xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
          targetNamespace='http://www.w3.org/2001/04/xmlenc#'
          elementFormDefault='qualified'>
  
    <import namespace='http://www.w3.org/2000/09/xmldsig#'
            schemaLocation='http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd'/>
  
    <complexType name='EncryptedType' abstract='true'>
      <sequence>
        <element name='EncryptionMethod' type='xenc:EncryptionMethodType'
         minOccurs='0'/>
        <element ref='ds:KeyInfo' minOccurs='0'/>
        <element ref='xenc:CipherData'/>
        <element ref='xenc:EncryptionProperties' minOccurs='0'/>
      </sequence>
      <attribute name='Id' type='ID' use='optional'/>
      <attribute name='Type' type='anyURI' use='optional'/>
      <attribute name='MimeType' type='string' use='optional'/>
      <attribute name='Encoding' type='anyURI' use='optional'/>
    </complexType>
    
    <complexType name='EncryptionMethodType' mixed='true'>
      <sequence>
        <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>
        <element name='OAEPparams' minOccurs='0' type='base64Binary'/>
        <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </sequence>
      <attribute name='Algorithm' type='anyURI' use='required'/>
    </complexType>
  
      <simpleType name='KeySizeType'>
        <restriction base="integer"/>
      </simpleType>
  
    <element name='CipherData' type='xenc:CipherDataType'/>
    <complexType name='CipherDataType'>
       <choice>
         <element name='CipherValue' type='base64Binary'/>
         <element ref='xenc:CipherReference'/>
       </choice>
      </complexType>
  
     <element name='CipherReference' type='xenc:CipherReferenceType'/>
     <complexType name='CipherReferenceType'>
         <choice>
           <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
         </choice>
         <attribute name='URI' type='anyURI' use='required'/>
     </complexType>
  
       <complexType name='TransformsType'>
         <sequence>
           <element ref='ds:Transform' maxOccurs='unbounded'/>
         </sequence>
       </complexType>
  
  
    <element name='EncryptedData' type='xenc:EncryptedDataType'/>
    <complexType name='EncryptedDataType'>
      <complexContent>
        <extension base='xenc:EncryptedType'>
         </extension>
      </complexContent>
    </complexType>
  
    <!-- Children of ds:KeyInfo -->
  
    <element name='EncryptedKey' type='xenc:EncryptedKeyType'/>
    <complexType name='EncryptedKeyType'>
      <complexContent>
        <extension base='xenc:EncryptedType'>
          <sequence>
            <element ref='xenc:ReferenceList' minOccurs='0'/>
            <element name='CarriedKeyName' type='string' minOccurs='0'/>
          </sequence>
          <attribute name='Recipient' type='string'
           use='optional'/>
        </extension>
      </complexContent>
    </complexType>
  
      <element name="AgreementMethod" type="xenc:AgreementMethodType"/>
      <complexType name="AgreementMethodType" mixed="true">
        <sequence>
          <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
          <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
          <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
          <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
          <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
        </sequence>
        <attribute name="Algorithm" type="anyURI" use="required"/>
      </complexType>
  
    <!-- End Children of ds:KeyInfo -->
  
    <element name='ReferenceList'>
      <complexType>
        <choice minOccurs='1' maxOccurs='unbounded'>
          <element name='DataReference' type='xenc:ReferenceType'/>
          <element name='KeyReference' type='xenc:ReferenceType'/>
        </choice>
      </complexType>
    </element>
  
    <complexType name='ReferenceType'>
      <sequence>
        <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </sequence>
      <attribute name='URI' type='anyURI' use='required'/>
    </complexType>
  
  
    <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>
    <complexType name='EncryptionPropertiesType'>
      <sequence>
        <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>
      </sequence>
      <attribute name='Id' type='ID' use='optional'/>
    </complexType>
  
      <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
      <complexType name='EncryptionPropertyType' mixed='true'>
        <choice maxOccurs='unbounded'>
          <any namespace='##other' processContents='lax'/>
        </choice>
        <attribute name='Target' type='anyURI' use='optional'/>
        <attribute name='Id' type='ID' use='optional'/>
        <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
      </complexType>
  
  </schema>
  
  
  
  
  1.1                  xml-security/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.dtd
  
  Index: xmldsig-core-schema.dtd
  ===================================================================
  <!-- DTD for XML Signatures
      http://www.w3.org/2000/09/xmldsig#
      Joseph Reagle $last changed 20001215$
  
      http://www.w3.org/2000/09/xmldsig#
      $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
  
      Copyright 2001 The Internet Society and W3C (Massachusetts Institute
      of Technology, Institut National de Recherche en Informatique et en
      Automatique, Keio University). All Rights Reserved.
      http://www.w3.org/Consortium/Legal/
  
      This document is governed by the W3C Software License [1] as described
      in the FAQ [2].
  
      [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
      [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
  -->
  
  
  <!--
  
  The following entity declarations enable external/flexible content in
  the Signature content model.
  
  #PCDATA emulates schema string; when combined with element types it
  emulates schema's mixed content type.
  
  %foo.ANY permits the user to include their own element types from
  other namespaces, for example:
   <!ENTITY % KeyValue.ANY '| ecds:ECDSAKeyValue'>
   ...
   <!ELEMENT ecds:ECDSAKeyValue (#PCDATA)  >
  
  -->
  
  <!ENTITY % Object.ANY ''>
  <!ENTITY % Method.ANY ''>
  <!ENTITY % Transform.ANY ''>
  <!ENTITY % SignatureProperty.ANY ''>
  <!ENTITY % KeyInfo.ANY ''>
  <!ENTITY % KeyValue.ANY ''>
  <!ENTITY % PGPData.ANY ''>
  <!ENTITY % X509Data.ANY ''>
  <!ENTITY % SPKIData.ANY ''>
  
  
  
  <!-- Start Core Signature declarations, these should NOT be altered -->
  
  <!ELEMENT Signature (SignedInfo, SignatureValue, KeyInfo?, Object*)  >
  <!ATTLIST Signature  
  	xmlns	CDATA	#FIXED 'http://www.w3.org/2000/09/xmldsig#'
  	Id  	ID	#IMPLIED >
  
  <!ELEMENT SignatureValue (#PCDATA) >
  <!ATTLIST SignatureValue  
           Id  ID      #IMPLIED>
  
  <!ELEMENT SignedInfo (CanonicalizationMethod, 
  	SignatureMethod,  Reference+)  >
  <!ATTLIST SignedInfo  
  	Id	 ID 	 #IMPLIED 
  >
  
  <!ELEMENT CanonicalizationMethod (#PCDATA %Method.ANY;)* > 
  <!ATTLIST CanonicalizationMethod 
  	Algorithm CDATA #REQUIRED > 
  
  <!ELEMENT SignatureMethod (#PCDATA|HMACOutputLength %Method.ANY;)* >
  <!ATTLIST SignatureMethod 
  	Algorithm CDATA #REQUIRED > 
  
  <!ELEMENT Reference (Transforms?, DigestMethod, DigestValue)  >
  <!ATTLIST Reference
  	Id	ID	#IMPLIED
  	URI	CDATA	#IMPLIED
  	Type	CDATA	#IMPLIED>
  
  
  <!ELEMENT Transforms (Transform+)>
  
  <!ELEMENT Transform (#PCDATA|XPath %Transform.ANY;)* >
  <!ATTLIST Transform 
  	Algorithm    CDATA    #REQUIRED >
  
  <!ELEMENT XPath (#PCDATA) >
  
  <!ELEMENT DigestMethod (#PCDATA %Method.ANY;)* >
  <!ATTLIST DigestMethod  
  	Algorithm		CDATA	#REQUIRED >
  
  <!ELEMENT DigestValue  (#PCDATA)  >
  
  <!ELEMENT KeyInfo	(#PCDATA|KeyName|KeyValue|RetrievalMethod|
             X509Data|PGPData|SPKIData|MgmtData %KeyInfo.ANY;)* >
  <!ATTLIST KeyInfo
  	Id	ID	 #IMPLIED >
  
  <!-- Key Information -->
  
  <!ELEMENT KeyName (#PCDATA) >
  <!ELEMENT KeyValue (#PCDATA|DSAKeyValue|RSAKeyValue %KeyValue.ANY;)* >
  <!ELEMENT MgmtData (#PCDATA) >
  
  <!ELEMENT RetrievalMethod (Transforms?) >
  <!ATTLIST RetrievalMethod
    URI	CDATA #REQUIRED 
    Type	CDATA #IMPLIED > 
  
  <!-- X.509 Data -->
  
  <!ELEMENT X509Data ((X509IssuerSerial | X509SKI | X509SubjectName |
                      X509Certificate | X509CRL )+ %X509Data.ANY;)>
  <!ELEMENT X509IssuerSerial (X509IssuerName, X509SerialNumber) >
  <!ELEMENT X509IssuerName (#PCDATA) >
  <!ELEMENT X509SubjectName (#PCDATA) >
  <!ELEMENT X509SerialNumber (#PCDATA) >
  <!ELEMENT X509SKI (#PCDATA) >
  <!ELEMENT X509Certificate (#PCDATA) >
  <!ELEMENT X509CRL (#PCDATA) >
  
  <!-- PGPData -->
  
  <!ELEMENT PGPData ((PGPKeyID, PGPKeyPacket?) | (PGPKeyPacket) %PGPData.ANY;) >
  <!ELEMENT PGPKeyPacket  (#PCDATA)  >
  <!ELEMENT PGPKeyID  (#PCDATA)  >
  
  <!-- SPKI Data -->
  
  <!ELEMENT SPKIData (SPKISexp %SPKIData.ANY;)  >
  <!ELEMENT SPKISexp  (#PCDATA)  >
  
  <!-- Extensible Content -->
  
  <!ELEMENT Object (#PCDATA|Signature|SignatureProperties|Manifest %Object.ANY;)* >
  <!ATTLIST Object  
  	Id	ID	#IMPLIED
  	MimeType	CDATA	#IMPLIED
  	Encoding	CDATA	#IMPLIED >
  
  <!ELEMENT Manifest (Reference+)  >
  <!ATTLIST Manifest  
  	Id	ID	#IMPLIED >
  
  <!ELEMENT SignatureProperties (SignatureProperty+)  >
  <!ATTLIST SignatureProperties  
  	Id	ID	 #IMPLIED  >
  
  <!ELEMENT SignatureProperty (#PCDATA %SignatureProperty.ANY;)* >
  <!ATTLIST SignatureProperty  
  	Target 	CDATA	 #REQUIRED
  	Id	ID	 #IMPLIED  >
  
  <!-- Algorithm Parameters -->
  
  <!ELEMENT HMACOutputLength (#PCDATA) >
  
  <!ELEMENT DSAKeyValue ((P, Q)?, G?, Y, J?, (Seed, PgenCounter)?) >
  <!ELEMENT P (#PCDATA) >
  <!ELEMENT Q (#PCDATA) >
  <!ELEMENT G (#PCDATA) >
  <!ELEMENT Y (#PCDATA) >
  <!ELEMENT J (#PCDATA) >
  <!ELEMENT Seed (#PCDATA) >
  <!ELEMENT PgenCounter (#PCDATA) >
  
  <!ELEMENT RSAKeyValue (Modulus, Exponent) > 
  <!ELEMENT Modulus (#PCDATA) >
  <!ELEMENT Exponent (#PCDATA) >
  
  
  
  
  1.1                  xml-security/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.rng
  
  Index: xmldsig-core-schema.rng
  ===================================================================
  <?xml version='1.0' encoding='UTF-8'?>
  <!-- http://www.xml.com/lpt/a/2002/01/23/relaxng.html -->
  <!-- http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html -->
  <!-- http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_wildcards_st8.html -->
  <!-- http://lists.oasis-open.org/archives/relax-ng-comment/200206/maillist.html -->
  
  <grammar xmlns='http://relaxng.org/ns/structure/1.0'
          xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
          xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
          ns='http://www.w3.org/2000/09/xmldsig#'
          datatypeLibrary='http://www.w3.org/2001/XMLSchema-datatypes'>
  
      <start>
              <element name='Signature'><ref name='SignatureType'/></element>
      </start>   
      
      <define name='CryptoBinary'>
          <data type='base64Binary'/>
      </define>
      
      <define name='SignatureType'>
          <element name='SignedInfo'><ref name='SignedInfoType'/></element>
          <element name='SignatureValue'><ref name='SignatureValueType'/></element>
          <optional><element name='KeyInfo'><ref name='KeyInfoType'/></element></optional>
          <zeroOrMore><element name='Object'><ref name='ObjectType'/></element></zeroOrMore>
          <optional><attribute name='Id'><data type='ID'/></attribute></optional>
          <optional><attribute name='xsi:schemaLocation'/></optional>
      </define>
  
      <define name='SignatureValueType'>
          <data type='base64Binary'/>
          <optional><attribute name='Id'><data type='ID'/></attribute></optional>
      </define>
      
  <!-- Start SignedInfo -->
      
      <define name='SignedInfoType'>
          <element name='CanonicalizationMethod'><ref name='CanonicalizationMethodType'/></element>
          <element name='SignatureMethod'><ref name='SignatureMethodType'/></element>
          <optional><element name='KeyInfo'><ref name='KeyInfoType'/></element></optional>
          <oneOrMore><element name='Reference'><ref name='ReferenceType'/></element></oneOrMore>
          <optional><attribute name='Id'><data type='ID'/></attribute></optional>
      </define>    
  
      <define name='CanonicalizationMethodType'>
          <zeroOrMore><ref name='anyThing'/></zeroOrMore>
          <optional><attribute name='Algorithm'><data type='anyURI'/></attribute></optional>
      </define>    
  
  
      <define name='SignatureMethodType'>
          <optional><element name='HMACOutputLength'><data type='integer'/></element></optional>
          <zeroOrMore><ref name='anyThing'/></zeroOrMore>
          <optional><attribute name='Algorithm'><data type='anyURI'/></attribute></optional>
      </define>    
          
  <!-- Start Reference -->
      
      <define name='ReferenceType'>
          <optional><element name='Transforms'><ref name='TransformsType'/></element></optional>
          <element name='DigestMethod'><ref name='DigestMethodType'/></element>
          <element name='DigestValue'><ref name='DigestValueType'/></element>
          <optional><attribute name='Type'><data type='anyURI'/></attribute></optional>
          <optional><attribute name='URI'><data type='anyURI'/></attribute></optional>
          <optional><attribute name='Id'><data type='ID'/></attribute></optional>
       </define>
  
      <define name='TransformsType'>
          <oneOrMore><element name='Transform'><ref name='TransformType'/></element></oneOrMore>
      </define>
  
      <define name='TransformType'>
          <optional><element name='XPath'><data type='string'/></element></optional>
          <zeroOrMore><ref name='anyThing'/></zeroOrMore>
          <attribute name='Algorithm'><data type='anyURI'/></attribute>
      </define>    
  
  <!-- End Reference -->
  
      <define name='DigestMethodType'>
          <zeroOrMore><ref name='anyThing'/></zeroOrMore>
          <attribute name='Algorithm'><data type='anyURI'/></attribute>
      </define>   
  
      <define name='DigestValueType'>
          <data type='base64Binary'/>
      </define>  
      
  <!-- End SignedInfo -->
  
  <!-- Start KeyInfo -->
      
      <define name='KeyInfoType'>
          <oneOrMore>
              <choice>
                  <element name='KeyName'><data type='string'/></element>
                  <element name='KeyValue'><ref name='KeyValueType'/></element>
                  <element name='RetrievalMethod'><ref name='RetrievalMethodType'/></element>
                  <element name='X509Data'><ref name='X509DataType'/></element>
                  <element name='PGPData'><ref name='PGPDataType'/></element>
                  <element name='SPKIData'><ref name='SPKIDataType'/></element>
                  <element name='MgmtData'><data type='string'/></element>
                  <ref name='anyThing'/>
              </choice>
          </oneOrMore>
          <optional><attribute name='Id'><data type='ID'/></attribute></optional>
  </define>
  
      <define name='KeyValueType'>
              <choice>
                  <text/>
                  <element name='DSAKeyValue'><ref name='DSAKeyValueType'/></element>
                  <element name='RSAKeyValue'><ref name='RSAKeyValueType'/></element>
                  <ref name='anyThing'/>
              </choice>
      </define>
  
      <define name='RetrievalMethodType'>
          <optional><element name='Transforms'><ref name='TransformsType'/></element></optional>
          <optional><attribute name='Type'><data type='anyURI'/></attribute></optional>
          <optional><attribute name='URI'><data type='anyURI'/></attribute></optional>
      </define>
  
  <!-- Start X509Data -->
  
      <define name='X509DataType'>
          <oneOrMore>
              <choice>
                  <element name='X509IssuerSerial'>
                      <element name='X509IssuerName'>
                          <data type='string'/>
                      </element>
                      <element name='X509SerialNumber'>
                          <data type='integer'/>
                      </element>
                  </element>
                  <element name='X509SKI'>
                      <data type='base64Binary'/>
                  </element>
                  <element name='X509SubjectName'>
                      <data type='string'/>
                  </element>
                  <element name='X509Certificate'>
                      <data type='base64Binary'/>
                  </element>
                  <element name='X509CRL'>
                      <data type='base64Binary'/>
                  </element>
                  <ref name='anyThing'/>
              </choice>
          </oneOrMore>
      </define>
  
  <!-- End X509Data -->
  
  <!-- Begin PGPData -->
  
      <define name='PGPDataType'>
          <choice>
              <group>
                  <element name='PGPKeyID'>
                      <data type='base64Binary'/>
                  </element>
                  <optional>
                      <element name='PGPKeyPacket'>
                          <data type='base64Binary'/>
                      </element>
                  </optional>
                  <zeroOrMore>
                      <ref name='anyThing'/>
                  </zeroOrMore>
              </group>
              <group>
                  <element name='PGPKeyPacket'>
                      <data type='base64Binary'/>
                  </element>
                  <zeroOrMore>
                      <ref name='anyThing'/>
                  </zeroOrMore>
              </group>
          </choice>
      </define>
  
  <!-- End PGPData -->
  
  <!-- Begin SPKIData -->
  
      <define name='SPKIDataType'>
          <oneOrMore>
              <element name='SPKISexp'>
                  <data type='base64Binary'/>
              </element>
              <optional>
                  <ref name='anyThing'/>
              </optional>
          </oneOrMore>
      </define>
      
  <!-- End SPKIData -->
  
  <!-- End KeyInfo -->
  
  
  <!-- Start Object (Manifest, SignatureProperty) -->
  
      <define name='ObjectType'>
          <zeroOrMore>
              <choice>
                  <element name='Manifest'><ref name='ManifestType'/></element>
                  <element name='SignatureProperties'><ref name='SignaturePropertiesType'/></element>                
                  <ref name='anyThing'/>
              </choice>
          </zeroOrMore>
          <optional>
              <attribute name='Encoding'>
                  <data type='anyURI'/>
              </attribute>
          </optional>
          <optional>
              <attribute name='MimeType'>
                  <data type='string'/>
              </attribute>
          </optional>
          <optional>
              <attribute name='Id'>
                  <data type='ID'/>
              </attribute>
          </optional>
      </define>
  
      <define name='ManifestType'>
          <oneOrMore>
              <element name='Reference'><ref name='ReferenceType'/></element>
          </oneOrMore>
          <optional><attribute name='Id'><data type='ID'/></attribute></optional>
      </define>
  
      <define name='SignaturePropertiesType'>
          <oneOrMore>
              <element name='SignatureProperty'><ref name='SignaturePropertyType'/></element>
          </oneOrMore>
          <optional>
              <attribute name='Id'>
                  <data type='ID'/>
              </attribute>
          </optional>
      </define>
  
      <define name='SignaturePropertyType'>
          <oneOrMore><ref name='anyThing'/></oneOrMore>
          <optional>
              <attribute name='Id'>
                  <data type='ID'/>
              </attribute>
          </optional>
          <attribute name='Target'>
              <data type='anyURI'/>
          </attribute>
      </define>
  
  <!-- End Object (Manifest, SignatureProperty) -->
  
  
  <!-- Start KeyValue Element-types -->
  
      <define name='DSAKeyValueType'>
          <optional>
              <element name='P'>
                  <ref name='CryptoBinary'/>
              </element>
              <element name='Q'>
                  <ref name='CryptoBinary'/>
              </element>
          </optional>
          <optional>
              <element name='G'>
                  <ref name='CryptoBinary'/>
              </element>
          </optional>
          <element name='Y'>
              <ref name='CryptoBinary'/>
          </element>
          <optional>
              <element name='J'>
                  <ref name='CryptoBinary'/>
              </element>
          </optional>
          <optional>
              <element name='Seed'>
                  <ref name='CryptoBinary'/>
              </element>
              <element name='PgenCounter'>
                  <ref name='CryptoBinary'/>
              </element>
          </optional>
      </define>
  
      <define name='RSAKeyValueType'>
          <element name='Modulus'>
              <ref name='CryptoBinary'/>
          </element>
          <element name='Exponent'>
              <ref name='CryptoBinary'/>
          </element>
      </define>
  
  
  <!-- End KeyValue Element-types -->
  
  <!-- End Signature -->
  
  
          <!-- This should emulate the ANY content model under lax validation -->
          <define name='anyThing'>
              <zeroOrMore>
                  <choice>
                      <text/>
                      <element>
                          <!-- "except" provided for DTD compatibility -->
                          <!-- [1] ns='http://www.oasis-open.org/committees/relax-ng/compatibility.html#id' -->
                          <anyName>
                              <except>
                                  <nsName/>
                                  <!--  <nsName ns='http://www.w3.org/2001/04/xmlenc#'/>  -->
                              </except>
                          </anyName>
                          <ref name='anyThing'/>
                          <zeroOrMore>
                              <attribute>
                                <anyName/>
                              </attribute>
                          </zeroOrMore>
                      </element>
                  </choice>
              </zeroOrMore>
              </define>
              
  
  </grammar>
  
  
  1.1                  xml-security/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.xsd
  
  Index: xmldsig-core-schema.xsd
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!DOCTYPE schema
    PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
   [
     <!ATTLIST schema 
       xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
     <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
     <!ENTITY % p ''>
     <!ENTITY % s ''>
    ]>
  
  <!-- Schema for XML Signatures
      http://www.w3.org/2000/09/xmldsig#
      $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
  
      Copyright 2001 The Internet Society and W3C (Massachusetts Institute
      of Technology, Institut National de Recherche en Informatique et en
      Automatique, Keio University). All Rights Reserved.
      http://www.w3.org/Consortium/Legal/
  
      This document is governed by the W3C Software License [1] as described
      in the FAQ [2].
  
      [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
      [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
  -->
  
  
  <schema xmlns="http://www.w3.org/2001/XMLSchema"
          xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
          targetNamespace="http://www.w3.org/2000/09/xmldsig#"
          version="0.1" elementFormDefault="qualified"> 
  
  <!-- Basic Types Defined for Signatures -->
  
  <simpleType name="CryptoBinary">
    <restriction base="base64Binary">
    </restriction>
  </simpleType>
  
  <!-- Start Signature -->
  
  <element name="Signature" type="ds:SignatureType"/>
  <complexType name="SignatureType">
    <sequence> 
      <element ref="ds:SignedInfo"/> 
      <element ref="ds:SignatureValue"/> 
      <element ref="ds:KeyInfo" minOccurs="0"/> 
      <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> 
    </sequence>  
    <attribute name="Id" type="ID" use="optional"/>
  </complexType>
  
    <element name="SignatureValue" type="ds:SignatureValueType"/> 
    <complexType name="SignatureValueType">
      <simpleContent>
        <extension base="base64Binary">
          <attribute name="Id" type="ID" use="optional"/>
        </extension>
      </simpleContent>
    </complexType>
  
  <!-- Start SignedInfo -->
  
  <element name="SignedInfo" type="ds:SignedInfoType"/>
  <complexType name="SignedInfoType">
    <sequence> 
      <element ref="ds:CanonicalizationMethod"/> 
      <element ref="ds:SignatureMethod"/> 
      <element ref="ds:Reference" maxOccurs="unbounded"/> 
    </sequence>  
    <attribute name="Id" type="ID" use="optional"/> 
  </complexType>
  
    <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> 
    <complexType name="CanonicalizationMethodType" mixed="true">
      <sequence>
        <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
        <!-- (0,unbounded) elements from (1,1) namespace -->
      </sequence>
      <attribute name="Algorithm" type="anyURI" use="required"/> 
    </complexType>
  
    <element name="SignatureMethod" type="ds:SignatureMethodType"/>
    <complexType name="SignatureMethodType" mixed="true">
      <sequence>
        <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
        <!-- (0,unbounded) elements from (1,1) external namespace -->
      </sequence>
      <attribute name="Algorithm" type="anyURI" use="required"/> 
    </complexType>
  
  <!-- Start Reference -->
  
  <element name="Reference" type="ds:ReferenceType"/>
  <complexType name="ReferenceType">
    <sequence> 
      <element ref="ds:Transforms" minOccurs="0"/> 
      <element ref="ds:DigestMethod"/> 
      <element ref="ds:DigestValue"/> 
    </sequence>
    <attribute name="Id" type="ID" use="optional"/> 
    <attribute name="URI" type="anyURI" use="optional"/> 
    <attribute name="Type" type="anyURI" use="optional"/> 
  </complexType>
  
    <element name="Transforms" type="ds:TransformsType"/>
    <complexType name="TransformsType">
      <sequence>
        <element ref="ds:Transform" maxOccurs="unbounded"/>  
      </sequence>
    </complexType>
  
    <element name="Transform" type="ds:TransformType"/>
    <complexType name="TransformType" mixed="true">
      <choice minOccurs="0" maxOccurs="unbounded"> 
        <any namespace="##other" processContents="lax"/>
        <!-- (1,1) elements from (0,unbounded) namespaces -->
        <element name="XPath" type="string"/> 
      </choice>
      <attribute name="Algorithm" type="anyURI" use="required"/> 
    </complexType>
  
  <!-- End Reference -->
  
  <element name="DigestMethod" type="ds:DigestMethodType"/>
  <complexType name="DigestMethodType" mixed="true"> 
    <sequence>
      <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>    
    <attribute name="Algorithm" type="anyURI" use="required"/> 
  </complexType>
  
  <element name="DigestValue" type="ds:DigestValueType"/>
  <simpleType name="DigestValueType">
    <restriction base="base64Binary"/>
  </simpleType>
  
  <!-- End SignedInfo -->
  
  <!-- Start KeyInfo -->
  
  <element name="KeyInfo" type="ds:KeyInfoType"/> 
  <complexType name="KeyInfoType" mixed="true">
    <choice maxOccurs="unbounded">     
      <element ref="ds:KeyName"/> 
      <element ref="ds:KeyValue"/> 
      <element ref="ds:RetrievalMethod"/> 
      <element ref="ds:X509Data"/> 
      <element ref="ds:PGPData"/> 
      <element ref="ds:SPKIData"/>
      <element ref="ds:MgmtData"/>
      <any processContents="lax" namespace="##other"/>
      <!-- (1,1) elements from (0,unbounded) namespaces -->
    </choice>
    <attribute name="Id" type="ID" use="optional"/> 
  </complexType>
  
    <element name="KeyName" type="string"/>
    <element name="MgmtData" type="string"/>
  
    <element name="KeyValue" type="ds:KeyValueType"/> 
    <complexType name="KeyValueType" mixed="true">
     <choice>
       <element ref="ds:DSAKeyValue"/>
       <element ref="ds:RSAKeyValue"/>
       <any namespace="##other" processContents="lax"/>
     </choice>
    </complexType>
  
    <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> 
    <complexType name="RetrievalMethodType">
      <sequence>
        <element ref="ds:Transforms" minOccurs="0"/> 
      </sequence>  
      <attribute name="URI" type="anyURI"/>
      <attribute name="Type" type="anyURI" use="optional"/>
    </complexType>
  
  <!-- Start X509Data -->
  
  <element name="X509Data" type="ds:X509DataType"/> 
  <complexType name="X509DataType">
    <sequence maxOccurs="unbounded">
      <choice>
        <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
        <element name="X509SKI" type="base64Binary"/>
        <element name="X509SubjectName" type="string"/>
        <element name="X509Certificate" type="base64Binary"/>
        <element name="X509CRL" type="base64Binary"/>
        <any namespace="##other" processContents="lax"/>
      </choice>
    </sequence>
  </complexType>
  
  <complexType name="X509IssuerSerialType"> 
    <sequence> 
      <element name="X509IssuerName" type="string"/> 
      <element name="X509SerialNumber" type="integer"/> 
    </sequence>
  </complexType>
  
  <!-- End X509Data -->
  
  <!-- Begin PGPData -->
  
  <element name="PGPData" type="ds:PGPDataType"/> 
  <complexType name="PGPDataType"> 
    <choice>
      <sequence>
        <element name="PGPKeyID" type="base64Binary"/> 
        <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> 
        <any namespace="##other" processContents="lax" minOccurs="0"
         maxOccurs="unbounded"/>
      </sequence>
      <sequence>
        <element name="PGPKeyPacket" type="base64Binary"/> 
        <any namespace="##other" processContents="lax" minOccurs="0"
         maxOccurs="unbounded"/>
      </sequence>
    </choice>
  </complexType>
  
  <!-- End PGPData -->
  
  <!-- Begin SPKIData -->
  
  <element name="SPKIData" type="ds:SPKIDataType"/> 
  <complexType name="SPKIDataType">
    <sequence maxOccurs="unbounded">
      <element name="SPKISexp" type="base64Binary"/>
      <any namespace="##other" processContents="lax" minOccurs="0"/>
    </sequence>
  </complexType> 
  
  <!-- End SPKIData -->
  
  <!-- End KeyInfo -->
  
  <!-- Start Object (Manifest, SignatureProperty) -->
  
  <element name="Object" type="ds:ObjectType"/> 
  <complexType name="ObjectType" mixed="true">
    <sequence minOccurs="0" maxOccurs="unbounded">
      <any namespace="##any" processContents="lax"/>
    </sequence>
    <attribute name="Id" type="ID" use="optional"/> 
    <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
    <attribute name="Encoding" type="anyURI" use="optional"/> 
  </complexType>
  
  <element name="Manifest" type="ds:ManifestType"/> 
  <complexType name="ManifestType">
    <sequence>
      <element ref="ds:Reference" maxOccurs="unbounded"/> 
    </sequence>
    <attribute name="Id" type="ID" use="optional"/> 
  </complexType>
  
  <element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 
  <complexType name="SignaturePropertiesType">
    <sequence>
      <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 
    </sequence>
    <attribute name="Id" type="ID" use="optional"/> 
  </complexType>
  
     <element name="SignatureProperty" type="ds:SignaturePropertyType"/> 
     <complexType name="SignaturePropertyType" mixed="true">
       <choice maxOccurs="unbounded">
         <any namespace="##other" processContents="lax"/>
         <!-- (1,1) elements from (1,unbounded) namespaces -->
       </choice>
       <attribute name="Target" type="anyURI" use="required"/> 
       <attribute name="Id" type="ID" use="optional"/> 
     </complexType>
  
  <!-- End Object (Manifest, SignatureProperty) -->
  
  <!-- Start Algorithm Parameters -->
  
  <simpleType name="HMACOutputLengthType">
    <restriction base="integer"/>
  </simpleType>
  
  <!-- Start KeyValue Element-types -->
  
  <element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
  <complexType name="DSAKeyValueType">
    <sequence>
      <sequence minOccurs="0">
        <element name="P" type="ds:CryptoBinary"/>
        <element name="Q" type="ds:CryptoBinary"/>
      </sequence>
      <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
      <element name="Y" type="ds:CryptoBinary"/>
      <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
      <sequence minOccurs="0">
        <element name="Seed" type="ds:CryptoBinary"/>
        <element name="PgenCounter" type="ds:CryptoBinary"/>
      </sequence>
    </sequence>
  </complexType>
  
  <element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
  <complexType name="RSAKeyValueType">
    <sequence>
      <element name="Modulus" type="ds:CryptoBinary"/> 
      <element name="Exponent" type="ds:CryptoBinary"/> 
    </sequence>
  </complexType> 
  
  <!-- End KeyValue Element-types -->
  
  <!-- End Signature -->
  
  </schema>