OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

dss message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: DSS WSDL


Nick, JC,

 

Regarding the WSDL issue, I want to give you some feedback obtained in the last months

 

  • As you already know, we have an implementation of DSS Core (CD3 version) and several other profiles (like timestamping, XAdES and our private ones XSS, Archive and Compound) running for several big clients here in Spain. At integration level (people wishing to access the services deployed in our infrastructures), we have been facing some difficulties mainly due to the typical misunderstanding: “if there’s no WSDL then there’s no web-service”. I recommend publishing the WSDL along with the XSD in the TC’s page, as this will impact in a relevant manner in the degree and speed of adoption of DSS.

 

  • In the interop work, I would consider adding a specific chapter for WSDL-based integration (we’re doing some work on that for several platforms, like Java (Axis), .NET and PHP). That is, evaluating how client technologies handle DSS WSDL.

 

  • We need to address how to handle profiles regarding to their specific WSDLs.

 

Andreas,

 

Thanks for your WSDL file. I’ve been testing it in the last days, and have several comments

 

  • With XMLBeans 2.1.0, the <xs:import> for the WSDL’s XSD is not working, and therefore XMLBeans is not generating classes. Embedding the schema into the <types> section of the WSDL allows XMLBeans to generate the classes correctly.

 

  • With Axis 1.4, I was able to generate the classes, but, as you said in your mail, the code does not compile. Luckily, the errors (changing the order of two params in the constructors of RequestBaseType and ResponseBaseType) can be fixed very easily.

 

  • With respect to the style/use for the web-service, I recommend to change rpc/literal (as present in your WSDL) to the one called “document/literal wrapped”. I have tested the DOC/LIT wrapped approach with Axis and works perfectly. The attached dss.wsdl reflects that change to doc/lit wrappedn

 

    • Example of the XML generated with the RPC/LIT (with the operation “verify”). Note that the “verify” and “verifyRequest” elements are redundant.

            <soap:envelope>

                        <soap:body>

                                   <verify>

                                               <dss:VerifyRequest>

                                                           ….

                                               </dss:VerifyRequest>

                                   <verify>

                        </soap:body>

            </soap:envelope>

 

    • Example of the XML generated with the DOC/LIT wrapped. In my opinion the most natural way to do it.

            <soap:envelope>

                        <soap:body>

                                   <dss:VerifyRequest>

                                               ….

                                   </dss:VerifyRequest>

                        </soap:body>

            </soap:envelope>

 

            If anyone needs some help with style/use for webservices, a good article for looking at the differences between styles/uses for web services can be found at:

http://www-128.ibm.com/developerworks/webservices/library/ws-whichwsdl/

 

 

Kind regards,


Carlos

 

 

Carlos González-Cadenas
Chief Security Officer

netfocus
Diagonal 188-198 Planta 2
08018 Barcelona
tel: 902 303 393
fax: 902 303 394
gonzalezcarlos@netfocus.es
www.netfocus.es

 

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
             xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
             xmlns:xs="http://www.w3.org/2001/XMLSchema";
             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
             xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
             xmlns:impl="urn:oasis:names:tc:dss:1.0:core:wsdl"
             xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema"
             targetNamespace="urn:oasis:names:tc:dss:1.0:core:wsdl">

	<types>
<xs:schema xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" 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" targetNamespace="urn:oasis:names:tc:dss:1.0:core:schema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!-- -->
	<xs:annotation>
		<xs:documentation xml:lang="en">
			This Schema defines the Digital Signature Service Core Protocols, Elements, and Bindings Working Draft 34
		</xs:documentation>
	</xs:annotation>
	<!-- -->
	<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="AnyType">
		<xs:annotation>
			<xs:documentation xml:lang="en">
				This Type type is used to match optional inputs, optional
				outputs and to make the Schema extensible where
				&lt;xs:any namespace="##other" processContents="lax"/&gt;
				is not possible due to unique particle attributtion rules.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- -->
	<xs:complexType name="InlineXMLType">
		<xs:annotation>
			<xs:documentation xml:lang="en">
				This Type clearly expresses the fact that content of InlineXML should be
				equivalent to a complete XML Document. I.e. having only one
				DocumentElement and not allowing anything but PI's and Comments before
				and after this one element. The attribute ignorePIsComments indicates
				how to deal with PI's and Comments as a number of parsers will also
				ignore them and a server will have to be able to know if PI's and
				Comments have gone missing after parsing and if the client would have
				wanted them to be signed.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:any processContents="lax"/>
		</xs:sequence>
		<xs:attribute name="ignorePIs" type="xs:boolean" use="optional" default="true"/>
		<xs:attribute name="ignoreComments" type="xs:boolean" use="optional" default="true"/>
	</xs:complexType>
	<!-- -->
	<xs:complexType name="InternationalStringType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute ref="xml:lang" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- -->
	<xs:element name="InputDocuments">
		<xs:annotation>
			<xs:documentation xml:lang="en">
				<!-- Re: UPA Problem rationale behind these changes [FW: FROM JC THROUGH KONRAD] -->
				<!--
				&lt;xs:any namespace="##other" processContents="lax"/&gt;
				allowes to introduce new top level elements from other namespaces
				to support other types of documents in the future.
