W3C

XML Protocol Comparisons

The purpose of this document is to compare and contrast a variety of XML protocols. It will probably take a while to flesh out the form and content. Viewers are invited to comment and contribute. The forum for discussing this page and the data within is [email protected]. The list and archives are open, you may join xml-dist-app by sending mailto [email protected] with the Subject: subscribe.

Since this document was created in March 2000, W3C chartered the XML Protocol Working Group whose task is to produce a simple XML-based messaging and remote procedure call protocol.

XML syntax
Protocol Organization Architects Status ns schema DTD Facets Example
generic XML protocols provide a mechanism to represent arbitrary data.
XML-RPC Userland Dave Winer (userland),
Bob Atkinson (microsoft),
Mohsen Al-Ghosein (microsoft),
Don Box (developmentor)
deployed 0 0 1?
[in a POST parameter]
<methodCall>
   <methodName>examples.getStateName</methodName>
   <params>
      <param>
         <value><i4>41</i4></value>
      </param>
   </params>
</methodCall>
SOAP
(mailing list)
Ariba, Inc.
Commerce One, Inc.
Compaq Computer Corporation
DevelopMentor, Inc.
Hewlett Packard Company
International Business Machines Corporation
IONA Technologies
Lotus Development Corporation
Microsoft Corporation
SAP AG
UserLand Software Inc.
Don Box, DevelopMentor
David Ehnebuske, IBM
Gopal Kakivaya, Microsoft
Andrew Layman, Microsoft
Noah Mendelsohn, Lotus Development Corp.
Henrik Frystyk Nielsen, Microsoft
Satish Thatte, Microsoft
Dave Winer, UserLand Software, Inc.
coded
W3C NOTE
2 2 0
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
   <SOAP-ENV:Body>
      <e:Book>
         <title>My Life and Work</title>
         <firstauthor href="#Person-1"/>
         <secondauthor href="#Person-2"/>
      </e:Book>
      <e:Person id="Person-1">
         <name>Henry Ford</name>
         <address xsi:type="m:Electronic-address">
             <email>mailto:[email protected]</email>
             <web>http://www.henryford.com</web>
         </address>
      </e:Person>
      <e:Person id="Person-2">
         <name>Samuel Crowther</name>
         <address xsi:type="n:Street-address">
             <street>Martin Luther King Rd</street>
             <city>Raleigh</city>
             <state>North Carolina</state>
         </address>
      </e:Person>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
WDDX Allaire Simeon Simeonov (Allaire),
Nate Weiss (independent/JavaScript),
Spike Washburn (Allaire/Java),
Rasmus Lerdorf (PHP3),
Scott Guelich (Scripted.com/Perl)
deployed 0 0 1
<?xml version='1.0'?>
<!DOCTYPE wddxPacket SYSTEM 'wddx_0090.dtd'>
<wddxPacket version='0.9'>
<header/>
   <data>
      <struct>
         <var name='s'><string>a string</string></var>
         <var name='a'><array length='2'>
               <number>10</number>
               <string>second element</string></array></var>
         <var name='obj'><struct>
               <var name='s'><string>a string</string></var>
               <var name='n'><number>-12.456</number></var>
            </struct></var>
      </struct>
   </data>
</wddxPacket>
XMI Unisys Corporation
Fujitsu
IBM
DSTC
Recerca Informatica
Oracle
Daimler-Benz
Platinum Technology
deployed
(Unisys)
(ArgoUML exports XMI)
1 0 1
[UML model in an XMI document]
<XMI xmi.version="1.1" xmlns:UML="org.omg/standards/UML">
   <XMI.header>
      <XMI.metamodel name="UML" version="1.3" href="UML.xml"/>
      <XMI.model name="example" version="1" href="example.xml"/>
   </XMI.header>
   <XMI.content>
      <UML:Class name="C1">
         <UML:Classifier.feature>
            <UML:Attribute name="a1" visibility="private"/>
         </UML:Classifier.feature>
      </UML:Class>
   </XMI.content>
