v0.1, XppOnStax classes

Tatu Saloranta <[email protected]> Sun, 18 Jul 2004 17:18:24 -0700 (PDT)
Newsgroups gmane.text.xml.xmlpull.devel
Message-ID <[email protected]>
--0-879301500-1090196304=:86329
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

I created the wrappers that can be used to adapt Stax
stream reader and writer to xmlpull parser and
serializer, plus the xmlpull factory implementation
for both. The classes are rather quick hacks, and
don't exactly pass all the compatibility tests (but
mostly since I couldn't find sources for test code, to
verify exactly why most tests fail). Nonetheless I
thought someone might be interested in the code. I
will probably also be sending the code to stax-utils
group, as some people over there might also be
interested in adding wrappers to help compatibility.
I did briefly test that the parser wrapper works on
simple iteration, using Woodstox StAX parser on couple
of simple test documents, FWIW.

About the implementation: there are some subtleties
trying to solve minor impedance between StAX and
Xmlpull APIs (xmlpull expects bit more persistence
about namespace context, for example), but for the
most part APIs are similar enough. It should be
possible to make wrappers good enough to handle most
common Xmlpull-based code out there.

-+ Tatu +-


	
		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 

------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/2U_rlB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/xmlpull-dev/

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 

--0-879301500-1090196304=:86329
Content-Type: application/x-gzip; name="wstx-xpp-src.tar.gz"
Content-Transfer-Encoding: base64
Content-Description: wstx-xpp-src.tar.gz
Content-Disposition: attachment; filename="wstx-xpp-src.tar.gz"

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
LHTmpCEFUKt9qI1s0Ra+MMgUT6g3xHhDyZUGgUGsFCwmVERcAErw7/Fpvjje
xWo+9MS5kFFK5N/jo48fOvkEUZaqArbrv89z7b44Yne1mhMOJn3zPbS2tKhC
nRm6ZkdpS974a1TvjBP4QRerkenKE9ylPWFPHBhIU1jGAiRFg3Gx0Zf33Pg7
aptzmSgMW7BzOTMYXQgo5tMpbFTUq4kXpnGEfj7zBABGceWqfYrxYKQiGxDT
uFopdUzEgozOTX2u0o6pC9IZ62gJXRTQzClm5esM/cIHaZjA7FLoU7XXMg1x
WaGGk98u60AOX3OZ9qVkDdSEKC07DsIZG4rcPmctnGXJluNFL0yJhXxibiDo
RcLl5dvmCFcPr2toF/ODPbrD/mC4vdlxjkDFsC5CsiCa83410Gik+bSk0gB1
tYyWcyVrgaQfxS7rHBZS/YMV9xS2YskVKjxSNJNxIV93tZ5Y2oUtUI+M7mmL
aaSbloYLuhBeHyIZ20C1zllIQO/zU63cjiy1f42Jxi1DZFsko05q6mo5S2YH
rQVdLZWKX8YvHZOP0TujajOwuGbu12Et7zTS+a+z/wYzBv9f2KvO2X9bDP6u
77pzHGhMFaeIJqNtdLQ4nTK1Ku+sgkyksnvq0thfdNU55su1g8P6+cqftf/f
1/2s/f++bv+ftf/f1/2s/f++7vm/9v9b+/9pUGv/v7X/39r/b+3/t/b/W/v/
rf3/1v5/a/8/3dLa/2/t/7f2/1v7/639/9b+f4tJuvb/W/v/rf3/1v5/a/+/
tf/f2v9v7f/3Ofv//R9KFFFQAPAAAA==

--0-879301500-1090196304=:86329--