[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
<?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]
Powered by eList eXpress LLC