</XMI>
Jabber Jabber.org Open Source Project Jeremie Miller deployed 1 0 1 not reviewed yet
<stream:stream xmlns:stream="http://etherx.jabber.org/streams" 
               xmlns="jabber:client" to="jabber.org">
  <message to="[email protected]">
    <subject>Test</subject>
    <body>This is a test message.</body>
  </message>
  <presence>
    <status>Working on Project XYZ</status>
    <show>away</show>
  </presence>
</stream:stream>
ebXML UN/CEFACT
oasis
from a message from Dick Brooks
SOAPAction: ebXML
Content-type: multipart/related; boundary="BoundarY"; type="text/xml";
        start=" <[email protected]>"

--BoundarY
Content-ID: <[email protected]>
Content-Type: text/xml; charset="UTF-8"

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'

xmlns:eb='http://www.ebxml.org/namespaces/messageHeader'>
<SOAP-ENV:Header>
	<eb:MessageHeader mustUnderstand="1" version="1.0">
		<From>
			<PartyId>urn:duns:123456789</PartyId>
		</From>
		<To>
			<PartyId>urn:duns:912345678</PartyId>
		</To>
		<CPAId>20001209-133003-28572</CPAId>
		<ConversationId>20001209-133003-28572</ConversationId>
		<Service type="proprietary">OrderProcessing</Service>
		<Action>NewXMLOrder</Action>
		<MessageData>
			<MessageId>mid:[email protected]</MessageId>
			<TimeStamp>20010215T111212.000Z</TimeStamp>
                        <TimeToLive>20010215T112233.000Z</TimeToLive>
		</MessageData>
		<QualityofServiceInfo deliverySemantics="OnceAndOnlyOnce"
                                      messageOrderSemantics="NotGuaranteed"
                                      deliveryReceiptRequested="None"/>
                <Description xml:lang="en">A Purchase Order is
attached</Description>
	</MessageHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
	<eb:Manifest id="abc123" version="1.0">
		<Reference xlink:href="urn:cid:[email protected]"
			   xlink:role="XLinkRole"
  		           xlink:type="simple"
			   xlink:label="XLinkLabel">
		    	   <Description xml:lang="en-us">Purchase Order 1</Description>
		</Reference>
	</Manifest>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

--BoundarY
Content-ID: <[email protected]>
Content-Type: text/xml

<purchase_order>
	<po_number>1</po_number>
	<part_number>123</part_number>
	<price currency="USD">500.00</price>
</purchase_order>

--BoundarY--
BizTalk
June 2000 spec
(graph discussion)
Microsoft Satish Thatte ? 2 2 0 SOAPfacets plus:
<SOAP-ENV:Envelope
                xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
    <SOAP-ENV:Header>
       <dlv:delivery SOAP-ENV:mustUnderstand="1"
                     xmlns:dlv="http://schemas.biztalk.org/btf-2-0/delivery"
                     xmlns:agr="http://www.trading-agreements.org/types/">
           <dlv:to>
               <dlv:address xsi:type="agr:department">Book Order
Department</dlv:address>           
           </dlv:to>
           <dlv:from>
               <dlv:address xsi:type="agr:organization">Booklovers
Anonymous</dlv:address>           
           </dlv:from>
       </dlv:delivery>
       <prop:properties SOAP-ENV:mustUnderstand="1"
 
xmlns:prop="http://schemas.biztalk.org/btf-2-0/properties">
 
<prop:identity>uuid:74b9f5d0-33fb-4a81-b02b-5b760641c1d6</prop:identity>
           <prop:sentAt>2000-05-14T03:00:00+08:00</prop:sentAt>
           <prop:expiresAt>2000-05-15T04:00:00+08:00</prop:expiresAt>
 
<prop:topic>http://electrocommerce.org/purchase_order/</prop:topic>
       </prop:properties>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <po:PurchaseOrder
