<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.plcs.org/Query" xmlns:plcstypes="http://www.plcs.org/PLMServices/Types" xmlns:systypes="http://www.plcs.org/System/Types" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.plcs.org/Query" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!--<xs:import namespace="http://www.plcs.org/System/Types" schemaLocation="..\..\..\ws\xsd\System.xsd"/>-->
	<xs:import namespace="http://www.plcs.org/PLMServices/Types" schemaLocation="..\..\..\ws\xsd\types.xsd"/>
	<xs:element name="LoadPLM_object">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="key" type="plcstypes:KeyType"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="LoadPLM_objectResponse">
		<xs:annotation>
			<xs:documentation>This is the response message when having requested to Load characteristics for a PLM object instance.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="PLM_object" type="plcstypes:PLM_object"/>
				<!--<xs:element name="instance" type="plcstypes:PLM_object"/>-->
				<!--<xs:element minOccurs="0" maxOccurs="1" name="GetProjectsResult" xmlns:q1="http://www.plcs.org/System/Types" type="q1:ArrayOfProjectInfo"/>-->
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Search">
		<xs:annotation>
			<xs:documentation>The search operates on a number of given business object types given by the search criteria header(FilterHeader). The primary search criteria can be: identifier(id), name, or description. These primary search criterias can be empty, or contain wildcard charachters(depends on the underlaying system implementation). Additional search criterias are provided in the FilterHeader, such as specifc business object instances being related(the attribute Search Objects), i.e. classification, a property (of a certain kind), or a person/organization.

Each resulting business object instance is loaded with its default characteristics.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="xs:string"/>
				<xs:element name="name" type="xs:string"/>
				<xs:element name="description" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SearchResponse">
		<xs:complexType>
			<xs:sequence>
				<!--<xs:element name="plm_objects" type="plcstypes:PLM_object" minOccurs="0" maxOccurs="unbounded"/>-->
				<xs:element name="PLM_object" type="plcstypes:PLM_object" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--
	  _____________________________________________________________________________________________________________________-
								This section contains messages for retrieving reference and utility information 
	  _____________________________________________________________________________________________________________________-
	-->
	<xs:element name="GetAllViewDefinitionContexts">
		<xs:annotation>
			<xs:documentation>This message returns all used View_definition_contexts</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllViewDefinitionContextsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="views" type="plcstypes:View_definition_context" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllOrganizations">
		<xs:annotation>
			<xs:documentation>This message returns all Organizations</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllOrganizationsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="organizations" type="plcstypes:Organization" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllPersons">
		<xs:annotation>
			<xs:documentation>This message returns all Persons</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllPersonsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="persons" type="plcstypes:Person_in_organization" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllClassifications">
		<xs:annotation>
			<xs:documentation>This message returns all used classifications</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllClassificationsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="classifications" type="plcstypes:Class" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllProperties">
		<xs:annotation>
			<xs:documentation>This message returns all used Properties represented as Class, or External_class</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllPropertiesResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="properties" type="plcstypes:Class" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllUnits">
		<xs:annotation>
			<xs:documentation>This message returns all used Units</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>
	<xs:element name="GetAllUnitsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="units" type="plcstypes:Unit" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

