<?xml version="1.0"?><!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"><rss version="0.91"><channel>  <title>Arabica XML Toolkit in C++</title>  <description>Arabica Development Log</description>  <link>/arabica/log</link>  <language>en-gb</language>  <webMaster>jez@jezuk.co.uk</webMaster>  
<item><title>Rather unbelievably, as least for me, some of this Arabica information has been translated into Serbo-Croat by Vera Djuraskovic</title><link>http://www.jezuk.co.uk/arabica/log?id=4382</link><description><![CDATA[ Rather unbelievably, as least for me, some of this <a href='http://www.jezuk.co.uk/cgi-bin/view/arabica/log'>Arabica information</a> has been translated into <a href='http://science.webhostinggeeks.com/arabica-xml'>Serbo-Croat</a> by Vera Djuraskovic.

 ]]></description></item>
<item><title>Arabica Release - 2012 November</title><link>http://www.jezuk.co.uk/arabica/log?id=4372</link><description><![CDATA[ <p>Since putting the Arabica source up on <a href='https://github.com/jezhiggins/arabica'>GitHub</a> there seems to have been a little surge in interest in it.  It might be coincidence, of course, but I've received several emails and patches of the past few weeks.  Once of those emails prompted me to do something I'd been putting off - parameterise the XSLT engine on string type.  All the rest of the library is as string type agnostic as I could make it, allowing you to plug in std::string, std::wstring, or whatever other string class you might fancy.  (In testing, I actually use a string type with no public member functions.)  The XSLT engine was the last hold out, but no more and for the better.</p>
<p>
  If you've been using the XSLT engine what this means is that where you wrote
<pre>
    Arabica::XSLT::StylesheetCompiler compiler = ...
    std::auto_ptr&lt;Arabica::XSLT::Stylesheet&gt; stylesheet = ...
</pre>
you now have to write
<pre>
    Arabica::XSLT::StylesheetCompiler&lt;std::string&gt; compiler = ...
    std::auto_ptr&lt;Arabica::XSLT::Stylesheet&lt;std::string&gt; &gt; stylesheet = ...
</pre>
If you haven't been using the XSLT engine because the rest of your application uses std::wstring, then now there's nothing to stop you.  Dive in!
</p>

<p>Source tar.bz2<br/>
<a href='http://sourceforge.net/projects/arabica/files/arabica/November-12/arabica-2012-November.tar.bz2/download'>http://sourceforge.net/projects/arabica/files/arabica/November-12/arabica-2012-November.tar.bz2/download</a>
</p>
<p>
Source tar.gz<br/>
<a href='http://sourceforge.net/projects/arabica/files/arabica/November-12/arabica-2012-November.tar.gz/download'>http://sourceforge.net/projects/arabica/files/arabica/November-12/arabica-2012-November.tar.gz/download</a>
</p>
<p>
Source zip<br/>
<a href='http://sourceforge.net/projects/arabica/files/arabica/November-12/arabica-2012-November.zip/download'>http://sourceforge.net/projects/arabica/files/arabica/November-12/arabica-2012-November.zip/download</a>
</p>
<hr/>
<h3>Changes and Bug Fixes</h3>
<p><strong>DOM</strong>
  <ul>
	  <li>Expand entity references</li>
    <li>getLineNumber/getColumnNumber return size_t</li>
    <li>handle [dtd] pseudo-entity correctly</li>
    <li>various, mostly obscure, DOM conformances fixes</li>
  </ul>
</p>
<p><strong>XSLT</strong>
  <ul>
    <li>XSLT engine is now, like the rest of Arabica, parameterised on string type</li>
  </ul>
</p>
<p><strong>Build and installation</strong>
  <ul>
    <li>Solution and project files for Visual Studio 2012 are provided</li>
    <li>Donated CMake build files included</li>
  </ul>
</p>

 ]]></description></item>