xmlns:po="http://electrocommerce.org/purchase_order/">
            <po:Title>Essential BizTalk</po:Title>
        </po:PurchaseOrder>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Wf-XML
mailing list
Workflow Management Coalition WfMC Working Group 4 beta spec
V 1.0 due mid-April
0
due in 1.0
0
due in 1.0
1
<WfMessage Version= 1.0>
   <WfMessageHeader>
      <Request><ResponseRequired>Yes</ResponseRequired></Request>
      <Key>http://www.XYZcompany.com/wfprocess</Key>
      <Operation>CreateProcessInstance</Operation>
   </WfMessageHeader>
   <WfMessageBody>
      <CreateProcessInstance.Request>
         <Key>http://www.XYZcompany.com/wfprocess</Key>
         <ObserverKey>http://www.mycompany.com/mywork</ObserverKey>
         <ContextData>
            <Vehicle>
               <VehicleType>Car</VehicleType>
               <Specification>
                  <Manufacturer>Mercedes</Manufacturer>
                  <Model>450SL</Model>
               </Specification>
            </Vehicle>
            <Furniture>chair</Furniture>
         </ContextData>
         <StartImmediately>Yes</StartImmediately>
      </CreateProcessInstance.Request>
   </WfMessageBody>
</WfMessage>
LOTP not reviewed yet
web service-related XML protocols protocols with a fixed grammar targeting a particular application domain.
WSDLAriba
International Business Machines Corporation
Microsoft
Erik Christensen (Microsoft)
Francisco Curbera (IBM)
Greg Meredith (Microsoft)
Sanjiva Weerawarana (IBM)
not reviewed yet
from Web Services Description Language (WSDL) 1.0
You find find the colorized WSDL examples helpful.
<?xml version="1.0"?>
<definitions name="StockQuote"

targetNamespace="http://example.com/stockquote.wsdl"
          xmlns:tns="http://example.com/stockquote.wsdl"
          xmlns:xsd1="http://example.com/stockquote.xsd"
          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
          xmlns="http://schemas.xmlsoap.org/wsdl/">

   <types>
       <schema targetNamespace="http://example.com/stockquote.xsd"
              xmlns="http://www.w3.org/1999/XMLSchema">
           <element name="TradePriceRequest">
              <complexType>
                  <all>
                      <element name="tickerSymbol" type="string"/>
                  </all>
              </complexType>
           </element>
           <element name="TradePrice">
              <complexType>
                  <all>
                      <element name="price" type="float"/>
                  </all>
              </complexType>
           </element>
       </schema>
   </types>

   <message name="GetLastTradePriceInput">
        <part name="body" element="xsd1:TradePrice"/>
    </message>

    <message name="GetLastTradePriceOutput">
        <part name="body" element="xsd1:TradePriceResult"/>
    </message>

    <portType name="StockQuotePortType">
        <operation name="GetLastTradePrice">
           <input message="tns:GetLastTradePriceInput"/>
           <output message="tns:GetLastTradePriceOutput"/>
        </operation>
    </portType>

    <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GetLastTradePrice">
           <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
           <input>
               <soap:body use="literal" namespace="http://example.com/stockquote.xsd"
                          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
           </input>
           <output>
               <soap:body use="literal" namespace="http://example.com/stockquote.xsd"
                          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
           </output>
        </operation>
    </binding>

    <service name="StockQuoteService">
        <documentation>My first service</documentation>
        <port name="StockQuotePort" binding="tns:StockQuoteBinding">
           <soap:address location="http://example.com/stockquote"/>
        </port>
    </service>

</definitions>
WIDLwebMethods Phillip Merrick (webMethods)
Charles Allen (webMethods)
from 4. WIDL Examples
<WIDL NAME="genericShipping" TEMPLATE="Shipping"
      BASEURL="http://www.shipping.com" VERSION="2.0">

<SERVICE NAME="TrackPackage" METHOD="Get" 
         URL="/cgi-bin/track_package"
         INPUT="TrackInput" OUTPUT="TrackOutput" />

