OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-transport message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: revised draft of Message Services spec for comments


All,

David and I have been working on a revision draft of the spec
that:
	- incorporates the changes we have agreed upon:
		- Doug's charset changes
		- Content-Length
		- section numbering/headings
	- incorporates some of the things that have not yet been
	formally agreed upon, but places proposed updates in context
	where they might more readily be appreciated:
		- Chris's manifest proposal
		- extension mechanism proposal (Chris & Robert)
		- flattening of CPAInfo 

Additionally, it includes a new section on Security which is still
a work in progress. 

Finally, David has incorporated the discussion and conclusions
of the Tokyo f2f regardiung reliable messaging into a revised section 
on RM. He has also added a section on MSH Services (Status and PING)
which we collaborated on together. 

The appendicies have been removed since they would only confuse things
at this stage. I have attached a revised XSD, but I think that it still 
has a few flaws, especially as regards StatusData. I just don't have
the right tools to analyze it more carefully, and it is getting late;-)

There may be other changes I haven't listed but just don't recall.
A few grammatical modifications and some style modifications were
made along the way. David, if I've omitted anything, please fill
in the blanks in my memory.

Anyway, we wanted to get this out there for review and comment. We
hope to have this serve as something we can work with now until
the London f2f next year. We recognize that it is still a bit rough
in places, but we felt it better to get something written now than to
have
to cram it all in in less than a week in London.

For now, PLEASE don't edit this. Turn line numbering on and report
comments by line number and version (0.9 for starters). Or, you can
edit it and send in a small section with the suggested edits, preferably
with change tracking enabled.

So, let the flames begin!

Cheers,

Chris

Version 0.9.doc

<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns="http://www.ebxml.org/namespaces/messageHeader" targetNamespace="http://www.ebxml.org/namespaces/messageHeader" xmlns:ds="http://www.w3.org/2000/10/xmldsig#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
	<xsd:import namespace="http://www.w3.org/2000/10/xmldsig#" schemaLocation="http://www.w3.org/TR/2000/10/xmldsig-core-schema/xmldsig-core-schema.xsd"/>

<!-- EBXML HEADER -->
	<xsd:element name="ebXMLHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Manifest" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="Header"/>
				<xsd:element ref="RoutingHeaderList" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="Acknowledgment" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="StatusData" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="ApplicationHeaders" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="ErrorList" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="version" use="fixed" value="0.9" type="xsd:string"/>
			<xsd:anyAttribute namespace="##any" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>

<!-- MANIFEST -->
	<xsd:element name="Manifest">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Reference" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax"/>
			</xsd:sequence>
			<xsd:attribute name="id" use="required" type="xsd:ID"/>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="Reference">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Schema" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="Description" minOccurs="0" maxOccurs="1"/>
				<xsd:any namespace="##other" processContents="lax"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:ID"/>
			<xsd:attribute name="xlink:type" use="required" type="xsd:string" value="simple"/>
			<xsd:attribute name="xlink:href" use="required" type="xsd:uriReference"/>
			<xsd:attribute name="xlink:label" type="xsd:string"/>
			<xsd:attribute name="xlink:role" use="required" type="xsd:uriReference"/>
			<xsd:attribute name="xlink:title" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="Schema">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:attribute name="location" use="required" type="xsd:string"/>
				<xsd:attribute name="version" use="required" type="xsd:string"/>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

<!-- HEADER -->
	<xsd:element name="Header">
		<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="DeliveryReceiptRequested" minOccurs="0" maxOccurs="1"/>
<!-- Added in ref to Delivery Receipt Requested element -->
				<xsd:element ref="TimeToLive" minOccurs="0" maxOccurs="1"/>
<!-- Added in Time To Live element -->
				<xsd:element ref="ReliableMessagingInfo" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="Description" minOccurs="0" maxOccurs="1"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:ID"/>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="To">
		<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="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:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="MessageId" type="xsd:string"/>

	<xsd:element name="RefToMessageId" type="xsd:string"/>

<!-- Added in definition Delivery Receipt Requested element -->
	<xsd:element 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:element name="TimeToLive" type="xsd:timeInstant"/>