<item><title>Arabica on GitHub</title><link>http://www.jezuk.co.uk/arabica/log?id=4362</link><description><![CDATA[ I've migrated the Arabica source code to <a href='https://github.com/jezhiggins/arabica'>GitHub</a>.  ]]></description></item>
<item><title>DOM Conformance Tests</title><link>http://www.jezuk.co.uk/arabica/log?id=4178</link><description><![CDATA[ <p>Over the past few days, I've been working on Arabica's DOM conformance.  Until now, it's been based entirely on my reading or not of the relevant W3C Recommendations.  I've always been pretty confident is was correct, but a recent bit of undirected Googling reminded me of the <a href='http://www.w3.org/DOM/Test/'>W3C DOM Conformance Test Suites</a> and I thought "why not".</p>
<p>The W3C tests are defined in XML and then transformed to code using XSLT.  It comes with stylesheets to generated Java JUnit tests and Javascript JSUnit tests.  Monkeying up something to generated Arabica-style CppUnit code only took a few minutes, and getting that code compiling and running only took a little bit longer than that. Embarrasingly, some of the existing DOM code didn't compile and nobody had ever noticed.  Interrogating a doctype for its entities just isn't that common, I guess.  </p>
<p>With that done, and to my relief, nearly all of the 500 odd tests in the Level 1 Core suite passed first time.  Most of those that didn't relied on loading an external DTD, and those that remained were primarily around the behaviour of entity references and child nodes of attributes.  Good to have it all fixed though.</p>
<p>Thanks to those who put these tests together.  It must have really rather tedious, but all the tests I've looked at in any detail have been good and sensible.</p>
<p>Will move onto Level 2 Core in due course, but got a hankering to wrestle some more of Arabica's XSLT engine to the floor.</p> ]]></description></item>
<item><title>Arabica Release - 2010 November</title><link>http://www.jezuk.co.uk/arabica/log?id=4154</link><description><![CDATA[ <p>
  For no particular reason than people like official releases and there hasn't been one for a very long time, I've cut a new Arabica release.  I'm not entirely sure why I've labelled it 2010-November when it's clearly still October.  There is no major new feature, just the gentle accumulation of more work on Arabica's XSLT processor along with sundry bug fixes.
</p>
<p>Source tar.bz2<br/>
<a href='http://sourceforge.net/projects/arabica/files/arabica/November-10/arabica-2010-November.tar.bz2/download'>http://sourceforge.net/projects/arabica/files/arabica/November-10/arabica-2010-November.tar.bz2/download</a>
</p>
<p>
Source tar.gz<br/>
<a href='http://sourceforge.net/projects/arabica/files/arabica/November-10/arabica-2010-November.tar.gz/download'>http://sourceforge.net/projects/arabica/files/arabica/November-10/arabica-2010-November.tar.gz/download</a>
</p>
<p>
Source zip<br/>
<a href='http://sourceforge.net/projects/arabica/files/arabica/November-10/arabica-2010-November.zip/download'>http://sourceforge.net/projects/arabica/files/arabica/November-10/arabica-2010-November.zip/download</a>
</p>
<hr/>
<h3>Changes and Bug Fixes</h3>
<p><strong>SAX</strong>
  <ul>
    <li>Exceptions thrown by MSXML are usefully reported, and no longer corrupt the stack</li>
    <li>updated for most recent Xerces release</li>
  </ul>
</p>
<p><strong>DOM</strong>
  <ul>
    <li>Corrected <code>set/get/removeNamedItemNS</code> functions</li>
    <li><code>splitText</code> fixed</li>
    <li>fixed <code>setAttributeNodeNS</code></li>
    <li>double delete when removing and re-adding an attribute fixed</li>
    <li><code>operator&lt;&lt;</code> extended for wide streams</li>
    <li><code>operator&lt;&lt;</code> correctly generates auotmatic namespaces prefixes for attributes</li>
  </ul>
</p>
<p><strong>XPath</strong>
  <ul>
    <li>Some optimisations in the expression evaluation</li>
    <li>variables may now, optionally, be resolved at compile time</li>
  </ul>
