← Prev in month ← Prev in thread
Next in thread → Next in month →

[dss] Public comment: OASIS-DSS Exclusive Canonicalization and ValidationErrors(Unique Particle Attribution)

From
Konrad Lanz <>
Date
2005-04-04T13:22:03+00:00
ID
Thread
[dss] Public comment: OASIS-DSS Exclusive Canonicalization and ValidationErrors(Unique Particle Attribution)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.docs.oasis-open.org/dss/2004/06/oasis-dss-1.0-core-schema-wd-30.xsd" 
			xmlns:dss="http://www.docs.oasis-open.org/dss/2004/06/oasis-dss-1.0-core-schema-wd-30.xsd" 
			xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
			xmlns:xs="http://www.w3.org/2001/XMLSchema"
			xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
			elementFormDefault="qualified" 
			attributeFormDefault="unqualified">			

	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:SAML:1.0:assertion" schemaLocation="http://www.oasis-open.org/committees/download.php/3408/oasis-sstc-saml-schema-protocol-1.1.xsd"/>
	<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>			


	<!-- COMMON PROTOCOL STRUCTURES -->

	<xs:complexType name="DSSAnyType">
		<xs:sequence>
			<xs:any processContents="lax" maxOccurs ="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="InternationalStringType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute ref="xml:lang"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
		
	<xs:element name="InputDocuments">
		<xs:complexType>
			<xs:sequence>
				<xs:choice minOccurs="1" maxOccurs="unbounded">		
					<xs:element ref="dss:Document"/>
					<xs:element ref="dss:DocumentHash"/>
					<xs:any namespace="##other" processContents="lax"/>					
				</xs:choice>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:complexType name="DocumentBaseType" abstract="true">
		<xs:sequence>
			<xs:element ref="ds:Transforms" minOccurs="0"/> 
			<xs:element name="Schema" type="xs:base64Binary" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID" use="optional"/>
		<xs:attribute name="RefURI" type="xs:anyURI" use="optional"/>
		<xs:attribute name="RefType" type="xs:anyURI" use="optional"/>
	</xs:complexType>	


	<xs:element name="Document">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="dss:DocumentBaseType">
					<xs:choice>
						<xs:element ref="dss:XMLData"/>
						<xs:element ref="dss:Base64Data"/>
					</xs:choice>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>

	<xs:element name="XMLData" type="dss:DSSAnyType"/>

	<xs:element name="Base64Data">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:base64Binary">
					<xs:attribute name="MimeType" type="xs:string" use="optional"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>			
	</xs:element>
	
	<xs:element name="DocumentHash">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="dss:DocumentBaseType">
					<xs:sequence>
						<xs:element ref="ds:DigestMethod"/>
						<xs:element ref="ds:DigestValue"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="SignatureObject">
		<xs:complexType>
			<xs:sequence>
				<xs:choice>
