<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: PartManagement.wsdl,v 1.5 2008/06/11 14:41:49 robbod Exp $ -->
<!--
	PLCS PLM Webservices 
	Author: 		Jonas Rosen, Eurostep Group
	Owner:  	Developed by Eurostep and supplied to PLCS OASIS TC.
	Purpose: 	PLCS PLM Part management services
	Specification document:: ../../docs/PLCSPLMWebServicesDefinitions.doc
-->
<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:plm="http://www.plcs.org/PLMServices" xmlns:h="http://www.plcs.org/Headers" xmlns:part="http://www.plcs.org/Part" xmlns:sys="http://www.plcs.org/System" xmlns:systypes="http://www.plcs.org/System/Types" xmlns:plcstypes="http://www.plcs.org/PLMServices/Types" targetNamespace="http://www.plcs.org/PLMServices">
	<types>
		<xs:schema elementFormDefault="qualified">
			<xs:import namespace="http://www.plcs.org/Headers" schemaLocation="../xsd/Headers.xsd"/>
			<xs:import namespace="http://www.plcs.org/Part" schemaLocation="../xsd/Part/PartMsg.xsd"/>
			<!--<xs:import namespace="http://www.plcs.org/System/Types" schemaLocation="../xsd/System.xsd"/>-->
		</xs:schema>
	</types>
	<message name="PartStructureFilterHeader">
		<part name="FilterHeader" element="h:FilterHeader"/>
	</message>
	<message name="AuthenticateAuthHeader">
		<part name="AuthHeader" element="h:AuthHeader"/>
	</message>
	<message name="UpdatePartHeader">
		<part name="UpdatePartHeader" element="h:UpdatePartHeader"/>
	</message>
	<message name="UpdatePart_versionHeader">
		<part name="UpdatePart_versionHeader" element="h:UpdatePart_versionHeader"/>
	</message>
	<message name="UpdateNext_assembly_usageHeader">
		<part name="UpdateNext_assembly_usageHeader" element="h:UpdateNext_assembly_usageHeader"/>
	</message>
	<message name="Fel">
		<part name="parameter" type="xs:string"/>
	</message>
	<message name="CreatePartSoapIn">
		<part name="parameters" element="part:CreatePart"/>
	</message>
	<message name="CreatePartSoapOut">
		<part name="parameters" element="part:CreatePartResponse"/>
	</message>
	<message name="UpdatePartSoapIn">
		<part name="parameters" element="part:UpdatePart"/>
	</message>
	<message name="UpdatePartSoapOut">
		<part name="parameters" element="part:UpdatePartResponse"/>
	</message>
	<message name="CreatePart_versionSoapIn">
		<part name="parameters" element="part:CreatePart_version"/>
	</message>
	<message name="CreatePart_versionSoapOut">
		<part name="parameters" element="part:CreatePart_versionResponse"/>
	</message>
	<message name="UpdatePart_versionSoapIn">
		<part name="parameters" element="part:UpdatePart_version"/>
	</message>
	<message name="UpdatePart_versionSoapOut">
		<part name="parameters" element="part:UpdatePart_versionResponse"/>
	</message>
	<message name="GetAssemblyStructureSoapIn">
		<part name="parameters" element="part:GetAssemblyStructure"/>
	</message>
	<message name="GetAssemblyStructureSoapOut">
		<part name="parameters" element="part:GetAssemblyStructureResponse"/>
	</message>
	<message name="WhereUsedSoapIn">
		<part name="parameters" element="part:WhereUsed"/>
	</message>
	<message name="WhereUsedSoapOut">
		<part name="parameters" element="part:WhereUsedResponse"/>
	</message>
	<message name="CreateNext_assembly_usageSoapIn">
		<part name="parameters" element="part:CreateNext_assembly_usage"/>
	</message>
	<message name="CreateNext_assembly_usageSoapOut">
		<part name="parameters" element="part:CreateNext_assembly_usageResponse"/>
	</message>
	<message name="UpdateNext_assembly_usageSoapIn">
		<part name="parameters" element="part:UpdateNext_assembly_usage"/>
	</message>
	<message name="UpdateNext_assembly_usageSoapOut">
		<part name="parameters" element="part:UpdateNext_assembly_usageResponse"/>
	</message>
	<message name="RemoveNext_assembly_usageSoapIn">
		<part name="parameters" element="part:RemoveNext_assembly_usage"/>
	</message>
	<message name="RemoveNext_assembly_usageSoapOut">
		<part name="parameters" element="part:RemoveNext_assembly_usageResponse"/>
	</message>
	<portType name="PartManagementSoap">
		<operation name="CreatePart">
			<input message="plm:CreatePartSoapIn"/>
			<output message="plm:CreatePartSoapOut"/>
			<!--<fault name="FaultName" message="Fault"/>-->
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="UpdatePart">
			<input message="plm:UpdatePartSoapIn"/>
			<output message="plm:UpdatePartSoapOut"/>
			<!--<fault name="FaultName" message="Fault"/>-->
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="CreatePart_version">
			<input message="plm:CreatePart_versionSoapIn"/>
			<output message="plm:CreatePart_versionSoapOut"/>
			<!--<fault name="FaultName" message="Fault"/>-->
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="UpdatePart_version">
			<input message="plm:UpdatePart_versionSoapIn"/>
			<output message="plm:UpdatePart_versionSoapOut"/>
			<!--<fault name="FaultName" message="Fault"/>-->
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="GetAssemblyStructure">
			<input message="plm:GetAssemblyStructureSoapIn"/>
			<output message="plm:GetAssemblyStructureSoapOut"/>
			<!--<fault name="FaultName" message="Fault"/>-->
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="WhereUsed">
			<input message="plm:WhereUsedSoapIn"/>
			<output message="plm:WhereUsedSoapOut"/>
			<!--<fault name="FaultName" message="Fault"/>-->
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="CreateNext_assembly_usage">
			<input message="plm:CreateNext_assembly_usageSoapIn"/>
			<output message="plm:CreateNext_assembly_usageSoapOut"/>
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="UpdateNext_assembly_usage">
			<input message="plm:UpdateNext_assembly_usageSoapIn"/>
			<output message="plm:UpdateNext_assembly_usageSoapOut"/>
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
		<operation name="RemoveNext_assembly_usage">
			<input message="plm:RemoveNext_assembly_usageSoapIn"/>
			<output message="plm:RemoveNext_assembly_usageSoapOut"/>
			<!--<fault name="FaultName" message="plm:Fel"/>-->
		</operation>
	</portType>
	<binding name="PartManagementSoap" type="plm:PartManagementSoap">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="CreatePart">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/CreatePart" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="UpdatePart">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/UpdatePart" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
				<soap:header message="plm:UpdatePartHeader" part="UpdatePartHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="CreatePart_version">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/CreatePart_version" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="UpdatePart_version">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/UpdatePart_version" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
				<soap:header message="plm:UpdatePart_versionHeader" part="UpdatePart_versionHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="GetAssemblyStructure">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/GetAssemblyStructure" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
				<soap:header message="plm:PartStructureFilterHeader" part="FilterHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="WhereUsed">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/WhereUsed" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
				<soap:header message="plm:PartStructureFilterHeader" part="FilterHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="CreateNext_assembly_usage">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/CreateNext_assembly_usage" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="UpdateNext_assembly_usage">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/UpdateNext_assembly_usage" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
				<soap:header message="plm:UpdateNext_assembly_usageHeader" part="UpdateNext_assembly_usageHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
		<operation name="RemoveNext_assembly_usage">
			<soap:operation soapAction="http://www.plcs.org/PLMServices/PartManagement/RemoveNext_assembly_usage" style="document"/>
			<input>
				<soap:body use="literal"/>
				<soap:header message="plm:AuthenticateAuthHeader" part="AuthHeader" use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
			<!--<fault name="FaultName"/>-->
		</operation>
	</binding>
	<service name="PartManagement">
		<port name="PartManagementSoap" binding="plm:PartManagementSoap">
			<soap:address location="http://www.share-a-space.com/PLCSPLMServices/Service.asmx"/>
		</port>
	</service>
	<!--
		These are headers 
     -->
	<!--
		These are the messages, input and output.
    -->
	<!--
	 The service tag can be omitted.
	-->
	<!--
		Here comes error messages
	-->
	<!--
		Here comes Authenticate messages
	-->
	<!--
		Here comes project information
	-->
	<!--<message name="AutenticateSoapIn">
		<part name="parameters" element="sys:Authenticate"/>
		<part name="user" type="xs:string"/>
		<part name="password" type="xs:string"/>
		<part name="project" type="xs:string"/>
	</message>
	<message name="AutenticateSoapOut">
		<xs:complexType/>
	</message>-->
</definitions>