<!-- Added in definition of Time To Live element -->


	<xsd:element name="ReliableMessagingInfo">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:attribute name="deliverySemantics" use="required"/>
					<xsd:simpleType>
						<xsd:restriction base="xsd:NMTOKEN">
							<xsd:enumeration value="OnceAndOnlyOnce"/>
							<xsd:enumeration value="BestEffort"/>
						</xsd:restriction>
					</xsd:simpleType>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

<!-- ROUTING HEADER LIST -->
	<xsd:element name="RoutingHeaderList">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="RoutingHeader" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:ID"/>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="RoutingHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="SenderURI"/>
				<xsd:element ref="ReceiverURI"/>
				<xsd:element ref="ErrorURI" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="Timestamp"/>
				<xsd:element ref="SequenceNumber" minOccurs="0" maxOccurs="1"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
<!-- Added in optional reliableMessagingMethod below -->
			<xsd:attribute name="reliableMessagingMethod"/>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="ebXML"/>
						<xsd:enumeration value="Transport"/>
					</xsd:restriction>
				</xsd:simpleType>
<!-- Added in optional intermediateAckRequested below -->
			<xsd:attribute name="intermediateAckRequested"/>
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="Signed"/>
					<xsd:enumeration value="UnSigned"/>
					<xsd:enumeration value="None"/>
				</xsd:restriction>
			</xsd:simpleType>
		</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" minOccurs="0" maxOccurs="1"/>

	<xsd:element name="ErrorURI" type="xsd:uriReference" minOccurs="0" maxOccurs="1"/>

<!-- APPLICATION HEADERS -->
	<xsd:element name="ApplicationHeaders" type="ApplicationHeaders"/>
	<xsd:complexType name="ApplicationHeaders">
		<xsd:sequence>
			<xsd:any namespace="##other" processContents="lax"/>
		</xsd:sequence>
		<xsd:attribute name="id" type="xsd:ID"/>
<!-- Added in id attribute -->
	</xsd:complexType>

<!-- 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="type" use="default" value="DeliveryReceipt"/>
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="DeliveryReceipt"/>
					<xsd:enumeration value="IntermediateAck"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:attribute name="signed" type="xsd:boolean"/>
		</xsd:complexType>
	</xsd:element>
	
<!-- ERROR LIST -->
<!-- Updated to reflect changes in spec -->
	<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="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: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 name="location" type="xsd:string"/>
			<xsd:attribute name="xml:lang" type="xsd:language"/>
			<xsd:attribute name="errorMessage" type="xsd:string"/>
			<xsd:attribute name="softwareDetails" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>

<!-- MESSAGE STATUS REQUEST -->
	<xsd:element name="MessageStatusRequest">
		<xsd:sequence>
			<xsd:element ref="RefToMessageId"/>
			<xsd:element ref="From" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:element>

<!-- MESSAGE STATUS RESPONSE -->
	<xsd:element name="MessageStatusResponse">
		<xsd:sequence>
			<xsd:element ref="RefToMessageId"/>
			<xsd:element ref="Timestamp" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="ForwardURI" type="xsd:uriReference" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
		<xsd:attribute name="messageStatus"/>
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="UnAuthorized"/>
					<xsd:enumeration value="NotRecognized"/>
					<xsd:enumeration value="Received"/>
					<xsd:enumeration value="Processed"/>
					<xsd:enumeration value="Forwarded"/>
				</xsd:restriction>
			</xsd:simpleType>
	</xsd:element>

<!-- COMMON ELEMENTS -->
	<xsd:element name="From">
		<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="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="Timestamp" type="xsd:timeInstant"/>
<!-- Does timeInstant conform to ISO 2601? -->

</xsd:schema>

begin:vcard 
n:Ferris;Christopher
tel;cell:508-667-0402
tel;work:781-442-3063
x-mozilla-html:FALSE
org:Sun Microsystems, Inc;XTC Advanced Development
adr:;;;;;;
version:2.1
email;internet:chris.ferris@east.sun.com
title:Sr. Staff Engineer
fn:Christopher Ferris
end:vcard


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]

Search: Match: Sort by:
Words: | Help


Powered by eList eXpress LLC