<!--					<xs:element ref="ds:Signature"/>				-->
					<xs:element ref="dss:XMLSignature"/>
					<xs:element ref="dss:Timestamp"/>				
					<xs:element ref="dss:Base64Signature"/>
					<xs:element ref="dss:SignaturePtr"/>
					<xs:any namespace="##other" processContents="lax"/>
				</xs:choice>
				<xs:element name="Schema" type="xs:base64Binary" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="XMLSignature">
		<xs:complexType>
			<xs:sequence>
  				<xs:element ref="ds:Signature"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="Base64Signature">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:base64Binary">
					<xs:attribute name="Type" type="xs:anyURI"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>

	<xs:element name="SignaturePtr">
		<xs:complexType>
			<xs:attribute name="WhichDocument" type="xs:IDREF"/>             
			<xs:attribute name="XPath" type="xs:string" use="optional"/>             
		 </xs:complexType>
	</xs:element>

	<xs:element name="Result">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ResultMajor" type="xs:anyURI"/>
				<xs:element name="ResultMinor" type="xs:anyURI" minOccurs="0"/>
				<xs:element name="ResultMessage" type="dss:InternationalStringType" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>	
	
	<!-- TODO get rid of this -->
	<xs:element name="OptionalInputs" type="dss:DSSAnyType"/>
	<!-- TODO get rid of this -->
    <xs:element name="OptionalOutputs" type="dss:DSSAnyType"/>
	
	<xs:element name="ServicePolicy" type="xs:anyURI"/>
	
	<xs:element name="ClaimedIdentity">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Name" type="saml:NameIdentifierType"/>
				<xs:element name="SupportingInfo" type="dss:DSSAnyType"           
							minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	
	<xs:element name="Language" type="xs:language"/>
	
	<xs:element name="AdditionalProfile" type="xs:anyURI"/>
	
	<!-- COMMON PROTOCOL STRUCTURES -->

	<!-- PROTOCOL MESSAGES BEGIN -->

 	<xs:element name="SignRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="OptionalInputs" type="dss:SignRequestOptionalInputs" minOccurs="0"/>
				<xs:element ref="dss:InputDocuments"/>
			</xs:sequence>
			<xs:attribute name="RequestID" type="xs:string" use="optional"/>
			<xs:attribute name="Profile" type="xs:anyURI" use="optional"/>			
		</xs:complexType>
	</xs:element>	
	
	<xs:element name="SignResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dss:Result"/>
				<xs:element name="OptionalOutputs" type="dss:SignResponseOptionalOutputs" minOccurs="0"/>
				<xs:element ref="dss:SignatureObject" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="RequestID" type="xs:string" use="optional"/>
			<xs:attribute name="Profile" type="xs:anyURI" use="required"/>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="VerifyRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="OptionalInputs" type="dss:VerifyRequestOptionalInputs" minOccurs="0"/>
				<xs:element ref="dss:SignatureObject" minOccurs="0"/>
				<xs:element ref="dss:InputDocuments" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="RequestID" type="xs:string" use="optional"/>
			<xs:attribute name="Profile" type="xs:anyURI" use="optional"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="VerifyResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dss:Result"/>
				<xs:element name="OptionalOutputs" type="dss:VerifyResponseOptionalOutputs" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="RequestID" type="xs:string" use="optional"/>
			<xs:attribute name="Profile" type="xs:anyURI" use="required"/>			
		</xs:complexType>
	</xs:element>
	
	<!-- PROTOCOL MESSAGES END -->	
	
  <!-- SIGNREQUEST OPTIONAL INPUTS START -->
  <!-- SignRequestOptionalInputs Type START -->
  <xs:complexType name="SignRequestOptionalInputs">
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="SignatureType" type="xs:anyURI"/>
        <xs:element name="AddTimestamp">
          <xs:complexType>
            <xs:attribute name="Type" type="xs:anyURI" use="optional"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="IntendedAudience">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Recipient" type="saml:NameIdentifierType" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="KeySelector">
          <xs:complexType>
            <xs:choice>
              <!-- <xs:element ref="ds:KeyInfo"/> -->
              <xs:element ref="dss:XMLKeyInfo"/>
              <xs:any namespace="##other" processContents="lax"/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name="SignedReferences">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="dss:SignedReference" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Properties">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="SignedProperties" type="dss:PropertiesType" minOccurs="0"/>
              <xs:element name="UnsignedProperties" type="dss:PropertiesType" minOccurs="0"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="SignaturePlacement">
          <xs:complexType>
            <xs:choice>
              <xs:element name="XPathAfter" type="xs:string"/>
              <xs:element name="XPathFirstChildOf" type="xs:string"/>
            </xs:choice>
            <xs:attribute name="WhichDocument" type="xs:IDREF"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="EnvelopingSignature">
          <xs:complexType>
            <xs:attribute name="WhichDocument" type="xs:IDREF"/>
            <xs:attribute name="ObjId" type="xs:string" use="optional"/>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="##other" processContents="lax"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <!-- SignRequestOptionalInputs Type END -->  
  <xs:element name="Property">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Identifier" type="xs:anyURI"/>
        <xs:element name="Value" type="dss:DSSAnyType" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="PropertiesType">
    <xs:sequence>
      <xs:element ref="dss:Property" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
	<xs:element name="XMLKeyInfo">
		<xs:complexType>
			<xs:sequence>
  				<xs:element ref="ds:KeyInfo"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
  <xs:element name="SignedReference">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ds:Transforms" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="WhichDocument" type="xs:IDREF" use="required"/>
      <xs:attribute name="RefId" type="xs:string" use="optional"/>
    </xs:complexType>
  </xs:element>
  <!-- SIGNREQUEST OPTIONAL INPUTS END -->
	
  <!-- SIGNRESPONSE OPTIONAL OUTPUTS START -->
  <xs:complexType name="SignResponseOptionalOutputs">
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="DocumentWithSignature">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="dss:Document"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace="##other" processContents="lax"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <!-- SIGNRESPONSE OPTIONAL OUTPUTS END -->
	
	<!-- VERIFYREQUEST OPTIONAL INPUTS START -->
	
  <xs:complexType name="VerifyRequestOptionalInputs">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
		<xs:element name="VerifyManifests"/>
		<xs:element name="VerificationTime" type="xs:dateTime"/>
		<xs:element name="AdditionalKeyInfo">
			<xs:complexType>
				<xs:sequence>
					<xs:element ref="ds:KeyInfo"/>
				</xs:sequence>
			</xs:complexType>	
		</xs:element>
		<xs:element name="ReturnProcessingDetails"/>
		<xs:element name="ReturnSigningTime"/>
		<xs:element name="ReturnTimestampTime"/>
		<xs:element name="ReturnSignerIdentity"/>
		<xs:element name="ReturnUpdatedSignature">
			<xs:complexType>
				<xs:attribute name="Type" type="xs:anyURI" use="optional"/>
			</xs:complexType>
		</xs:element>
		<xs:element name="ReturnTransformedDocument">
			<xs:complexType>
				<xs:attribute name="WhichReference" type="xs:integer" use="required"/>
			</xs:complexType>
		</xs:element>
        <xs:any namespace="##other" processContents="lax"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
	
	<!-- VERIFYREQUEST OPTIONAL INPUTS END -->
	
	<!-- VERIFYRESPONSE OPTIONAL OUTPUTS START -->
	<!-- VerifyResponseOptionalOutputs START-->
  <xs:complexType name="VerifyResponseOptionalOutputs">
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
		<xs:element name="ProcessingDetails">
			<xs:complexType>
				<xs:sequence>
					<xs:element name="ValidDetail" type="dss:DetailType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="IndeterminateDetail" type="dss:DetailType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="InvalidDetail" type="dss:DetailType" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
		  </xs:complexType>
		</xs:element>
		<xs:element name="SigningTime">
			<xs:complexType>
				<xs:simpleContent>
					<xs:extension base="xs:dateTime">
						<xs:attribute name="ThirdPartyTimestamp" type="xs:boolean" use="required"/>
					</xs:extension>
				</xs:simpleContent>
			</xs:complexType>
		</xs:element>	
		<xs:element name="TimestampTime" type="xs:dateTime"/>
		<xs:element name="SignerIdentity" type="saml:NameIdentifierType"/>
		<xs:element name="UpdatedSignature">
			<xs:complexType>
				<xs:sequence>
					<xs:element ref="dss:SignatureObject"/>
				</xs:sequence>			
				<xs:attribute name="Type" type="xs:anyURI" use="optional"/>
			</xs:complexType>
		</xs:element>		
		<xs:element name="TransformedDocument">
			<xs:complexType>
				<xs:sequence>
					<xs:element ref="dss:XMLData"/>
				</xs:sequence>
				<xs:attribute name="WhichReference" type="xs:integer" use="required"/>			
			</xs:complexType>	
		</xs:element>
        <xs:any namespace="##other" processContents="lax"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
	<!-- VerifyResponseOptionalOutputs END -->
	<xs:complexType name="DetailType">
			<xs:sequence>
				<xs:element name="Code" type="xs:anyURI" minOccurs="0"/>
				<xs:element name="Message" type="dss:InternationalStringType" minOccurs="0"/>
				<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs ="unbounded"/>
			</xs:sequence>		
			<xs:attribute name="Type" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<!-- VERIFYRESPONSE OPTIONAL OUTPUTS END -->
		
	<!-- TIMESTAMP BEGIN -->	

	<xs:element name="Timestamp">
		<xs:complexType>
			<xs:choice>  
