<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.plcs.org/System/Types" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:plcstypes="http://www.plcs.org/PLMServices/Types" targetNamespace="http://www.plcs.org/System/Types" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!--<xs:include schemaLocation="../xsd/Headers.xsd"/>-->
	<!--<xs:import namespace="http://www.plcs.org/Headers" schemaLocation="../xsd/Headers.xsd"/>-->
	<xs:import namespace="http://www.plcs.org/PLMServices/Types" schemaLocation="..\..\ws\xsd\types.xsd"/>
	<xs:element name="ProjectInfo" type="ProjectInfo"/>
	<xs:complexType name="ProjectInfo">
		<xs:annotation>
			<xs:documentation>This entity contains information about a system specific project. Normally most PLM systems use the concept of project to define a particular population of data. Registered users are normally related to one, or many, projects.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The name of the project.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A description of the project.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="serverInfo" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Additional information about the project that might be needed.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="RelatedProjects" type="ProjectInfo" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>A project might have relations to other projects, e.g. instances found in one project might be linked to instances found in other projects, hence, there is a relationship between the two projects. Another relationship  is typically that one project might contain other sub projects, or partitions.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ServerInformation" type="ServerInformation"/>
	<xs:complexType name="ServerInformation">
		<xs:sequence>
			<xs:element name="identifier" type="xs:string">
				<xs:annotation>
					<xs:documentation>This uniquely identifies the instance of the running server that provides the PLCS PLM Services.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="version" type="xs:string">
				<xs:annotation>
					<xs:documentation>This is the version of the server.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="plm_services_version" type="xs:string">
				<xs:annotation>
					<xs:documentation>This is the version of the plcs plm services being implemented.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="implementing_system" type="xs:string">
				<xs:annotation>
					<xs:documentation>This is the underlaying system that provides the PLCS PLM Services. For example: IBM RequisitePro, Telelogic DOORS, UGS TeamCenter Engineering, Dassault SmarTeam, Eurostep Share-A-space.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SystemSubscriberProfile" type="SystemSubscriberProfile"/>
	<xs:complexType name="SystemSubscriberProfile">
		<xs:sequence>
			<xs:element name="identifier" type="xs:string">
				<xs:annotation>
					<xs:documentation>This uniquely identifies the instance of the running server subscriber profile. The subscriber profile ID is unique for the owner of the subscriber profile, which is the organization in the launching system.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="subscribers" type="SystemSubscriber" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>This is the subscribing systems, including their access points.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="subscribed_projects" type="ProjectInfo" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>This is the projects which is being subject of attention for the subscribers.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="subscribed_events" type="plcstypes:subscriber_event" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>This is the events which is being subject of attention for the subscribers.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="subscribed_objects" type="plcstypes:PLM_object" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>This is the PLM_objects which is being subject of attention for the subscribers.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="active" type="xs:boolean">
			<xs:annotation>
					<xs:documentation>This is the activation status.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SystemSubscriber" type="SystemSubscriber"/>
	<xs:complexType name="SystemSubscriber">
		<xs:sequence>
			<xs:element name="server" type="ServerInformation"/>
			<xs:element name="accessPoint" type="xs:string">
				<xs:annotation>
					<xs:documentation>This is the access point for the external system, normally a URL is provided</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="description" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>

