19442xmlSchema.xsd 10.2 KB
Newer Older
Laurent Velez's avatar
Laurent Velez committed
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:etsival="http://uri.etsi.org/19442/v1.1.1#" xmlns:etsivr="http://uri.etsi.org/19102/v1.2.1#" targetNamespace="http://uri.etsi.org/19442/v1.1.1#" xmlns:dss2="http://docs.oasis-open.org/dss-x/ns/core" xmlns:dsb="http://docs.oasis-open.org/dss-x/ns/base" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://docs.oasis-open.org/dss-x/ns/core" schemaLocation="http://docs.oasis-open.org/dss-x/dss-core/v2.0/csprd01/schema/oasis-dss-core-schema-v2.0.xsd"/>
	<xs:import namespace="http://docs.oasis-open.org/dss-x/ns/base" schemaLocation="http://docs.oasis-open.org/dss-x/dss-core/v2.0/csprd01/schema/oasis-dss-base-schema.xsd"/>
	<xs:import namespace="http://uri.etsi.org/19102/v1.2.1#" schemaLocation="https://forge.etsi.org/rep/esi/x19_10202_validation_report/raw/v1.2.1/1910202xmlSchema.xsd"/>
	<!--
	===============================================================================
	=======================REDEFINITIONS OF DSS-X TYPES==============================
	===============================================================================
	-->
	<xs:redefine schemaLocation="foo_dss_core.xsd">
		<xs:complexType name="dss2:OptionalInputsVerifyType">
			<xs:complexContent>
				<xs:extension base="dss2:OptionalInputsVerifyType">
					<xs:sequence>
						<xs:element ref="etsival:ProcessSignatures" minOccurs="0"/>
						<xs:element ref="etsival:UseSignatureValidationPolicy" minOccurs="0"/>
						<xs:element ref="etsival:ReturnValidationReport" minOccurs="0"/>
						<xs:element ref="etsival:ReturnAugmentedSignature" minOccurs="0"/>
						<xs:element ref="etsival:ProofsOfExistence" minOccurs="0"/>
						<xs:element name="TSTokensQualityLevel" type="xs:anyURI" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
		<xs:complexType name="dss2:OptionalOutputsVerifyType">
			<xs:complexContent>
				<xs:extension base="dss2:OptionalOutputsVerifyType">
					<xs:sequence>
						<xs:element ref="etsival:ValidationReport" minOccurs="0"/>
						<xs:element ref="etsival:ResultsForOneSignature" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="etsival:AppliedSignatureValidationPolicy" minOccurs="0"/>
						<xs:element ref="etsival:AvailableSignatureValidationPolicies" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
		<xs:complexType name="dss2:DocumentHashType">
			<xs:complexContent>
				<xs:extension base="dss2:DocumentHashType">
					<xs:sequence>
						<xs:element name="PAdESFieldName" type="xs:string" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:redefine>
	<!--
	===============================================================================
	||                                                            VALIDATION PROTOCOL                                                                        ||
	===============================================================================
	-->
	<!--
	===============================================================================
	======================REQUEST MESSAGE COMPONENTS==========================
	===============================================================================
	-->
	<!--
	========================= SignaturesReferencesType=============================
	-->
	<xs:element name="ProcessSignatures" type="etsival:SignaturesReferencesType"/>
	<xs:complexType name="SignaturesReferencesType">
		<xs:sequence>
			<xs:element ref="etsival:DigestReferences" minOccurs="0"/>
			<xs:element ref="etsivr:XAdESSignaturePtr" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PAdESFieldName" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="DigestReferences" type="etsival:DigestReferencesType"/>
	<xs:complexType name="DigestReferencesType">
		<xs:sequence>
			<xs:element name="CanonicalizationMethod" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="DigestMethod" type="xs:anyURI"/>
			<xs:element name="DigestValue" type="xs:base64Binary" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!--
	========================= UseSignatureValidationPolicyType=============================
	-->
	<xs:element name="UseSignatureValidationPolicy" type="etsival:UseSignatureValidationPolicyType"/>
	<xs:complexType name="UseSignatureValidationPolicyType">
		<xs:sequence>
			<xs:element name="SignatureValidationPolicyID" type="xs:anyURI"/>
			<xs:element name="SignaturePolicyLocation" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!--
	========================= ReturnValidationReport=============================
	-->
	<xs:element name="ReturnValidationReport" type="etsival:ReturnValidationReportType"/>
	<xs:complexType name="ReturnValidationReportType">
		<xs:sequence>
			<xs:element name="AsSpecifiedBy" type="xs:anyURI"/>
		</xs:sequence>
		<xs:attribute name="SignIt" type="xs:boolean" default="false"/>
	</xs:complexType>
	<!--
	========================= ProofsOfExistence=============================
	-->
	<xs:element name="ProofsOfExistence" type="etsival:ProofsOfExistenceType"/>
	<xs:complexType name="ProofsOfExistenceType">
		<xs:sequence>
			<xs:element ref="etsival:ProofOfExistence" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ProofOfExistence" type="etsival:ProofOfExistenceType"/>
	<xs:complexType name="ProofOfExistenceType">
		<xs:sequence>
			<xs:element name="Time" type="xs:dateTime"/>
			<xs:element name="SignatureReference" type="etsivr:SignatureReferenceType"/>
		</xs:sequence>
	</xs:complexType>
	<!--
	===============================================================================
	======================RESPONSE MESSAGE COMPONENTS===========================
	===============================================================================
	-->
	<!--
	===========================ResultsForOneSignature=============================
	-->
	<xs:element name="ResultsForOneSignature" type="etsival:ResultsForOneSignatureType"/>
	<xs:complexType name="ResultsForOneSignatureType">
		<xs:sequence>
			<xs:element ref="dsb:Result"/>
			<xs:element name="SignatureReference" type="etsivr:SignatureReferenceType" minOccurs="0"/>
			<xs:element ref="dss2:SignerIdentity" minOccurs="0"/>
			<xs:element ref="dss2:SigningTimeInfo" minOccurs="0"/>
			<xs:element ref="etsival:ValidationReport" minOccurs="0"/>
			<xs:element ref="dss2:VerifyManifestResults" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dss2:TransformedDocument" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="etsival:AugmentSignatureResult" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!--
	===========================AppliedSignatureValidationPolicy=============================
	-->
	<xs:element name="AppliedSignatureValidationPolicy" type="xs:anyURI"/>
	<!--
	===========================AvailableSignatureValidationPoliciesType=============================
	-->
	<xs:element name="AvailableSignatureValidationPolicies" type="etsival:AvailableSignatureValidationPoliciesType"/>
	<xs:complexType name="AvailableSignatureValidationPoliciesType">
		<xs:sequence>
			<xs:element name="AvailableSignatureValidationPolicyID" type="xs:anyURI" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!--
	====================================ValidationReport======================================
	-->
	<xs:element name="ValidationReport" type="etsival:ValidationReportContainerType"/>
	<xs:complexType name="ValidationReportContainerType">
		<xs:choice>
			<xs:element name="ETSITS11910202XMLReport" type="etsivr:ValidationReportType" minOccurs="0"/>
			<xs:element name="other" type="xs:base64Binary" minOccurs="0"/>
		</xs:choice>
		<xs:attribute name="isSigned" type="xs:boolean" use="required"/>
		<xs:attribute name="Encoding" type="xs:string" use="optional"/>
		<xs:attribute name="SpecificationId" type="xs:anyURI" use="optional"/>
	</xs:complexType>
	<!--
	===============================================================================
	||                                                            AUGMENTATION PROTOCOL                                                                 ||
	===============================================================================
	-->
	<!--
	===========================AugmentRequest=============================
	-->
	<xs:element name="AugmentRequest" type="etsival:AugmentRequestType"/>
	<xs:complexType name="AugmentRequestType">
		<xs:complexContent>
			<xs:extension base="dss2:RequestBaseType">
				<xs:sequence>
					<xs:element ref="dss2:InputDocuments" minOccurs="0"/>
					<xs:element name="AdditionalInputs" type="dss2:OptionalInputsVerifyType"/>
					<xs:element ref="dss2:SignatureObject" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--
	===========================AugmentRequest=============================
	-->
	<xs:element name="ReturnAugmentedSignature" type="etsival:ReturnAugmentedSignatureType"/>
	<xs:complexType name="ReturnAugmentedSignatureType">
		<xs:attribute name="Level" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<!--
	===========================AugmentResponse=============================
	-->
	<xs:element name="AugmentResponse" type="etsival:AugmentResponseType"/>
	<xs:complexType name="AugmentResponseType">
		<xs:complexContent>
			<xs:extension base="dsb:ResponseBaseType">
				<xs:sequence>
					<xs:element ref="etsival:AugmentSignatureResult" maxOccurs="unbounded"/>
					<xs:element ref="dss2:DocumentWithSignature" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="AugmentSignatureResult" type="etsival:AugmentSignatureResultType"/>
	<xs:complexType name="AugmentSignatureResultType">
		<xs:sequence>
			<xs:element ref="dsb:Result"/>
			<xs:element name="SignatureRefInRequest" type="etsivr:SignatureReferenceType" minOccurs="0"/>
			<xs:element ref="dss2:AugmentedSignature" minOccurs="0"/>
			<xs:element name="PAdESFieldName" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>