- From: Christopher B Ferris <chrisfer@us.ibm.com>
- Date: Fri, 27 Jul 2007 07:13:12 -0400
- To: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Cc: "Xml-Dist-App@W3. Org" <xml-dist-app@w3.org>, xml-dist-app-request@w3.org
- Message-ID: <OFA5A936CF.96A2F360-ON85257325.003D3D3C-85257325.003D796B@us.ibm.com>
Thanks, Anish!
Yves,
Could you update the link from the implementation page [1] to point to the
updated tests in Anish's note [2]?
[1] http://www.w3.org/2000/xp/Group/4/08/implementation.html
[2] http://lists.w3.org/Archives/Public/xml-dist-app/2007Jul/0007.html
Thanks,
Cheers,
Christopher Ferris
STSM, Software Group Standards Strategy
email: chrisfer@us.ibm.com
blog: http://www.ibm.com/developerworks/blogs/page/chrisferris
phone: +1 508 234 2986
xml-dist-app-request@w3.org wrote on 07/25/2007 07:59:58 PM:
>
> This is a follow-up to my earlier email at [1].
>
> I. Preface:
>
> The email at [1] provides a delta to the tests at [2] for the xmime NS
> fixup. The tests at [2] point to two emails [3] and [4]. [3] describes
> test which are labeled 1a, 1b, 2a, 2b, 3a, 4, 5, 6 and 7. [4] describes
> tests which are labled RRSHB1, RRSHB2, RRSHB3 and RRSHB.
>
> This email merges the delta at [1] with the content of emails at [3] and
> [4] so as to provide a single place to look for the updated tests. The
> merged tests are listed below.
>
> II. Updated Tests 1-7 :
>
> -------------------------------------------------------------------
> Here are a set of test scenarios for MTOM. We will use these tests
> during the Candidate Recommendation phase. As noted previously[1] the
> tests will take the form of an echo test. These come in two forms;
>
> 1. A client implementation sends an MTOM message and the server
> implementation returns the corresponding XML 1.0 message
> 2. A client implementation sends an XML 1.0 message and the server
> implementation returns the corresponding MTOM message
>
> In all cases elements with the namespace name
> "http://example.org/mtom/data" and a local name of "Data" will be of a
> type derived from xs:base64Binary. Such elements will have a xop:Include
> element child in the MTOM messages and base64 text as children in the
> XML case. A schema for the elements used is as follows:
>
> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
> targetNamespace='http://example.org/mtom/data'
> xmlns:x='http://example.org/mtom/data' >
>
> <xs:import namespace='http://www.w3.org/2005/05/xmlmime' />
>
> <xs:element name='Data' >
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base='xs:base64Binary' >
> <xs:attribute ref='xmime:contentType' />
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
>
> <xs:element name='EchoTest' >
> <xs:complexType>
> <xs:sequence>
> <xs:element ref='x:Data' minOccurs='1' maxOccurs='unbounded' />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> </xs:schema>
>
> I've listed the various tests below, with example XML messages. Please
> note that in all cases, despite the vagaries of mailers, the x:Data
> element do not have any whitespace characters as children. The amount of
> base64 text sent ( as either text or optimized binary ) is unimportant.
> However, to avoid running into memory limitations during testing, it
> would be best to send smaller rather than larger binary parts. If
> someone wants to propose an upper limit, let me know. I think most of my
> own test messages come in below 512Kb.
>
>
>
> Test 1: Single binary part. Limit the number of x:Data elements in the
> message to 1. An example XML version of the message will be as follows:
>
> <soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope' >
> <soap:Body>
> <x:Data xmlns:x='http://example.org/mtom/data'
> >IK44HhIvWXSX2NIeoJyjiUfI5+ynntOwSmsYyf29ks0NuVSwaHWQedq6kn/qDql6Rmnu5W2
> a44HaiNSnF5B22g==</x:Data>
> </soap:Body>
> </soap:Envelope>
>
> Test 1a: Send XML, get back MTOM
> Test 1b: Send MTOM, get back XML
>
>
>
> Test 2: Multiple binary parts. Allow any number of x:Data elements in
> the message. An example XML version of the message will be as follows:
>
> <soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope' >
> <soap:Body>
> <x:Wrapper>
> <x:Data xmlns:x='http://example.org/mtom/data'
> >IK44HhIvWXSX2NIeoJyjiUfI5+ynntOwSmsYyf29ks0NuVSwaHWQedq6kn/qDql6Rmnu5W2
> a44HaiNSnF5B22g==</x:Data>
> <x:Data xmlns:x='http://example.org/mtom/data'
> >3T4iLkRXu+K/QNlhEJqaIt8uE
> ZHpS7kRdXBLNhiet+xYAUyTiNPFGBuc8EPti+vc9Fe3mMNxAlGFELkUDEXKA==</x:Data>
> <x:Data xmlns:x='http://example.org/mtom/data'
> >g0txZNBHOf5ho5pv7NsXLm5m1
> 3dmG5MC2GCUW2bjRar55raIMPUvkiYFpsJ/dwbKtgtZUb07DWi3b4tvst6Xfg==</x:Data>
> </x:Wrapper>
> </soap:Body>
> </soap:Envelope>
>
> Test 2a: Send XML, get back MTOM
> Test 2b: Send MTOM, get back XML
>
>
>
> Test 3: Testing xmime:contentType attribute and MIME content-type
> header. The xmime:contentType header is specified on x:Data elements in
> an XML message. An MTOM message is returned with the MIME content-type
> of the binary parts set to the appropriate value. An example XML version
> of the message will be as follows:
>
> <soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope' >
> <soap:Body>
> <x:Data xmlns:x='http://example.org/mtom/data'
> xmlns:xmime='http://www.w3.org/2005/05/xmlmime'
> xmime:contentType='image/jpeg'
> >IK44HhIvWXSX2NIeoJyjiUfI5+ynntOwSmsYyf29ks0NuVSwaHWQedq6kn/qDql6Rmnu5W2
> a44HaiNSnF5B22g==</x:Data>
> </soap:Body>
> </soap:Envelope>
>
> The corresponding MTOM message would set the content-type header of the
> binary part for the x:Data element to 'image/jpeg'
>
> Test 3a: Send XML, get back MTOM
> Test 3b: Not applicable.
>
>
>
> Test 4: Failure test: Missing MIME part. Send an MTOM message with a
> xop:Include element that references a non-existent MIME part. A SOAP
> fault should be returned indicating that the message was in error.
>
> Test 5: Failure test: Use of content-location. Send an MTOM message that
> references one or more MIME parts by content-location (rather than
> content-id). A SOAP fault should be returned indicating that the message
> was in error.
>
> Test 6: Failure test: Use of startinfo parameter that does NOT specify
> application/soap+xml. Send an MTOM message that uses a startinfo of
> image/jpeg. A SOAP fault should be returned indicating that the message
> was in error.
>
> Test 7: Failure test: Use of type parameter on the root part that does
> NOT specify application/soap+xml. Send an MTOM message that uses a type
> parameter of image/jpeg for the root part. A SOAP fault should be
> returned indicating that the message was in error.
>
> [1] http://lists.w3.org/Archives/Public/xml-dist-app/2004Jul/0025.html
> -------------------------------------------------------------------
>
>
>
> III. Updated RRSHB Tests
>
> -------------------------------------------------------------------
> RRSHB Implementation/Interop tests for the CR phase :-
>
> The tests below cover the following:
> * basic RRSHB testing
> * testing with multiple RRSH blocks that represent the same resource but
> have different meta-data
> * RRSHB testing in conjunction with xmlmime:contentType attribute
> * RRSHB testing in conjunction with MTOM
>
>
> The schema for the elements and attributes used in the tests is as
> follows (reuses the 'Data' element from MTOM tests with different
> namespace):
>
> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
> targetNamespace='http://example.org/rrshb/test'
> xmlns:x='http://example.org/rrshb/test' >
>
> <xs:import namespace='http://www.w3.org/2005/05/xmlmime' />
>
> <xs:element name='Data' >
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base='xs:base64Binary' >
> <xs:attribute ref='xmime:contentType' />
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
>
> <xs:element name='GetResourceRepresentation' >
> <xs:complexType>
> <xs:attribute name='resource' type='xs:anyURI' use='required' />
> </xs:complexType>
> </xs:element>
>
> <xs:element name='ResourceRepresentation' >
> <xs:complexType>
> <xs:sequence>
> <xs:element ref='x:Data' minOccurs='1' maxOccurs='unbounded' />
> </xs:sequence>
> <xs:attribute name='resource' type='xs:anyURI' use='required' />
> </xs:complexType>
> </xs:element>
>
> </xs:schema>
>
>
>
> Test 1: Basic RRSHB testing
>
> The tests consists of -
>
> Request message: node A (client) sends a message to node B (server) with
> Resource Representation Header block(s) for the resource identified by
> "http://example.org/rrshb/test/data". SOAP Body consists of the element
> {http://example.org/rrshb/test}GetResourceRepresentation. If multiple
> RRSHB are present in the message they must have different values for the
> attribute "xmlmime:contentType".
>
> example request message:
>
> <soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope'
> xmlns:rep='http://www.w3.org/2004/08/representation'
> xmlns:xmlmime='http://www.w3.org/2005/05/xmlmime'>
> <soap:Header>
> <rep:Representation resource='http://example.org/rrshb/test/data'>
> <rep:Data xmlmime:contentType='image/png'>...</rep:Data>
> </rep:Representation>
> <rep:Representation resource='http://example.org/rrshb/test/data'>
> <rep:Data xmlmime:contentType='image/jpeg'>...</rep:Data>
> </rep:Representation>
> </soap:Header>
> <soap:Body>
> <x:GetResourceRepresentation
> xmlns:x='http://example.org/rrshb/test'
> resource='http://example.org/rrshb/test/data' />
> </x:GetResourceRepresentation>
> </soap:Body>
> </soap:Envelope>
>
> Response message: node B (server) responds to node A (client) by
> including all the representations of the resource identified by
> "http://example.org/rrshb/test/data", in the SOAP Body as the content of
> the element {http://example.org/rrshb/test}ResourceRepresentation.
>
> example message:
>
> <soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope'
> xmlns:rep='http://www.w3.org/2004/08/representation'
> xmlns:xmlmime='http://www.w3.org/2005/05/xmlmime'>
> <soap:Body>
> <x:ResourceRepresentation xmlns:x='http://example.org/rrshb/test'
> resource='http://example.org/rrshb/test/data'/>
> <x:Data xmlmime:contentType='image/png'>...</x:Data>
> <x:Data xmlmime:contentType='image/jpeg'>...</x:Data>
> </soap:Body>
> </soap:Envelope>
>
>
> Test 2: RRSHB testing with MTOM
>
> Same as test 1 but the request message uses MTOM to optimize all the
> RRSHB (by using xop:Include) and the response message uses MTOM to
> optimize all the x:Data elements (by using xop:Include)
>
>
> Test 3: RRSHB testing with "reinsert"
>
> In this test the SOAP path consists of node A --> node B --> node A.
> Node B acts as a forwarding intermediary. The message sent from node A
> to node B is same as in test 1, but all the RRSHB headers have the
> "reinsert" and "relay" attribute with the value of "true". The message
> sent from node B to node A is same as in test 1, but all the RRSHB
> headers included in the request message are also present in the response
> message.
>
>
> The tests do not cover section "4.3.3 Extension example: HTTP resolver
> extension", as this was considered to be an example and non-normative.
> -------------------------------------------------------------------
>
>
> -Anish
> --
>
> [1] http://lists.w3.org/Archives/Public/xml-dist-app/2007Jul/0003.html
> [2] http://www.w3.org/2000/xp/Group/4/08/implementation.html
> [3] http://lists.w3.org/Archives/Public/xml-dist-app/2004Aug/0013.html
> [4] http://lists.w3.org/Archives/Public/xml-dist-app/2004Sep/0013.html
>
Received on Friday, 27 July 2007 11:14:27 UTC