<BINDING NAME="TrackInput" TYPE="INPUT">
   <VARIABLE NAME="TrackingNum" TYPE="String" FORMNAME="trk_num" />
   <VARIABLE NAME="DestCountry" TYPE="String" FORMNAME="dest_cntry" />
   <VARIABLE NAME="ShipDate" TYPE="String" FORMNAME="ship_date" />
</BINDING>

<BINDING NAME="TrackOutput" TYPE="OUTPUT">
   <CONDITION TYPE="Failure" REFERENCE="doc.title[0].text" 
              MATCH="Warning Form" REASONREF="doc.p[0].text" />
   <CONDITION TYPE="Success" REFERENCE="doc.title[0].text" 
              MATCH="Foobar Airbill:*" REASONREF="doc.p[1].value" />
   <VARIABLE NAME="disposition" TYPE="String" REFERENCE="doc.h[3].value" />
   <VARIABLE NAME="deliveredOn" TYPE="String" REFERENCE="doc.h[5].value" />
   <VARIABLE NAME="deliveredTo" TYPE="String" REFERENCE="doc.h[7].value" />
</BINDING>

</WIDL>
SCLorg1
org2
name1 (co)
name2 (co)
not reviewed yet
[comment]
UDDIARIBA not reviewed yet
from UDDI Data Structure Reference
<element name="businessEntity">
  <type content="elementOnly">
    <group order="seq">
      <element ref="discoveryURLs" minOccurs="0" maxOccurs="1"/>
      <element ref="name"/>
      <element ref="description" minOccurs="0" maxOccurs="*"/>
      <element ref="contacts" minOccurs="0" maxOccurs="1"/>
      <element ref="businessServices" minOccurs="0" maxOccurs="1"/>
      <element ref="identifierBag" minOccurs="0" maxOccurs="1"/>
      <element ref="categoryBag" minOccurs="0" maxOccurs="1"/>
    </group>
    <attribute name="businessKey" minOccurs="1" type="string"/>
    <attribute name="operator" type="string"/>
    <attribute name="authorizedName" type="string"/>
  </type>
</element>
DISCOMicrosoft not reviewed yet
from Draft: Discovery of Web Services (DISCO)
<disco:discovery>
  <disco:discoveryRef ref='folder/discovery'/>

  <-- elements from other namespaces -->
</disco:discovery>

<disco:discovery>
  <scl:contractRef ref='my1.sdl'>
  <scl:contractRef ref='my2.sdl' docRef='my.htm'>
</disco:discovery>

<disco:discovery>
  <schema:schemaRef ref='my1.xsd' targetNamespace='http://my.org/my1.xsd'/>
  <schema:schemaRef ref='my2.xsd'/>
