Andreas,

Thank you for the quick reply.

It's actually point 5 of section 3.1 that motivated my original email.  It
seems to indicate that <xop:Include> is a serialized element in the XML
Infoset, not text under the <ns:Document> element (thus white spaces between
<ns:Document> and <xop:Include> should be ignored by the parser).  I agree
the base64binary form should contain no preceding or trailing white spaces
on the <ns:Document> text.

If the SOAP response contains this:

<Document><Include xmlns="http://www.w3.org/2004/08/xop/include";
href="cid:urn:uuid:56443C4239C2E4EC851238526572016"/></Document>

Then I only see one child under <ns:Document> and the serialized form is
correct.


Unfortunately this isn't my service, I'm just a consumer of it.


Thanks,
-Matt


On Wed, Apr 1, 2009 at 2:54 PM, Andreas Veithen
<[email protected]>wrote:

> Matt,
>
> If my interpretation of the specs [1] is correct, then your service
> doesn't return a valid XOP package (see points 3 and 4 in section
> 3.1).
>
> Andreas
>
> [1] http://www.w3.org/TR/xop10/
>
> On Wed, Apr 1, 2009 at 23:32, Matthew Davis <[email protected]> wrote:
> > Hi,
> >
> > I've run into an interesting problem with MTOM response handling. Not
> sure
> > if this is a bug or intended functionality to keep schema compliance (not
> an
> > expert in MTOM+XOP).  Currently using Axis2 v1.4.1 and Axiom v1.2.7.
> >
> > The service I'm calling is returning responses as SOAP/MTOM+XOP, but the
> > SOAP is pretty-printed (kind of, mainly line breaks between elements).
> The
> > problem I'm running into is with the recombination of the XOP parts into
> the
> > XML (base64binary fields).  The MTOM builder keeps the line breaks
> between
> > <Document> and <Include> intact after building, even though it seems to
> be a
> > proper XML element hierarchy.  See the following snippet from the SOAP
> > payload:
> >
> > <Document>
> > <Include xmlns="http://www.w3.org/2004/08/xop/include";
> href="cid:urn:uuid:
> > 56443C4239C2E4EC851238526572016"/>
> > </Document>
> >
> > It finds the attachment(s) without problem.  But, when I call
> getChildren()
> > on the <Document> element, I get three OMText nodes:
> >
> > 1)  OMText:  "\n"
> > 2)  OMText:  The optimized node containing the binary data and
> Datahandler
> > 3)  OMText:  "\n"
> >
> > and when I call serialize and print, the line breaks remain:
> >
> > <Document>
> > [base64-encoded text]
> > </Document>
> >
> > Please let me know if this should be directed to the AXIOM folks instead.
> >
> > Thanks,
> > -Matt
>

Reply via email to