<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.ebxml.org/namespaces/messageHeader" targetNamespace="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" version="0.98b">
	<xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
	<xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="envelope.xsd"/>
	<!-- MANIFEST -->
	<xsd:element name="Manifest">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Reference" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="id" use="required" type="xsd:ID"/>
			<xsd:attribute name="version" use="fixed" type="xsd:string" value="98.0"/>
			<xsd:attribute ref="soap:mustUnderstand" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Reference">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Schema" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="id" use="required" type="xsd:ID"/>
			<xsd:attribute ref="xlink:type" use="fixed" type="xsd:string" value="simple"/>
			<xsd:attribute name="xlink:href" use="required" type="xsd:uriReference"/>
			<xsd:attribute name="xlink:role" type="xsd:uriReference"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Schema">
		<xsd:complexType>
			<xsd:attribute name="location" use="required" type="xsd:uriReference"/>
			<xsd:attribute name="version" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<!--MESSAGE HEADER -->
	<xsd:element name="MessageHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="From"/>
				<xsd:element ref="To"/>
				<xsd:element ref="CPAId"/>
				<xsd:element ref="ConversationId"/>
				<xsd:element ref="Service"/>
				<xsd:element ref="Action"/>
				<xsd:element ref="MessageData"/>
				<xsd:element ref="QualityOfServiceInfo" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="Description" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="SequenceNumber" minOccurs="0" maxOccurs="1"/>
			</xsd:sequence>
			<xsd:attribute name="version" use="fixed" type="xsd:string" value="98.0"/>
			<xsd:attribute ref="soap:mustUnderstand" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CPAId" type="xsd:string"/>
	<xsd:element name="ConversationId" type="xsd:string"/>
	<xsd:element name="Service" type="xsd:string"/>
	<xsd:element name="Action" type="xsd:string"/>
	<xsd:element name="MessageData">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="MessageId"/>
				<xsd:element ref="Timestamp"/>
				<xsd:element ref="RefToMessageId" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="TimeToLive" minOccurs="0" maxOccurs="1"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessageId" type="xsd:string"/>
	<xsd:element name="TimeToLive" type="xsd:timeInstant"/>
	<xsd:element name="QualityOfServiceInfo">
		<xsd:complexType>
			<xsd:attribute name="deliverySemantics" use="default" value="BestEffort">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="OnceAndOnlyOnce"/>
						<xsd:enumeration value="BestEffort"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="messageOrderSemantics" use="default" value="NotGuaranteed">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Guaranteed"/>
						<xsd:enumeration value="NotGuaranteed"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="deliveryReceiptRequested" use="default" value="None">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Signed"/>
						<xsd:enumeration value="UnSigned"/>
						<xsd:enumeration value="None"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<!-- TRACE HEADER LIST -->
	<xsd:element name="TraceHeaderList">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="TraceHeader" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:ID"/>
			<xsd:attribute name="version" use="fixed" type="xsd:string" value="98.0"/>
			<xsd:attribute ref="soap:mustUnderstand" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TraceHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="SenderURI"/>
				<xsd:element ref="ReceiverURI"/>
				<xsd:element ref="Timestamp"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SenderURI" type="xsd:uriReference"/>
	<xsd:element name="ReceiverURI" type="xsd:uriReference"/>
	<xsd:element name="SequenceNumber" type="xsd:positiveInteger"/>
	<!-- ACKNOWLEDGEMENT -->
	<xsd:element name="Acknowledgment">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Timestamp"/>
				<xsd:element ref="From" minOccurs="0" maxOccurs="1"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:ID"/>
			<xsd:attribute name="version" use="fixed" type="xsd:string" value="98.0"/>
			<xsd:attribute ref="soap:mustUnderstand" use="required"/>
			<xsd:attribute name="type" use="default" value="DeliveryReceipt">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="DeliveryReceipt"/>
						<xsd:enumeration value="Acknowledgment"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="signed" type="xsd:boolean"/>
		</xsd:complexType>
	</xsd:element>
	<!-- ERROR LIST -->
	<xsd:element name="ErrorList">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Error" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:ID"/>
			<xsd:attribute name="version" use="fixed" type="xsd:string" value="98.0"/>
			<xsd:attribute ref="soap:mustUnderstand" use="required"/>
			<xsd:attribute name="highestSeverity" use="default" value="Warning">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="Warning"/>
						<xsd:enumeration value="Error"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Error">
		<xsd:complexType>
			<xsd:attribute name="codeContext" use="required" type="xsd:uriReference"/>
			<xsd:attribute name="errorCode" use="required" type="xsd:string"/>
			<xsd:attribute name="severity" use="default" value="Warning">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Warning"/>
						<xsd:enumeration value="Error"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="location" type="xsd:string"/>
			<xsd:attribute name="xml:lang" type="xsd:language"/>
		</xsd:complexType>
	</xsd:element>
	<!-- STATUS DATA -->
	<xsd:element name="StatusData">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="RefToMessageId"/>
				<xsd:element ref="Timestamp" minOccurs="0" maxOccurs="1"/>
			</xsd:sequence>
			<xsd:attribute name="version" use="fixed" type="xsd:string" value="98.0"/>
			<xsd:attribute ref="soap:mustUnderstand" use="required"/>
			<xsd:attribute name="messageStatus">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="UnAuthorized"/>
						<xsd:enumeration value="NotRecognized"/>
						<xsd:enumeration value="Received"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<!-- COMMON ELEMENTS -->
	<xsd:element name="PartyId">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:attribute name="type" type="xsd:string"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="To">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="PartyId"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="From">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="PartyId"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Description">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:attribute name="xml:lang" type="xsd:NMTOKEN"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="RefToMessageId" type="xsd:string"/>
	<xsd:element name="Timestamp" type="xsd:timeInstant"/>
	<!-- VIA -->
	<xsd:element name="Via">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="CPAId" minOccurs="0"/>
				<xsd:element ref="Service" minOccurs="0"/>
				<xsd:element ref="Action" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="version" use="required" type="xsd:string"/>
			<xsd:attribute ref="soap:mustUnderstand"/>
			<xsd:attribute ref="soap:actor"/>
			<xsd:attribute name="syncReply" type="xsd:boolean"/>
			<xsd:attribute name="deliveryReceiptRequested" use="default" value="None">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="Signed"/>
						<xsd:enumeration value="Unsigned"/>
						<xsd:enumeration value="None"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="reliableMessagingMethod">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="ebXML"/>
						<xsd:enumeration value="Transport"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="ackRequested" type="xsd:boolean"/>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>

