<?xml version='1.0' encoding='UTF-8'?>
<xsd:schema elementFormDefault='qualified' targetNamespace='urn:omg.org/plm20/computational/query/utility' xmlns='urn:omg.org/plm20/computational/query/utility' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:info='urn:omg.org/plm20/schemaInfo' xmlns:core='urn:omg.org/plm20/computational/core'>
	<xsd:import namespace='urn:omg.org/plm20/computational/core' schemaLocation='ComputationalCore.xsd'></xsd:import>
	<xsd:annotation>
		<xsd:documentation>
			--034 modularize xml schemas--
			--045 move query recursion and concatenation features from core:Query to explicit utility query types--
			--053 add complexType Concatenatable_query--
			--068 set minOccurs of element Next_query in complexType Concatenatable_query to 0--
		</xsd:documentation>
	</xsd:annotation>
	<xsd:complexType abstract='true' name='Utility_query'>
		<xsd:complexContent>
			<xsd:extension base='core:PLM_query'></xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name='Batch_query'>
		<xsd:complexContent>
			<xsd:extension base='Utility_query'>
				<xsd:sequence>
					<xsd:element maxOccurs='unbounded' name='Query' type='core:PLM_query'></xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType abstract='true' name='Concatenatable_query'>
		<xsd:complexContent>
			<xsd:extension base='Utility_query'>
				<xsd:sequence>
					<xsd:element maxOccurs='unbounded' minOccurs='0' name='Next_query' type='core:PLM_query'></xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name='Concatenated_query'>
		<xsd:complexContent>
			<xsd:extension base='Concatenatable_query'>
				<xsd:sequence>
					<xsd:element name='First_query' type='core:PLM_query'></xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name='Conditional_query'>
		<xsd:complexContent>
			<xsd:extension base='Utility_query'>
				<xsd:sequence>
					<xsd:element minOccurs='0' name='Condition' type='xsd:boolean'></xsd:element>
					<xsd:element minOccurs='0' name='When_true' type='core:PLM_query'></xsd:element>
					<xsd:element minOccurs='0' name='When_not_true' type='core:PLM_query'></xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name='Recursive_query'>
		<xsd:complexContent>
			<xsd:extension base='Utility_query'>
				<xsd:sequence>
					<xsd:element name='Query' type='core:PLM_query'></xsd:element>
					<xsd:element name='Maximum_recursion_number' type='xsd:int'></xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
</xsd:schema>
