You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Rich Scheuerle (JIRA)" <ji...@apache.org> on 2006/10/09 22:33:21 UTC

[jira] Commented: (WSCOMMONS-76) StAX Filter [ Data conversion, extraction, or do something between XMLStreamReader and StAXBuilder]

    [ http://issues.apache.org/jira/browse/WSCOMMONS-76?page=comments#action_12440966 ] 
            
Rich Scheuerle commented on WSCOMMONS-76:
-----------------------------------------

I agree with Eran that the majority of this work should be outside of Axiom.

The crux of the issue is that you would like the XMLStreamReader to be aware of the builder.

My suggestion is to make the following changes:

a) Introduce a new interface, org.apaches.axiom.om.impl.builder.BuilderAwareReader.  The interface would have one method,
     setBuilder(StAXBuilder).

b) Provide a small change to the implementation of StAXBuilder to register the builder on the reader.

protected StAXBuilder(OMFactory ombuilderFactory, XMLStreamReader parser) {
    ....
    if (parser instanceof BuilderAwareReader) {
            ((BuilderAwareReader) parser).serBuilder(this)
     }
    .....
}

---------------------------
If you make this change, then all of the rest of the code (all the filter stuff and registry stuff) can be outside of Axiom.
I think this makes more sense.

Comments ?


> StAX Filter [ Data conversion, extraction, or do something between XMLStreamReader and StAXBuilder]
> ---------------------------------------------------------------------------------------------------
>
>                 Key: WSCOMMONS-76
>                 URL: http://issues.apache.org/jira/browse/WSCOMMONS-76
>             Project: WS-Commons
>          Issue Type: New Feature
>          Components: AXIOM
>         Environment: windows
>            Reporter: Takahide Nogayama
>         Assigned To: Rich Scheuerle
>         Attachments: patchAXIOM_to_moduleaxiom-apisrcmainjava.txt, patchAXIS2_to_moduleskernelsrc.txt, src_demo.zip, StAX_filter_architecture.ppt, ver2_patch_to_axiom_modules_axiom-api_src_main_java_org_apache_axiom_om_impl_builder.txt, ver2_patch_to_axis2_modules_kernel_src_org_apache_axis2_transport.txt, ver3_patch_to_axiom_modules_axiom-api_src_main_java.txt, ver3_src_demo.zip
>
>
> Filter is interface and extends XMLStreamReader. Filter wraps XMLStreamReader. And XMLStreamReader of StAXBuilder is replaced by Filter.
> In building phase, next() method must be invoked on each event. filter get result of next() from XMLStreamReader, and do some process, then return the result to StAXBuilder.
> We can set Object on filter. Filter get some information from it and set result on it to transfer the result.
> We can set StAXBuilder on filter. Filter get OMDocument from the builder. If filter want to know past information, the OMDocument has it.
> If StAXBuilder has lastNode() method, Filter can make reference list to OMNode. this is commneted in http://issues.apache.org/jira/browse/WSCOMMONS-75 .
> Example1)
> SOAP header has some child elements. and they has actor Attribute. it indicates which intermediary should process the element.
> ExtractMyActorSOAPHeaderFilter.java is implementation of Filter for this example. The filter monitors locaName at first,
> If START_ELEMENT whose actor does not equals myactor is found, The filter invokes next() until the element's END_ELEMENT.
> Thus, The soap header elements which has other's actor are not transfered to StAXBuilder. We can ommit creating fruitness OM.
> Example2)
> If StAXBuilder has lastNode() method, Filter can make reference list. The list has OMNode whose actor indicates myactor.
> After building, If we want to access Security header elements which has myactor, we can access the element directry by using the reference list.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: commons-dev-help@ws.apache.org