[wsf-c-dev] AXIOM NG
Sanjiva Weerawarana
sanjiva at wso2.com
Sat Dec 9 15:48:06 PST 2006
Hi James,
Are you basically suggesting that the entire system be implemented in a
raw pull API?
Sanjiva.
James Clark wrote:
> On Fri, 2006-12-08 at 21:16 +0600, Samisa Abeysinghe wrote:
>>>> However, SOAP
>>>> body would be USE_MANY most of the time.
>>>>
>>> Why? If you're signing I guess it would have to be USE_MANY (unless we
>>> can find some clever way to avoid this), but apart from that, I would
>>> thought it would typically be USE_ONCE; it would up to the application
>>> to make it USE_MANY if it needs to. What does the SOAP engine need to
>>> do with the body apart from signing/encrypting? I guess you sometimes
>>> need the name of root element of the payload for dispatching. What
>>> else?
>>>
>> The current implementation peeks into the SOAP body to determine if
>> there is a fault in the SOAP body.
>
> I think the clean way to handle this is for the xml_reader interface to
> do the peeking: on a start_element event, you would be able to tell the
> xml_reader to hold on to it, and then on any event corresponding to a
> descendant, you would be able to go back to that event. The xml_reader
> will already need to have this kind of event buffering capability to
> implement other methods.
>
> Then the basic strategy for building a message context with an
> xml_reader would be:
>
> - Read to the envelope start-tag
>
> - Save the envelope's attributes (need to figure out the best way to
> represent these); probably useful to save the in-scope namespaces as
> well
>
> - Read to the header start-tag
>
> - For each header-block start-element event, save the local name,
> namespace URI and SOAP-defined attributes and then save the header-block
> as an xml_element
>
> - Read to the body start-tag
>
> - Save the local name and namespace URI
>
> - Tell the xml_reader to hang on to this event
>
> - Read to the start-tag of the first child element (if any)
>
> - Save the local name and namespace URI
>
> - Go back to the body start-tag
>
> - Tell the xml_reader to stop hanging on to this event
>
> - Tell the xml_reader to make an xml_element out of the rest of the
> document starting with this start-tag (but lazily give an error if
> there's anything but comments and whitespace between the body end-tag
> and the envelope end-tag)
>
> All of these xml_element's would initially be USE_ONCE. But if any of
> the handlers need to examine them (and not replace them), then the
> handlers would need to make them USE_MANY first.
>
> James
>
>
>
>
>
> _______________________________________________
> Wsf-c-dev mailing list
> Wsf-c-dev at wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/wsf-c-dev
>
--
Sanjiva Weerawarana, Ph.D.
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
email: sanjiva at wso2.com; cell: +94 77 787 6880; fax: +1 509 691 2000
"Oxygenating the Web Service Platform."
More information about the Wsf-c-dev
mailing list