[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