<?xml version="1.0" encoding="utf-8"?>
<xsd:schema targetNamespace="http://docs.oasis-open.org/pps" xmlns="http://docs.oasis-open.org/pps" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:include schemaLocation="pps-transaction-messages-1.0.xsd"/>
	<xsd:element name="AppProfile">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="DataType" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="UnitType" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="Enumeration" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="AppObject" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="AppDocument" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="base" type="xsd:string"/>
			<xsd:attribute name="location" type="xsd:string"/>
			<xsd:attribute name="prefix" type="xsd:string"/>
			<xsd:attribute name="namespace" type="xsd:string"/>
			<xsd:attribute name="create" type="xsd:string"/>
			<xsd:attribute name="description" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="AppDocument">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="object" type="xsd:string"/>
			<xsd:attribute name="category" type="xsd:string"/>
			<xsd:attribute name="descirption" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="AppObject">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="AppProperty" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="primitive" type="xsd:string" use="required"/>
			<xsd:attribute name="descirption" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="AppProperty">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string"/>
			<xsd:attribute name="path" type="xsd:string"/>
			<xsd:attribute name="multiple" type="xsd:boolean"/>
			<xsd:attribute name="enumeration" type="xsd:string"/>
			<xsd:attribute name="dataType" type="xsd:string"/>
			<xsd:attribute name="unitType" type="xsd:string"/>
			<xsd:attribute name="description" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Enumeration">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="EnumElement" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="description" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EnumElement">
		<xsd:complexType>
			<xsd:attribute name="value" type="xsd:string" use="required"/>
			<xsd:attribute name="primary" type="xsd:boolean"/>
			<xsd:attribute name="alias" type="xsd:int"/>
			<xsd:attribute name="descirption" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataType">
<xsd:complexType>
  <xsd:attribute name="name" type="xsd:string" use="required"/>
  <xsd:attribute name="type" type="xsd:string" use="required"/>
  <xsd:attribute name="size" type="xsd:int"/>
  <xsd:attribute name="description" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="UnitType">
<xsd:complexType>
  <xsd:attribute name="name" type="xsd:string" use="required"/>
  <xsd:attribute name="base" type="xsd:string"/>
  <xsd:attribute name="size" type="xsd:double"/>
  <xsd:attribute name="time" type="xsd:dateTime"/>
  <xsd:attribute name="duration" type="xsd:duration"/>
  <xsd:attribute name="description" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
	<xsd:element name="ImplementProfile">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Error" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="App" minOccurs="0"/>
				<xsd:element ref="Spec" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="ImplementDocument" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:string"/>
			<xsd:attribute name="action" type="xsd:string"/>
			<xsd:attribute name="transaction" type="xsd:string"/>
			<xsd:attribute name="profile" type="xsd:string" use="required"/>
			<xsd:attribute name="sender" type="xsd:string" use="required"/>
			<xsd:attribute name="create" type="xsd:dateTime"/>
			<xsd:attribute name="description" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ImplementDocument">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ImplementAction" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="ImplementProperty" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="ImplementEvent" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="profile" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ImplementAction">
		<xsd:complexType>
			<xsd:attribute name="action" type="xsd:string" use="required"/>
			<xsd:attribute name="level" type="xsd:int"/>
			<xsd:attribute name="role" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ImplementProperty">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="title" type="xsd:string"/>
			<xsd:attribute name="extend" type="xsd:boolean"/>
			<xsd:attribute name="path" type="xsd:string"/>
			<xsd:attribute name="dataType" type="xsd:string"/>
			<xsd:attribute name="unitType" type="xsd:string"/>
			<xsd:attribute name="enumeration" type="xsd:string"/>
			<xsd:attribute name="description" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ImplementEvent">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="property" type="xsd:string" use="required"/>
			<xsd:attribute name="size" type="xsd:double"/>
			<xsd:attribute name="min" type="xsd:double"/>
			<xsd:attribute name="max" type="xsd:double"/>
			<xsd:attribute name="exclusive" type="xsd:boolean"/>
			<xsd:attribute name="cycle" type="xsd:duration"/>
			<xsd:attribute name="expire" type="xsd:dateTime"/>
			<xsd:attribute name="description" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
