Arabica is an XML and HTML processing toolkit, providing SAX, DOM, XPath, and partial XSLT implementations, written in Standard C++.
- SAX is an event-based XML processing API. Arabica is a full SAX2 implementation, including the optional interfaces and helper classes. It provides uniform SAX2 wrappers for the Expat parser, Xerces, Libxml2 and, on Windows, for the Microsoft XML parser.
- The DOM is a platform- and language-neutral interface which models an XML document as a tree of nodes, defined by the W3C. Arabica implements the DOM Level 2 Core on top of the SAX layer.
- XPath is a language for addressing parts of an XML document. Arabica implements XPath 1.0 over its DOM implementation.
- XSLT is a language for transforming XML documents into other XML documents. Arabica builds XSLT over its XPath engine.
- In addition to the XML parser, Arabica includes Taggle, an HTML parser derived from TagSoup.
Arabica is written in Standard C++ and should be portable to most platforms. It is parameterised on string type. Out of the box, it can provide UTF-8 encoded std::strings or UTF-16 encoded std::wstrings, but can easily be customised for arbitrary string types.
Arabica is available for download under a BSD-style license.
Latest News
[RSS 0.91]
Thursday 05 November, 2009
#Arabica source code repository Entirely through my own stupidity, I managed to corrupt the Arabica subversion repository. By sheer good luck, I'd been using Bazaar as my front-end client, and so had a clone of the entire repository sitting in my working directory. Accordingly, the Arabica source code is now housed in a Bazaar repository.
The repository can be browsed and you can grab your own working copy over HTTP using
bzr branch http://jezuk.dnsalias.net/arabica-bzr/trunkWrite-access usingbzr+sshis available on request.
[Add a comment]
Saturday 01 August, 2009
#Development snapshots Arabica code as at 13:00 on the 1st of August :
Aloha! http://virb.com/HillBertina37 buy xanax online no rx
anonymous, 8th Feb 2010Aloha! http://virb.com/RyanBeatrice94 buy tramadol online
anonymous, 8th Feb 2010Aloha! http://virb.com/FergusonBeryl11 buy tramadol online
anonymous, 8th Feb 2010Aloha! http://virb.com/GordonBernard13 buy ambien online
anonymous, 8th Feb 2010Aloha! http://virb.com/KingBrendan75 buy ambien online
anonymous, 8th Feb 2010Aloha! http://virb.com/Brian92 order adipex online
anonymous, 8th Feb 2010Aloha! http://virb.com/GreenBeverly28 buy adipex online
anonymous, 8th Feb 2010Aloha! http://virb.com/CampbelBriana60 buy adipex p
anonymous, 8th Feb 2010Aloha! http://virb.com/WalkerBrenda67 buy ativan canada
anonymous, 8th Feb 2010Aloha! http://virb.com/WhiteBrittany85 buy meridia online
anonymous, 8th Feb 2010Aloha! http://virb.com/SullivanBrenda54 buy generic valium
anonymous, 9th Feb 2010
[Add a comment]
Friday 13 March, 2009
#Arabica March 2009 Release Just uploaded to Sourceforge. Proper release notes to follow but main difference is a big performance improvement in Taggle parsing and further work on Arabica's XSLT engine.
[Add a comment]
Friday 27 February, 2009
#Just wrote quite a long piece about what's been going on in Arabica over the past four months then, like a burk, killed Firefox. Hurrr.
What I'd said, in a rather long winded and rambling way, was that import precedence is now works correctly for all cases, not just mainly implemented for the common cases, a couple of nagging little bits got sorted out, and over the past few weeks I've implemented xsl:key and key(). As many times before, James Clark's concise and subtle spec text has been a pleasure to work with, and I've surprised myself with how easily I've been able to implement a feature. I've been working with this code for a long time now, but it really is holding up.
No comfort, no doubt, to learn that it's rightly spelled "berk", being short for "Berkeley Hunt", which rhymes with ...
johnwcowan, 1st Mar 2009John, thank you so, so much. That is marvellous.
jez, 1st Mar 2009
[Add a comment]
Monday 20 October, 2008
#FAQ: When will Arabica's XSLT library be finished? To tell the truth, I have no idea. Development is of Mangle, Arabica's XSLT engine, is ongoing, although progress varies according to the vagarities of how busy I am, how energetic I'm feeling, whether the kids have a swimming gala, and so on and so forth.
Although it's not done yet, it might well be done enough. I'm using the OASIS XSLT test suite to help drive development, and so it also provides a measure of how much has been done, what's working and what isn't. The results are published here, but all the code and test data is included in the download. The executive summary is the core stuff that you use every day works, but some of the bits round the edges (edges defined by my experience, anyway) are missing.
To my knowledge there's nothing that causes Mangle to crash, and anything that I haven't yet implemented generates a warning when the stylesheet is compiled.
Give it a go. It might do what you need.
[Add a comment]
Older news ...
Get in touch Your questions, requests, updates and patches are all welcome. I can be contacted at jez@jezuk.co.uk.
