[Pharo-project] Writing API for XML (WAX) - Bibliography example

Stéphane Ducasse stephane.ducasse at inria.fr
Wed Nov 3 00:27:48 CET 2010


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&apos;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 at 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
>> 
> 





More information about the Pharo-project mailing list