On 9/25/06, James M Snell <[EMAIL PROTECTED]> wrote:
> Lastly, not being a Java developer some of the libraries referenced by > Abdera are foreign to me, like Axiom/StAX, etc. so I'm finding it a > little difficult finding a good starting point for development. My > plan is to, at least right now, start looking at the JUnit tests and > start working forward from there - but the question then becomes where > to start testing...Maybe these are all questions once I can spend some > more time looking at the source. > StAX is an XML Pull Parser. I'm not all that familiar with .NET but I believe this [1] is a fairly close analog. Axiom is an XML Infoset implementation built on top of StAX. This will be the hardest thing for you to port. Essentially, Axiom parses the XML into an in-memory representation of the infoset, but does so incrementally (e.g. it only parses what the user actually asks for). I recommend consulting with the members of the ws-commons project for help on Axiom. [1] http://www.xml.com/pub/a/2002/05/22/parsing.html
I think you're right James, the Axiom bit is going to be interesting. My initial reaction to seeing the code involved with Axiom and the FOM was "hey, a great chance to use XML Serialization" (.NET has built in capabilities to serialize the data from an instance of type to/from XML), but you got me with the incrementally bit. I believe that it's an all or nothing thing for the out-of-box serialization in .NET - at least that's the way it was in 1.x version; I haven't messed with serialization in 2.0. The pull-based model that is StAX shouldn't be an issue as there's built-in forward-only, read-only cursor support for XML just as you referenced. There's also support for bi-directional and updatable (in 2.0) cursors over XML as well [1]. So I'll take a look further into serialization and Axiom and continue to bounce ideas here. [1] http://msdn2.microsoft.com/library/system.xml.xpath.xpathdocument.aspx
> One thing I would like comments on (as if I haven't asked enough > questions already) is what your thoughts are on which runtime version > to target (.NET 1.1 vs 2.0). I couldn't conclusively determine if the > Mono compilers support the new language features of C# 2.0. I feel > .NET 2.0 would be a better target given the intrinsic support for XML > Encryption/Security and significant performance improvements to the > XML reading/parsing/etc. library and while I would like this > implementation to be Mono-compatible, this may just be a matter of > crawl-walk-run. > I personally would target .NET 2.0, but then again, I'm not all that familiar with .NET or it's adoption patterns.
My initial thought was to target 2.0 and then move back if necessary, but I would like to strive to have it target Mono as well so that it, too, can run on virtually any platform, not just Win32/64. I'll see about posting and reading elsewhere about what Mono's capabilities are in relation to v2.0 (wow, almost a year old!). - Harris