</disco:discovery>
NASSLIBM Francisco Curbera
Sanjiva Weerawarana
Matthew J. Duftler
not reviewed yet
from NASSL paper
<?xml version="1.0"?>
<nsl:serviceDef name="StockQuoteService" 
                version="1.0" 
                xmlns:nsl="http://www.ibm.com/namespaces/NASSL"
                xmlns:sqs="http://www.getquote.com/ns/StockQuote"
                xmlns:xsd="http://www.w3.org/1999/XMLSchema">
  <nsl:types>
    <nsl:typeDefs typeModel="http://www.w3.org/1999/XMLSchema">
      <xsd:schema targetNamespace="http://www.getquote.com/ns/StockQuote">
        <xsd:complexType name="stockquote">
          <xsd:element name="date" type="xsd:date"/>
          <xsd:element name="price" type="xsd:float"/>
          <xsd:element name="change" type="xsd:float"/>
          <xsd:element name="volume" type="xsd:int"/>
        </xsd:complexType>
      </xsd:schema>
    </nsl:typeDefs>
  </nsl:types>

  <nsl:interfaces>
    <nsl:interfaceDef name="GetQuote">
      <nsl:operationDef name="getQuote">
        <nsl:type name="sqs:stockquote"/>
        <nsl:parameters>
          <nsl:parameterDef name="symbol" direction="IN">
            <nsl:type name="xsd:string"/>
          </nsl:parameterDef>
        </nsl:parameters>
      </nsl:operationDef>
    </nsl:interfaceDef>
  </nsl:interfaces>

  <nsl:implementations>
    <nsl:implementationDef name="HTTP-POST-GetQuotes">
      <nsl:implements interface="GetQuote"/>
      <nsl:access protocol="HTTP-POST"/>
    </nsl:implementationDef>

    <nsl:implementationDef name="RPC-SOAP-HTTP-GetQuotes">
      <nsl:implements interface="GetQuote"/>
      <nsl:access protocol="RPC-SOAP-HTTP"/>
      <nsl:encoding styles="http://schemas.xmlsoap.org/soap/encoding/
                    http://www.ibm.com/namespaces/xmi"/>
      <nsl:protocolExtensions>
        <operationsURI value="urn:StockQuoteService"/>
        <methodNamespace value=""/>
        <action value="urn:get-quote-rpc-soap-http"/>
      </nsl:protocolExtensions>
    </nsl:implementationDef>
  </nsl:implementations>

  <nsl:providers>
    <nsl:providerDef>
      <nsl:provides implementation="HTTP-POST-GetQuotes"/>
      <nsl:endPoint url="http://www.getquote.com/cgi-bin/getquote.pl"/>
    </nsl:providerDef>

    <nsl:providerDef>
      <nsl:provides implementation="RPC-SOAP-HTTP-GetQuotes"/>
      <nsl:endPoint url="http://www.getquote.com/ibm-soap-1.2/rpcrouter.jsp"/>
    </nsl:providerDef>
  </nsl:providers>
</nsl:serviceDef>
domain-specific XML protocols protocols with a fixed grammar targeting a particular application domain.
ICE GCA Neil Webber, Vignette Corporation
Conleth O'Connell, Vignette Corporation
Bruce Hunt, Adobe Systems, Inc.
Rick Levine, Sun Microsystems, Inc.
Laird Popkin, Sothebys.com
deployed 0 0 1
<?xml version="1.0"?>
<!DOCTYPE ice-payload
        SYSTEM "http://www.ice-ag.org/ICE.dtd">
<ice-payload
   payload-id="1998-07-05T02:02:[email protected]"
   timestamp="02:02:23,449"
   ice.version="1.0">
  <ice-header>
    <ice-sender
       sender-id="4af37b30-2c35-11d2-be4a-204c4f4f5020"
       name="XYZ Corporation"
       role="subscriber"/>
    <ice-user-agent>Acme Ray Gun ICE System, V0.9beta</ice-user-agent>
  </ice-header>
  <ice-request
     request-id="1998-07-05T02:02:[email protected]">
    <ice-nop/>
  </ice-request>
</ice-payload>
IOTP Commerce One David Burdett ? 0 0 1
<BrandList ID='M1.2'
  XML:Lang='us-en'
  ShortDesc='Purchase book including s&h'
  PayDirection='Debit' >
  <Brand ID ='M1.30'
    BrandId='MasterCard'
    BrandName='MasterCard Credit'
    BrandLogoNetLocn='ftp://otplogos.mastercard.com/mastercardcredit'
    ProtocolAmountRefs='M1.33'>
  </Brand>
  <Brand ID ='M.31'
    BrandId='Visa'
    BrandName='Visa Credit'
    BrandLogoNetLocn='ftp://otplogos.visa.com/visacredit'
    ProtocolAmountRefs='M1.33'>
  </Brand>
  <Brand ID ='M1.32'
    BrandId='AmericanExpress'
    BrandName='American Express'
    BrandLogoNetLocn='ftp://otplogos.amex.com'
    ProtocolAmountRefs ='M1.33' >
  </Brand >
  <ProtocolAmount ID ='M1.33'
    PayProtocolRef='M1.35'
    CurrencyAmountRefs='M1.34'>
  </ProtocolAmount>
  <CurrencyAmount ID ='M1.34'
    Amount='10.95'
    CurrCode='USD'/>
  <PayProtocol ID ='M1.35'
    ProtocolId='SCCD1.0'
    ProtocolName='Secure Channel Credit/Debit'
    PayReqNetLocn='http://www.example.com/etill/sccd1' >
  </PayProtocol>
