]> git.sesse.net Git - xml-template/blobdiff - doc/intro.txt
Add python/structure tests, passes.
[xml-template] / doc / intro.txt
index f94cef771dbe4e6b5e56e2fcf66a2a414a168d64..f4f7e978d23fec4c2e320d6f16c293b2adb54302 100644 (file)
@@ -16,9 +16,9 @@ favourite distribution and do "bzr get http://bzr.sesse.net/xml-template/"
 to check out the code and this documentation.
 
 There is a lot to be said about design philosophy, but let's first give a
-simple example to give you the feel of how it works. (The example is in
-Perl, but there's also a functionally equivalent PHP version, and more
-languages should probably come soon.)
+simple example to give you the feel of how it works. (The example is in Perl,
+but there are also functionally equivalent PHP, Python and Ruby versions, and
+more languages should probably come soon.)
 
 Template (simple.xml):
 
@@ -190,10 +190,10 @@ Code (attribute.pl):
   my $doc = XML::Template::process_file('../xml/clone.xml', {
        'color' => 'red',
        '#things' => [
-               { 'li' => 'Raindrops on roses',    'li.class' => 'odd' },
-               { 'li' => 'Whiskers on kittens',   'li.class' => 'even' },
-               { 'li' => 'Bright copper kettles', 'li.class' => 'odd' },
-               { 'li' => 'Warm, woolen mittens',  'li.class' => 'even' }
+               { 'li' => 'Raindrops on roses',    'li/class' => 'odd' },
+               { 'li' => 'Whiskers on kittens',   'li/class' => 'even' },
+               { 'li' => 'Bright copper kettles', 'li/class' => 'odd' },
+               { 'li' => 'Warm, woolen mittens',  'li/class' => 'even' }
        ]
   });
   print $doc->toString;
@@ -249,8 +249,12 @@ The main thoughts behind XML::Template have been, in no particular order:
    the entire DOM with wrappers for each language. (Thankfully, by relying on
    the DOM support in each language, the code so far is under 200 lines per
    implementation, so maintaining this hopefully shouldn't be much work.)
-   As proof-of-concept, I've got Perl and PHP implementations that work and
-   feel largely the same -- Python, Ruby and other implementations are welcome.
+   As proof-of-concept, I've got Perl, PHP, Python and Ruby implementations
+   that work and feel largely the same -- other implementations are welcome.
+   (This is backed up by a test suite, which ensures that all the different
+   implementations return structurally equivalent XML for a certain set of
+   test cases. Porting to a new language is not difficult, and once you've
+   got all the test cases to pass, your work is most likely done.)
 
 As a side note to the second point, I've spent some time wondering exactly
 _why_ you want to separate the back-end logic from your HTML, and why people