Message-ID: <998144333.20365.1394163494180.JavaMail.firstname.lastname@example.org> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_20364_537984429.1394163494179" ------=_Part_20364_537984429.1394163494179 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
(or: "StaxMate: Automatic Shifting for Streaming XML Proces= sing")
(for older news, check out full News<= /a> page)
StaxMate is a light-weight framework that aims to offer:
for XML processing.
While efficiency is something StaxMate works hard to retain from underly= ing components, Convenience is the main thing that StaxMate adds: using &qu= ot;raw" Stax interface (check out javax.xml.stream for detail= s) is not very convenient way to get things done. StaxMate changes this, an= d makes XML processing much simpler, more natural; both when reading and wr= iting XML. More on this below.
And finally, StaxMate does not sacrifice correctness to attain the prima= ry goals: it strives to expose right methods for getting well-formed and va= lid XML to be produced; and accessed in ways that are compatible with the i= ntent of relevant XML standards such as XML Namepsaces. Although Stax proce= ssors also strive for correctness, there are additional safeguards that Sta= xMate uses to make it very hard to produce non-well-formed content. This is= possible because of higher level of abstraction at StaxMate API level.
For full overview of functionality and usage, please refer to Documentation page.
But here is= a highly condensed executive summary of StaxMate API:
Cursors and output objects encapsulate scoping information to make readi= ng and writing nested XML content more natural than when using basic Stax X= MLStreamReader and XMLStreamWriter. Skipping sub-trees is natural; and pass= ing cursors and output objects is safer than passing stream readers/writers= . Each object has clear scope for its read/write operations, and you need n= ot worry about closing or skipping sub-trees: this is handled as you would = expect. One way to think of this is that StaxMate offers automatic shif= ting over manual shifting that basic Stax API offers.
Beyond more convenient traversal and scoping, StaxMate also offers conve= nient access to "data typed" XML reading and writing, without hav= ing to use XML Schema or code generation. If you know certain element or at= tribute values to contain typed content (numbers, boolean values, QNames, l= ists of simple types), you can read and write them as if XML document itsel= f was fully type-aware. Part of this is implemented by using Stax2 API that some Stax processors implement; and= the rest by emulating this API for other processors.
The design ideas and main features of both are listed, respectively, on = StaxMateIterators and <= a href=3D"/display/STAXMATE/StaxMateOutputters">StaxMateOutputters page= s.
StaxMate is licensed under BSD license= . Share and Enjoy!
To use StaxMate, you need:
See GitHub StaxMate project.
Currently the best to reach people involved in the project is via StaxMa= te mailing lists.
CowTalk Blog features StaxMate as well, and of= ten has other relevant content.
There exists two major types of support for StaxMate: