<?xml version="1.0" encoding="UTF-8"?>
<!-- Release 1.4.0 -->
<definitions name="omds3Services-1-1-0" targetNamespace="urn:omds3Services-1-1-0"
xmlns:os="urn:omds3Services-1-1-0"
xmlns:ost="urn:omds3ServiceTypes-1-1-0"
xmlns:cst="urn:omds3CommonServiceTypes-1-1-0"
xmlns:b="urn:at.vvo.omds.types.omds3types.v1-3-0.on1basisfunktionen"
xmlns:boak="urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.kfz"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:ns="http://www.w3.org/2001/XMLSchema"
xmlns:ns1="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<!-- 
	hier wird exampleVuServiceTypes.xsd referenziert, welches stellvertretend fuer eine individuelle
	Erweiterung der omdsServiceTypes.xsd einer VU steht. So besteht die Möglichkeit die Requests und 
	Responses um weitere Attribute zu erweitern 
	-->
	<types>
		<schema xmlns="http://www.w3.org/2001/XMLSchema">
			<import namespace="urn:omds3ServiceTypes-1-1-0" schemaLocation="omds3ServiceTypes.xsd"/>
			<import namespace="urn:at.vvo.omds.types.omds3types.v1-3-0.on1basisfunktionen" schemaLocation="omds3_ON1_Basisfunktionen.xsd"/>
			<import namespace="urn:at.vvo.omds.types.omds3types.v1-3-0.on2antrag.kfz" schemaLocation="omds3_ON2_Antrag_Kfz.xsd"/>
		</schema>
	</types>
	<message name="loginRequest">
		<part name="parameters" element="ost:loginRequest"/>
	</message>
	<message name="loginResponse">
		<part name="parameters" element="ost:loginResponse"/>
	</message>

	<message name="getUserDataRequest">
		<part name="parameters" element="ost:getUserDataRequest"/>
	</message>
	<message name="getUserDataResponse">
		<part name="parameters" element="ost:getUserDataResponse"/>
	</message>

	<message name="getOMDSPackageListRequest">
		<part name="parameters" element="ost:getOMDSPackageListRequest"/>
	</message>
	<message name="getOMDSPackageListResponse">
		<part name="parameters" element="ost:getOMDSPackageListResponse" />
	</message>

	<message name="getOMDSPackageRequest">
		<part name="parameters" element="ost:getOMDSPackageRequest"/>
	</message>
	<message name="getOMDSPackageResponse">
		<part name="parameters" element="ost:getOMDSPackageResponse" />
	</message>

	<!-- Vertragsbezogene Dokumente -->

	<message name="getArcImageInfosRequest">
		<part name="parameters" element="ost:getArcImageInfosRequest"/>
	</message>
	<message name="getArcImageInfosResponse">
		<part name="parameters" element="ost:getArcImageInfosResponse" />
	</message>
	<message name="getArcImageRequest">
		<part name="parameters" element="ost:getArcImageRequest"/>
	</message>
	<message name="getArcImageResponse">
		<part name="parameters" element="ost:getArcImageResponse" />
	</message>

	<!-- Auskunft ueber Dokumente -->
	<message name="GetNumberOfDocumentsRequestMsg">
		<part name="parameters" element="b:GetNumberOfDocumentsRequest"/>
	</message>
	<message name="GetNumberOfDocumentsResponseMsg">
		<part name="parameters" element="b:GetNumberOfDocumentsResponse" />
	</message>
	<message name="GetDocumentsOfObjectRequestMsg">
		<part name="parameters" element="b:GetDocumentsOfObjectRequest"/>
	</message>
	<message name="GetDocumentsOfObjectResponseMsg">
		<part name="parameters" element="b:GetDocumentsOfObjectResponse" />
	</message>
	<message name="GetDocumentsOfPeriodRequestMsg">
		<part name="parameters" element="b:GetDocumentsOfPeriodRequest"/>
	</message>
	<message name="GetDocumentsOfPeriodResponseMsg">
		<part name="parameters" element="b:GetDocumentsOfPeriodResponse" />
	</message>

	<!-- Deep Links -->

	<message name="deepLinkClaimRequest">
		<part name="parameters" element="ost:getDeepLinkClaimRequest"/>
	</message>
	<message name="deepLinkClaimResponse">
		<part name="parameters" element="ost:getDeepLinkClaimResponse" />
	</message>

	<message name="deepLinkPartnerRequest">
		<part name="parameters" element="ost:getDeepLinkPartnerRequest"/>
	</message>
	<message name="deepLinkPartnerResponse">
		<part name="parameters" element="ost:getDeepLinkPartnerResponse" />
	</message>
	<message name="deepLinkOfferRequest">
		<part name="parameters" element="ost:getDeepLinkOfferRequest"/>
	</message>
	<message name="deepLinkOfferResponse">
		<part name="parameters" element="ost:getDeepLinkOfferResponse" />
	</message>
	<message name="deepLinkPolicyRequest">
		<part name="parameters" element="ost:getDeepLinkPolicyRequest"/>
	</message>
	<message name="deepLinkPolicyResponse">
		<part name="parameters" element="ost:getDeepLinkPolicyResponse" />
	</message>

	
	<!-- Kraftfahrt -->
	<message name="CalculateKfzRequestMsg">
		<part name="parameters" element="boak:CalculateKfzRequest"/>
	</message>
	<message name="CalculateKfzResponseMsg">
		<part name="parameters" element="boak:CalculateKfzResponse"/>
	</message>
	<message name="CreateOfferKfzRequestMsg">
		<part name="parameters" element="boak:CreateOfferKfzRequest"/>
	</message>
	<message name="CreateOfferKfzResponseMsg">
		<part name="parameters" element="boak:CreateOfferKfzResponse"/>
	</message>
	<message name="CreateApplicationKfzRequestMsg">
		<part name="parameters" element="boak:CreateApplicationKfzRequest"/>
	</message>
	<message name="CreateApplicationKfzResponseMsg">
		<part name="parameters" element="boak:CreateApplicationKfzResponse"/>
	</message>
	<message name="SubmitApplicationKfzRequestMsg">
		<part name="parameters" element="boak:SubmitApplicationKfzRequest"/>
	</message>
	<message name="SubmitApplicationKfzResponseMsg">
		<part name="parameters" element="boak:SubmitApplicationKfzResponse"/>
	</message>
	
	<!-- Fehler -->
	<message name="ServiceFaultMsg">
		<part name="parameters" element="cst:serviceFault" />
	</message>


	<portType name="omdsServicePortType">

		<operation name="login">
			<input name="loginRequest" message="os:loginRequest" />
			<output name="loginResponse" message="os:loginResponse" />
            <fault name="loginFault" message="os:ServiceFaultMsg" />
        </operation>

		<operation name="getUserData">
			<input name="getUserDataRequest" message="os:getUserDataRequest" />
			<output name="getUserDataResponse" message="os:getUserDataResponse" />
			<fault name="getUserDataFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="getOMDSPackageList">
			<input name="getOMDSPackageListRequest" message="os:getOMDSPackageListRequest" />
			<output name="getOMDSPackageListResponse" message="os:getOMDSPackageListResponse" />
			<fault name="getOMDSPackageListFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="getOMDSPackage">
			<input name="getOMDSPackageRequest" message="os:getOMDSPackageRequest" />
			<output name="getOMDSPackageResponse" message="os:getOMDSPackageResponse" />
			<fault name="getOMDSPackageFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="getArcImageInfos">
			<input name="getArcImageInfosRequest" message="os:getArcImageInfosRequest" />
			<output name="getArcImageInfosResponse" message="os:getArcImageInfosResponse" />
			<fault name="getArcImageInfosFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="getArcImage">
			<input name="getArcImageRequest" message="os:getArcImageRequest" />
			<output name="getArcImageResponse" message="os:getArcImageResponse" />
			<fault name="getArcImageFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="deepLinkClaim">
			<input name="deepLinkClaimRequest" message="os:deepLinkClaimRequest" />
			<output name="deepLinkClaimResponse" message="os:deepLinkClaimResponse" />
			<fault name="deepLinkClaimFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="deepLinkPartner">
			<input name="deepLinkPartnerRequest" message="os:deepLinkPartnerRequest" />
			<output name="deepLinkPartnerResponse" message="os:deepLinkPartnerResponse" />
			<fault name="deepLinkPartnerFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="deepLinkOffer">
			<input name="deepLinkOfferRequest" message="os:deepLinkOfferRequest" />
			<output name="deepLinkOfferResponse" message="os:deepLinkOfferResponse" />
			<fault name="deepLinkOfferFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="deepLinkPolicy">
			<input name="deepLinkPolicyRequest" message="os:deepLinkPolicyRequest" />
			<output name="deepLinkPolicyResponse" message="os:deepLinkPolicyResponse" />
			<fault name="deepLinkPolicyFault" message="os:ServiceFaultMsg" />
		</operation>
		<operation name="getNumberOfDocuments">
			<input name="GetNumberOfDocumentsRequestPort" message="os:GetNumberOfDocumentsRequestMsg" />
			<output name="GetNumberOfDocumentsResponsePort" message="os:GetNumberOfDocumentsResponseMsg" />
			<fault name="GetNumberOfDocumentsFault" message="os:ServiceFaultMsg" />
		</operation>
		<operation name="getDocumentsOfObject">
			<input name="GetDocumentsOfObjectRequestPort" message="os:GetDocumentsOfObjectRequestMsg" />
			<output name="GetDocumentsOfObjectResponsePort" message="os:GetDocumentsOfObjectResponseMsg" />
			<fault name="GetDocumentsOfObjectFault" message="os:ServiceFaultMsg" />
		</operation>
		<operation name="getDocumentsOfPeriod">
			<input name="GetDocumentsOfPeriodRequestPort" message="os:GetDocumentsOfPeriodRequestMsg" />
			<output name="GetDocumentsOfPeriodResponsePort" message="os:GetDocumentsOfPeriodResponseMsg" />
			<fault name="GetDocumentsOfPeriodFault" message="os:ServiceFaultMsg" />
		</operation>

		<operation name="calculateKfz">
			<input name="CalculateKfzRequestPort" message="os:CalculateKfzRequestMsg"/>
			<output name="CalculateKfzResponsePort" message="os:CalculateKfzResponseMsg"/>
			<fault name="CalculateKfzFault" message="os:ServiceFaultMsg"/>
		</operation>
		<operation name="createOfferKfz">
			<input name="CreateOfferKfzRequestPort" message="os:CreateOfferKfzRequestMsg"/>
			<output name="CreateOfferKfzResponsePort" message="os:CreateOfferKfzResponseMsg"/>
			<fault name="CreateOfferKfzFault" message="os:ServiceFaultMsg"/>
		</operation>
		<operation name="createApplicationKfz">
			<input name="CreateApplicationKfzRequestPort" message="os:CreateApplicationKfzRequestMsg"/>
			<output name="CreateApplicationKfzResponsePort" message="os:CreateApplicationKfzResponseMsg"/>
			<fault name="CreateApplicationKfzFault" message="os:ServiceFaultMsg"/>
		</operation>
		<operation name="submitApplicationKfz">
			<input name="SubmitApplicationKfzRequestPort" message="os:SubmitApplicationKfzRequestMsg"/>
			<output name="SubmitApplicationKfzResponsePort" message="os:SubmitApplicationKfzResponseMsg"/>
			<fault name="SubmitApplicationKfzFault" message="os:ServiceFaultMsg"/>
		</operation>

	</portType>

	<binding name="omdsServicePortBinding" type="os:omdsServicePortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />


		<!-- Referenz auf jeweilige Security Policy für alle Methoden, in diesem Fall eine UsernameToken-Policy -->
 		<wsp:PolicyReference URI="#OMDSUsernameTokenPolicy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"/>


		<operation name="login">
			<soap:operation soapAction="urn:login" style="document" />
			<input name="loginRequest">
				<soap:body use="literal" />
			</input>
			<output name="loginResponse">
				<soap:body use="literal" />
			</output>
			<fault name="loginFault">
				<soap:fault name="loginFault" use="literal"/>
			</fault>
		</operation>

		<operation name="getUserData">
			<soap:operation soapAction="urn:getUserData" style="document" />
			<input name="getUserDataRequest">
				<soap:body use="literal" />
			</input>
			<output name="getUserDataResponse">
				<soap:body use="literal" />
			</output>
			<fault name="getUserDataFault">
				<soap:fault name="getUserDataFault" use="literal"/>
			</fault>
		</operation>

		<operation name="getOMDSPackageList">
			<soap:operation soapAction="urn:getOMDSPackageList" style="document" />
			<input name="getOMDSPackageListRequest">
				<soap:body use="literal" />
			</input>
			<output name="getOMDSPackageListResponse">
				<soap:body use="literal" />
			</output>
			<fault name="getOMDSPackageListFault">
				<soap:fault name="getOMDSPackageListFault" use="literal"/>
			</fault>
		</operation>

		<operation name="getOMDSPackage">
			<soap:operation soapAction="urn:getOMDSPackage" style="document" />
			<input name="getOMDSPackageRequest">
				<soap:body use="literal" />
			</input>
			<output name="getOMDSPackageResponse">
				<soap:body use="literal" />
			</output>
			<fault name="getOMDSPackageFault">
				<soap:fault name="getOMDSPackageFault" use="literal"/>
			</fault>
		</operation>

		<!-- Vertragsbezogene Dokumente ArcImage -->

		<operation name="getArcImageInfos">
			<soap:operation soapAction="urn:getArcImageInfos" style="document" />
			<input name="getArcImageInfosRequest">
				<soap:body use="literal" />
			</input>
			<output name="getArcImageInfosResponse">
				<soap:body use="literal" />
			</output>
			<fault name="getArcImageInfosFault">
				<soap:fault name="getArcImageInfosFault" use="literal"/>
			</fault>
		</operation>

		<operation name="getArcImage">
			<soap:operation soapAction="urn:getArcImage" style="document" />
			<input name="getArcImageRequest">
				<soap:body use="literal" />
			</input>
			<output name="getArcImageResponse">
				<soap:body use="literal" />
			</output>
			<fault name="getArcImageFault">
				<soap:fault name="getArcImageFault" use="literal"/>
			</fault>
		</operation>

		<!-- Deep-Links -->

		<operation name="deepLinkClaim">
			<soap:operation soapAction="urn:deepLinkClaim" style="document" />
			<input name="deepLinkClaimRequest">
				<soap:body use="literal" />
			</input>
			<output name="deepLinkClaimResponse">
				<soap:body use="literal" />
			</output>
			<fault name="deepLinkClaimFault">
				<soap:fault name="deepLinkClaimFault" use="literal"/>
			</fault>
		</operation>

		<operation name="deepLinkPartner">
			<soap:operation soapAction="urn:deepLinkPartner" style="document" />
			<input name="deepLinkPartnerRequest">
				<soap:body use="literal" />
			</input>
			<output name="deepLinkPartnerResponse">
				<soap:body use="literal" />
			</output>
			<fault name="deepLinkPartnerFault">
				<soap:fault name="deepLinkPartnerFault" use="literal"/>
			</fault>
		</operation>

		<operation name="deepLinkOffer">
			<soap:operation soapAction="urn:deepLinkOffer" style="document" />
			<input name="deepLinkOfferRequest">
				<soap:body use="literal" />
			</input>
			<output name="deepLinkOfferResponse">
				<soap:body use="literal" />
			</output>
			<fault name="deepLinkOfferFault">
				<soap:fault name="deepLinkOfferFault" use="literal"/>
			</fault>
		</operation>

		<operation name="deepLinkPolicy">
			<soap:operation soapAction="urn:deepLinkPolicy" style="document" />
			<input name="deepLinkPolicyRequest">
				<soap:body use="literal" />
			</input>
			<output name="deepLinkPolicyResponse">
				<soap:body use="literal" />
			</output>
			<fault name="deepLinkPolicyFault">
				<soap:fault name="deepLinkPolicyFault" use="literal"/>
			</fault>
		</operation>

		<!-- Dokumentenhandling -->

		<operation name="getNumberOfDocuments">
			<soap:operation soapAction="urn:getNumberOfDocuments" style="document" />
			<input name="GetNumberOfDocumentsRequestPort">
				<soap:body use="literal" />
			</input>
			<output name="GetNumberOfDocumentsResponsePort">
				<soap:body use="literal" />
			</output>
			<fault name="GetNumberOfDocumentsFault">
				<soap:fault name="GetNumberOfDocumentsFault" use="literal"/>
			</fault>
		</operation>

		<!-- in 1.3 noch getDocumentInfos wurde aufgetrennt in getDocumentsOfObject und getDocumentsOfPeriod -->
		<operation name="getDocumentsOfObject">
			<soap:operation soapAction="urn:getDocumentsOfObject" style="document" />
			<input name="GetDocumentsOfObjectRequestPort">
				<soap:body use="literal" />
			</input>
			<output name="GetDocumentsOfObjectResponsePort">
				<soap:body use="literal" />
			</output>
			<fault name="GetDocumentsOfObjectFault">
				<soap:fault name="GetDocumentsOfObjectFault" use="literal"/>
			</fault>
		</operation>

		<operation name="getDocumentsOfPeriod">
			<soap:operation soapAction="urn:getDocumentsOfPeriod" style="document" />
			<input name="GetDocumentsOfPeriodRequestPort">
				<soap:body use="literal" />
			</input>
			<output name="GetDocumentsOfPeriodResponsePort">
				<soap:body use="literal" />
			</output>
			<fault name="GetDocumentsOfPeriodFault">
				<soap:fault name="GetDocumentsOfPeriodFault" use="literal"/>
			</fault>
		</operation>

		<!-- Berechnung, Offert, Antrag KFZ -->
		<operation name="calculateKfz">
			<soap:operation soapAction="urn:calculateKfz" style="document"/>
			<input name="CalculateKfzRequestPort">
				<soap:body use="literal"/>
			</input>
			<output name="CalculateKfzResponsePort">
				<soap:body use="literal"/>
			</output>
			<fault name="CalculateKfzFault">
				<soap:fault name="CalculateKfzFault" use="literal"/>
			</fault>
		</operation>
		<operation name="createOfferKfz">
			<soap:operation soapAction="urn:createOfferKfz" style="document"/>
			<input name="CreateOfferKfzRequestPort">
				<soap:body use="literal"/>
			</input>
			<output name="CreateOfferKfzResponsePort">
				<soap:body use="literal"/>
			</output>
			<fault name="CreateOfferKfzFault">
				<soap:fault name="CreateOfferKfzFault" use="literal"/>
			</fault>
		</operation>
		<operation name="createApplicationKfz">
			<soap:operation soapAction="urn:createApplicationKfz" style="document"/>
			<input name="CreateApplicationKfzRequestPort">
				<soap:body use="literal"/>
			</input>
			<output name="CreateApplicationKfzResponsePort">
				<soap:body use="literal"/>
			</output>
			<fault name="CreateApplicationKfzFault">
				<soap:fault name="CreateApplicationKfzFault" use="literal"/>
			</fault>
		</operation>
		<operation name="submitApplicationKfz">
			<soap:operation soapAction="urn:submitApplicationKfz" style="document"/>
			<input name="SubmitApplicationKfzRequestPort">
				<soap:body use="literal"/>
			</input>
			<output name="SubmitApplicationKfzResponsePort">
				<soap:body use="literal"/>
			</output>
			<fault name="SubmitApplicationKfzFault">
				<soap:fault name="SubmitApplicationKfzFault" use="literal"/>
			</fault>
		</operation>
	</binding>

	<service name="omdsService">
		<port name="omdsServicePort" binding="os:omdsServicePortBinding">
			<soap:address location="http://localhost:80/omdsServicePort" />
		</port>
	</service>


	<wsp:Policy wsu:Id="OMDSUsernameTokenPolicy" xmlns:wsp="http://www.w3.org/ns/ws-policy"
	    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
	    xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
		<wsp:ExactlyOne>
			<wsp:All>
				<!-- Def HTTPS: Erzwingt Ende-zu-Ende Verschluesselung -->
				<!-- Dies muss allerdings nur aktiviert werden, wenn nicht andere Infrastruktur eine sichere Https-Verbindung gewaehrleistet -->
				<sp:TransportBinding>
					<wsp:Policy>
						<sp:TransportToken>
							<wsp:Policy>
								<sp:HttpsToken RequireClientCertificate="false"/>
							</wsp:Policy>
						</sp:TransportToken>
					</wsp:Policy>
				</sp:TransportBinding>

				<!-- schreibe Username-Token mit Passwort-Digest (Hash) vor -->
				<sp:SupportingTokens>
					<wsp:Policy>
						<sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
							<wsp:Policy>
								<sp:HashPassword/>
							</wsp:Policy>
						</sp:UsernameToken>
					</wsp:Policy>
				</sp:SupportingTokens>
			</wsp:All>
		</wsp:ExactlyOne>
	</wsp:Policy>


</definitions>