</BrandList>
eCo not reviewed yet
XMOP not reviewed yet
XIOP
(spec)
Financial Toolsmiths AB Anders W. Tell (Financial Toolsmiths AB) Alpha 2Q 2000 "http://xiop.org/" 0 due in 1.0 0 due in 1.0 reviewed by Anders Tell
no peer review yet...
from http://xiop.sourceforge.net/doc/xiop_examples_1_2.html
<typecode> 
   <tk_struct repoid="IDL:/TheStruct:1.0"  
                name="TheStruct" 
             members="3"> 
     <tk_struct_member name="first"> 
       <typecode>   <!-- first members typecode --> 
         <tk_octet/>  
       </typecode> 
     </tk_struct_member> 
     <tk_struct_member name="next"> 
       <typecode> <tk_long/> </typecode> 
     </tk_struct_member> 
     <tk_struct_member name="last"> 
       <typecode> <tk_string max-length="100"/> </typecode> 
     </tk_struct_member> 
   </tk_struct> 
</typecode>
P3P W3C Lorrie Cranor (AT&T),
Marc Langheinrich (ETH Zurich),
Massimo Marchiori (W3C/MIT),
Martin Presler-Marshall (IBM), Joseph Reagle (W3C/MIT)
deployment status namespace schema dtd not reviewed yet
from example 3.1
<POLICY xmlns="http://www.w3.org/2000/P3Pv1"
  discuri="http://www.catalog.example.com/PrivacyPracticeBrowsing.html">
 <ENTITY>
  <DATA-GROUP>
   <DATA ref="#business.name">CatalogExample</DATA>
   <DATA ref="#business.contact-info.postal.street.line1">4000 Lincoln Ave.</DATA>
   <DATA ref="#business.contact-info.telecom.telephonenum.number">3926753</DATA>
  </DATA-GROUP>
 </ENTITY>
 <DISPUTES-GROUP>
  <DISPUTES resolution-type="independent"
    service="http://www.PrivacySeal.example.org"
    short-description="PrivacySeal.example.org">
   <REMEDIES><correct/></REMEDIES>
   <IMG src="http://www.PrivacySeal.example.org/Logo.gif"/>
  </DISPUTES>
 </DISPUTES-GROUP>
 <ACCESS><nonident/></ACCESS>
 <STATEMENT>
  <PURPOSE><admin/><develop/></PURPOSE>
  <RECIPIENT><ours/></RECIPIENT>
  <RETENTION><stated-purpose/></RETENTION>
  <DATA-GROUP>
   <DATA ref="#dynamic.clickstream.server"/>
   <DATA ref="#dynamic.http.useragent"/>
  </DATA-GROUP>
 </STATEMENT>
</POLICY>
CCPP W3C Franklin Reynolds (Nokia Research Center)
Johan Hjelm (W3C/Ericsson)
Spencer Dawkins (Nortel)
Sandeep Singhal (IBM)
testing 1 RDF 0 not reviewed yet
[from Inline example]
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:prf="http://www.w3.org/TR/WD-profile-vocabulary#">
 <rdf:Description about="HardwarePlatform">
   <prf:Defaults Vendor="Nokia" Model="2160" Type="PDA" ScreenSize="800x600x24"
    CPU="PPC" Keyboard="Yes" Memory="16mB" Bluetooth="YES" Speaker="Yes" />
  <prf:Modifications Memory="32mB" />
 </rdf:Description>
 <rdf:Description about="SoftwarePlatform">
  <prf:Defaults OS="EPOC1.0" HTMLVersion="4.0" JavaScriptVersion="4.0"
   WAPVersion="1.0" WMLScript="1.0" />
  <prf:Modifications Sound="Off" Images="Off" />
 </rdf:Description>
 <rdf:Description about="EpocEmail1.0">
   <prf:Defaults HTMLVersion="4.0" />
 </rdf:Description>
  <rdf:Description about="EpocCalendar1.0">
  <prf:Defaults HTMLVersion="4.0" />
 </rdf:Description>
  <rdf:Description about="UserPreferences">
 <prf:Defaults Language="English"/>
 </rdf:Description>