<!--				<xs:element ref="ds:Signature"/> -->
                <xs:element ref="dss:XMLSignature"/> 
				<xs:element name="RFC3161TimeStampToken" type="xs:base64Binary"/>
				<xs:any namespace="##other" processContents="lax"/>
			</xs:choice>		
		</xs:complexType>   
	</xs:element>
	
	<xs:element name="TstInfo">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="SerialNumber" type="xs:integer"/>
				<xs:element name="CreationTime" type="xs:dateTime"/>
				<xs:element name="Policy" type="xs:anyURI" minOccurs="0"/>
				<xs:element name="ErrorBound" type="xs:duration" minOccurs="0"/>
				<xs:element name="Ordered" type="xs:boolean" default="false" minOccurs="0"/>
				<xs:element name="TSA" type="saml:NameIdentifierType" minOccurs="0"/>
			</xs:sequence>				
		</xs:complexType>
	</xs:element>

	<!-- TIMESTAMP END -->

	<!-- REQUESTER IDENTITY BEGIN -->
	
	<xs:element name="RequesterIdentity">
	    <xs:complexType>
	        <xs:sequence>
	            <xs:element name="Name" type="saml:NameIdentifierType"/>
	            <xs:element name="SupportingInfo" type="dss:DSSAnyType" minOccurs="0"/>
	        </xs:sequence>
	    </xs:complexType>
	</xs:element>	
	
	<!-- REQUESTER IDENTITY END -->
	
</xs:schema>
← Prev in month ← Prev in thread
Next in thread → Next in month →