Older blog entries for vdv (starting at number 20)

Long time since my last diary... Just been busy with my too many projects and most specifically my Relax NG book!

I have resumed work on two of my open source projects:

No major enhancements here, but a port from a Saxon specific extension to the EXSLT exsl:node-set() function. This makes XSLTUnit much more portable since it should run on any EXSLT compliant XSLT processor. Unfortunately this is not (yet?) the case with libxslt because of a couple of bugs related to the lack of support of a root node in the node set result.

Major redesign for Examplotron 0.5 which compiler is no longer generating a XSLT transformation but a Relax NG schema (with embedded Schemantron constraints when needed). The set of features is pretty much the same, the purpose of the intermediate release been to evaluate the impact of the changes. This will give a stronger base to the project and facilitate adding new features.

That's fun to see three of my unrelated projects starting to work together: XSLTUnit is now used to do unit tests on Examplotron and the result of the compilation of an Examplotron can be used as an input for xvif...

Server migration
    Been quite busy, after my vacation in sunny California, to setup an environment using two home hosted servers (Debian GNU/Linux of course) connected through DSL and backuped as round robin to replace the server I was previously hiring in the US (the revenues of the sites I am hosting couldn't cover the cost any longer...). It's not 100% stable yet but already enough to run...
    One of the issues to set up this environment was DNS: I have only 1 fixed IP and needed to borrow at least a secondary somewhere and I came on a nice project called xname during my quest. This is an open source infrastructure above the standard bind9 and after a couple of feature requests easy to implement xname has become a good fit for what I needed to do.
    One of these features is a XML-RPC service allowing to update the DNS when a variable IP address changes. Since xname is using PHP, I have writen this simple service using Edd's excellent XML-RPC for PHP. That's not rocket science (was even rather trivial), but I like these simple developments which show the power of such tools on non over-hyped applications. This seems rather new too, except for some requests for such a service done by Dave Winer back in 1999...
Mailing lists
    I have closed today xml-server and xml-tips, two mailing lists which I had created on the defunct "eGroups" when I was a XML newbie thinking I could change the course of XML. Funny enough, xml-server was created to promote the idea that XML databases were both useful and possible, an idea which is now widely shared and which I am fighting in its most rigid incarnation which tend to complexify and rigidify XML to make it easier to store and retrieve in databases. This is the case of XPath 2.0 which should include 80% of the features of XQuery and (IMHO) make it inapropriate for most of the XML processing as we know it today.
    I am also packing to leave for the Open Source Convention in San Diego... An opportunity to meet a different community than at the XML Idealliance conferences which I love to attend and also to spend a couple of weeks in sunny California with my family: we've planed to follow the coast from San Diego down to San Francisco...
    The French translation of my WXS book is now available in the book stores and I took some pictures in Paris this afternoon. That's pretty nice to see stacks of my book in stores! Makes it much more real than just seeing it on Amazon...

Why XML?
    Interesting thread about the RELAX NG "compact syntax". There is no doubt that the RELAX NG (non XML) compact syntax is more concise, easier to read and more elegant than the XML syntax, however, despite the efforts done by James Clark to provide an extension mechanism, John Cowan thinks that annotations are still so ugly that they should be removed from the compact syntax. The point here is that even though for each application taken alone, XML is frequently less appealing than other alternatives (XSLT and WikiMl are two other examples), XML is a clear winner as soon as there is a need for extensibility and interoperability between applications. BTW, the lack of extensibility of non XML syntaxes would also be an issue with if I wanted to integrate xvif into the compact syntax for RELAX NG...
    Published WikiMl as a project on advogato and freshmeat which gives it some visibility and got some interesting threads starting on its mailing list.
    Also published release 0.1.2 of xvif with a bug fix and the packaging of Relax NG test suites like I had done in 0.1.1 for the Regular Fragmentations test suite.


    The links between those two projects? I am using WikiMl to write my next book. The subject of this book is Relax NG and I am testing the examples of the book against the Relax NG implementation which is part of xvif (that's how I have found the bug fixed today). So there are some links between these projects and I am already using both of them together for some real world work!
XML Schema book
    This morning I have received my copies of my XML Schema book. I had seen the PDFs, but that's really different to get the real book in the hands. It's nice to see the result of 18 months of hard work.


    Just published release 0.1.1 of xvif. The major update is the implementation of a test suite for Regular Fragmentations which relies on a new module (xmlcomp) performing simple but flexible comparisons between documents (you can define what you want to test and ignore things such as empty text nodes or namespace prefixes).
    Pushed by a need to find a home for xvif, I have finally started opening some sections of XmlSchemata.org, an "equal opportunity web site for XML schema languages". Currently available are: All this powered by "best of the breed" open source software.
    The next problem I'll have to face is the need for some level of integration and common look and feel for XmlSchemata. So far, I have been solving this kind of issues (for instance for XMLfr) the hard and classical way by using the customization features of each open source application to present it in the look and feel of the site. It's perfectly possible to achieve a pretty good result since most if not all these softwares are flexible enough to look as you like. It's painfull though since the customization is different for each of them and it's also very difficult to maintain: to apply any change to the whole site you need to edit the configuration of each of the applications you've installed.
    I am considering using a different approach for XmlSchemata.org and developing a kind of "presentation/proxy server" which would act as a proxy adding the presentation through XSLT transformations. I have started developing a simple prototype using Python and libxml/libxslt and this looks very promissing. The benefit of using libxml/libxslt is that it's very fast and has a good HTML parser.
    The idea is that this presentation server would receive the requests and apply a XSLT transformation on the HTTP request formalized as XML. This transformation would read some kind of site map and when needed either execute a CGI script or pass the request to another HTTP server and format the (X)HTML result of the CGI or HTTP request. I am quite confident that the customization of open source applications can be much less painfull and much easier to maintain using this kind of techniques... But I still need to prove it!
20 Jun 2002 (updated 20 Jun 2002 at 11:29 UTC) »
    I have, at last, published a first release of my proposal for an Xml Validation Interoperability Framework (xvif) to tie together Relax NG, XPath, XSLT, Regular Fragmentations and more if needed. It's written in Python and available under MPL. I am now eagerly waiting for feedback!
Regular Fragmentations
    Finished and posted today a first version of a Python implementation of simonstl's Regular Fragmentations including an online demo. Regular Fragmentations are one of the technologies which may be very usefull in a validation framework and I like their simplicity even though, as usual, things begin to get nasty when you want to deal with attributes!

11 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!