Re: [Pharo-project] Writing API for XML (WAX) - Bibliography example
No we consider it as an external package. Now we will have specific dedicated repositories for each version where configuration and all their packages will be published so that people can have distribution of working code. Stef On Nov 3, 2010, at 7:28 PM, Hannes Hirzel wrote:
Is XMLWriter in the upcoming 1.2 image? It is not in the 1.1 image.
--Hannes
On 11/3/10, Hannes Hirzel <hannes.hirzel@gmail.com> wrote:
Thank you Stef, for pointing this out.
I had a look at Torsten's email of July 6th about XMLWriter and the subsequent discussion.
Yes, an alternative approach would be to model an XML generation API along the lines of Seaside html rendering -- with blocks instead of start/end messages.
Has there some work going on elsewhere besides what Torsten did? http://squeaksource.com/PharoGoodies/XMLWriter-tbn.5.mcz
--Hannes
N.B. This is only about 'XML writing' NOT about XML parsing. The idea is to have an API which allows to have readable XML generation code with an implementation which does not consume much memory. And with enough examples and tests.
On 11/2/10, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
Thanks hannes I think that the XMLWriter offers a bit something similar influenced by seaside DSL.
Stef
On Nov 1, 2010, at 10:58 PM, Hannes Hirzel wrote:
Hello
I read the post by Stephane Ducasse about writing XML (see below) with a bibliography example.
Recently I (re)-discovered the port to Squeak/Pharo of the Writing API for XML (WAX) (http://java.ociweb.com/mark/programming/WAX.html) and could put it to good use for writing an XML file a bit more complex than the bibliography example.
From the web site WAX has the following characteristics:
* focuses on writing XML, not reading it * requires less code than other approaches * uses less memory than other approaches (because it outputs XML as each method is called rather than storing it in a DOM-like structure and outputting it later) * writes all XML node types * always outputs well-formed XML or throws an exception unless running in "trust me" mode * knows how to associate DTDs, XML Schemas and XSLT stylesheets with the XML it outputs * is well-suited for writing XML request and response messages for REST-based and SOAP-based services
However I do not know how far these points apply to the Squeak/Pharo port. http://www.squeaksource.com/WAX It needs the VB Regex package (http://www.squeaksource.com/Regex)
As an exercise I did the code to produce the example Stephane gave. It worked fine; see below.
Regards Hannes
==========================================================
WAX new stream: (FileStream newFileNamed: 'myBibliography.xml'); writeXMLDeclaration: #1.0; start: 'BDBase'; attr: 'date' value: '25 May 2010'; attr: 'note' value: 'nil';
start: 'bd'; attr: 'authors' value: 'Larcenet'; attr: 'editor' value: 'Dargaud'; attr: 'entryCreationDate' value: '25 March 2006'; attr: 'entryNumber' value: '1'; attr: 'number' value: '1'; attr: 'original' value: 'true'; attr: 'serie' value: 'Nic oumouk'; attr: 'serieComplete' value: 'false'; attr: 'title' value: 'Total souk pour nic oumouk'; attr: 'year' value: '2005'; end;
start: 'bd'; attr: 'authors' value: 'Greg'; attr: 'editor' value: 'Dargaud'; attr: 'entryCreationDate' value: '5 May 2006'; attr: 'entryNumber' value: '2'; attr: 'notes' value: 'sur le 4eme de couv aventure a manhattan'; attr: 'number' value: '9'; attr: 'original' value: 'true'; attr: 'serie' value: 'Achille Talon'; attr: 'title' value: 'Les petits desseins d''Achille Talon'; attr: 'year' value: '1974'; end;
start: 'bd'; attr: 'authors' value: 'Greg'; attr: 'editor' value: 'Dargaud'; attr: 'entryCreationDate' value: '5 May 2006'; attr: 'entryNumber' value: '3'; attr: 'notes' value: 'sur la couverture une histoire du journal tintin'; attr: 'number' value: '13'; attr: 'original' value: 'true'; attr: 'serie' value: 'Achille Talon'; attr: 'title' value: 'Pas de pitié pour Achille Talon'; attr: 'year' value: '1976'; end; end; close.
========================================================== Output <?xml version="1.0" encoding="UTF-8"?> <BDBase date="25 May 2010" note="nil"> <bd authors="Larcenet" editor="Dargaud" entryCreationDate="25 March 2006" entryNumber="1" number="1" original="true" serie="Nic oumouk" serieComplete="false" title="Total souk pour nic oumouk" year="2005"/> <bd authors="Greg" editor="Dargaud" entryCreationDate="5 May 2006" entryNumber="2" notes="sur le 4eme de couv aventure a manhattan" number="9" original="true" serie="Achille Talon" title="Les petits desseins d'Achille Talon" year="1974"/> <bd authors="Greg" editor="Dargaud" entryCreationDate="5 May 2006" entryNumber="3" notes="sur la couverture une histoire du journal tintin" number="13" original="true" serie="Achille Talon" title="Pas de pitié pour Achille Talon" year="1976"/> </BDBase>
==========================================================
On 10/31/10, stephane ducasse <stephane.ducasse@free.fr> wrote:
How can I control that each of the node of my document get printed a cr at its end?
In the past I got that
<?xml version="1.0" encoding="UTF-8" ?> <BDBase date="25 May 2010" entriesNumber="2440" note="nil"> <bd authors="Larcenet" editor="Dargaud" entryCreationDate="25 March 2006" entryNumber="1" number="1" original="true" serie="Nic oumouk" serieComplete="false" title="Total souk pour nic oumouk" year="2005"/> <bd authors="Greg" editor="Dargaud" entryCreationDate="5 May 2006" entryNumber="2" notes="sur le 4eme de couv aventure a manhattan" number="9" original="true" serie="Achille Talon" title="Les petits desseins d'Achille Talon" year="1974"/> <bd authors="Greg" editor="Dargaud" entryCreationDate="5 May 2006" entryNumber="3" notes="sur la couverture une histoire du journal tintin" number="13" original="true" serie="Achille Talon" title="Pas de pitié pour Achille Talon" year="1976"/> <bd aut
Now I get
<?xml version="1.0" encoding="UTF-8"?><Base date="31 October 2010" entriesNumber="2448" note="nil"><bd serieComplete="false" editor="Dargaud" entryCreationDate="25 March 2006" entryNumber="1" authors="Larcenet" title="Total souk pour nic oumouk" serie="Nic oumouk" original="true" number="1" year="2005" /><bd serieComplete="false" editor="Dargaud" entryCreationDate="5 May 2006" entryNumber="2" authors="Greg" title="Les petits desseins d'Achille Talon" serie="Achille Talon" original="true" notes="sur le 4eme de couv aventure a manhattan" number="9" year="1974" /><bd serieComplete="false" editor="Dargaud" entryCreationDate="5 May 2006" entryNumber="3" authors="Greg" title="Pas de pitié pour Achille Talon" serie="Achille Talon" original="true" notes="sur la couverture une histoire du journal tintin" number="13" year="1976" /><bd serieComplete="false" editor="Dargaud" entryCreationDate="5 May 2006" entryNumber="4" authors="Greg" title
Thanks
Stef
participants (2)
-
Hannes Hirzel -
Stéphane Ducasse