</rdf:RDF>
E-Speak hp ??? deployed? namespace schema dtd not reviewed yet
[comment]

      
transport/transfer protocols Transport and Transfer protocols designed to carry XML protocol payloads.
BXXP
app design
protocol
Note - these are broken links. Try incrementing the numbers at the end of the URL to see where they are now.
older HTML version of protocol draft
- no research on this topic yet -
Transaction Internet Protocol
(part deux)
Microsoft
Tandem
J. Lyon (Microsoft)
K. Evans (Tandem)
J. Klein (Tandem)

      
HTTP-NG
(architecture)
A layered distributed object system with underlying protocol support.
WorldOS WorldOS Corp. Lucas Gonze deployed 0 0 0
<?xml version="1.0" encoding="UTF-8"?> 
<msg> 
  <protocol> 
    <id>WorldOS</id> 
    <version>0.1</version> 
    <definition>http://www.worldos.org/WorldOS.xml</definition> 
    <checksum>-1</checksum> 
    <function>debug</function> 
  </protocol> 
  <funcdata /> 
</msg> 
non-XML protocols non-XML protocols that may have some interesting lessons for us.
XDR XDR is Sun's RPC data format.
RACE Global Financial Networks Limited Charles Kilkenny (Global Financial Networks Limited) draft N/A N/A N/A not independently reviewed yet

Facets

Below is the list of facets I have defined for characterizing these protocols.

serialization
format for storing primitive data types (int, char, string), structures, and matrices
grammar types:
custom
The XML schema is specific to the application, doesn't (intentionally) share characteristics with other applications. These almost always reflect the application data structure closely.
automatic
Generated XML that uses element names derived from application data structures through some type of mapping or rules.
fixed
Generated XML that uses fixed element names to serialize application data structures.
data typing:
implicit (contextual)
does not carry detailed data types in the serialization or an external schema
explicit
data types with elements or in an external schema
extensibility
a mechanism allowing features and functionality to be added beyond what the architects can predict. Some protocols mention extensibility as a requirement without defining the mechanism. Generally, protocols that use namespaces and specify what to do with unknown namespaces get extensibility for free.
skinnyness
reduces to a minimal line protocol for communication between non-naive agents. This implies removing all schema information. Pairing this with interface discovery requires sufficient parameter identification that a naive agent may also participate with additional schema information.
protocol
definition of requests and responses. This implies state transitions and defined error messages when state transitions fail.
interface discovery
machine-readable markup allowing a naive application to access the typed data. Supporting schemas in turn supports interface discovery.
transactions (ACIDity)
atomicity and state clarity that allows an action to be partially completed and then undone. (ACID == atomicity, consistency, isolation and durability)
remote procedure
The protocol explicitly supports sending requests to a remote system to execute a designated function, method, or procedure defined by an application using the protocol rather than functions defined in or by the protocol itself.
business process
modeling of business workflow conventions
security
rules on how data should be digitally signed to prove authenticity and authorization of requested actions
routing
message forwarding from agent to agent depending on attributes of the message
packaging
Construction of multi-document messages including non-XML documents as attachments. Usually includes mechanisms for constructing URI references to packaged documents.

Valid HTML 4.0! Eric Prud'hommeaux,
but please post comments to
[email protected]
@(#) $Id: 29-XML-protocol-matrix.html,v 1.41 2003/06/13 15:37:12 eric Exp $