</p>
<p><strong>XSLT</strong>
  <ul>
    <li><code>xsl:key</code> and <code>key()</code> implemented</li>
    <li><code>cdata-section-elements</code> supported</li>
    <li>literal result element (aka embedded stylesheets) implemented</li>
    <li>minor speed optmiations</li>
    <li><code>xsl:sort/@lang</code> is still not supported, but now issues a warning rather than throwing an exception</li>
    <li><code>function-available</code> implemented</li>
    <li><code>element-available</code> stub implementation</li>
    <li><code>xsl:sort</code> attributes correctly implemented as attribute value templates</li>
    <li>allow and ignore attributes in foreign namespaces</li>
    <li>verify the qualified names used in the stylesheet (eg. as template names) have prefixes which are bound</li>
    <li>take precedence into account when resolving named templates</li>
    <li>disallow variables in <code>xsl:key</code> <code>match</code> and <code>use</code> expressions</li>
  </ul>
</p>
<p><strong>Build and installation</strong>
  <ul>
    <li>Solution and project files for Visual Studio 7 (2003) and 8 (2005) are no longer provided.  A script to generate them from the VS9 files is provided.  The results are not guaranteed, but has worked fine when used previously.</li>
  </ul>
</p>
<p><strong>Other bits and bobs</strong>
  <ul>
    <li>Builds without warnings</li>
    <li>xgrep example application now also outputs non-nodeset results</li>
  </ul>
</p>
<hr/>
<p>I never did write the release notes for the previous release, back in March 2009.  For completeness sake, they are </p>
<p><strong>XSLT</strong>
  <ul>
    <li><code>generate-id</code> implemented</li>
    <li>detect circular imports and includes</li>
    <li>escape tabs, carriage returns and line feeds when outputting attribute values</li>
  </ul>
</p>
<p><strong>Other bits and bobs</strong>
  <ul>
    <li>Improved URI parsing</li>
  </ul>
</p> ]]></description></item>
<item><title>Arabica source code repository</title><link>http://www.jezuk.co.uk/arabica/log?id=3991</link><description><![CDATA[ <p>Entirely through my own stupidity, I managed to corrupt the Arabica subversion repository.  By sheer good luck, I'd been using <a href='http://bazaar-vcs.org/'>Bazaar</a> 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.</p>
<p>The repository can be <a href='http://jezuk.dnsalias.net/arabica/'>browsed</a> and you can grab your own working copy over HTTP using <pre>
  bzr branch http://jezuk.dnsalias.net/arabica-bzr/trunk
</pre>
Write-access using <code>bzr+ssh</code> is available on request.</p> ]]></description></item>
<item><title>Development snapshots</title><link>http://www.jezuk.co.uk/arabica/log?id=3940</link><description><![CDATA[ <p>Arabica code as at 13:00 on the 1st of August :
<ul>
  <li><a href='/files/arabica-2009-summer.tar.bz2'>Tar.bz2 bundle</a></li>
  <li><a href='/files/arabica-2009-summer.tar.gz'>Tar.gz bundle</a></li>
  <li><a href='/files/arabica-2009-summer.zip'>Zip bundle</a></li>
</ul>
</p> ]]></description></item>
<item><title>Arabica March 2009 Release</title><link>http://www.jezuk.co.uk/arabica/log?id=3910</link><description><![CDATA[ <p>Just uploaded to <a href='https://sourceforge.net/project/platformdownload.php?group_id=56163'>Sourceforge</a>.  Proper release notes to follow but main difference is a big performance improvement in Taggle parsing and further work on Arabica's XSLT engine.</p> ]]></description></item>
<item><title>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</title><link>http://www.jezuk.co.uk/arabica/log?id=3907</link><description><![CDATA[ <p>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.</p>
<p>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 <a href='http://www.w3.org/TR/xslt#key'>spec</a> 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.</p> ]]></description></item>
<item><title>FAQ: When will Arabica&apos;s XSLT library be finished?</title><link>http://www.jezuk.co.uk/arabica/log?id=3870</link><description><![CDATA[ <p>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.</p>
<p>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 <a href='http://spreadsheets.google.com/pub?key=pQSUogJPG5pARCFUTTYNhWg'>results are published here</a>, but all the code and test data is included in the <a href='/arabica/code'>download</a>.  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.</p>
<p>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.</p>
<p>Give it a go.  It might do what you need.</p> ]]></description></item>

</channel></rss>