-->
				<!-- Solution consistent with other places -->
				&lt;xs:element name="Other" type="dss:AnyType"/&gt;
				allowes to introduce new top level elements from namespaces including
				dss to support other types of input documents in the future.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:choice maxOccurs="unbounded">
					<xs:element ref="dss:Document"/>
					<xs:element ref="dss:TransformedData"/>
					<xs:element ref="dss:DocumentHash"/>
					<xs:element name="Other" type="dss:AnyType"/>
				</xs:choice>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:complexType name="DocumentBaseType" abstract="true">
		<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:attribute name="SchemaRefs" type="xs:IDREFS" use="optional"/>
	</xs:complexType>
	<!-- -->
	<xs:element name="Document" type="dss:DocumentType"/>
	<xs:complexType name="DocumentType">
		<xs:complexContent>
			<xs:extension base="dss:DocumentBaseType">
				<xs:sequence>
					<xs:choice>
						<xs:element name="InlineXML" type="dss:InlineXMLType"/>
						<xs:element name="Base64XML" type="xs:base64Binary"/>
						<xs:element name="EscapedXML" type="xs:string"/>
						<xs:element ref="dss:Base64Data"/>
					</xs:choice>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- -->
	<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:Transforms" minOccurs="0"/>
						<xs:element ref="ds:DigestMethod"/>
						<xs:element ref="ds:DigestValue"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:element name="TransformedData">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="dss:DocumentBaseType">
					<xs:sequence>
						<xs:element ref="ds:Transforms" minOccurs="0"/>
						<xs:element ref="dss:Base64Data"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:element name="SignatureObject" type="dss:SignatureObjectType"/>
	<xs:complexType name="SignatureObjectType">
		<xs:annotation>
			<xs:documentation xml:lang="en">
				&lt;xs:any namespace="##other" processContents="lax"/&gt; is not
				possible here to allow extensibility as more than one namespace
				(i.e. ds, dss) are used in the choice hence
				&lt;xs:element name="Other" type="dss:AnyType"/&gt;
				allowes to introduce new top level elements from namespaces including
				dss to support other types of signatures in the future.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:choice>
				<xs:element ref="ds:Signature"/>
				<xs:element ref="dss:Timestamp"/>
				<xs:element ref="dss:Base64Signature"/>
				<xs:element ref="dss:SignaturePtr"/>
				<xs:element name="Other" type="dss:AnyType"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="SchemaRefs" type="xs:IDREFS" use="optional"/>
	</xs:complexType>
	<!-- -->
	<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>
	<!-- -->
	<xs:element name="OptionalInputs" type="dss:AnyType">
		<xs:annotation>
			<xs:documentation xml:lang="en">
				"dss:AnyType"/&gt; matches any top level element of any
				namespace, hence OptionalInputs can contain 0..* top level elements.
				It should however not contain elements that are not declared as
				optional inputs by normative text of the dss-core or dss-profiles.
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- -->
	<xs:element name="OptionalOutputs" type="dss:AnyType">
		<xs:annotation>
			<xs:documentation xml:lang="en">
				"dss:AnyType"/&gt; matches any top level element of any
				namespace, hence OptionalInputs can contain 0..* top level elements.
				It should however not contain elements that are not declared as
				optional outputs by normative text of the dss-core or dss-profiles.
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- -->
	<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:AnyType" 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:complexType name="RequestBaseType">
		<xs:sequence>
			<xs:element ref="dss:OptionalInputs" 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 name="SignRequest">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="dss:RequestBaseType"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:element name="IncludeObject">
		<xs:complexType>
			<xs:attribute name="WhichDocument" type="xs:IDREF"/>
			<xs:attribute name="hasObjectTagsAndAttributesSet" type="xs:boolean" default="false"/>
			<xs:attribute name="ObjId" type="xs:string" use="optional"/>
			<xs:attribute name="createReference" type="xs:boolean" use="optional" default="true"/>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:element name="SignaturePlacement">
		<xs:complexType>
			<xs:sequence>
				<xs:choice>
					<xs:element name="XPathAfter" type="xs:string"/>
					<xs:element name="XPathFirstChildOf" type="xs:string"/>
				</xs:choice>
			</xs:sequence>
			<xs:attribute name="WhichDocument" type="xs:IDREF"/>
			<xs:attribute name="createEnvelopedSignature" type="xs:boolean" default="true"/>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:complexType name="ResponseBaseType">
		<xs:sequence>
			<xs:element ref="dss:Result"/>
			<xs:element ref="dss:OptionalOutputs" 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 name="Response" type="dss:ResponseBaseType"/>
	<!-- -->
	<xs:element name="SignResponse">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="dss:ResponseBaseType">
					<xs:sequence>
						<xs:element ref="dss:SignatureObject" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<!-- SIGNRESPONSE OPTIONAL OUTPUTS START -->
	<xs:element name="DocumentWithSignature">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dss:Document"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- SIGNRESPONSE OPTIONAL OUTPUTS END -->
	<xs:element name="VerifyRequest">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="dss:RequestBaseType">
					<xs:sequence>
						<xs:element ref="dss:SignatureObject" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:element name="VerifyResponse">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="dss:ResponseBaseType"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<!-- PROTOCOL MESSAGES END -->
	<!-- SIGNREQUEST OPTIONAL INPUTS START -->
	<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:annotation>
			<xs:documentation xml:lang="en">
				&lt;xs:any namespace="##other" processContents="lax"/&gt; is not
				possible here to allow extensibility as another namespace than
				the target namespace is used in the choice hence
				&lt;xs:element name="Other" type="dss:AnyType"/&gt;
				allowes to introduce new top level elements from namespaces including
				dss to support other types of key selectors in the future.
				Note that namespace="##other" is the complement of the target namespace.
				Note also that xml schema does not support complements for other namespaces
				or sets of namespaces which is a defect in xml schema.
				It only supports sets of namespaces which is not useful however as we cannot
				know which namespaces might be relevant in the future.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:choice>
					<xs:element ref="ds:KeyInfo"/>
					<xs:element name="Other" type="dss:AnyType"/>
				</xs:choice>
			</xs:sequence>
		</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="Property">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Identifier" type="xs:anyURI"/>
				<xs:element name="Value" type="dss:AnyType" 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="SignedReference">
		<xs:annotation>
			<xs:documentation xml:lang="en">
			RefURI overrides the of &lt;dss:Document&gt;
			</xs:documentation>
		</xs:annotation>
		<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="RefURI" type="xs:anyURI" use="optional"/>
			<xs:attribute name="RefId" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<xs:element name="Schema" type="dss:DocumentType"/>
	<!-- -->
	<xs:element name="Schemas" type="dss:SchemasType"/>
	<xs:complexType name="SchemasType">
		<xs:sequence>
			<xs:element ref="dss:Schema" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- SIGNREQUEST OPTIONAL INPUTS END -->
	<!-- VERIFYREQUEST OPTIONAL INPUTS START -->
	<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>
	<!-- VERIFYREQUEST OPTIONAL INPUTS END -->
	<!-- VERIFYRESPONSE OPTIONAL OUTPUTS START -->
	<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:Document"/>
			</xs:sequence>
			<xs:attribute name="WhichReference" type="xs:integer" use="required"/>
		</xs:complexType>
	</xs:element>
	<!-- -->
	<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" 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:sequence>
				<xs:choice>
					<xs:element ref="ds:Signature"/>
					<xs:element name="RFC3161TimeStampToken" type="xs:base64Binary"/>
					<xs:element name="Other" type="dss:AnyType"/>
				</xs:choice>
			</xs:sequence>
		</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:AnyType" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- REQUESTER IDENTITY END -->
	<xs:element name="VerifyManifestResults" type="dss:VerifyManifestResultsType"/>
	<xs:complexType name="VerifyManifestResultsType">
		<xs:sequence>
			<xs:element ref="dss:ManifestResult" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ManifestResult">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ReferenceXpath" type="xs:string"/>
				<xs:element name="Status" type="xs:anyURI"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>


	</types>

	<message name="SignRequest">
		<part name="SignRequest" element="dss:SignRequest"/>
	</message>
	<message name="SignResponse">
		<part name="SignResponse" element="dss:SignResponse"/>
	</message>
	<message name="VerifyRequest">
		<part name="VerifyRequest" element="dss:VerifyRequest"/>
	</message>
	<message name="VerifyResponse">
		<part name="VerifyResponse" element="dss:VerifyResponse"/>
	</message>
	<portType name="SOAPport">
		<operation name="dss:SignRequest">
			<input message="impl:SignRequest"/>
			<output message="impl:SignResponse"/>
		</operation>
		<operation name="dss:VerifyRequest">
			<input message="impl:VerifyRequest"/>
			<output message="impl:VerifyResponse"/>
		</operation>
	</portType>
	<portType name="HTTPport">
		<operation name="dss:SignRequest">
			<input message="impl:SignRequest"/>
			<output message="impl:SignResponse"/>
		</operation>
		<operation name="dss:VerifyRequest">
			<input message="impl:VerifyRequest"/>
			<output message="impl:VerifyResponse"/>
		</operation>
	</portType>
	<binding name="SOAPBinding" type="impl:SOAPport">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="dss:SignRequest">
			<soap:operation/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		<operation name="dss:VerifyRequest">
			<soap:operation/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
	</binding>
	<service name="digitalSigningService">
		<!--wsdlFile>/org/someone/res/mywsdl.wsdl</wsdlFile-->
		<port name="dssPortSoap" binding="impl:SOAPBinding">
			<soap:address location="http://www.myhost.com/service"/>
		</port>
	</service>
</definitions>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]