Changeset 3131:3b84e8ba30c5 in livinglogic.python.xist

Show
Ignore:
Timestamp:
01/07/08 14:17:05 (12 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Use new doc elements everywhere.

Files:
11 modified

Legend:

Unmodified
Added
Removed
  • MIGRATION.xml

    r3129 r3131  
    7979<li><lit>ulist</lit> to <lit>ul</lit>;</li> 
    8080<li><lit>dlist</lit> to <lit>dl</lit>;</li> 
    81 <li><lit>item</lit> to <lit>li</lit> or </lit>dd</lit> (depending on whether 
     81<li><lit>item</lit> to <lit>li</lit> or <lit>dd</lit> (depending on whether 
    8282it's inside an <class>ol</class>, <class>ul</class> or <class>dl</class>);</li> 
    8383<li><lit>term</lit> to <lit>dt</lit>;</li> 
     
    367367on the fly), but a few arguments have changed:</p> 
    368368<dl> 
    369 <term><arg>handler</arg></term><item>This argument is no longer available, if you 
     369<dt><arg>handler</arg></dt><dd>This argument is no longer available, if you 
    370370need a special handler, you have to subclass <class>ll.xist.parsers.Parser</class> 
    371 and call its parsing methods.</item> 
    372 <term><arg>parser</arg></term><item>This argument has been renamed to 
     371and call its parsing methods.</dd> 
     372<dt><arg>parser</arg></dt><dd>This argument has been renamed to 
    373373<arg>saxparser</arg> and is <em>not</em> a &sax;2 parser instance any longer, 
    374 but a callable that will create a &sax;2 parser.</item> 
    375 <term><arg>sysid</arg></term><item><arg>sysid</arg> is now available for all 
    376 parsing functions not just <func>parseString</func>.</item> 
     374but a callable that will create a &sax;2 parser.</dd> 
     375<dt><arg>sysid</arg></dt><dd><arg>sysid</arg> is now available for all 
     376parsing functions not just <func>parseString</func>.</dd> 
    377377</dl> 
    378378</section> 
     
    383383key. This has the following consequences:</p> 
    384384<ul> 
    385 <item><p>If you want a unique context for your own element class, 
     385<li><p>If you want a unique context for your own element class, 
    386386you <em>must</em> implement a new <class>Context</class> class (otherwise you'd 
    387387get <class>ll.xist.xsc.Element.Context</class>):</p> 
     
    397397</prog> 
    398398</example> 
    399 </item> 
    400 <item>Subclasses that don't overwrite <class>Context</class> (as well as instances 
     399</li> 
     400<li>Subclasses that don't overwrite <class>Context</class> (as well as instances 
    401401of those classes) can be passed to <meth>ll.xist.converters.Converter.__getitem__</meth> 
    402 and the unique base class context object will be returned.</item> 
     402and the unique base class context object will be returned.</li> 
    403403</ul> 
    404404</section> 
     
    581581 
    582582<ul> 
    583 <item>The method <meth>withSep</meth> has been renamed 
    584 to <meth>withsep</meth>.</item> 
    585  
    586 <item>The argument <arg>defaultEncoding</arg> for the various 
    587 parsing functions has been renamed to <arg>encoding</arg>.</item> 
     583<li>The method <meth>withSep</meth> has been renamed 
     584to <meth>withsep</meth>.</li> 
     585 
     586<li>The argument <arg>defaultEncoding</arg> for the various 
     587parsing functions has been renamed to <arg>encoding</arg>.</li> 
    588588</ul> 
    589589 
  • NEWS.xml

    r3128 r3131  
    22<section><h>Changes in 3.0 (released ??/??/2007)</h> 
    33<ul> 
    4 <item>Namespaces have been greatly simplified. There are no namespace modules any 
     4<li>Namespaces have been greatly simplified. There are no namespace modules any 
    55longer. An element class can be assigned a namespace by setting the <lit>xmlns</lit> 
    66class attribute to the namespace name. Global attributes can be assigned a 
     
    99and <class>NSPool</class> are gone too. Instead a new class <class>Pool</class> 
    1010is used to specify which classes should be used for parsing. 
    11 </item> 
    12  
    13 <item>Dependency on <a href="http://pyxml.sf.net/">PyXML</a> has finally 
     11</li> 
     12 
     13<li>Dependency on <a href="http://pyxml.sf.net/">PyXML</a> has finally 
    1414been dropped. &xist; now uses its own &xml; parsing &api;. Two parsers 
    1515are available: One based on <a href="http://expat.sourceforge.net/">expat</a> 
    1616and one based on a custom version of 
    17 <a href="http://effbot.org/zone/sgmlop-index.htm">sgmlop</a>.</item> 
    18  
    19 <item>Tree traversal has been rewritten again. XFind expressions involving 
     17<a href="http://effbot.org/zone/sgmlop-index.htm">sgmlop</a>.</li> 
     18 
     19<li>Tree traversal has been rewritten again. XFind expressions involving 
    2020multiple uses of <lit>//</lit> now work correctly. The method <meth>walk</meth> 
    2121now doesn't yield <class>Cursor</class> objects, but simple path list 
     
    2626expression instead. Many XFind operators have been renamed and/or reimplemented 
    2727(see the documentation for the <mod>xfind</mod> module for more 
    28 information).</item> 
    29  
    30 <item><p>The methods <meth>__getitem__</meth>, <meth>__setitem__</meth> 
     28information).</li> 
     29 
     30<li><p>The methods <meth>__getitem__</meth>, <meth>__setitem__</meth> 
    3131and <meth>__delitem__</meth> for <class>Frag</class> and <class>Element</class> 
    3232now support the new walk filters, so you can do:</p> 
    3333<ul> 
    34 <item><lit>del node[html.p]</lit> to delete all <class>html.p</class> child elements 
    35 of <lit>node</lit>;</item> 
    36 <item><lit>del node[html.p[2]]</lit> to delete only the third 
    37 <class>html.p</class>;</item> 
    38 <item><lit>node[xfind.hasclass("note")] = html.p("There was a note here!")</lit> to 
    39 replace several child nodes with a new one;</item> 
    40 <item><lit>for c in node[xfind.empty]: print c.bytes()</lit> to print all 
    41 empty (element) children of <lit>node</lit>;</item> 
    42 <item><lit>del node[node[0]]</lit> to delete the first child node (which is 
     34<li><lit>del node[html.p]</lit> to delete all <class>html.p</class> child elements 
     35of <lit>node</lit>;</li> 
     36<li><lit>del node[html.p[2]]</lit> to delete only the third 
     37<class>html.p</class>;</li> 
     38<li><lit>node[xfind.hasclass("note")] = html.p("There was a note here!")</lit> to 
     39replace several child nodes with a new one;</li> 
     40<li><lit>for c in node[xfind.empty]: print c.bytes()</lit> to print all 
     41empty (element) children of <lit>node</lit>;</li> 
     42<li><lit>del node[node[0]]</lit> to delete the first child node (which is 
    4343silly, but illustrates that you can pass a node to get/replace/delete 
    44 that node);</item> 
    45 </ul> 
    46 </item> 
    47  
    48 <item><p>A new module <mod>ll.xist.css</mod> has been added which contains 
     44that node);</li> 
     45</ul> 
     46</li> 
     47 
     48<li><p>A new module <mod>ll.xist.css</mod> has been added which contains 
    4949&css; related functionality: The generator function <func>iterrules</func> 
    5050can be passed an &xist; tree and it will produce all &css; rules defined in any 
     
    5454package.</p> 
    5555 
    56 <p>The function <func>applystylesheets</func> modifies the &xist; tree 
    57 passed in by removing all &css; (from <class>html.link</class> and <class>html.style</class> 
     56<p>The function <func>applystylesheets</func> modifies the &xist; tree passed in 
     57by removing all &css; (from <class>html.link</class> and <class>html.style</class> 
    5858elements and their <lit>@import</lit>ed stylesheets) and putting the styles into 
    5959<lit>style</lit> attributes of the affected elements instead.</p> 
    6060 
    61 <p>The function <func>selector</func> return a tree walk filter from 
    62 a &css; selector passed as a string.</p> 
    63 </item> 
    64  
    65 <item> 
     61<p>The function <func>selector</func> return a tree walk filter from a &css; 
     62selector passed as a string.</p> 
     63</li> 
     64 
     65<li> 
    6666<p>Constructing trees can now be done with <lit>with</lit> blocks. Code looks 
    6767like this:</p> 
     
    8686<func>add</func> and supports <lit>with</lit> blocks now instead of 
    8787<a href="http://codespeak.net/svn/user/hpk/talks/xpython-talk.txt">XPython</a>.</p> 
    88 </item> 
    89  
    90 <item>A subset of <a href="http://docutils.sourceforge.net/rst.html">ReST</a> 
     88</li> 
     89 
     90<li>A subset of <a href="http://docutils.sourceforge.net/rst.html">ReST</a> 
    9191is supported now for docstrings when using the <mod>ll.xist.ns.doc</mod> 
    9292module. The module attribute <lit>__docformat__</lit> is now honored (Set it 
    93 to <lit>"xist"</lit> to get &xist; docstrings).</item> 
    94  
    95 <item>Many classes in the <mod>ll.xist.ns.doc</mod> have been renamed 
    96 to more familiar names (from &html;, &xhtml; 2 or ReST).</p> 
    97  
    98 <item>The <lit>media</lit> attribute of <class>html.link</class> and 
    99 <class>html.style</class> now has a method <meth>hasmedia</meth>.</item> 
    100  
    101 <item>The node method <meth>asBytes</meth> has been renamed to 
     93to <lit>"xist"</lit> to get &xist; docstrings).</li> 
     94 
     95<li>Many classes in the <mod>ll.xist.ns.doc</mod> have been renamed 
     96to more familiar names (from &html;, &xhtml; 2 or ReST).</li> 
     97 
     98<li>The <lit>media</lit> attribute of <class>html.link</class> and 
     99<class>html.style</class> now has a method <meth>hasmedia</meth>.</li> 
     100 
     101<li>The node method <meth>asBytes</meth> has been renamed to 
    102102<meth>bytes</meth> and <meth>bytes</meth> has been renamed to 
    103 <meth>iterbytes</meth>.</item> 
    104  
    105 <item>The node method <meth>asString</meth> has been renamed to 
     103<meth>iterbytes</meth>.</li> 
     104 
     105<li>The node method <meth>asString</meth> has been renamed to 
    106106<meth>string</meth> and a new method <meth>iterstring</meth> has been 
    107 added.</item> 
    108  
    109 <item><class>ll.xist.ns.xml.XML10</class> is gone now. Use 
    110 <class>ll.xist.ns.xml.XML</class> instead.</item> 
    111  
    112 <item><func>xsc.tonode</func> now will raise an exception when it 
    113 can't handle an argument instead of issuing a warning.</item> 
    114  
    115 <item>A class attribute <lit>empty</lit> inside element classes will now no 
    116 longer get converted into <lit>model</lit>.</item> 
    117  
    118 <item><class>ll.xist.ns.doc.pyref</class> now copes better with decorated 
    119 methods.</item> 
    120  
    121 <item>The deprecated <class>Element</class> methods <meth>hasAttr</meth>, 
     107added.</li> 
     108 
     109<li><class>ll.xist.ns.xml.XML10</class> is gone now. Use 
     110<class>ll.xist.ns.xml.XML</class> instead.</li> 
     111 
     112<li><func>xsc.tonode</func> now will raise an exception when it 
     113can't handle an argument instead of issuing a warning.</li> 
     114 
     115<li>A class attribute <lit>empty</lit> inside element classes will now no 
     116longer get converted into <lit>model</lit>.</li> 
     117 
     118<li><class>ll.xist.ns.doc.pyref</class> now copes better with decorated 
     119methods.</li> 
     120 
     121<li>The deprecated <class>Element</class> methods <meth>hasAttr</meth>, 
    122122<meth>hasattr</meth>, <meth>isallowedattr</meth>, <meth>getAttr</meth>, 
    123123<meth>getattr</meth>, <meth>setDefaultAttr</meth>, 
     
    130130<meth>iterallowedattritems</meth> and <meth>copyDefaultAttrs</meth> 
    131131have been removed. The deprecated <class>Attrs</class> method 
    132 <meth>copydefaults</meth> has been removed too.</item> 
    133  
    134 <item>The namespace module <mod>ll.xist.ns.cond</mod> has been removed.</item> 
    135  
    136 <item>When calling the function <func>ll.xist.parsers.parseURL</func> 
     132<meth>copydefaults</meth> has been removed too.</li> 
     133 
     134<li>The namespace module <mod>ll.xist.ns.cond</mod> has been removed.</li> 
     135 
     136<li>When calling the function <func>ll.xist.parsers.parseURL</func> 
    137137the arguments <arg>headers</arg> and <arg>data</arg> are now passed along 
    138138to the parser's method only if they are specified. This makes it possible to 
    139 pass ssh &url;s to <func>ll.xist.parsers.parseURL</func>.</item> 
    140  
    141 <item>The methods <meth>withnames</meth> and <meth>withoutnames</meth> have 
     139pass ssh &url;s to <func>ll.xist.parsers.parseURL</func>.</li> 
     140 
     141<li>The methods <meth>withnames</meth> and <meth>withoutnames</meth> have 
    142142been split into two that take Python names and two that take XML names. 
    143143Multiple arguments are used now (instead of one argument that must be a sequence). 
    144 Passing a namespace to remove all attributes from the namespace is no longer supported.</item> 
    145  
    146 <item>The <class>Attrs</class> methods <meth>updatenew</meth> and 
    147 <meth>updatexisting</meth> have been removed.</item> 
     144Passing a namespace to remove all attributes from the namespace is no longer supported.</li> 
     145 
     146<li>The <class>Attrs</class> methods <meth>updatenew</meth> and 
     147<meth>updatexisting</meth> have been removed.</li> 
    148148 
    149149</ul> 
     
    154154 
    155155<ul> 
    156 <item>The Python quotes example no longer contains the &xml; source 
    157 or the generated &html;.</item> 
     156<li>The Python quotes example no longer contains the &xml; source 
     157or the generated &html;.</li> 
    158158</ul> 
    159159 
     
    161161<section><h>Changes in 2.15.4 (released 07/16/2007)</h> 
    162162<ul> 
    163 <item>The Python quotes example now always parses the file from 
    164 the original &url;.</item> 
    165 <item>The Python quotes and the media example now print the result 
    166 to <lit>stdout</lit>.</item> 
     163<li>The Python quotes example now always parses the file from 
     164the original &url;.</li> 
     165<li>The Python quotes and the media example now print the result 
     166to <lit>stdout</lit>.</li> 
    167167</ul> 
    168168</section> 
     
    171171<section><h>Changes in 2.15.3 (released 07/16/2007)</h> 
    172172<ul> 
    173 <item>Use a consistent license (MIT) everywhere. This should make 
    174 &xist; Debian compatible.</item> 
    175 <item>Change the Python quotes example, so that it works even if 
     173<li>Use a consistent license (MIT) everywhere. This should make 
     174&xist; Debian compatible.</li> 
     175<li>Change the Python quotes example, so that it works even if 
    176176there's no <filename>python-quotes.xml</filename> in the current 
    177 directory.</item> 
     177directory.</li> 
    178178</ul> 
    179179</section> 
     
    182182<section><h>Changes in 2.15.2 (released 01/24/2007)</h> 
    183183<ul> 
    184 <item>Fixed a bug in <meth>presenters.CodePresenter.__str__</meth>.</item> 
    185 <item>Fixed base URL handling for tidy parsing.</item> 
    186 <item>Updated examples.</item> 
    187 <item>Updated <func>xiter</func> and <func>xattrs</func> 
     184<li>Fixed a bug in <meth>presenters.CodePresenter.__str__</meth>.</li> 
     185<li>Fixed base URL handling for tidy parsing.</li> 
     186<li>Updated examples.</li> 
     187<li>Updated <func>xiter</func> and <func>xattrs</func> 
    188188implementations for <class>Node</class> and <class>Namespace</class> to 
    189 conform to the newest version of IPython.</item> 
     189conform to the newest version of IPython.</li> 
    190190</ul> 
    191191</section> 
     
    194194<section><h>Changes in 2.15.1 (released 09/25/2006)</h> 
    195195<ul> 
    196 <item>Fixed a few bugs in the <mod>sgmlop</mod> function declarations.</item> 
    197 <item>Readded the spacer pixel.</item> 
     196<li>Fixed a few bugs in the <mod>sgmlop</mod> function declarations.</li> 
     197<li>Readded the spacer pixel.</li> 
    198198</ul> 
    199199</section> 
     
    202202<section><h>Changes in 2.15 (released 09/24/2006)</h> 
    203203<ul> 
    204 <item>&xist; has been made compatible with Python 2.5: Code has been updated 
     204<li>&xist; has been made compatible with Python 2.5: Code has been updated 
    205205to use the proper C API for memory management and <a href="http://www.python.org/dev/peps/pep-0353/">PEP 353</a> 
    206 support has been added. &xist; now includes its own fixed version of <mod>sgmlop</mod>.</item> 
    207 <item>The <class>ll.xist.xsc.Attrs</class> methods <meth>with</meth> and 
     206support has been added. &xist; now includes its own fixed version of <mod>sgmlop</mod>.</li> 
     207<li>The <class>ll.xist.xsc.Attrs</class> methods <meth>with</meth> and 
    208208<meth>without</meth> have been renamed to <meth>withnames</meth> and 
    209 <meth>withoutnames</meth> for Python 2.5 compatibility.</item> 
    210 <item><class>ll.xist.ns.htmlspecials.pixel</class> no longer handles colors 
     209<meth>withoutnames</meth> for Python 2.5 compatibility.</li> 
     210<li><class>ll.xist.ns.htmlspecials.pixel</class> no longer handles colors 
    211211via different GIFs. It uses the <lit>background-color</lit> in the <lit>style</lit> 
    212212attribute instead. The same change has been implemented for 
    213213<class>ll.xist.ns.htmlspecials.autopixel</class>. It's now possible to overwrite 
    214214the default <lit>src</lit> attribute value of <lit>root:px/spc.gif</lit> either 
    215 via the &xml; attribute or via the converter context.</item> 
    216 <item>The node method <meth>asText</meth> has been made a function, moved 
     215via the &xml; attribute or via the converter context.</li> 
     216<li>The node method <meth>asText</meth> has been made a function, moved 
    217217into the <mod>html</mod> namespace and renamed to <func>astext</func>. 
    218218Furthermore <app moreinfo="http://elinks.or.cz/">elinks</app> is used for plain text 
    219 formatting now instead of <app moreinfo="http://w3m.sourceforge.net/">w3m</app>.</item> 
     219formatting now instead of <app moreinfo="http://w3m.sourceforge.net/">w3m</app>.</li> 
    220220</ul> 
    221221</section> 
     
    224224<section><h>Changes in 2.14.2 (released 07/04/2006)</h> 
    225225<ul> 
    226 <item>Fixed a bug in the <meth>presentAttr</meth> method of 
    227 <class>ll.xist.presenters.TreePresenter</class>.</item> 
     226<li>Fixed a bug in the <meth>presentAttr</meth> method of 
     227<class>ll.xist.presenters.TreePresenter</class>.</li> 
    228228</ul> 
    229229</section> 
     
    232232<section><h>Changes in 2.14.1 (released 06/29/2006)</h> 
    233233<ul> 
    234 <item>Fixed a bug in the <meth>presentEntity</meth> method of 
    235 <class>ll.xist.presenters.CodePresenter</class>.</item> 
    236 <item>Updated installation instructions.</item> 
     234<li>Fixed a bug in the <meth>presentEntity</meth> method of 
     235<class>ll.xist.presenters.CodePresenter</class>.</li> 
     236<li>Updated installation instructions.</li> 
    237237</ul> 
    238238</section> 
     
    241241<section><h>Changes in 2.14 (released 06/28/2006)</h> 
    242242<ul> 
    243 <item>Namespaces for RSS 0.91, RSS 2.0 and Atom 1.0 have been added.</item> 
    244  
    245 <item>A new namespace <mod>ll.xist.ns.detox</mod> has been added that 
     243<li>Namespaces for RSS 0.91, RSS 2.0 and Atom 1.0 have been added.</li> 
     244 
     245<li>A new namespace <mod>ll.xist.ns.detox</mod> has been added that 
    246246is similar to <mod>ll.toxic</mod> but can be used to generate Python 
    247247code instead of PL/SQL code. Using <mod>detox</mod> templates is about 
    24824850 times faster than using &xist; trees directly and about 10 times faster than 
    249 <a href="http://kid.lesscode.org/">Kid</a>.</item> 
    250  
    251 <item>Presenters are now compatible to <a href="http://ipython.scipy.org/">IPython</a>'s 
     249<a href="http://kid.lesscode.org/">Kid</a>.</li> 
     250 
     251<li>Presenters are now compatible to <a href="http://ipython.scipy.org/">IPython</a>'s 
    252252ipipe module. This means that you can browse &xist; trees interactively 
    253253if you have IPython installed. <class>NormalPresenter</class> and the 
    254254<class>Node</class> methods <meth>repr</meth> and <meth>asrepr</meth> 
    255 have been removed.</item> 
    256  
    257 <item>A new processing instruction <class>ll.xist.ns.specials.url</class> 
     255have been removed.</li> 
     256 
     257<li>A new processing instruction <class>ll.xist.ns.specials.url</class> 
    258258has been added that does the same &url; transformation as 
    259 <class>ll.xist.xsc.URLAttr</class> does.</item> 
    260  
    261 <item>On publishing <class>ll.xist.ns.html.html</class> now only adds a 
    262 <lit>lang</lit> and <lit>xml:lang</lit> attribute, if neither of them exists.</item> 
    263  
    264 <item><mod>setuptools</mod> is now supported for installation.</item> 
     259<class>ll.xist.xsc.URLAttr</class> does.</li> 
     260 
     261<li>On publishing <class>ll.xist.ns.html.html</class> now only adds a 
     262<lit>lang</lit> and <lit>xml:lang</lit> attribute, if neither of them exists.</li> 
     263 
     264<li><mod>setuptools</mod> is now supported for installation.</li> 
    265265</ul> 
    266266</section> 
     
    269269<section><h>Changes in 2.13 (released 10/31/2005)</h> 
    270270<ul> 
    271 <item><meth>ll.xist.xsc.Namespace.tokenize</meth> requires a 
     271<li><meth>ll.xist.xsc.Namespace.tokenize</meth> requires a 
    272272<class>unicode</class> object as input now. This makes it possible 
    273273to use encodings that are not ASCII compatible (such as UTF-16). 
    274 The <arg>encoding</arg> argument is gone.</item> 
    275  
    276 <item><meth>ll.xist.xsc.Node.asString</meth> uses the <arg>encoding</arg> 
     274The <arg>encoding</arg> argument is gone.</li> 
     275 
     276<li><meth>ll.xist.xsc.Node.asString</meth> uses the <arg>encoding</arg> 
    277277argument to determine which characters have to be output as character references 
    278 now. (You'll still get a unicode object as the result.)</item> 
    279  
    280 <item>A new processing instruction class <class>ll.xist.ns.specials.literal</class> 
     278now. (You'll still get a unicode object as the result.)</li> 
     279 
     280<li>A new processing instruction class <class>ll.xist.ns.specials.literal</class> 
    281281has been added, that will output its content literally when published. This 
    282282can be used for embedding preformatted &xml; (e.g. from a database) into an 
    283 XIST tree.</item> 
     283XIST tree.</li> 
    284284</ul> 
    285285 
     
    289289<section><h>Changes in 2.12 (released 10/13/2005)</h> 
    290290<ul> 
    291 <item>Namespaces for <a href="http://www.relaxng.org/">Relax NG</a> and 
    292 <a href="http://kid.lesscode.org/">Kid</a> have been added.</item> 
    293  
    294 <item>&xist; requires version 1.0 of the core package now.</item> 
    295  
    296 <item>The class name for the DocBook &dtd; class has been fixed.</item> 
     291<li>Namespaces for <a href="http://www.relaxng.org/">Relax NG</a> and 
     292<a href="http://kid.lesscode.org/">Kid</a> have been added.</li> 
     293 
     294<li>&xist; requires version 1.0 of the core package now.</li> 
     295 
     296<li>The class name for the DocBook &dtd; class has been fixed.</li> 
    297297 
    298298</ul> 
     
    303303<section><h>Changes in 2.11 (released 07/29/2005)</h> 
    304304<ul> 
    305 <item>A script <filename>xml2xsc.py</filename> has been added, that 
     305<li>A script <filename>xml2xsc.py</filename> has been added, that 
    306306can be used to parse an &xml; file and generate a rudimentary &xist; namespace 
    307 from it.</item> 
    308  
    309 <item>A <class>DocType</class> for XHTML 1.1 has been added 
    310 (suggested by Elvelind Grandin).</item> 
    311  
    312 <item>Line number information is now added when parsing &html;.</item> 
    313  
    314 <item>The <meth>sorted</meth> method now supports the same arguments 
     307from it.</li> 
     308 
     309<li>A <class>DocType</class> for XHTML 1.1 has been added 
     310(suggested by Elvelind Grandin).</li> 
     311 
     312<li>Line number information is now added when parsing &html;.</li> 
     313 
     314<li>The <meth>sorted</meth> method now supports the same arguments 
    315315(<arg>cmp</arg>, <arg>key</arg> and <arg>reverse</arg>) as 
    316 <meth>list.sort</meth> and <func>sorted</func> in Python 2.4.</item> 
    317  
    318 <item>The <meth>walk</meth> doesn't yield the node directly, but yields 
    319 a <class>Cursor</class> object now, with has several ways of referencing the node.</item> 
    320  
    321 <item>New methods <meth>walknode</meth>, <meth>walkpath</meth> and 
    322 <meth>walkindex</meth> have been added.</item> 
    323  
    324 <item>Presenters use an iterator &api; instead of a stream &api; now. Dumping 
     316<meth>list.sort</meth> and <func>sorted</func> in Python 2.4.</li> 
     317 
     318<li>The <meth>walk</meth> doesn't yield the node directly, but yields 
     319a <class>Cursor</class> object now, with has several ways of referencing the node.</li> 
     320 
     321<li>New methods <meth>walknode</meth>, <meth>walkpath</meth> and 
     322<meth>walkindex</meth> have been added.</li> 
     323 
     324<li>Presenters use an iterator &api; instead of a stream &api; now. Dumping 
    325325an &xml; tree presentation to the terminal can now start immediately instead 
    326 of having to wait for the complete string to be formatted.</item> 
    327  
    328 <item>Fixed a bug with element/attribute names that contained a <lit>.</lit> 
    329 character. (This broke <mod>ll.xist.ns.fo</mod>.)</item> 
    330  
    331 <item>Fixed a bug with <lit>xmlns</lit> attributes in nested elements. 
    332 When an element ended the parser restored the wrong prefix mapping.</item> 
    333  
    334 <item>The <dirname>python-quotes</dirname> demo has been updated to use the 
    335 current version of AMK's &xml; file.</item> 
    336  
    337 <item>Removed iterator stuff from <mod>ll.xist.xfind</mod>, as this 
    338 is now part of the <mod>ll</mod> package/module.</item> 
    339  
    340 <item>The function <func>ToNode</func> has been renamed to 
    341 <func>tonode</func>.</item> 
    342  
    343 <item><class>ll.xist.Context</class> no longer subclasses <class>list</class>.</item> 
    344  
    345 <item><class>ll.xist.ns.doc.explain</class> will now try to output the objects 
    346 in the order in which they appear in the Python source.</item> 
    347  
    348 <item>The node methods <meth>find</meth> and <meth>findfirst</meth> 
    349 have been removed.</item> 
    350  
    351 <item><mod>ll.xist.ns.cond</mod> now uses a sandbox dictionary in a 
    352 converter context for evaluating expression.</item> 
     326of having to wait for the complete string to be formatted.</li> 
     327 
     328<li>Fixed a bug with element/attribute names that contained a <lit>.</lit> 
     329character. (This broke <mod>ll.xist.ns.fo</mod>.)</li> 
     330 
     331<li>Fixed a bug with <lit>xmlns</lit> attributes in nested elements. 
     332When an element ended the parser restored the wrong prefix mapping.</li> 
     333 
     334<li>The <dirname>python-quotes</dirname> demo has been updated to use the 
     335current version of AMK's &xml; file.</li> 
     336 
     337<li>Removed iterator stuff from <mod>ll.xist.xfind</mod>, as this 
     338is now part of the <mod>ll</mod> package/module.</li> 
     339 
     340<li>The function <func>ToNode</func> has been renamed to 
     341<func>tonode</func>.</li> 
     342 
     343<li><class>ll.xist.Context</class> no longer subclasses <class>list</class>.</li> 
     344 
     345<li><class>ll.xist.ns.doc.explain</class> will now try to output the objects 
     346in the order in which they appear in the Python source.</li> 
     347 
     348<li>The node methods <meth>find</meth> and <meth>findfirst</meth> 
     349have been removed.</li> 
     350 
     351<li><mod>ll.xist.ns.cond</mod> now uses a sandbox dictionary in a 
     352converter context for evaluating expression.</li> 
    353353</ul> 
    354354</section> 
     
    357357<section><h>Changes in 2.10 (released 05/20/2005)</h> 
    358358<ul> 
    359 <item>The content of the processing instruction <class>ll.xist.ns.code.pyexec</class> 
     359<li>The content of the processing instruction <class>ll.xist.ns.code.pyexec</class> 
    360360will not be executed at construction time, but at conversion time. The code 
    361361in <class>ll.xist.ns.code.pyexec</class> or <class>ll.xist.ns.code.pyeval</class> 
    362362will no longer be executed in the <mod>ll.xist.sandbox</mod> module 
    363363(which has been removed), but in a sandbox dictionary in the converter context 
    364 of the <mod>ll.xist.ns.code</mod> namespace.</item> 
    365  
    366 <item>The tests have been ported to <a href="http://codespeak.net/py/current/doc/test.html">py.test</a>.</item> 
    367  
    368 <item>The method <meth>mapped</meth> is now callable without arguments. 
     364of the <mod>ll.xist.ns.code</mod> namespace.</li> 
     365 
     366<li>The tests have been ported to <a href="http://codespeak.net/py/current/doc/test.html">py.test</a>.</li> 
     367 
     368<li>The method <meth>mapped</meth> is now callable without arguments. 
    369369In this case a converter will be created on the fly. You can pass constructor 
    370 arguments for this converter to <meth>mapped</meth> as keyword arguments.</item> 
    371  
    372 <item>The publishing &api; has changed again: <meth>ll.xist.publishers.Publisher.publish</meth> 
     370arguments for this converter to <meth>mapped</meth> as keyword arguments.</li> 
     371 
     372<li>The publishing &api; has changed again: <meth>ll.xist.publishers.Publisher.publish</meth> 
    373373no longer accepts an argument <arg>stream</arg> to which the byte strings are 
    374374written, but it is a generator now. The publisher methods <meth>write</meth> 
     
    378378<meth>bytes</meth> for nodes now, which can be passed the same arguments 
    379379as <meth>asBytes</meth>. These changes should help when using 
    380 &xist; in &wsgi; applications.</item> 
    381  
    382 <item>The iterator returned from <meth>Element.__getitem__</meth>, 
     380&xist; in &wsgi; applications.</li> 
     381 
     382<li>The iterator returned from <meth>Element.__getitem__</meth>, 
    383383<meth>Frag.__getitem__</meth> and the <meth>walk</meth> method 
    384384now supports <meth>__getitem__</meth> itself, so you can write 
    385385<lit><rep>table</rep>[html.tr][0]</lit> to get the first row from a table or 
    386386<lit><rep>page</rep>.walk(xsc.FindTypeAll(html.td))[-1]</lit> to get the last table cell 
    387 from a complete &html; page.</item> 
    388  
    389 <item>Several bugs in the namespaces <mod>ll.xist.ns.meta</mod>, 
     387from a complete &html; page.</li> 
     388 
     389<li>Several bugs in the namespaces <mod>ll.xist.ns.meta</mod>, 
    390390<mod>ll.xist.ns.form</mod> and 
    391 <mod>ll.xist.ns.specials</mod> have been fixed.</item> 
    392 <item>The namespace modules <mod>ll.xist.ns.css</mod> and 
    393 <mod>ll.xist.ns.cssspecials</mod> have been removed.</item> 
     391<mod>ll.xist.ns.specials</mod> have been fixed.</li> 
     392<li>The namespace modules <mod>ll.xist.ns.css</mod> and 
     393<mod>ll.xist.ns.cssspecials</mod> have been removed.</li> 
    394394</ul> 
    395395</section> 
     
    398398<section><h>Changes in 2.9 (released 04/21/2005)</h> 
    399399<ul> 
    400 <item>&xist; trees can now be pickled. The only restriction is that global 
     400<li>&xist; trees can now be pickled. The only restriction is that global 
    401401attributes must come from a namespace that has been turned into a module 
    402402via <meth>makemod</meth>, so that this module can be imported on 
    403 unpickling.</item> 
    404  
    405 <item><p>Two arguments of the <meth>walk</meth> method have been renamed: 
     403unpickling.</li> 
     404 
     405<li><p>Two arguments of the <meth>walk</meth> method have been renamed: 
    406406<arg>filtermode</arg> has been renamed to <arg>inmode</arg> and <arg>walkmode</arg> 
    407407has been renamed to <arg>outmode</arg>. For these modes two new values are 
    408408supported:</p> 
    409409<dl> 
    410 <term><lit>ll.xist.xsc.walkindex</lit></term><item>The value passed to the filter 
     410<dt><lit>ll.xist.xsc.walkindex</lit></dt><dd>The value passed to the filter 
    411411function or yielded from the iterator is a list containing child indizes and 
    412 attribute names that specify the path to the node in question.</item> 
    413 <term><lit>ll.xist.xsc.walkrootindex</lit></term><item>The filter function 
     412attribute names that specify the path to the node in question.</dd> 
     413<dt><lit>ll.xist.xsc.walkrootindex</lit></dt><dd>The filter function 
    414414will be called with two arguments: The first is the root node of the tree (i.e. 
    415415the node for which <meth>walk</meth> has been called), the second one is 
    416416an index path (just like for <lit>ll.xist.xsc.walkindex</lit>). If used as 
    417 an <arg>outmode</arg> a tuple with these two values will be yielded.</item> 
     417an <arg>outmode</arg> a tuple with these two values will be yielded.</dd> 
    418418</dl> 
    419 </item> 
    420 <item><p>Attribute mappings now support <meth>__getitem__</meth>, 
     419</li> 
     420<li><p>Attribute mappings now support <meth>__getitem__</meth>, 
    421421<meth>__setitem__</meth> and <meth>__delitem__</meth> with list 
    422422arguments, i.e. you can do:</p> 
     
    433433kunz 
    434434</prog> 
    435 </item> 
    436 <item><p>&xml; attributes can now be accessed as Python attributes, i.e.</p> 
     435</li> 
     436<li><p>&xml; attributes can now be accessed as Python attributes, i.e.</p> 
    437437<prog> 
    438438<prompt>&gt;&gt;&gt; </prompt><input>from ll.xist.ns import html</input> 
     
    443443<p>(Don't confuse this with <lit>e.Attrs.href</lit> which is the 
    444444attribute class.)</p> 
    445 </item> 
    446  
    447 <item><class>Frag</class> and <class>Element</class> now support <class>Node</class> 
     445</li> 
     446 
     447<li><class>Frag</class> and <class>Element</class> now support <class>Node</class> 
    448448subclasses as arguments to their <meth>__getitem__</meth> method: An iterator 
    449 for all children of the specified type will be returned.</item> 
    450  
    451 <item>The encoding used for parsing now defaults to <lit>None</lit>. When 
     449for all children of the specified type will be returned.</li> 
     450 
     451<li>The encoding used for parsing now defaults to <lit>None</lit>. When 
    452452reading from an &url; and no default encoding has been specified the one 
    453453from the <lit>Content-Type</lit> header will be used. If this still doesn't 
    454454result in a usable encoding, <lit>"utf-8"</lit> will be used when parsing &xml; 
    455 and <lit>"iso-8859-1"</lit> will be used when parsing broken &html;.</item> 
    456  
    457 <item>All error and warning classes from <mod>ll.xist.errors</mod> 
     455and <lit>"iso-8859-1"</lit> will be used when parsing broken &html;.</li> 
     456 
     457<li>All error and warning classes from <mod>ll.xist.errors</mod> 
    458458have been merged into <mod>ll.xist.xsc</mod>. This avoids import 
    459 problems with circular imports.</item> 
    460  
    461 <item>The attributes <lit>showLocation</lit> and <lit>showPath</lit> 
     459problems with circular imports.</li> 
     460 
     461<li>The attributes <lit>showLocation</lit> and <lit>showPath</lit> 
    462462of <class>ll.xist.presenters.TreePresenter</class> have been lowercased and 
    463 presenters are properly reset after they've done their job.</item> 
    464  
    465 <item>The class attribute <lit>xmlname</lit> will no longer be turned into a list 
     463presenters are properly reset after they've done their job.</li> 
     464 
     465<li>The class attribute <lit>xmlname</lit> will no longer be turned into a list 
    466466containing the Python and the &xml; name, but will be the &xml; name only. You 
    467 can get the Python name from <lit><rep>foo</rep>.__class__.__name__</lit>.</item> 
    468  
    469 <item><class>DeprecationWarning</class>s for <lit>name</lit> and 
    470 <lit>attrHandlers</lit> have finally been removed.</item> 
    471  
    472 <item>Instances of <class>ll.xist.xsc.Entity</class> subclasses can now be 
     467can get the Python name from <lit><rep>foo</rep>.__class__.__name__</lit>.</li> 
     468 
     469<li><class>DeprecationWarning</class>s for <lit>name</lit> and 
     470<lit>attrHandlers</lit> have finally been removed.</li> 
     471 
     472<li>Instances of <class>ll.xist.xsc.Entity</class> subclasses can now be 
    473473compared. <meth>__eq__</meth> simply checks if the objects are instances 
    474 of the same class.</item> 
     474of the same class.</li> 
    475475</ul> 
    476476</section> 
     
    479479<section><h>Changes in 2.8.1 (released 03/22/2005)</h> 
    480480<ul> 
    481 <item>Added a note about the package init file to the installation 
    482 documentation.</item> 
     481<li>Added a note about the package init file to the installation 
     482documentation.</li> 
    483483</ul> 
    484484</section> 
     
    487487<section><h>Changes in 2.8 (released 01/03/2005)</h> 
    488488<ul> 
    489 <item>&xist; requires Python 2.4 now.</item> 
    490  
    491 <item><class>ll.xist.ns.specials.x</class> has been renamed to 
    492 <class>ll.xist.ns.specials.ignore</class>.</item> 
    493  
    494 <item><class>ll.xist.utils.findAttr</class> has been renamed to 
    495 <class>ll.xist.utils.findattr</class>.</item> 
    496  
    497 <item><class>ll.xist.xfind.item</class> no longer handles slices.</item> 
    498  
    499 <item>XFind has been enhanced to support item and slice operators, i.e. 
     489<li>&xist; requires Python 2.4 now.</li> 
     490 
     491<li><class>ll.xist.ns.specials.x</class> has been renamed to 
     492<class>ll.xist.ns.specials.ignore</class>.</li> 
     493 
     494<li><class>ll.xist.utils.findAttr</class> has been renamed to 
     495<class>ll.xist.utils.findattr</class>.</li> 
     496 
     497<li><class>ll.xist.xfind.item</class> no longer handles slices.</li> 
     498 
     499<li>XFind has been enhanced to support item and slice operators, i.e. 
    500500if <lit><rep>foo</rep></lit> is an XFind operator, <lit><rep>foo</rep>[0]</lit> 
    501501is an operator that will produce the first node from <lit><rep>foo</rep></lit> 
    502 (if there is one). Negative values and slices are supported too.</item> 
    503  
    504 <item>Operators can be chained via division: <lit>html.a/html.b</lit> is an 
    505 operator that can be passed around and applied to a node.</item> 
    506  
    507 <item>&xist; requires the new core module and makes use of the new 
     502(if there is one). Negative values and slices are supported too.</li> 
     503 
     504<li>Operators can be chained via division: <lit>html.a/html.b</lit> is an 
     505operator that can be passed around and applied to a node.</li> 
     506 
     507<li>&xist; requires the new core module and makes use of the new 
    508508<z>cooperative displayhook</z> functionality defined there: If you install 
    509509the displayhook you can tweak or replace <lit>ll.xist.presenters.hookpresenter</lit> 
    510 to change the output.</item> 
     510to change the output.</li> 
    511511</ul> 
    512512</section> 
     
    515515<section><h>Changes in 2.7 (released 11/24/2004)</h> 
    516516<ul> 
    517 <item>The transparent pixel used by <class>ll.xist.ns.htmlspecials.pixel</class> 
    518 has been renamed to <filename>spc.gif</filename> to avoid problems with IE.</item> 
    519 <item>Removed a debug print in <class>ll.xist.xfind.Finder.__getitem__</class>.</item> 
    520 <item><mod>ll.xist.xfind</mod> now has a new function <func>item</func>, 
     517<li>The transparent pixel used by <class>ll.xist.ns.htmlspecials.pixel</class> 
     518has been renamed to <filename>spc.gif</filename> to avoid problems with IE.</li> 
     519<li>Removed a debug print in <class>ll.xist.xfind.Finder.__getitem__</class>.</li> 
     520<li><mod>ll.xist.xfind</mod> now has a new function <func>item</func>, 
    521521that can be used to get a certain item or slice from an iterator. 
    522522<func>xfind.first</func> and <func>xfind.last</func> have been 
    523523changed to use <func>xfind.item</func>, so you now have to pass a 
    524 default value to get the old behaviour.</item> 
    525 <item>Obsolete options in <mod>ll.xist.options</mod> have been removed 
    526 (and <lit>reprEncoding</lit> has been renamed to <lit>reprencoding</lit>).</item> 
     524default value to get the old behaviour.</li> 
     525<li>Obsolete options in <mod>ll.xist.options</mod> have been removed 
     526(and <lit>reprEncoding</lit> has been renamed to <lit>reprencoding</lit>).</li> 
    527527</ul> 
    528528</section> 
     
    531531<section><h>Changes in 2.6.2 (released 06/06/2005)</h> 
    532532<ul> 
    533 <item>Fixed a bug in <meth>ll.xist.parsers.Parser.parse</meth>.</item> 
     533<li>Fixed a bug in <meth>ll.xist.parsers.Parser.parse</meth>.</li> 
    534534</ul> 
    535535</section> 
     
    538538<section><h>Changes in 2.6.1 (released 11/02/2004)</h> 
    539539<ul> 
    540 <item>Fixed a bug in <meth>ll.xist.xfind.Finder.__floordiv__</meth>.</item> 
    541 <item>Restricted characters as defined in 
     540<li>Fixed a bug in <meth>ll.xist.xfind.Finder.__floordiv__</meth>.</li> 
     541<li>Restricted characters as defined in 
    542542<a href="http://www.w3.org/TR/2004/REC-xml11-20040204/#NT-RestrictedChar">&xml; 1.1</a> 
    543 will now be published as character references.</item> 
     543will now be published as character references.</li> 
    544544</ul> 
    545545</section> 
     
    548548<section><h>Changes in 2.6 (released 10/26/2004)</h> 
    549549<ul> 
    550 <item><func>ToNode</func> now tries iterating through the 
     550<li><func>ToNode</func> now tries iterating through the 
    551551value passed in, so it's now possible to pass iterators and generators 
    552552(and generator expressions in Python 2.4) to <class>Frag</class> 
    553 and <class>Element</class> constructors.</item> 
    554  
    555 <item><p>A new &api; named XFind has been added for iterating through &xml; 
     553and <class>Element</class> constructors.</li> 
     554 
     555<li><p>A new &api; named XFind has been added for iterating through &xml; 
    556556trees. XFind expressions look somewhat like XPath expressions but are pure 
    557557Python expressions. For example finding all images inside links in an &html; 
     
    569569<p>The module <mod>ll.xist.xfind</mod> contains several operators 
    570570that can be used in XFind expressions.</p> 
    571 </item> 
    572  
    573 <item>Parsing broken &html; is now done with the &html; parser from 
     571</li> 
     572 
     573<li>Parsing broken &html; is now done with the &html; parser from 
    574574<a href="http://www.xmlsoft.org/">libxml2</a>. The parsing functions 
    575575no longer accept options for tidy, only the boolean value of the <arg>tidy</arg> 
    576 argument is used.</item> 
    577  
    578 <item>The publishing &api; has been simplified: Publication can now be done with 
     576argument is used.</li> 
     577 
     578<li>The publishing &api; has been simplified: Publication can now be done with 
    579579a call to <meth>ll.xist.publishers.Publisher.publish</meth>, passing in a 
    580580<class>ll.xist.xsc.Node</class>. Writing strings to the publisher output is 
    581581now done with <meth>ll.xist.publishers.Publisher.write</meth>. The methods 
    582582<meth>beginPublication</meth> and <meth>endPublication</meth> have been 
    583 removed.</item> 
    584  
    585 <item>The presentation &api; has been simplified in the same way: You'll get a 
     583removed.</li> 
     584 
     585<li>The presentation &api; has been simplified in the same way: You'll get a 
    586586presentation by calling: <lit>string = <rep>presenter</rep>.present(<rep>node</rep>)</lit>. 
    587587The methods <meth>beginPresentation</meth> and <meth>endPresentation</meth> 
    588 have been removed.</item> 
    589  
    590 <item>The parser now has the option to ignore illegal elements, attributes, 
     588have been removed.</li> 
     589 
     590<li>The parser now has the option to ignore illegal elements, attributes, 
    591591processing instructions and entities. The default behaviour is to raise an 
    592 exception, but this can now be reconfigured via Python's warning framework.</item> 
    593  
    594 <item>The classmethod <meth>tokenize</meth> from <mod>ll.toxic</mod> 
     592exception, but this can now be reconfigured via Python's warning framework.</li> 
     593 
     594<li>The classmethod <meth>tokenize</meth> from <mod>ll.toxic</mod> 
    595595has been moved to <class>ll.xist.xsc.Namespace</class>, so it's now possible 
    596 to tokenize an &xml; string for other processing instructions as well.</item> 
    597  
    598 <item>A new class <class>ll.xist.xsc.NSPool</class> has been added. 
     596to tokenize an &xml; string for other processing instructions as well.</li> 
     597 
     598<li>A new class <class>ll.xist.xsc.NSPool</class> has been added. 
    599599An <class>NSPool</class> contains a pool of namespaces from which the parser 
    600600selects the appropriate namespace once an <lit>xmlns</lit> attribute is 
    601 encountered.</item> 
    602  
    603 <item>The script <filename>xscmake.py</filename> (which has been unmaintained 
    604 for a while now) has been removed.</item> 
    605  
    606 <item>Elements <class>hostname</class>, <class>tty</class>, <class>prompt</class> 
    607 and <class>input</class> were add to <mod>ll.xist.ns.doc</mod>.</item> 
    608  
    609 <item>The method <meth>ll.xist.xsc.Attrs.set</meth> now returns the 
    610 new attribute object.</item> 
    611  
    612 <item>The <meth>visit</meth> method has been removed.</item> 
    613  
    614 <item><meth>ll.xist.xsc.FindOld</meth> has been removed.</item> 
    615  
    616 <item><class>ll.xist.ns.xml.header</class> has been renamed to 
    617 <class>ll.xist.ns.xml.declaration</class>.</item> 
     601encountered.</li> 
     602 
     603<li>The script <filename>xscmake.py</filename> (which has been unmaintained 
     604for a while now) has been removed.</li> 
     605 
     606<li>Elements <class>hostname</class>, <class>tty</class>, <class>prompt</class> 
     607and <class>input</class> were add to <mod>ll.xist.ns.doc</mod>.</li> 
     608 
     609<li>The method <meth>ll.xist.xsc.Attrs.set</meth> now returns the 
     610new attribute object.</li> 
     611 
     612<li>The <meth>visit</meth> method has been removed.</li> 
     613 
     614<li><meth>ll.xist.xsc.FindOld</meth> has been removed.</li> 
     615 
     616<li><class>ll.xist.ns.xml.header</class> has been renamed to 
     617<class>ll.xist.ns.xml.declaration</class>.</li> 
    618618 
    619619</ul> 
     
    625625<ul> 
    626626 
    627 <item>Specifying content models for elements has seen major enhancements. The 
     627<li>Specifying content models for elements has seen major enhancements. The 
    628628boolean class attribute <lit>empty</lit> has been replaced by an object 
    629629<lit>model</lit> whose <meth>checkvalid</meth> method will be called 
    630 for validating the element content.</item> 
    631  
    632 <item>A new module <mod>ll.xist.sims</mod> has been added that provides 
     630for validating the element content.</li> 
     631 
     632<li>A new module <mod>ll.xist.sims</mod> has been added that provides 
    633633a simple schema validation. Schema violations will be reported via Pythons 
    634 warning framework.</item> 
    635  
    636 <item>All namespace modules have been updated to use <mod>sims</mod> 
     634warning framework.</li> 
     635 
     636<li>All namespace modules have been updated to use <mod>sims</mod> 
    637637information. The &svg; module has been updated to &svg; 1.1. The docbook 
    638 module has been updated to DocBook 4.3.</item> 
    639  
    640 <item>It's possible to switch off validation during parsing and publishing.</item> 
    641  
    642 <item><p><class>ll.xist.xsc.Frag</class> and <class>ll.xist.xsc.Element</class> 
     638module has been updated to DocBook 4.3.</li> 
     639 
     640<li>It's possible to switch off validation during parsing and publishing.</li> 
     641 
     642<li><p><class>ll.xist.xsc.Frag</class> and <class>ll.xist.xsc.Element</class> 
    643643both have a <meth>__call__</meth> method with the same arguments as 
    644644their constructors. Those methods will append content nodes (and set attributes 
     
    678678</example> 
    679679 
    680 </item> 
    681  
    682 <item><p>Experimental support for Holger Krekel's 
     680</li> 
     681 
     682<li><p>Experimental support for Holger Krekel's 
    683683<a href="http://codespeak.net/svn/user/hpk/talks/xpython-talk.txt">XPython</a> 
    684684has been added. Code might look like this:</p> 
     
    713713</prog> 
    714714</example> 
    715 </item> 
    716  
    717 <item> 
     715</li> 
     716 
     717<li> 
    718718<p>Creating global attributes has been simplified. Passing an instance 
    719719of <class>ll.xist.xsc.Namespace.Attrs</class> to an <class>Element</class> 
     
    729729</prog> 
    730730</example> 
    731 </item> 
    732  
    733 <item>Creating skeleton implementations of &xist; namespaces is no longer done 
     731</li> 
     732 
     733<li>Creating skeleton implementations of &xist; namespaces is no longer done 
    734734via &xml; conversion (i.e. the namespace module <mod>ll.xist.ns.xndl</mod>), 
    735735but through the new module <mod>ll.xist.xnd</mod>. The script 
    736736<filename>dtdxsc.py</filename> will automatically generate <mod>sims</mod> 
    737 information.</item> 
    738  
    739 <item><class>ll.xist.xsc.CharRef</class> now inherits from 
     737information.</li> 
     738 
     739<li><class>ll.xist.xsc.CharRef</class> now inherits from 
    740740<class>ll.xist.xsc.Text</class> too, so you don't have to special case 
    741741<class>CharRef</class>s any more. When publishing, <class>CharRef</class>s 
    742 will be handled like <class>Text</class> nodes.</item> 
    743  
    744 <item><class>ll.xist.ns.meta.contenttype</class> now has an attribute 
     742will be handled like <class>Text</class> nodes.</li> 
     743 
     744<li><class>ll.xist.ns.meta.contenttype</class> now has an attribute 
    745745<lit>mimetype</lit> (defaulting to <lit>"text/html"</lit>) for specifying 
    746 the &mime; type.</item> 
    747  
    748 <item><class>ll.xist.ns.htmlspecials.caps</class> has been removed.</item> 
    749  
    750 <item>Registering elements in namespace classes has been rewritten to use 
    751 a cache now.</item> 
    752  
    753 <item>Pretty printing has been changed: Whitespace will only be added now if 
    754 there are no text nodes in element content.</item> 
    755  
    756 <item>Two mailing lists are now available: One for discussion about &xist; 
    757 and one for &xist; announcements.</item> 
     746the &mime; type.</li> 
     747 
     748<li><class>ll.xist.ns.htmlspecials.caps</class> has been removed.</li> 
     749 
     750<li>Registering elements in namespace classes has been rewritten to use 
     751a cache now.</li> 
     752 
     753<li>Pretty printing has been changed: Whitespace will only be added now if 
     754there are no text nodes in element content.</li> 
     755 
     756<li>Two mailing lists are now available: One for discussion about &xist; 
     757and one for &xist; announcements.</li> 
    758758</ul> 
    759759</section> 
     
    762762<section><h>Changes in 2.4.1 (released 01/05/2004)</h> 
    763763<ul> 
    764 <item>Changed the xmlname of <class>ll.xist.ns.jsp.directive_page</class> back again 
    765 (it's <lit>directive.page</lit> only for the &xml; form, which we don't use anyway.)</item> 
    766  
    767 <item>Drop the default value for <class>ll.xist.ns.jsp.directive_page.Attrs.language</class>, 
    768 as this attribute can only be used once.</item> 
    769  
    770 <item>If an <class>ll.xist.xsc.Prefixes</class> object has a prefix mapping for 
     764<li>Changed the xmlname of <class>ll.xist.ns.jsp.directive_page</class> back again 
     765(it's <lit>directive.page</lit> only for the &xml; form, which we don't use anyway.)</li> 
     766 
     767<li>Drop the default value for <class>ll.xist.ns.jsp.directive_page.Attrs.language</class>, 
     768as this attribute can only be used once.</li> 
     769 
     770<li>If an <class>ll.xist.xsc.Prefixes</class> object has a prefix mapping for 
    771771a namespace it will return this prefix too, if asked for a prefix for a subclass 
    772 of this namespace.</item> 
     772of this namespace.</li> 
    773773</ul> 
    774774</section> 
     
    777777<section><h>Changes in 2.4 (released 01/02/2004)</h> 
    778778<ul> 
    779 <item>The class <class>ll.xist.parsers.Handler</class> has been renamed to 
     779<li>The class <class>ll.xist.parsers.Handler</class> has been renamed to 
    780780<class>Parser</class> and has been made reusable, i.e. it is possible to 
    781781instantiate a parser once and use it multiple times for parsing. All the 
     
    785785to the various parsing functions are passed to the parser constructor now. 
    786786The basic parsing functionality is implemented by parsing streams instead of 
    787 <class>InputSource</class>s.</item> 
    788 <item>Similar to the changes for parsing, publishers have been changed to be 
     787<class>InputSource</class>s.</li> 
     788<li>Similar to the changes for parsing, publishers have been changed to be 
    789789reusable and most arguments to the publishing functions are available as 
    790 arguments to the publisher constructor.</item> 
    791 <item>Now converter contexts are no longer bound to an element 
     790arguments to the publisher constructor.</li> 
     791<li>Now converter contexts are no longer bound to an element 
    792792class, but to the context class defined by the element class, i.e. 
    793793the attribute <lit>Context</lit> of the argument for <meth>Converter.__getitem__</meth> 
    794794will be used as the dictionary key. This makes it possible to use a class 
    795795and it subclasses interchangeably (as long as the base class defines 
    796 its own <class>Context</class> class and the subclasses don't overwrite it).</item> 
    797 <item>Added a find functor <class>FindTypeAllAttrs</class> that 
    798 searches content and attributes.</item> 
    799 <item>Fixed the &xml; name for <class>ll.xist.ns.jsp.directive_page</class>.</item> 
    800 <item>All character references in <mod>ll.xist.ns.ihtml</mod> 
    801 that exist in <mod>ll.xist.ns.chars</mod> too have been removed.</item> 
     796its own <class>Context</class> class and the subclasses don't overwrite it).</li> 
     797<li>Added a find functor <class>FindTypeAllAttrs</class> that 
     798searches content and attributes.</li> 
     799<li>Fixed the &xml; name for <class>ll.xist.ns.jsp.directive_page</class>.</li> 
     800<li>All character references in <mod>ll.xist.ns.ihtml</mod> 
     801that exist in <mod>ll.xist.ns.chars</mod> too have been removed.</li> 
    802802</ul> 
    803803</section> 
     
    806806<section><h>Changes in 2.3 (released 12/08/2003)</h> 
    807807<ul> 
    808 <item>It's now possible to parse &xml; without generating location 
     808<li>It's now possible to parse &xml; without generating location 
    809809information for each node, by passing <lit>loc=False</lit> to 
    810 the constructor of the <class>Handler</class>.</item> 
    811 <item>The <class>HTMLParser</class> no longer complains about 
    812 global attributes or <lit>xmlns</lit>.</item> 
    813 <item>&xist; now supports <app moreinfo="http://utidylib.sf.net/">&micro;Tidylib</app> 
     810the constructor of the <class>Handler</class>.</li> 
     811<li>The <class>HTMLParser</class> no longer complains about 
     812global attributes or <lit>xmlns</lit>.</li> 
     813<li>&xist; now supports <app moreinfo="http://utidylib.sf.net/">&micro;Tidylib</app> 
    814814in addition to <app>mxTidy</app>. If <app>&micro;Tidylib</app> is found 
    815 it is preferred over <app>mxTidy</app>.</item> 
    816 <item>It's possible now to pass arguments to tidy simple by 
     815it is preferred over <app>mxTidy</app>.</li> 
     816<li>It's possible now to pass arguments to tidy simple by 
    817817passing an argument dictionary for the <arg>tidy</arg> argument 
    818 in the parsing functions.</item> 
    819 <item>The methods <meth>parsed</meth> and <meth>checkvalid</meth> 
    820 have been separated.</item> 
    821 <item><class>ll.xist.ns.htmlspecials.pixel</class> and 
     818in the parsing functions.</li> 
     819<li>The methods <meth>parsed</meth> and <meth>checkvalid</meth> 
     820have been separated.</li> 
     821<li><class>ll.xist.ns.htmlspecials.pixel</class> and 
    822822<class>ll.xist.ns.htmlspecials.autopixel</class> now check whether their 
    823 <lit>color</lit> attribute is ok.</item> 
    824 <item>The base &url; is now set correctly when parsing from an &url; 
     823<lit>color</lit> attribute is ok.</li> 
     824<li>The base &url; is now set correctly when parsing from an &url; 
    825825even if the original &url; does a redirect. (This requires <mod>ll.url</mod> 
    826 version 0.11.3).</item> 
    827 <item>Namespace handling has been rewritten again, to be more standards 
     826version 0.11.3).</li> 
     827<li>Namespace handling has been rewritten again, to be more standards 
    828828compliant: Now there is no prefixes for entities and processing instructions any longer. 
    829829Prefix mappings can be created much simpler, and they no longer contain any 
    830830namespace stack for parsing, as this is now done by the parser itself. 
    831 <class>xsc.NamespaceAttrMixIn</class> is gone too.</item> 
    832 <item>The processing instructions <class>exec_</class> and <class>eval_</class> 
     831<class>xsc.NamespaceAttrMixIn</class> is gone too.</li> 
     832<li>The processing instructions <class>exec_</class> and <class>eval_</class> 
    833833from <mod>ll.xist.ns.code</mod> have been renamed to <class>pyexec</class> 
    834 and <class>pyeval</class> and <class>import_</class> has been removed.</item> 
    835 <item><class>CharRef</class>s from <mod>ll.xist.ns.html</mod> have been 
    836 moved to a new module named <mod>ll.xist.ns.chars</mod>.</item> 
    837 <item>The method names <meth>beginPublication</meth>, <meth>endPublication</meth> 
    838 and <meth>doPublication</meth> have been lowercased.</item> 
     834and <class>pyeval</class> and <class>import_</class> has been removed.</li> 
     835<li><class>CharRef</class>s from <mod>ll.xist.ns.html</mod> have been 
     836moved to a new module named <mod>ll.xist.ns.chars</mod>.</li> 
     837<li>The method names <meth>beginPublication</meth>, <meth>endPublication</meth> 
     838and <meth>doPublication</meth> have been lowercased.</li> 
    839839</ul> 
    840840</section> 
     
    843843<section><h>Changes in 2.2 (released 07/31/2003)</h> 
    844844<ul> 
    845 <item><p>Namespace handling has been completely rewritten. 
     845<li><p>Namespace handling has been completely rewritten. 
    846846Namespaces are now classes derived from <class>ll.xist.xsc.Namespace</class>. 
    847847Defining element classes can be done inside or outside the namespace 
     
    898898&lt;namespace foo/xmlns name=u'foo' url=u'http://www.foo.com/ns/foo' with 1 elements from 'foo.py' at 0x81bfc14&gt; 
    899899</prog> 
    900 </item> 
    901  
    902 <item><func>getns</func> has been dropped, so you always 
     900</li> 
     901 
     902<li><func>getns</func> has been dropped, so you always 
    903903have to pass in a <class>Namespace</class> class where a namespace 
    904 is required.</item> 
    905  
    906 <item>For the <class>ll.xist.ns.jsp.directive_page</class> element 
     904is required.</li> 
     905 
     906<li>For the <class>ll.xist.ns.jsp.directive_page</class> element 
    907907automatic generation of the correct <lit>charset</lit> option 
    908908in the <lit>contentType</lit> attribute is only done when there 
    909909is a <lit>contentType</lit> attribute, as <lit>contentType</lit> 
    910 is optional.</item> 
    911  
    912 <item>The converter has a new property <func>node</func>. 
     910is optional.</li> 
     911 
     912<li>The converter has a new property <func>node</func>. 
    913913<arg>node</arg> can't be passed to <meth>conv</meth> but 
    914914will be set to <self/> by <meth>conv</meth> automatically. 
    915915This makes it possible to access the <z>document root</z> 
    916 during conversion.</item> 
    917  
    918 <item><class>ll.xist.ns.htmlspecials.autoimg</class> no longer touches 
     916during conversion.</li> 
     917 
     918<li><class>ll.xist.ns.htmlspecials.autoimg</class> no longer touches 
    919919existing width and height attributes. This means that %-formatting 
    920 of the existing attributes is no longer done.</item> 
    921  
    922 <item>Added a new class <class>ll.xist.ns.htmlspecials.autopixel</class> 
     920of the existing attributes is no longer done.</li> 
     921 
     922<li>Added a new class <class>ll.xist.ns.htmlspecials.autopixel</class> 
    923923that works like <class>ll.xist.ns.htmlspecials.pixel</class> but 
    924924inherits the size for the image specified via the <lit>src</lit> 
    925 attribute.</item> 
    926  
    927 <item><class>Frag</class> and <class>Element</class> now support 
    928 extended slices.</item> 
    929  
    930 <item><class>Frag</class> and <class>Element</class> now support 
    931 the methods <meth>extend</meth> and <meth>__iadd__</meth>.</item> 
    932  
    933 <item>For walking the tree the method <meth>walk</meth> has been completely 
     925attribute.</li> 
     926 
     927<li><class>Frag</class> and <class>Element</class> now support 
     928extended slices.</li> 
     929 
     930<li><class>Frag</class> and <class>Element</class> now support 
     931the methods <meth>extend</meth> and <meth>__iadd__</meth>.</li> 
     932 
     933<li>For walking the tree the method <meth>walk</meth> has been completely 
    934934rewritten and a new method <meth>visit</meth> has been added. For 
    935 more info see the docstrings.</item> 
    936  
    937 <item><class>Node</class> now has two new methods <meth>copy</meth> 
     935more info see the docstrings.</li> 
     936 
     937<li><class>Node</class> now has two new methods <meth>copy</meth> 
    938938and <meth>deepcopy</meth> and supports the <mod>copy</mod> 
    939 module from the Python standard library.</item> 
    940  
    941 <item>Calling <meth>mapped</meth> through <meth>conv</meth> has 
     939module from the Python standard library.</li> 
     940 
     941<li>Calling <meth>mapped</meth> through <meth>conv</meth> has 
    942942been removed. You again have to call <meth>mapped</meth> directly 
    943 and pass a node and a converter.</item> 
    944  
    945 <item>The &html; handling of the <class>HTMLParser</class> has been improved 
     943and pass a node and a converter.</li> 
     944 
     945<li>The &html; handling of the <class>HTMLParser</class> has been improved 
    946946(it now uses code from <mod>xml.sax.drivers2.drv_sgmlop_html</mod> (which 
    947 is part of <a href="http://pyxml.sf.net">PyXML</a>)).</item> 
    948  
    949 <item>The core functionality found in the script <filename>dtd2xsc.py</filename> 
     947is part of <a href="http://pyxml.sf.net">PyXML</a>)).</li> 
     948 
     949<li>The core functionality found in the script <filename>dtd2xsc.py</filename> 
    950950has been moved to a class method <meth>ll.xist.ns.xndl.fromdtd</meth> in the 
    951 <mod>ll.xist.ns.xndl</mod> namespace.</item> 
    952  
    953 <item><class>ll.xist.parsers.ExpatParser</class> is now a real subclass 
     951<mod>ll.xist.ns.xndl</mod> namespace.</li> 
     952 
     953<li><class>ll.xist.parsers.ExpatParser</class> is now a real subclass 
    954954instead of an alias for <class>xml.sax.expatreader.ExpatParser</class> 
    955955It reports unknown entity references to the application (if loading 
    956956of external entities is switched off, which is done by 
    957 <class>ll.xist.parsers.Handler</class> and only outside of attributes).</item> 
    958  
    959 <item>Namespaces have been added for Zope's TAL and METAL specifications.</item> 
    960  
    961 <item>A namespace has been added for <a href="http://www.w3.org/Style/XSL/">XSL-FO</a>.</item> 
     957<class>ll.xist.parsers.Handler</class> and only outside of attributes).</li> 
     958 
     959<li>Namespaces have been added for Zope's TAL and METAL specifications.</li> 
     960 
     961<li>A namespace has been added for <a href="http://www.w3.org/Style/XSL/">XSL-FO</a>.</li> 
    962962</ul> 
    963963</section> 
     
    966966<section><h>Changes in 2.1.4 (released 06/13/2003)</h> 
    967967<ul> 
    968 <item>Remove the checks for attributes in attributes and 
     968<li>Remove the checks for attributes in attributes and 
    969969moved the publication code for the full element into a separate 
    970970method. This allows &jsp; tag library namespaces to simply 
    971971overwrite <meth>publish</meth> to publish the element 
    972 even inside attributes. (This is the same fix as in release 1.5.10)</item> 
     972even inside attributes. (This is the same fix as in release 1.5.10)</li> 
    973973</ul> 
    974974</section> 
     
    977977<section><h>Changes in 2.1.3 (released 05/07/2003)</h> 
    978978<ul> 
    979 <item>The methods <meth>sorted</meth>, <meth>reversed</meth> 
     979<li>The methods <meth>sorted</meth>, <meth>reversed</meth> 
    980980and <meth>shuffled</meth> have been rewritten so they no longer 
    981981use <lit>sys.maxint</lit>. This change fixes those methods for 
    982 64 bit platforms (reported by Giles Frances Hall)</item> 
     98264 bit platforms (reported by Giles Frances Hall)</li> 
    983983</ul> 
    984984</section> 
     
    987987<section><h>Changes in 2.1.2 (released 02/27/2003)</h> 
    988988<ul> 
    989 <item><class>ll.xist.ns.struts_config11.plug_in</class> now 
     989<li><class>ll.xist.ns.struts_config11.plug_in</class> now 
    990990allows content (as the &dtd; states). (This is the same fix 
    991 as in release 1.5.8.)</item> 
     991as in release 1.5.8.)</li> 
    992992</ul> 
    993993</section> 
     
    996996<section><h>Changes in 2.1.1 (released 02/11/2003)</h> 
    997997<ul> 
    998 <item>Added a few elements and attributes to <mod>ll.xist.ns.doc</mod>: 
     998<li>Added a few elements and attributes to <mod>ll.xist.ns.doc</mod>: 
    999999<class>username</class>, which is used for the name of a user account, 
    10001000<class>xref</class>, which is used for internal cross references and 
    10011001the attribute <lit>id</lit> for <class>section</class>, which specifies 
    1002 the target for an <class>xref</class>.</item> 
     1002the target for an <class>xref</class>.</li> 
    10031003</ul> 
    10041004</section> 
     
    10071007<section><h>Changes in 2.1 (released 12/09/2002)</h> 
    10081008<ul> 
    1009 <item>Added a new namespace module <mod>ll.xist.ns.xndl</mod> 
     1009<li>Added a new namespace module <mod>ll.xist.ns.xndl</mod> 
    10101010that contains the <z>&xist; namespace definition language</z>, i.e. 
    10111011elements that describe an &xist; namespace and can be used by 
    10121012various scripts to generate skeleton namespace modules. 
    10131013The first of these script is the &dtd; to namespace converter 
    1014 <filename>dtd2xsc.py</filename>.</item> 
    1015 <item>Added a new namespace module <mod>ll.xist.ns.tld</mod> 
     1014<filename>dtd2xsc.py</filename>.</li> 
     1015<li>Added a new namespace module <mod>ll.xist.ns.tld</mod> 
    10161016that contains the definition for Java Server Pages Tag Library 
    10171017descriptors and a script <filename>tld2xsc.py</filename> 
    10181018that uses this namespace to generate namespace modules from 
    1019 <lit>tld</lit> files.</item> 
    1020 <item><class>Attr</class> now supports the method 
     1019<lit>tld</lit> files.</li> 
     1020<li><class>Attr</class> now supports the method 
    10211021<meth>filtered</meth>. This is used by <meth>without</meth> 
    10221022now. The arguments for <meth>without</meth> have changed, 
     
    10241024A new method <meth>with</meth> has been added, with does 
    10251025the opposite of <meth>without</meth>, i.e. it removes all 
    1026 attributes that are not specified as parameters.</item> 
    1027 <item>The Python name of each <class>Node</class> subclass 
    1028 is now available as the class attribute <lit>pyname</lit>.</item> 
    1029 <item>To continue the great renaming <meth>withSep</meth> 
    1030 has been renamed to <meth>withsep</meth>.</item> 
    1031 <item>The namespace name for the <mod>ll.xist.ns.struts_html</mod> 
    1032 module has been fixed.</item> 
    1033 <item>The argument <arg>defaultEncoding</arg> for the various 
    1034 parsing functions has been renamed to <arg>encoding</arg>.</item> 
     1026attributes that are not specified as parameters.</li> 
     1027<li>The Python name of each <class>Node</class> subclass 
     1028is now available as the class attribute <lit>pyname</lit>.</li> 
     1029<li>To continue the great renaming <meth>withSep</meth> 
     1030has been renamed to <meth>withsep</meth>.</li> 
     1031<li>The namespace name for the <mod>ll.xist.ns.struts_html</mod> 
     1032module has been fixed.</li> 
     1033<li>The argument <arg>defaultEncoding</arg> for the various 
     1034parsing functions has been renamed to <arg>encoding</arg>.</li> 
    10351035</ul> 
    10361036</section> 
     
    10391039<section><h>Changes in 2.0.8 (released 11/20/2002)</h> 
    10401040<ul> 
    1041 <item><func>ll.xist.ns.doc.getDoc</func> has been renamed 
    1042 to <func>getdoc</func>.</item> 
    1043 <item>The &css; parser was dropping the <lit>%</lit> from 
    1044 percentage values. This has been fixed.</item> 
     1041<li><func>ll.xist.ns.doc.getDoc</func> has been renamed 
     1042to <func>getdoc</func>.</li> 
     1043<li>The &css; parser was dropping the <lit>%</lit> from 
     1044percentage values. This has been fixed.</li> 
    10451045</ul> 
    10461046</section> 
     
    10491049<section><h>Changes in 2.0.7 (released 11/12/2002)</h> 
    10501050<ul> 
    1051 <item><meth>xsc.Element.__nonzero__</meth> can no longer fall back 
     1051<li><meth>xsc.Element.__nonzero__</meth> can no longer fall back 
    10521052to <meth>xsc.Frag.__nonzero__</meth>. 
    1053 (this is the same fix as in 1.5.7).</item> 
     1053(this is the same fix as in 1.5.7).</li> 
    10541054</ul> 
    10551055</section> 
     
    10581058<section><h>Changes in 2.0.6 (released 11/11/2002)</h> 
    10591059<ul> 
    1060 <item>Performance optimizations.</item> 
     1060<li>Performance optimizations.</li> 
    10611061</ul> 
    10621062</section> 
     
    10651065<section><h>Changes in 2.0.5 (released 11/11/2002)</h> 
    10661066<ul> 
    1067 <item>Fixed a bug in <class>ll.xist.ns.specials.autoimg</class>: 
     1067<li>Fixed a bug in <class>ll.xist.ns.specials.autoimg</class>: 
    10681068Attributes were not converted before the size check was done 
    1069 (this is the same fix as in 1.5.5).</item> 
     1069(this is the same fix as in 1.5.5).</li> 
    10701070</ul> 
    10711071</section> 
     
    10741074<section><h>Changes in 2.0.4 (released 11/08/2002)</h> 
    10751075<ul> 
    1076 <item>Fixed a regression bug in <class>ll.xist.ns.jsp.directive</class> 
    1077 and several documentation issues.</item> 
     1076<li>Fixed a regression bug in <class>ll.xist.ns.jsp.directive</class> 
     1077and several documentation issues.</li> 
    10781078</ul> 
    10791079</section> 
     
    10821082<section><h>Changes in 2.0.3 (released 10/30/2002)</h> 
    10831083<ul> 
    1084 <item>Fixed a few bugs in <class>HTMLParser</class>.</item> 
    1085 <item>Added DocBook conversion for several elements 
    1086 in <mod>ll.xist.ns.doc</mod>.</item> 
    1087 <item>Now the <filename>__init__.py</filename> file for the 
    1088 <mod>ll</mod> package is included.</item> 
     1084<li>Fixed a few bugs in <class>HTMLParser</class>.</li> 
     1085<li>Added DocBook conversion for several elements 
     1086in <mod>ll.xist.ns.doc</mod>.</li> 
     1087<li>Now the <filename>__init__.py</filename> file for the 
     1088<mod>ll</mod> package is included.</li> 
    10891089</ul> 
    10901090</section> 
     
    10931093<section><h>Changes in 2.0.2 (released 10/21/2002)</h> 
    10941094<ul> 
    1095 <item>Fixed a bug in <meth>Frag.__rmul__</meth> (by 
    1096 reusing <meth>__mul__</meth>).</item> 
    1097 <item>Fixed a bug with the backwards compatible prefix 
     1095<li>Fixed a bug in <meth>Frag.__rmul__</meth> (by 
     1096reusing <meth>__mul__</meth>).</li> 
     1097<li>Fixed a bug with the backwards compatible prefix 
    10981098mapping: Defining element classes in <lit>exec</lit> processing 
    10991099instructions didn't work, because the prefixes object used for 
     
    11021102for the <arg>prefixes</arg> argument in calls to the parsing 
    11031103functions uses one global shared <class>Prefixes</class> instances 
    1104 where all the namespaces that are newly defined will be registered too.</item> 
     1104where all the namespaces that are newly defined will be registered too.</li> 
    11051105</ul> 
    11061106</section> 
     
    11091109<section><h>Changes in 2.0.1 (released 10/17/2002)</h> 
    11101110<ul> 
    1111 <item>Fixed <filename>xscmake.py</filename> by removing the 
     1111<li>Fixed <filename>xscmake.py</filename> by removing the 
    11121112prefix handling. <class>OldPrefixes</class> will always 
    1113 be used for parsing now.</item> 
     1113be used for parsing now.</li> 
    11141114</ul> 
    11151115</section> 
     
    11181118<section><h>Changes in 2.0 (released 10/16/2002)</h> 
    11191119<ul> 
    1120 <item>&xist; now requires at least Python 2.2.1.</item> 
    1121 <item>Attribute handling has been largely rewritten. Instead of 
     1120<li>&xist; now requires at least Python 2.2.1.</li> 
     1121<li>Attribute handling has been largely rewritten. Instead of 
    11221122a class attribute <lit>attrHandlers</lit>, the attributes 
    11231123are now defined through a nested class named <class>Attrs</class> 
     
    11331133allowed values for the attribute via <lit>values</lit>, 
    11341134which is a list of allowed values, and whether the attribute is 
    1135 required or not via <lit>required</lit>.</item> 
    1136 <item>&xist; now has real namespace support. The new class 
     1135required or not via <lit>required</lit>.</li> 
     1136<li>&xist; now has real namespace support. The new class 
    11371137<class>ll.xist.xsc.Prefixes</class> can be used to define a 
    11381138mapping between prefixes and namespace names. This can be 
    11391139used for parsing and publishing. Namespace support is even 
    1140 available for entities and processing instruction.</item> 
    1141 <item>Global attributes are supported now. Namespace modules 
     1140available for entities and processing instruction.</li> 
     1141<li>Global attributes are supported now. Namespace modules 
    11421142for the <lit>xml</lit> and <lit>xlink</lit> namespaces 
    11431143have been added (and <class>ll.xist.xsc.XML</class> was 
    1144 moved to <mod>ll.xist.ns.xml</mod>).</item> 
    1145 <item>A new namespace module for &svg; 1.0 has been added: <mod>ll.xist.ns.svg</mod>.</item> 
    1146 <item>The &html; specific parts of <mod>ll.xist.ns.specials</mod> 
    1147 have been split off into a separate module <mod>ll.xist.ns.htmlspecials</mod>.</item> 
    1148 <item>Comparison of attributes with strings has been removed. 
     1144moved to <mod>ll.xist.ns.xml</mod>).</li> 
     1145<li>A new namespace module for &svg; 1.0 has been added: <mod>ll.xist.ns.svg</mod>.</li> 
     1146<li>The &html; specific parts of <mod>ll.xist.ns.specials</mod> 
     1147have been split off into a separate module <mod>ll.xist.ns.htmlspecials</mod>.</li> 
     1148<li>Comparison of attributes with strings has been removed. 
    11491149You have to use <meth>__unicode__</meth> or <meth>__str__</meth> 
    1150 now before comparing.</item> 
    1151 <item>The <class>HTMLParser</class> now removes unknown attributes 
    1152 instead of complaining.</item> 
    1153 <item>There is a new parser class <class>BadEntityParser</class>, which 
     1150now before comparing.</li> 
     1151<li>The <class>HTMLParser</class> now removes unknown attributes 
     1152instead of complaining.</li> 
     1153<li>There is a new parser class <class>BadEntityParser</class>, which 
    11541154is a &sax;2 parser that recognizes the character entities 
    11551155defined in &html; and tries to pass on unknown or malformed 
    1156 entities to the handler literally.</item> 
    1157 <item>To give all nodes a chance to do something after they have been parsed 
     1156entities to the handler literally.</li> 
     1157<li>To give all nodes a chance to do something after they have been parsed 
    11581158(e.g. to prepend the base &url; for <class>URLAttr</class> nodes), the parser 
    11591159now calls the method <meth>parsed</meth> immediately after node creation. 
    11601160This is used for the new class <class>StyleAttr</class>, which uses the 
    11611161<class>CSSTokenizer</class>, to prepend the base &url; to all &url;s 
    1162 found in a style attribute.</item> 
    1163 <item>The pixel images have been moved to the directory <dirname>px</dirname> 
    1164 to make image &url;s shorter.</item> 
     1162found in a style attribute.</li> 
     1163<li>The pixel images have been moved to the directory <dirname>px</dirname> 
     1164to make image &url;s shorter.</li> 
    11651165</ul> 
    11661166</section> 
     
    11691169<section><h>Changes in 1.6.1 (released 08/25/2003)</h> 
    11701170<ul> 
    1171 <item>Updated to work with newer versions of <mod>ll.ansistyle</mod>.</item> 
    1172 <item>Updated the namespaces <mod>ll.xist.ns.struts_html</mod> and 
    1173 <mod>ll.xist.ns.struts_config11</mod> to the state of Struts 1.1 final.</item> 
     1171<li>Updated to work with newer versions of <mod>ll.ansistyle</mod>.</li> 
     1172<li>Updated the namespaces <mod>ll.xist.ns.struts_html</mod> and 
     1173<mod>ll.xist.ns.struts_config11</mod> to the state of Struts 1.1 final.</li> 
    11741174</ul> 
    11751175</section> 
     
    11781178<section><h>Changes in 1.6 (released 07/02/2003)</h> 
    11791179<ul> 
    1180 <item>Removed the default value for the <lit>className</lit> attribute 
    1181 in <class>ll.xist.ns.struts_config11.action</class>.</item> 
    1182 <item>Added an attribute <lit>type</lit> to 
    1183 <class>ll.xist.ns.struts_config11.action_mapping</class>.</item> 
     1180<li>Removed the default value for the <lit>className</lit> attribute 
     1181in <class>ll.xist.ns.struts_config11.action</class>.</li> 
     1182<li>Added an attribute <lit>type</lit> to 
     1183<class>ll.xist.ns.struts_config11.action_mapping</class>.</li> 
    11841184</ul> 
    11851185</section> 
     
    11881188<section><h>Changes in 1.5.13 (released 07/01/2003)</h> 
    11891189<ul> 
    1190 <item>Implemented <meth>ll.xist.xsc.Namespace.__eq__</meth>, 
    1191 so that replacing a namespace in the registry really works.</item> 
    1192 <item>Added an attribute <lit>target</lit> to <class>ll.xist.ns.html.area</class>.</item> 
     1190<li>Implemented <meth>ll.xist.xsc.Namespace.__eq__</meth>, 
     1191so that replacing a namespace in the registry really works.</li> 
     1192<li>Added an attribute <lit>target</lit> to <class>ll.xist.ns.html.area</class>.</li> 
    11931193</ul> 
    11941194</section> 
     
    11971197<section><h>Changes in 1.5.12 (released 06/17/2003)</h> 
    11981198<ul> 
    1199 <item>Fixed a bug in the new <mod>ll.xist.ns.jsp</mod>.</item> 
     1199<li>Fixed a bug in the new <mod>ll.xist.ns.jsp</mod>.</li> 
    12001200</ul> 
    12011201</section> 
     
    12041204<section><h>Changes in 1.5.11 (released 06/13/2003)</h> 
    12051205<ul> 
    1206 <item>Updated <mod>ll.xist.ns.jsp</mod> to &jsp; 1.2.</item> 
     1206<li>Updated <mod>ll.xist.ns.jsp</mod> to &jsp; 1.2.</li> 
    12071207</ul> 
    12081208</section> 
     
    12111211<section><h>Changes in 1.5.10 (released 06/13/2003)</h> 
    12121212<ul> 
    1213 <item>Remove the checks for attributes in attributes and 
     1213<li>Remove the checks for attributes in attributes and 
    12141214moved the publication code for the full element into a separate 
    12151215method. This allows &jsp; tag library namespaces to simply 
    12161216overwrite <meth>publish</meth> to publish the element 
    1217 even inside attributes.</item> 
     1217even inside attributes.</li> 
    12181218</ul> 
    12191219</section> 
     
    12221222<section><h>Changes in 1.5.9 (released 04/30/2003)</h> 
    12231223<ul> 
    1224 <item>Reregistering a namespace now properly overwrites 
    1225 the old version in <lit>xsc.namespaceRegistry</lit>.</item> 
     1224<li>Reregistering a namespace now properly overwrites 
     1225the old version in <lit>xsc.namespaceRegistry</lit>.</li> 
    12261226</ul> 
    12271227</section> 
     
    12301230<section><h>Changes in 1.5.8 (released 02/27/2003)</h> 
    12311231<ul> 
    1232 <item><class>ll.xist.ns.struts_config11.plug_in</class> now 
    1233 allows content (as the &dtd; states).</item> 
     1232<li><class>ll.xist.ns.struts_config11.plug_in</class> now 
     1233allows content (as the &dtd; states).</li> 
    12341234</ul> 
    12351235</section> 
     
    12381238<section><h>Changes in 1.5.7 (released 11/12/2002)</h> 
    12391239<ul> 
    1240 <item><meth>xsc.Element.__nonzero__</meth> can no longer fall back 
    1241 to <meth>xsc.Frag.__nonzero__</meth>.</item> 
     1240<li><meth>xsc.Element.__nonzero__</meth> can no longer fall back 
     1241to <meth>xsc.Frag.__nonzero__</meth>.</li> 
    12421242</ul> 
    12431243</section> 
     
    12461246<section><h>Changes in 1.5.6 (released 11/11/2002)</h> 
    12471247<ul> 
    1248 <item>Performance optimizations.</item> 
     1248<li>Performance optimizations.</li> 
    12491249</ul> 
    12501250</section> 
     
    12531253<section><h>Changes in 1.5.5 (released 11/11/2002)</h> 
    12541254<ul> 
    1255 <item>Fixed a bug in <class>ll.xist.ns.specials.autoimg</class>: 
    1256 Attributes were not converted before the size check was done.</item> 
     1255<li>Fixed a bug in <class>ll.xist.ns.specials.autoimg</class>: 
     1256Attributes were not converted before the size check was done.</li> 
    12571257</ul> 
    12581258</section> 
     
    12611261<section><h>Changes in 1.5.4 (released 09/30/2002)</h> 
    12621262<ul> 
    1263 <item><filename>xscmake.py</filename> now tries to strip off 
     1263<li><filename>xscmake.py</filename> now tries to strip off 
    12641264a trailing <lit>xsc</lit> from the filename before it falls back 
    12651265to the extension <lit>html</lit> (The builtin extension mapping 
    1266 is still tried first).</item> 
     1266is still tried first).</li> 
    12671267</ul> 
    12681268</section> 
     
    12711271<section><h>Changes in 1.5.3 (released 09/25/2002)</h> 
    12721272<ul> 
    1273 <item>Added new processing instruction class <class>ll.xist.ns.php.expression</class> 
    1274 that generates a &php; <lit>print</lit> statement from its content.</item> 
     1273<li>Added new processing instruction class <class>ll.xist.ns.php.expression</class> 
     1274that generates a &php; <lit>print</lit> statement from its content.</li> 
    12751275</ul> 
    12761276</section> 
     
    12791279<section><h>Changes in 1.5.2 (released 09/19/2002)</h> 
    12801280<ul> 
    1281 <item>Removed the <lit>value</lit> magic from 
     1281<li>Removed the <lit>value</lit> magic from 
    12821282<class>ll.xist.ns.form.checkbox</class> as this 
    1283 conflicted with dynamic <lit>value</lit> values.</item> 
     1283conflicted with dynamic <lit>value</lit> values.</li> 
    12841284</ul> 
    12851285</section> 
     
    12881288<section><h>Changes in 1.5.1 (released 09/17/2002)</h> 
    12891289<ul> 
    1290 <item>Comparison of attributes with strings has been removed. 
     1290<li>Comparison of attributes with strings has been removed. 
    12911291You have to use <meth>__unicode__</meth> or <meth>__str__</meth> 
    1292 instead.</item> 
    1293 <item>The <class>HTMLParser</class> now removes unknown attributes 
    1294 instead of complaining.</item> 
    1295 <item>There is a new parser class <class>BadEntityParser</class>, which 
     1292instead.</li> 
     1293<li>The <class>HTMLParser</class> now removes unknown attributes 
     1294instead of complaining.</li> 
     1295<li>There is a new parser class <class>BadEntityParser</class>, which 
    12961296is a &sax;2 parser that recognizes the character entities 
    12971297defined in &html; and tries to pass on unknown or malformed 
    1298 entities to the handler literally.</item> 
    1299 <item>To give all nodes a chance to do something after they have been parsed 
     1298entities to the handler literally.</li> 
     1299<li>To give all nodes a chance to do something after they have been parsed 
    13001300(e.g. to prepend the base URL for <class>URLAttr</class> nodes), the parser 
    13011301now calls the method <meth>parsed()</meth> immediately after node creation. 
    13021302This is used for the new class <class>StyleAttr</class>, which uses the 
    13031303<class>CSSTokenizer</class>, to prepend the base url to all urls found in 
    1304 a style attribute.</item> 
    1305 <item>The <class>HTMLParser</class> now removes unknown attributes 
    1306 instead of complaining.</item> 
    1307 <item>There is a new parser class <class>BadEntityParser</class>, which 
     1304a style attribute.</li> 
     1305<li>The <class>HTMLParser</class> now removes unknown attributes 
     1306instead of complaining.</li> 
     1307<li>There is a new parser class <class>BadEntityParser</class>, which 
    13081308is a &sax;2 parser that recognizes the character entities 
    13091309defined in &html; and tries to pass on unknown or malformed 
    1310 entities to the handler literally.</item> 
    1311 <item>To give all nodes a chance to do something after they have been parsed 
     1310entities to the handler literally.</li> 
     1311<li>To give all nodes a chance to do something after they have been parsed 
    13121312(e.g. to prepend the base &url; for <class>URLAttr</class> nodes), the parser 
    13131313now calls the method <meth>parsed</meth> immediately after node creation. 
    13141314This is used for the new class <class>StyleAttr</class>, which uses the 
    13151315<class>CSSTokenizer</class>, to prepend to base &url; to all &url;s 
    1316 found in a style attribute.</item> 
     1316found in a style attribute.</li> 
    13171317</ul> 
    13181318</section> 
     
    13211321<section><h>Changes in 1.4.3 (released 04/29/2002)</h> 
    13221322<ul> 
    1323 <item>New namespace module <mod>xist.ns.struts_config11</mod> 
     1323<li>New namespace module <mod>xist.ns.struts_config11</mod> 
    13241324allows to parse and modify <a href="http://jakarta.apache.org/struts/">Struts</a> 
    13251325configuration files conforming to the 
    13261326<a href="http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">Struts 1.1 DTD</a>. 
    1327 </item> 
     1327</li> 
    13281328</ul> 
    13291329</section> 
     
    13321332<section><h>Changes in 1.4.2 (released 03/22/2002)</h> 
    13331333<ul> 
    1334 <item>Updated <filename>xscmake.py</filename> to be compatible with the new 
    1335 <mod>url</mod> module.</item> 
    1336 <item><class>xist.ns.jsp.directive_page</class> now automatically sets the 
    1337 <lit>contentType</lit> on publishing.</item> 
     1334<li>Updated <filename>xscmake.py</filename> to be compatible with the new 
     1335<mod>url</mod> module.</li> 
     1336<li><class>xist.ns.jsp.directive_page</class> now automatically sets the 
     1337<lit>contentType</lit> on publishing.</li> 
    13381338</ul> 
    13391339</section> 
     
    13421342<section><h>Changes in 1.4.1 (released 03/21/2002)</h> 
    13431343<ul> 
    1344 <item>Removed <class>TidyURLInputSource</class>. Now it's possible 
     1344<li>Removed <class>TidyURLInputSource</class>. Now it's possible 
    13451345to pass a <lit>tidy</lit> flag to the remaining functions <func>parseString</func>, 
    13461346<func>parseFile</func> and <func>parseURL</func> to specify whether 
    1347 the source should be tidied.</item> 
    1348 <item>To prevent an element from being registered in a <class>Namespace</class> 
     1347the source should be tidied.</li> 
     1348<li>To prevent an element from being registered in a <class>Namespace</class> 
    13491349the class attribute <lit>register</lit> can be used now. This makes 
    1350 it possible to have a name for the element even when it's not registered.</item> 
    1351 <item><mod>xist.ns.form</mod> elements now have all the attributes that the 
    1352 corresponding elements from <mod>xist.ns.html</mod> have.</item> 
    1353 <item>Removed the old <mod>xist.url</mod> from the Windows distribution.</item> 
     1350it possible to have a name for the element even when it's not registered.</li> 
     1351<li><mod>xist.ns.form</mod> elements now have all the attributes that the 
     1352corresponding elements from <mod>xist.ns.html</mod> have.</li> 
     1353<li>Removed the old <mod>xist.url</mod> from the Windows distribution.</li> 
    13541354</ul> 
    13551355</section> 
     
    13581358<section><h>Changes in 1.4 (released 03/18/2002)</h> 
    13591359<ul> 
    1360 <item>Reimplemented &url; handling again. Now the new global 
    1361 module <mod>url</mod> is used for that.</item> 
     1360<li>Reimplemented &url; handling again. Now the new global 
     1361module <mod>url</mod> is used for that.</li> 
    13621362</ul> 
    13631363</section> 
     
    13661366<section><h>Changes in 1.3.1 (released 03/14/2002)</h> 
    13671367<ul> 
    1368 <item>Added a method <meth>pretty</meth> to <class>Node</class> 
    1369 for generating a pretty printable version of the node.</item> 
    1370 <item><lit>xsc.Node.name</lit> no longer is a class method, but a 
     1368<li>Added a method <meth>pretty</meth> to <class>Node</class> 
     1369for generating a pretty printable version of the node.</li> 
     1370<li><lit>xsc.Node.name</lit> no longer is a class method, but a 
    13711371class attribute, that will be set at class instantiation time 
    1372 by the meta class.</item> 
     1372by the meta class.</li> 
    13731373</ul> 
    13741374</section> 
     
    13771377<section><h>Changes in 1.3 (released 02/12/2002)</h> 
    13781378<ul> 
    1379 <item>Ported to Python 2.2. <class>Node</class> is now derived from 
     1379<li>Ported to Python 2.2. <class>Node</class> is now derived from 
    13801380<class>object</class>, <class>Frag</class> from <class>list</class> and 
    13811381there's a new class <class>Attrs</class> which is derived from 
     
    13841384In addition to the usual dictionary methods and operators <class>Attrs</class> 
    13851385has a method <meth>without</meth> that returns a copy of the 
    1386 <class>Attrs</class> instance with some specified attributes removed.</item> 
    1387 <item>All the node classes now have a new method <meth>walk</meth> that generates 
    1388 all nodes in the tree using the new generator feature of Python 2.2.</item> 
    1389 <item>Also a new method <meth>walkPath</meth> has been added that works the 
     1386<class>Attrs</class> instance with some specified attributes removed.</li> 
     1387<li>All the node classes now have a new method <meth>walk</meth> that generates 
     1388all nodes in the tree using the new generator feature of Python 2.2.</li> 
     1389<li>Also a new method <meth>walkPath</meth> has been added that works the 
    13901390same as <meth>walk</meth> but yields the complete path to each node 
    1391 as a list.</item> 
    1392 <item>Added a class <class>block</class> to <mod>xist.ns.jsp</mod>. 
     1391as a list.</li> 
     1392<li>Added a class <class>block</class> to <mod>xist.ns.jsp</mod>. 
    13931393The content of the <class>block</class> instance will simply be enclosed 
    13941394in a <lit>{}</lit> block. <mod>xist.ns.php</mod> got such 
    1395 a class too.</item> 
    1396 <item>Added a new module <mod>xist.ns.ihtml</mod> for 
    1397 i-mode &html;.</item> 
    1398 <item>Added new modules <mod>xist.ns.css</mod> and 
    1399 <mod>xist.ns.cssspecials</mod> for generating &css;.</item> 
    1400 <item>Now the various attributes of the <class>Converter</class> object 
     1395a class too.</li> 
     1396<li>Added a new module <mod>xist.ns.ihtml</mod> for 
     1397i-mode &html;.</li> 
     1398<li>Added new modules <mod>xist.ns.css</mod> and 
     1399<mod>xist.ns.cssspecials</mod> for generating &css;.</li> 
     1400<li>Now the various attributes of the <class>Converter</class> object 
    14011401are collected in a <class>ConverterState</class> object and it's possible 
    14021402to push and pop those states, i.e. it's now easy to temporarily modify a 
    14031403converter object during a <meth>convert</meth> call and revert back 
    1404 to a previous state afterwards.</item> 
    1405 <item><func>parseURL</func> and <func>parseTidyURL</func> 
     1404to a previous state afterwards.</li> 
     1405<li><func>parseURL</func> and <func>parseTidyURL</func> 
    14061406now have an additional parameter <lit>headers</lit> which is a list of 
    14071407string pairs specifying additional headers to be passed in with the 
    1408 request.</item> 
    1409 <item><func>parseString</func> has an additional parameter 
     1408request.</li> 
     1409<li><func>parseString</func> has an additional parameter 
    14101410<lit>systemId</lit> which will be the system id of the 
    1411 <class>InputSource</class>.</item> 
    1412 <item>The distribution now includes the makefile and the &xml; 
    1413 source files so now the distribution can rebuild ifself.</item> 
    1414 <item>Various other small bugfixes and enhancements.</item> 
     1411<class>InputSource</class>.</li> 
     1412<li>The distribution now includes the makefile and the &xml; 
     1413source files so now the distribution can rebuild ifself.</li> 
     1414<li>Various other small bugfixes and enhancements.</li> 
    14151415</ul> 
    14161416</section> 
     
    14191419<section><h>Changes in 1.2.5 (released 12/03/2001)</h> 
    14201420<ul> 
    1421 <item>Added a new element <class>contentscripttype</class> to 
     1421<li>Added a new element <class>contentscripttype</class> to 
    14221422<mod>xist.ns.meta</mod> that generates a 
    14231423<lit>&lt;meta http-equiv="Content-Script-Type" ...&gt;</lit> 
    1424 element.</item> 
    1425 <item><func>xist.ns.doc.explain</func> now generates anchor elements 
     1424element.</li> 
     1425<li><func>xist.ns.doc.explain</func> now generates anchor elements 
    14261426for the class, function and method description, so now the 
    1427 links on the &xist; webpages work.</item> 
    1428 <item>Docstrings and documentation has been reworked. Now 
     1427links on the &xist; webpages work.</li> 
     1428<li>Docstrings and documentation has been reworked. Now 
    14291429<class>xist.ns.doc.pyref</class> no longer implies a font change. 
    14301430Use the classes <class>xist.ns.doc.module</class>, <class>xist.ns.doc.class</class>, 
    14311431<class>xist.ns.doc.method</class>, <class>xist.ns.doc.function</class> and 
    1432 <class>xist.ns.doc.arg</class> to mark up your Python identifiers.</item> 
    1433 <item>Added the attributes <lit>type</lit> and <lit>key</lit> 
    1434 to <class>xist.ns.struts_config.data_source</class>.</item> 
     1432<class>xist.ns.doc.arg</class> to mark up your Python identifiers.</li> 
     1433<li>Added the attributes <lit>type</lit> and <lit>key</lit> 
     1434to <class>xist.ns.struts_config.data_source</class>.</li> 
    14351435</ul> 
    14361436</section> 
     
    14391439<section><h>Changes in 1.2.4 (released 11/23/2001)</h> 
    14401440<ul> 
    1441 <item>Added the deprecated attributes <lit>start</lit> to 
     1441<li>Added the deprecated attributes <lit>start</lit> to 
    14421442<class>xist.ns.html.ol</class> and <lit>value</lit> to 
    1443 <class>xist.ns.html.li</class>.</item> 
     1443<class>xist.ns.html.li</class>.</li> 
    14441444</ul> 
    14451445</section> 
     
    14481448<section><h>Changes in 1.2.3 (released 11/22/2001)</h> 
    14491449<ul> 
    1450 <item>Added missing <meth>asPlainString</meth> methods to 
    1451 <class>Comment</class> and <class>DocType</class>.</item> 
     1450<li>Added missing <meth>asPlainString</meth> methods to 
     1451<class>Comment</class> and <class>DocType</class>.</li> 
    14521452</ul> 
    14531453</section> 
     
    14561456<section><h>Changes in 1.2.2 (released 11/16/2001)</h> 
    14571457<ul> 
    1458 <item><meth>xist.url.URL.fileSize</meth> and <meth>xist.url.URL.imageSize</meth> 
    1459 now use the warning framework to report errors.</item> 
    1460 <item>There is a new presenter named <class>CodePresenter</class> that dumps the 
    1461 tree as Python source code.</item> 
    1462 <item>The filenames of the pixel images used by <class>xist.ns.specials.pixel</class> 
    1463 have changed. These images are now included.</item> 
     1458<li><meth>xist.url.URL.fileSize</meth> and <meth>xist.url.URL.imageSize</meth> 
     1459now use the warning framework to report errors.</li> 
     1460<li>There is a new presenter named <class>CodePresenter</class> that dumps the 
     1461tree as Python source code.</li> 
     1462<li>The filenames of the pixel images used by <class>xist.ns.specials.pixel</class> 
     1463have changed. These images are now included.</li> 
    14641464</ul> 
    14651465</section> 
     
    14681468<section><h>Changes in 1.2.1 (released 10/08/2001)</h> 
    14691469<ul> 
    1470 <item>URLs that are completely dynamic will now be left in peace when parsing 
    1471 or publishing.</item> 
     1470<li>URLs that are completely dynamic will now be left in peace when parsing 
     1471or publishing.</li> 
    14721472</ul> 
    14731473</section> 
     
    14761476<section><h>Changes in 1.2 (released 10/03/2001)</h> 
    14771477<ul> 
    1478 <item><p><class>xist.ns.meta.keywords</class> 
     1478<li><p><class>xist.ns.meta.keywords</class> 
    14791479and <class>xist.ns.meta.description</class> 
    14801480no longer call <meth>asPlainString</meth> 
     
    14921492</prog> 
    14931493</example> 
    1494 </item> 
    1495 <item>When an element occurs inside an attribute during publishing, there 
     1494</li> 
     1495<li>When an element occurs inside an attribute during publishing, there 
    14961496won't be an exception raised any more. Instead the content of the element 
    14971497will be published. This fixes problems with abbreviation entities inside 
    1498 attributes.</item> 
    1499 <item><class>xist.parsers.TidyURLInputSource</class> now uses the new 
     1498attributes.</li> 
     1499<li><class>xist.parsers.TidyURLInputSource</class> now uses the new 
    15001500experimental eGenix mx Extension package, which includes a Python 
    1501 port of <app>tidy</app>.</item> 
    1502 <item><meth>__repr__</meth> now uses the new class <class>presenters.PlainPresenter</class> 
    1503 which gives a little more info than the default <meth>__repr__</meth>.</item> 
    1504 <item>URL handling has been changed again. Upto now, <class>URLAttr</class> had 
     1501port of <app>tidy</app>.</li> 
     1502<li><meth>__repr__</meth> now uses the new class <class>presenters.PlainPresenter</class> 
     1503which gives a little more info than the default <meth>__repr__</meth>.</li> 
     1504<li>URL handling has been changed again. Upto now, <class>URLAttr</class> had 
    15051505an additional instance attribute <lit>base</lit>, which was the <z>base</z> file/URL 
    15061506from which the attribute was parsed. Now the base URL will be directly incorporated 
     
    15101510and no longer via <meth>__add__</meth>. This makes it more consistent with 
    15111511<mod>fileutils</mod>. The plan is to make URLs string like immutable objects 
    1512 and to merge them with <class>fileutils.Filename</class>.</item> 
    1513 <item><class>xist.ns.specials.php</class> has been moved to its own 
     1512and to merge them with <class>fileutils.Filename</class>.</li> 
     1513<li><class>xist.ns.specials.php</class> has been moved to its own 
    15141514module (<mod>xist.ns.php</mod>). This module provided additional 
    15151515convenience processing instructions (just like <mod>xist.ns.jsp</mod> 
    1516 does).</item> 
     1516does).</li> 
    15171517</ul> 
    15181518</section> 
     
    15211521<section><h>Changes in 1.1.3 (released 09/17/2001)</h> 
    15221522<ul> 
    1523 <item>The global namespace registry now keeps a sequential list of all registered 
     1523<li>The global namespace registry now keeps a sequential list of all registered 
    15241524namespaces, which will be used by the parser when searching for names. This 
    15251525gives a predictable search order even without using <class>Namespaces</class> 
    15261526and its <meth>pushNamespace</meth> method: modules imported last will be searched 
    1527 first.</item> 
    1528 <item>Processing instructions are now allowed inside attributes when 
    1529 publishing.</item> 
    1530 <item><mod>xist.ns.docbooklite</mod> has been renamed to <mod>xist.ns.doc</mod>. 
     1527first.</li> 
     1528<li>Processing instructions are now allowed inside attributes when 
     1529publishing.</li> 
     1530<li><mod>xist.ns.docbooklite</mod> has been renamed to <mod>xist.ns.doc</mod>. 
    15311531It can now generate &html; and Docbook output and has improved a lot. The &xist; web pages 
    1532 now use this for automatic documentation generation. The doc example has been removed.</item> 
    1533 <item><class>xist.url.URL</class> now has a new method <meth>info</meth> that returns the headers 
    1534 for the file/URL.</item> 
    1535 <item><class>xist.url.URL</class> now has a methods <meth>fileSize</meth> and <meth>imageSize</meth> 
    1536 too.</item> 
    1537 <item><class>xist.ns.jsp.directive_page</class> now has new attribute <lit>session</lit>.</item> 
     1532now use this for automatic documentation generation. The doc example has been removed.</li> 
     1533<li><class>xist.url.URL</class> now has a new method <meth>info</meth> that returns the headers 
     1534for the file/URL.</li> 
     1535<li><class>xist.url.URL</class> now has a methods <meth>fileSize</meth> and <meth>imageSize</meth> 
     1536too.</li> 
     1537<li><class>xist.ns.jsp.directive_page</class> now has new attribute <lit>session</lit>.</li> 
    15381538</ul> 
    15391539</section> 
     
    15421542<section><h>Changes in 1.1.2 (released 08/21/2001)</h> 
    15431543<ul> 
    1544 <item><meth>__repr__</meth> now uses the new class <class>presenters.PlainPresenter</class> 
    1545 which gives a little more info than the default <meth>__repr__</meth>.</item> 
     1544<li><meth>__repr__</meth> now uses the new class <class>presenters.PlainPresenter</class> 
     1545which gives a little more info than the default <meth>__repr__</meth>.</li> 
    15461546</ul> 
    15471547</section> 
     
    15501550<section><h>Changes in 1.1.1 (released 08/01/2001)</h> 
    15511551<ul> 
    1552 <item>Small bugfix in <func>presenters.strProcInst</func></item> 
    1553 <item>fixed <class>xist.ns.struts_html.option</class> to allow content</item> 
     1552<li>Small bugfix in <func>presenters.strProcInst</func></li> 
     1553<li>fixed <class>xist.ns.struts_html.option</class> to allow content</li> 
    15541554</ul> 
    15551555</section> 
     
    15581558<section><h>Changes in 1.1 (released 07/19/2001)</h> 
    15591559<ul> 
    1560 <item>Sequences in constructor arguments for <class>Frag</class> and 
     1560<li>Sequences in constructor arguments for <class>Frag</class> and 
    15611561<class>Element</class> are again expanded and it's again possible 
    15621562to pass dictionaries in an <class>Element</class> constructor to 
    15631563specify attributes. As sequences are always unpacked, the method 
    15641564<meth>extend</meth> is gone. This works for <meth>append</meth> 
    1565 and <meth>insert</meth> too.</item> 
    1566  
    1567 <item><p><class>Node</class> and <class>Frag</class> implement 
     1565and <meth>insert</meth> too.</li> 
     1566 
     1567<li><p><class>Node</class> and <class>Frag</class> implement 
    15681568<meth>__mul__</meth> and <meth>__rmul__</meth>, so you can do stuff like:</p> 
    15691569<prog> 
    15701570html.br()*5 
    15711571</prog> 
    1572 <p>This returns a <class>Frag</class> with five times to same node.</p></item> 
    1573  
    1574 <item><p>Arguments for the converter constructor can be passed to 
     1572<p>This returns a <class>Frag</class> with five times to same node.</p></li> 
     1573 
     1574<li><p>Arguments for the converter constructor can be passed to 
    15751575<meth>xist.xsc.Node.conv</meth> now, so it's possible to do stuff like this:</p> 
    15761576<prog> 
     
    15791579    .conv(lang="en").asBytes() 
    15801580</prog> 
    1581 <p>which will print <lit>en</lit>.</p></item> 
    1582 <item>The option <arg>XHTML</arg> for the publishers has been changed 
    1583 to lowercase.</item> 
    1584 <item><class>xist.ns.html.html</class> will automatically generate a 
     1581<p>which will print <lit>en</lit>.</p></li> 
     1582<li>The option <arg>XHTML</arg> for the publishers has been changed 
     1583to lowercase.</li> 
     1584<li><class>xist.ns.html.html</class> will automatically generate a 
    15851585<lit>lang</lit> and <lit>xml:lang</lit> attribute when the 
    1586 converter has a language set.</item> 
     1586converter has a language set.</li> 
    15871587</ul> 
    15881588</section> 
     
    15911591<section><h>Changes in 1.0 (released 06/18/2001)</h> 
    15921592<ul> 
    1593 <item>New module for &wml; 1.3.</item> 
    1594  
    1595 <item>The publishing interface has changed internally 
    1596 and publishing should be faster now.</item> 
    1597  
    1598 <item>Publishers now support a new parameter: 
     1593<li>New module for &wml; 1.3.</li> 
     1594 
     1595<li>The publishing interface has changed internally 
     1596and publishing should be faster now.</li> 
     1597 
     1598<li>Publishers now support a new parameter: 
    15991599<arg>usePrefix</arg>, which specifies if namespace prefixes 
    1600 should be output for the element names.</item> 
    1601  
    1602 <item>Part of the implementation of the publishing 
     1600should be output for the element names.</li> 
     1601 
     1602<li>Part of the implementation of the publishing 
    16031603stuff has been moved to C, so now you'll need 
    1604 a C compiler to install &xist;.</item> 
    1605  
    1606 <item>When publishing <lit>"</lit>, it will now only be replaced with 
    1607 <lit>&amp;quot;</lit> inside attributes.</item> 
    1608  
    1609 <item>All the <meth>asHTML</meth> methods now have an additional argument 
     1604a C compiler to install &xist;.</li> 
     1605 
     1606<li>When publishing <lit>"</lit>, it will now only be replaced with 
     1607<lit>&amp;quot;</lit> inside attributes.</li> 
     1608 
     1609<li>All the <meth>asHTML</meth> methods now have an additional argument 
    16101610<arg>converter</arg>. This makes it possible 
    16111611to implement different processing modes or stages 
     
    16141614in the call to their childrens' <meth>asHTML</meth> method. 
    16151615As the name <meth>asHTML</meth> no longer makes sense, <meth>asHTML</meth> 
    1616 has been renamed to <meth>convert</meth>.</item> 
    1617  
    1618 <item>There is now a tool <filename>dtd2xsc.py</filename> in the 
     1616has been renamed to <meth>convert</meth>.</li> 
     1617 
     1618<li>There is now a tool <filename>dtd2xsc.py</filename> in the 
    16191619<filename>scripts</filename> directory that creates 
    16201620a skeleton &xist; module from a &dtd; (this requires <app>xmlproc</app> 
    1621 from the <app>PyXML</app> package).</item> 
    1622  
    1623 <item>New preliminary module for DocBook 4.12. 
     1621from the <app>PyXML</app> package).</li> 
     1622 
     1623<li>New preliminary module for DocBook 4.12. 
    16241624(Incomplete: <meth>convert</meth> methods and Unicode character 
    1625 entities are missing; any volunteers for implementing 375 classes?)</item> 
    1626  
    1627 <item>New module <filename>ruby.py</filename> that implements the 
     1625entities are missing; any volunteers for implementing 375 classes?)</li> 
     1626 
     1627<li>New module <filename>ruby.py</filename> that implements the 
    16281628<a href="http://www.w3.org/TR/ruby/xhtml11-ruby-1.mod">W3C Ruby draft</a>. 
    1629 </item> 
    1630  
    1631 <item><filename>sql.py</filename> has been removed from &xist;, but is available 
    1632 as a <a href="root:sql/index.html">separate module</a>.</item> 
    1633  
    1634 <item>The parsing interface has been changed. Parsing is now done 
     1629</li> 
     1630 
     1631<li><filename>sql.py</filename> has been removed from &xist;, but is available 
     1632as a <a href="root:sql/index.html">separate module</a>.</li> 
     1633 
     1634<li>The parsing interface has been changed. Parsing is now done 
    16351635with the functions <func>parseFile</func>, <func>parseString</func>, 
    16361636<func>parseURL</func> and <func>parseTidyURL</func> in the module 
     
    16391639these functions. &xist; now includes a rudimentary SAX2 driver 
    16401640for <class>sgmlop</class> and a rudimentary &html; parser that 
    1641 emits SAX2 events.</item> 
    1642  
    1643 <item>The python-quotes example has been updated to work with expat.</item> 
    1644  
    1645 <item>Added a new example: media.</item> 
    1646  
    1647 <item>All abbreviation entities have been moved to 
    1648 a new module <filename>abbr.py</filename>.</item> 
    1649  
    1650 <item>All the modules that provide new elements and entitites 
    1651 have been moved to a subpackage <mod>ns</mod>.</item> 
    1652  
    1653 <item><class>Frag</class> and <class>Element</class> 
     1641emits SAX2 events.</li> 
     1642 
     1643<li>The python-quotes example has been updated to work with expat.</li> 
     1644 
     1645<li>Added a new example: media.</li> 
     1646 
     1647<li>All abbreviation entities have been moved to 
     1648a new module <filename>abbr.py</filename>.</li> 
     1649 
     1650<li>All the modules that provide new elements and entitites 
     1651have been moved to a subpackage <mod>ns</mod>.</li> 
     1652 
     1653<li><class>Frag</class> and <class>Element</class> 
    16541654now have new methods <meth>sorted</meth>, 
    16551655<meth>reversed</meth>, <meth>filtered</meth> and 
    16561656<meth>shuffled</meth> that return sorted, reversed, filtered 
    16571657and shuffled versions of the <class>Frag</class>/<class>Element</class> 
    1658 object.</item> 
    1659  
    1660 <item>New namespace modules <filename>ns/jsp.py</filename> and 
     1658object.</li> 
     1659 
     1660<li>New namespace modules <filename>ns/jsp.py</filename> and 
    16611661<filename>ns/struts_html.py</filename> have been added that allow you to 
    16621662use <a href="http://java.sun.com/products/jsp/">&jsp;</a> and 
    1663 <a href="http://jakarta.apache.org/struts/">Struts</a> tags with &xist;.</item> 
    1664  
    1665 <item>A new method <meth>asText</meth> was added, that returns 
     1663<a href="http://jakarta.apache.org/struts/">Struts</a> tags with &xist;.</li> 
     1664 
     1665<li>A new method <meth>asText</meth> was added, that returns 
    16661666the node as a formatted plain &ascii; text (this requires that 
    16671667<app moreinfo="http://w3m.sf.net/">w3m</app> 
    1668 is installed.)</item> 
    1669  
    1670 <item><filename>make.py</filename> has been renamed to 
     1668is installed.)</li> 
     1669 
     1670<li><filename>make.py</filename> has been renamed to 
    16711671<filename>xscmake.py</filename> and moved to the 
    16721672<dirname>scripts</dirname> directory, 
    1673 it will be installed as a callable script with <lit>python setup.py install_scripts</lit>.</item> 
    1674  
    1675 <item><filename>xscmake.py</filename> has a new option <option>--files</option>/<option>-f</option>. 
     1673it will be installed as a callable script with <lit>python setup.py install_scripts</lit>.</li> 
     1674 
     1675<li><filename>xscmake.py</filename> has a new option <option>--files</option>/<option>-f</option>. 
    16761676The argument is a file containing a list of filenames (one 
    1677 name per line) that should be converted.</item> 
    1678  
    1679 <item><filename>xscmake.py</filename> has a new option <option>-r</option>/<option>--parser</option> 
     1677name per line) that should be converted.</li> 
     1678 
     1679<li><filename>xscmake.py</filename> has a new option <option>-r</option>/<option>--parser</option> 
    16801680for specifying which parser to use. Allowed values are <lit>sgmlop</lit> 
    1681 and <lit>expat</lit>.</item> 
    1682  
    1683 <item><p><filename>xscmake.py</filename> has a new option <option>-n</option>/<option>--namespace</option> 
     1681and <lit>expat</lit>.</li> 
     1682 
     1683<li><p><filename>xscmake.py</filename> has a new option <option>-n</option>/<option>--namespace</option> 
    16841684that can be used for appending <class>Namespace</class> 
    16851685objects to the <class>Namespaces</class> object used by <filename>xscmake.py</filename>.</p> 
     
    16921692<p>With this call the parser will find element classes from the 
    16931693module with the prefix name <lit>spam</lit> before those 
    1694 from <lit>html</lit> and those before anything else.</p></item> 
    1695  
    1696 <item><class>xist.url.URL</class> no longer has an attribute 
     1694from <lit>html</lit> and those before anything else.</p></li> 
     1695 
     1696<li><class>xist.url.URL</class> no longer has an attribute 
    16971697<lit>ext</lit>. <lit>file</lit> and <lit>ext</lit> are 
    1698 merged.</item> 
    1699  
    1700 <item>The special treatment of sequences as constructor arguments 
     1698merged.</li> 
     1699 
     1700<li>The special treatment of sequences as constructor arguments 
    17011701to <class>Frag</class> and <class>Element</class> 
    17021702has been removed, so &xist; will no longer remove one level of 
    1703 nesting. If you still want that, use a <lit>*</lit> argument.</item> 
    1704  
    1705 <item><class>Frag</class> and <class>Element</class> 
     1703nesting. If you still want that, use a <lit>*</lit> argument.</li> 
     1704 
     1705<li><class>Frag</class> and <class>Element</class> 
    17061706now have a new method <meth>mapped</meth>, 
    17071707that recursively maps the nodes through a function. This is like 
    1708 <meth>convert</meth> but via an external function.</item> 
    1709  
    1710 <item><p>Attribute handling has been improved thanks to a suggestion 
     1708<meth>convert</meth> but via an external function.</li> 
     1709 
     1710<li><p>Attribute handling has been improved thanks to a suggestion 
    17111711by Hartmut Goebel: <meth>Element.__getitem__</meth> now 
    17121712always works as long as the attribute name is legal. If the attribute 
     
    17161716publish them. This simplifies several very common cases:</p> 
    17171717<ul> 
    1718 <item>Copying an attribute from one element to another works regardless 
    1719 of whether the attribute is set or not;</item> 
    1720 <item>Testing for an attributes presence can now be done much 
     1718<li>Copying an attribute from one element to another works regardless 
     1719of whether the attribute is set or not;</li> 
     1720<li>Testing for an attributes presence can now be done much 
    17211721simpler: <lit>if element["attrname"]</lit> instead of 
    17221722<lit>if element.hasAttr("attrname")</lit> (which still 
    1723 works, and should be a little faster);</item> 
    1724 <item><p>When you construct a &dom; tree and the presence or absence 
     1723works, and should be a little faster);</li> 
     1724<li><p>When you construct a &dom; tree and the presence or absence 
    17251725of an attribute is tied to a condition, you can construct the attribute 
    17261726in advance and use it afterwards in the tree construction:</p> 
     
    17331733</prog> 
    17341734<p>So, when the <lit><rep>condition</rep></lit> is false, 
    1735 the node will not have the attribute <lit>align</lit> set.</p></item> 
    1736 </ul> 
    1737 </item> 
    1738 <item><p><class>xist.ns.cond.If</class> (and <class>xist.ns.cond.ElIf</class>) 
     1735the node will not have the attribute <lit>align</lit> set.</p></li> 
     1736</ul> 
     1737</li> 
     1738<li><p><class>xist.ns.cond.If</class> (and <class>xist.ns.cond.ElIf</class>) 
    17391739can now be used to test for attributes of the converter. I.e. it's possible to 
    17401740write the following &xml;:</p> 
     
    17441744&lt;/if&gt; 
    17451745</prog> 
    1746 </item> 
    1747 <item>URL handling has be completely changed and is much, much simpler now. 
     1746</li> 
     1747<li>URL handling has be completely changed and is much, much simpler now. 
    17481748There are no more path markers. To specify an URL that is relative to the 
    1749 current directory use the scheme <lit>root</lit> (e.g. <lit>root:main.css</lit>).</item> 
     1749current directory use the scheme <lit>root</lit> (e.g. <lit>root:main.css</lit>).</li> 
    17501750</ul> 
    17511751</section> 
     
    17541754<section><h>Changes in 0.4.7 (released 11/24/2000)</h> 
    17551755<ul> 
    1756 <item>Fixed a bug in the entity handling.</item> 
    1757  
    1758 <item>Added a few deprecated elements and attributes to 
    1759 the <mod>html</mod> module.</item> 
    1760  
    1761 <item>Improved the publishing of attributes. Now all attribute 
     1756<li>Fixed a bug in the entity handling.</li> 
     1757 
     1758<li>Added a few deprecated elements and attributes to 
     1759the <mod>html</mod> module.</li> 
     1760 
     1761<li>Improved the publishing of attributes. Now all attribute 
    17621762values will be published. For boolean attributes no value 
    17631763will be published for <lit>XHTML==0</lit> and the attribute 
    1764 name will be used for <lit>XHTML==1</lit> or <lit>XHTML==2</lit>.</item> 
    1765  
    1766 <item><meth>Element.compact</meth> now works (better) ;).</item> 
    1767  
    1768 <item>Incorparated many bug fixes from Hartmut Goebel.</item> 
    1769  
    1770 <item>Implemented <meth>xsc.Element.copyDefaultAttrs</meth>, which copies 
     1764name will be used for <lit>XHTML==1</lit> or <lit>XHTML==2</lit>.</li> 
     1765 
     1766<li><meth>Element.compact</meth> now works (better) ;).</li> 
     1767 
     1768<li>Incorparated many bug fixes from Hartmut Goebel.</li> 
     1769 
     1770<li>Implemented <meth>xsc.Element.copyDefaultAttrs</meth>, which copies 
    17711771unset attributes over from a dictionary (simplifies 
    1772 implementing <class>specials.plaintable</class> and <class>specials.plainbody</class>)</item> 
    1773  
    1774 <item><meth>providers.Provider.pushNamespace</meth> now handles multiple 
     1772implementing <class>specials.plaintable</class> and <class>specials.plainbody</class>)</li> 
     1773 
     1774<li><meth>providers.Provider.pushNamespace</meth> now handles multiple 
    17751775arguments which may be <class>Namespace</class> objects or modules 
    1776 (in which case, <lit><rep>module</rep>.namespace</lit> will be pushed)</item> 
    1777  
    1778 <item><meth>providers.Providers.popNamespace</meth> can now pop multiple 
    1779 namespaces at once.</item> 
    1780  
    1781 <item><class>providers.TidyURIProvider</class> now uses <func>os.popen3</func> for 
     1776(in which case, <lit><rep>module</rep>.namespace</lit> will be pushed)</li> 
     1777 
     1778<li><meth>providers.Providers.popNamespace</meth> can now pop multiple 
     1779namespaces at once.</li> 
     1780 
     1781<li><class>providers.TidyURIProvider</class> now uses <func>os.popen3</func> for 
    17821782piping the file through tidy, so now there will be 
    17831783no more temporary files. The call to tidy now includes 
    17841784options that hopefully make the output more suited to 
    1785 &xist;.</item> 
    1786  
    1787 <item>Incorparated a new <filename>url.py</filename> by Hartmut Goebel, that fixes 
     1785&xist;.</li> 
     1786 
     1787<li>Incorparated a new <filename>url.py</filename> by Hartmut Goebel, that fixes 
    17881788many problem (e.g. optimizing <lit>http://server/foo/bar/../../baz.gif</lit> 
    1789 now works.)</item> 
    1790  
    1791 <item><filename>make.py</filename> includes a new option <option>--path</option> for 
    1792 adding directories to <lit>sys.path</lit>.</item> 
     1789now works.)</li> 
     1790 
     1791<li><filename>make.py</filename> includes a new option <option>--path</option> for 
     1792adding directories to <lit>sys.path</lit>.</li> 
    17931793</ul> 
    17941794</section> 
     
    17971797<section><h>Changes in 0.4.6 (released 11/03/2000)</h> 
    17981798<ul> 
    1799 <item>Now uses <class>sgmlop.XMLParser</class> instead of 
    1800 <class>sgmlop.SGMLParser</class>, so case is preserved.</item> 
    1801  
    1802 <item>Fixed another regression from the URL to string conversion 
    1803 change.</item> 
     1799<li>Now uses <class>sgmlop.XMLParser</class> instead of 
     1800<class>sgmlop.SGMLParser</class>, so case is preserved.</li> 
     1801 
     1802<li>Fixed another regression from the URL to string conversion 
     1803change.</li> 
    18041804</ul> 
    18051805</section> 
     
    18081808<section><h>Changes in 0.4.5 (released 11/01/2000)</h> 
    18091809<ul> 
    1810 <item>Converting URLs to nodes is now done in <func>ToNode</func>, 
    1811 so <class>URL</class> objects can be used everywhere.</item> 
    1812  
    1813 <item>Fixed a few bugs in <meth>Text._strtext</meth> and 
    1814 <meth>URLAttr._str</meth>.</item> 
     1810<li>Converting URLs to nodes is now done in <func>ToNode</func>, 
     1811so <class>URL</class> objects can be used everywhere.</li> 
     1812 
     1813<li>Fixed a few bugs in <meth>Text._strtext</meth> and 
     1814<meth>URLAttr._str</meth>.</li> 
    18151815</ul> 
    18161816</section> 
     
    18191819<section><h>Changes in 0.4.4 (releases 10/27/2000)</h> 
    18201820<ul> 
    1821 <item>Now testing if characters can be encoded with the 
     1821<li>Now testing if characters can be encoded with the 
    18221822specified encoding is done directy. This means, that 
    18231823escaping unencodable characters now works even with 
    18241824exotic encodings (tested with 
    1825 <a href="http://pseudo.grad.sccs.chukyo-u.ac.jp/~kajiyama/python/"><filename>JapaneseCodecs-1.0.1.tar.gz</filename></a>).</item> 
    1826  
    1827 <item>The <class>URLAttr</class> constructor now can handle a single parameter 
    1828 of the type <class>URL</class>.</item> 
    1829  
    1830 <item>The URL to string conversion function have changed: 
     1825<a href="http://pseudo.grad.sccs.chukyo-u.ac.jp/~kajiyama/python/"><filename>JapaneseCodecs-1.0.1.tar.gz</filename></a>).</li> 
     1826 
     1827<li>The <class>URLAttr</class> constructor now can handle a single parameter 
     1828of the type <class>URL</class>.</li> 
     1829 
     1830<li>The URL to string conversion function have changed: 
    18311831<meth>URL.asString</meth> returns the URL with path markers, 
    1832 <meth>URL.asPlainString</meth> returns the URL without path markers.</item> 
    1833  
    1834 <item>Added the <lit>i18n</lit> attribute to the <class>font</class> element.</item> 
    1835  
    1836 <item>Fixed the clashes between the class names for the elements 
    1837 and entities <class>sub</class> and <class>sup</class> in <filename>html.py</filename>.</item> 
    1838  
    1839 <item>Several small enhancements and bug fixes contributed by 
    1840 Hartmut Goebel.</item> 
     1832<meth>URL.asPlainString</meth> returns the URL without path markers.</li> 
     1833 
     1834<li>Added the <lit>i18n</lit> attribute to the <class>font</class> element.</li> 
     1835 
     1836<li>Fixed the clashes between the class names for the elements 
     1837and entities <class>sub</class> and <class>sup</class> in <filename>html.py</filename>.</li> 
     1838 
     1839<li>Several small enhancements and bug fixes contributed by 
     1840Hartmut Goebel.</li> 
    18411841</ul> 
    18421842</section> 
     
    18451845<section><h>Changes in 0.4.3 (released 10/19/2000)</h> 
    18461846<ul> 
    1847 <item>Now processing instruction classes are registered in the 
    1848 same way as elements and entities are.</item> 
    1849  
    1850 <item>The leaf nodes (<class>Text</class>, <class>Comment</class>, 
     1847<li>Now processing instruction classes are registered in the 
     1848same way as elements and entities are.</li> 
     1849 
     1850<li>The leaf nodes (<class>Text</class>, <class>Comment</class>, 
    18511851<class>ProcInst</class>) are now considered immutable. 
    18521852This means that their <meth>asHTML</meth> method can 
     
    18541854trees. Functionality for manipulation the objects is provided by a mixin 
    18551855class very similar to <class>UserString</class>. All this results 
    1856 in a speedup of about 10% for the python-quotes example.</item> 
    1857  
    1858 <item>Small optimizations in the <meth>asHTML</meth> methods of <class>Element</class> and 
     1856in a speedup of about 10% for the python-quotes example.</li> 
     1857 
     1858<li>Small optimizations in the <meth>asHTML</meth> methods of <class>Element</class> and 
    18591859<class>Frag</class> optimized away many calls to <meth>append</meth>, 
    18601860<meth>extend</meth> and <meth>ToNode</meth> and result in a speedup 
    18611861of about 30% for the python-quotes example. One consequence of this is 
    1862 that <class>Null</class> objects will no longer be ignored.</item> 
     1862that <class>Null</class> objects will no longer be ignored.</li> 
    18631863</ul> 
    18641864</section> 
     
    18671867<section><h>Changes in 0.4.2 (released 09/24/2000)</h> 
    18681868<ul> 
    1869 <item>New elements <class>keywords</class> and <class>description</class> in 
    1870 <filename>meta.py</filename>.</item> 
    1871  
    1872 <item>Fixed a bug in <meth>Namespace.register</meth>, now setting <lit>name=None</lit> 
    1873 to prevent an element from being registered works again.</item> 
     1869<li>New elements <class>keywords</class> and <class>description</class> in 
     1870<filename>meta.py</filename>.</li> 
     1871 
     1872<li>Fixed a bug in <meth>Namespace.register</meth>, now setting <lit>name=None</lit> 
     1873to prevent an element from being registered works again.</li> 
    18741874</ul> 
    18751875</section> 
     
    18781878<section><h>Changes in 0.4.1 (released 09/21/2000)</h> 
    18791879<ul> 
    1880 <item>A new module named <filename>meta.py</filename> has been created, that simplifies 
    1881 generating meta tags.</item> 
    1882  
    1883 <item>Various small bugfixes.</item> 
     1880<li>A new module named <filename>meta.py</filename> has been created, that simplifies 
     1881generating meta tags.</li> 
     1882 
     1883<li>Various small bugfixes.</li> 
    18841884</ul> 
    18851885</section> 
     
    18881888<section><h>Changes in 0.4 (released 09/19/2000)</h> 
    18891889<ul> 
    1890 <item>&xist; now requires at least Python 2.0b1.</item> 
    1891  
    1892 <item>A new bugfixed version of the <app>sgmlop</app> source is available 
    1893 from the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/xist/">&ftp; site</a>.</item> 
    1894  
    1895 <item>&xist; now completely supports Unicode. For output any 
     1890<li>&xist; now requires at least Python 2.0b1.</li> 
     1891 
     1892<li>A new bugfixed version of the <app>sgmlop</app> source is available 
     1893from the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/xist/">&ftp; site</a>.</li> 
     1894 
     1895<li>&xist; now completely supports Unicode. For output any 
    18961896encoding known to Python can be used, so now you 
    1897 can output your &html; in ASCII, Latin-1, UTF-8, UTF-16, ...</item> 
    1898  
    1899 <item>All publishers have been updated to support Unicode. 
     1897can output your &html; in ASCII, Latin-1, UTF-8, UTF-16, ...</li> 
     1898 
     1899<li>All publishers have been updated to support Unicode. 
    19001900The publishing interface has been streamlined (<arg>encoding</arg> 
    1901 and <arg>XHTML</arg> parameters are now attributes of the publisher).</item> 
    1902  
    1903 <item><meth>asString</meth> will now always return a Unicode string. If you 
     1901and <arg>XHTML</arg> parameters are now attributes of the publisher).</li> 
     1902 
     1903<li><meth>asString</meth> will now always return a Unicode string. If you 
    19041904want a byte string use <meth>asBytes</meth> instead, where the encoding 
    1905 can be specified as an argument.</item> 
    1906  
    1907 <item>There an additional publisher class <class>FilePublisher</class>, which can 
     1905can be specified as an argument.</li> 
     1906 
     1907<li>There an additional publisher class <class>FilePublisher</class>, which can 
    19081908be used for publishing to a file (or anything else that has 
    19091909a <meth>write</meth> and a <meth>writelines</meth> method, and is supported by the stream 
    1910 writer available through <func>codecs.lookup</func>).</item> 
    1911  
    1912 <item>Element and attribute names are no longer converted to lowercase. 
     1910writer available through <func>codecs.lookup</func>).</li> 
     1911 
     1912<li>Element and attribute names are no longer converted to lowercase. 
    19131913If you have an attribute name which clashes with a Python 
    19141914keyword (e.g. <lit>class</lit>) append an underscore (<lit>_</lit>), 
    19151915which will be removed before accessing the attribute. This is the <z>official</z> 
    1916 Python method for handling these cases.</item> 
    1917  
    1918 <item>Elements and entities are no longer registered one by one. Now 
     1916Python method for handling these cases.</li> 
     1917 
     1918<li>Elements and entities are no longer registered one by one. Now 
    19191919you can build <class>Namespace</class> objects which are used for searching 
    19201920and there are <meth>pushNamespace</meth> and <meth>popNamespace</meth> 
    1921 functions in <mod>XSC.xsc</mod>. For more info, see the source.</item> 
    1922  
    1923 <item>Image size calculation has been removed from <class>html.img</class> and 
     1921functions in <mod>XSC.xsc</mod>. For more info, see the source.</li> 
     1922 
     1923<li>Image size calculation has been removed from <class>html.img</class> and 
    19241924<class>html.input</class>. Use <class>specials.autoimg</class> and 
    1925 <class>specials.autoinput</class> for that.</item> 
    1926  
    1927 <item><meth>__getitem__</meth>, <meth>__setitem__</meth> and <meth>__delitem</meth> 
     1925<class>specials.autoinput</class> for that.</li> 
     1926 
     1927<li><meth>__getitem__</meth>, <meth>__setitem__</meth> and <meth>__delitem</meth> 
    19281928of <class>Frag</class> and <class>Element</class> now accepts a list as an argument. 
    19291929The method will be applied recursively, i.e. <lit>e[[0, 1, "foo", 2]</lit> is the 
    1930 same as <lit>e[0][1]["foo"][2]</lit>.</item> 
    1931  
    1932 <item>The deprecated module <filename>db.py</filename> no longer exists. Useful functions and elements 
     1930same as <lit>e[0][1]["foo"][2]</lit>.</li> 
     1931 
     1932<li>The deprecated module <filename>db.py</filename> no longer exists. Useful functions and elements 
    19331933from <filename>db.py</filename> have been moved to <filename>sql.py</filename> and 
    1934 <filename>form.py</filename> respectively.</item> 
    1935  
    1936 <item>When using <func>xsc.make</func> the encoding and XHTML parameters to use can now 
    1937 be specified on the command line (e.g. <lit>--encoding utf-8 --xhtml 2</lit>)</item> 
    1938  
    1939 <item><p>Handling of multiline <markup>&lt;?xsc-eval?&gt;</markup> and <markup>&lt;?xsc-exec?&gt;</markup> 
     1934<filename>form.py</filename> respectively.</li> 
     1935 
     1936<li>When using <func>xsc.make</func> the encoding and XHTML parameters to use can now 
     1937be specified on the command line (e.g. <lit>--encoding utf-8 --xhtml 2</lit>)</li> 
     1938 
     1939<li><p>Handling of multiline <markup>&lt;?xsc-eval?&gt;</markup> and <markup>&lt;?xsc-exec?&gt;</markup> 
    19401940has been enhanced, although, &xist; will not be able to guess the correct indentation 
    19411941in all cases. As a workarround simply add a Python comment to the beginning:</p> 
     
    19551955</prog> 
    19561956<p>will.</p> 
    1957 </item> 
    1958  
    1959 <item><p>Make functionality has been moved to <filename>make.py</filename>, as certain modules can't 
     1957</li> 
     1958 
     1959<li><p>Make functionality has been moved to <filename>make.py</filename>, as certain modules can't 
    19601960be used as the main script, because reimporting them in processing 
    19611961instructions won't work. Now you can simply call</p> 
     
    19641964<prog>make.py --import xist.html --import spam eggs.xsc</prog> 
    19651965</example> 
    1966 </item> 
    1967  
    1968 <item><p>There is a new module <filename>cond.py</filename>, that contains 
     1966</li> 
     1967 
     1968<li><p>There is a new module <filename>cond.py</filename>, that contains 
    19691969elements that can be used for conditionals:</p> 
    19701970<prog> 
     
    19781978&lt;/if&gt; 
    19791979</prog> 
    1980 </item> 
     1980</li> 
    19811981</ul> 
    19821982</section> 
     
    19851985<section><h>Changes in 0.3.9 (released 08/10/2000)</h> 
    19861986<ul> 
    1987 <item><app>sgmlop</app> will now be found either via <lit>import sgmlop</lit> 
    1988 or via <lit>from xml.parsers import sgmlop</lit>.</item> 
     1987<li><app>sgmlop</app> will now be found either via <lit>import sgmlop</lit> 
     1988or via <lit>from xml.parsers import sgmlop</lit>.</li> 
    19891989</ul> 
    19901990</section> 
     
    19931993<section><h>Changes in 0.3.8 (released 07/14/2000)</h> 
    19941994<ul> 
    1995 <item>Fixed a bug in <meth>URLAttr.publish</meth>, which prevented 
    1996 <class>URLAttr</class> from working at all.</item> 
     1995<li>Fixed a bug in <meth>URLAttr.publish</meth>, which prevented 
     1996<class>URLAttr</class> from working at all.</li> 
    19971997</ul> 
    19981998</section> 
     
    20012001<section><h>Changes in 0.3.7 (released 07/06/2000)</h> 
    20022002<ul> 
    2003 <item>Fixed a bug in <class>html.img</class> and <class>html.input</class>. 
    2004 Now image size calculation works again.</item> 
     2003<li>Fixed a bug in <class>html.img</class> and <class>html.input</class>. 
     2004Now image size calculation works again.</li> 
    20052005</ul> 
    20062006</section> 
     
    20092009<section><h>Changes in 0.3.6 (released 07/04/2000)</h> 
    20102010<ul> 
    2011 <item>Fixed a bug in <meth>Node._matches</meth>, which resulted in a non working 
    2012 <meth>find</meth>.</item> 
     2011<li>Fixed a bug in <meth>Node._matches</meth>, which resulted in a non working 
     2012<meth>find</meth>.</li> 
    20132013</ul> 
    20142014</section> 
     
    20172017<section><h>Changes in 0.3.5 (released 07/02/2000)</h> 
    20182018<ul> 
    2019 <item>The documentation example has been enhanced. Now documenting methods works.</item> 
    2020  
    2021 <item>When the member <lit>elementname</lit> in the element class is set before calling 
     2019<li>The documentation example has been enhanced. Now documenting methods works.</li> 
     2020 
     2021<li>When the member <lit>elementname</lit> in the element class is set before calling 
    20222022<func>registerElement</func>, this element name will be used for the element. This 
    2023 allows custom names even when using <func>registerAllElements</func>.</item> 
    2024  
    2025 <item>Comparison of scheme and server in URLs is done case insensitive 
     2023allows custom names even when using <func>registerAllElements</func>.</li> 
     2024 
     2025<li>Comparison of scheme and server in URLs is done case insensitive 
    20262026(as <a href="http://www.ietf.org/rfc/rfc2068.txt">RFC 2068</a> 
    2027 requires.)</item> 
    2028  
    2029 <item><p>Image size calculation is now done in <meth>asString</meth> and 
     2027requires.)</li> 
     2028 
     2029<li><p>Image size calculation is now done in <meth>asString</meth> and 
    20302030not in <meth>asHTML</meth>. 
    20312031This allows to write faster code. Old method:</p> 
    20322032<prog>e = html.div(html.img(...),gurk.hurz()).asHTML().asString()</prog> 
    20332033<p>New method</p> 
    2034 <prog>e = html.div(html.img(...),gurk.hurz().asHTML()).asString()</prog></item> 
    2035  
    2036 <item>Image size calculation is now done for <markup>&lt;input type="image"&gt;</markup>. 
    2037 The <lit>size</lit> attribute is set to the image width.</item> 
    2038  
    2039 <item><p>Manipulating the path in an &url; is now done via the usual 
     2034<prog>e = html.div(html.img(...),gurk.hurz().asHTML()).asString()</prog></li> 
     2035 
     2036<li>Image size calculation is now done for <markup>&lt;input type="image"&gt;</markup>. 
     2037The <lit>size</lit> attribute is set to the image width.</li> 
     2038 
     2039<li><p>Manipulating the path in an &url; is now done via the usual 
    20402040<meth>__setitem__</meth>/<meth>__getitem__</meth> stuff, 
    20412041which keeps the path in a consistent state.</p> 
     
    20472047URL(scheme='server', path=['bar'], file='baz', ext='gif') 
    20482048</prog> 
    2049 </item> 
    2050  
    2051 <item><meth>findNodes</meth> (which has been shortened to <meth>find</meth>) 
     2049</li> 
     2050 
     2051<li><meth>findNodes</meth> (which has been shortened to <meth>find</meth>) 
    20522052has an additional argument <arg>test</arg>, which can be a test function that will 
    2053 be called when the node passes all other tests.</item> 
    2054  
    2055 <item><meth>asString</meth> no longer generates a string directly, but uses the new method 
     2053be called when the node passes all other tests.</li> 
     2054 
     2055<li><meth>asString</meth> no longer generates a string directly, but uses the new method 
    20562056<meth>publish</meth>, which has an additional argument <arg>publisher</arg>, 
    2057 to which the strings to be output are passed.</item> 
     2057to which the strings to be output are passed.</li> 
    20582058</ul> 
    20592059</section> 
     
    20622062<section><h>Changes in 0.3.4 (released 05/31/2000)</h> 
    20632063<ul> 
    2064 <item>Location information is now copied over in <meth>clone</meth>, <meth>asHTML</meth> 
     2064<li>Location information is now copied over in <meth>clone</meth>, <meth>asHTML</meth> 
    20652065and <meth>compact</meth> where appropriate, so you know even in the &html; tree 
    2066 where something came from.</item> 
    2067  
    2068 <item><p><lit>xsc.repransi</lit> can now have three values:</p> 
    2069 <ul> 
    2070 <item><lit>0</lit>: coloring is off</item> 
    2071 <item><lit>1</lit>: coloring is on for a dark background</item> 
    2072 <item><lit>2</lit>: coloring is on for a light background</item> 
     2066where something came from.</li> 
     2067 
     2068<li><p><lit>xsc.repransi</lit> can now have three values:</p> 
     2069<ul> 
     2070<li><lit>0</lit>: coloring is off</li> 
     2071<li><lit>1</lit>: coloring is on for a dark background</li> 
     2072<li><lit>2</lit>: coloring is on for a light background</li> 
    20732073</ul> 
    20742074<p>All <lit>repransi</lit> variables are now arrays with two strings, 
    2075 the first for dark, the second for light.</p></item> 
     2075the first for dark, the second for light.</p></li> 
    20762076</ul> 
    20772077</section> 
     
    20802080<section><h>Changes in 0.3.3 (released 05/30/2000)</h> 
    20812081<ul> 
    2082 <item>The workaround for the trailing CDATA bug in <app>sgmlop</app> has been removed, so now 
    2083 you'll need a newer version of <app>sgmlop</app> (included in <app>PyXML 0.5.5.1</app>)</item> 
     2082<li>The workaround for the trailing CDATA bug in <app>sgmlop</app> has been removed, so now 
     2083you'll need a newer version of <app>sgmlop</app> (included in <app>PyXML 0.5.5.1</app>)</li> 
    20842084</ul> 
    20852085</section> 
     
    20882088<section><h>Changes before 0.3.3</h> 
    20892089<ul> 
    2090 <item>These changes predate written history.</item> 
    2091 </ul> 
    2092 </section> 
     2090<li>These changes predate written history.</li> 
     2091</ul> 
     2092</section> 
  • docs/Advanced.xml

    r3128 r3131  
    3636 
    3737 
    38 <section><h>Chaining pool and extending namespaces</h> 
     38<section><h>Chaining pools and extending namespaces</h> 
    3939 
    4040<p>When using <pyref module="ll.xist.xsc" class="Pool">pools</pyref> it's 
  • docs/Howto.xml

    r3128 r3131  
    1919final &html; or &xml; output requires the following three steps:</p> 
    2020<ul> 
    21 <item>Generating a source &xml; tree: This can be done either by 
    22 parsing an &xml; file, or by directly constructing the 
    23 tree &mdash; as <app>HTMLgen</app> and <app>HyperText</app> 
    24 do &mdash; as a tree of Python objects. &xist; provides a very natural 
    25 and pythonic &api; for that.</item> 
    26 <item>Converting the source tree into a target tree: This target 
    27 tree can be a &html; tree or a &svg; tree or XSL-FO tree or any other 
    28 &xml; tree you like. Every node class provides a 
    29 <meth>convert</meth> method for performing this conversion. For 
    30 your own &xml; element types you have to define your 
    31 own element classes and implement an appropriate 
    32 <meth>convert</meth> method. This is possible for 
    33 processing instructions and entity references too.</item> 
    34 <item>Publishing the target tree: For generating the final 
    35 output a <class>Publisher</class> object is used that generates 
    36 the encoded byte string fragments that can be written to an output stream 
    37 (or yielded from a WSGI application, etc.).</item> 
    38 </ul> 
     21<li>Generating a source &xml; tree: This can be done either by parsing an &xml; 
     22file, or by directly constructing the tree &mdash; as <app>HTMLgen</app> and 
     23<app>HyperText</app> do &mdash; as a tree of Python objects. &xist; provides a 
     24very natural and pythonic &api; for that.</li> 
     25<li>Converting the source tree into a target tree: This target tree can be a 
     26&html; tree or a &svg; tree or XSL-FO tree or any other &xml; tree you like. 
     27Every node class provides a <meth>convert</meth> method for performing this 
     28conversion. For your own &xml; element types you have to define your own element 
     29classes and implement an appropriate <meth>convert</meth> method. This is 
     30possible for processing instructions and entity references too.</li> 
     31<li>Publishing the target tree: For generating the final output a 
     32<class>Publisher</class> object is used that generates the encoded byte string 
     33fragments that can be written to an output stream (or yielded from a WSGI 
     34application, etc.).</li></ul> 
    3935</section> 
    4036 
     
    4339<p>Like any other &xml; tree &api;, &xist; provides the usual classes:</p> 
    4440<ul> 
    45 <item><pyref module="ll.xist.xsc" class="Element"><class>Element</class></pyref> for &xml; elements;</item> 
    46 <item><pyref module="ll.xist.xsc" class="Attr"><class>Attr</class></pyref> for attributes;</item> 
    47 <item><pyref module="ll.xist.xsc" class="Attrs"><class>Attrs</class></pyref> for attribute mappings;</item> 
    48 <item><pyref module="ll.xist.xsc" class="Text"><class>Text</class></pyref> for text data;</item> 
    49 <item><pyref module="ll.xist.xsc" class="Frag"><class>Frag</class></pyref> for document fragments, 
    50 (a <class>Frag</class> object is simply a list of nodes);</item> 
    51 <item><pyref module="ll.xist.xsc" class="Comment"><class>Comment</class></pyref> for &xml; comments 
    52 (e.g. <markup>&lt;!-- the comment --&gt;</markup>);</item> 
    53 <item><pyref module="ll.xist.xsc" class="ProcInst"><class>ProcInst</class></pyref> for processing instructions 
    54 (e.g. <markup>&lt;?php echo $spam;?&gt;</markup>);</item> 
    55 <item><pyref module="ll.xist.xsc" class="Entity"><class>Entity</class></pyref> for entity references 
    56 (e.g. <markup>&amp;parrot;</markup>) and</item> 
    57 <item><pyref module="ll.xist.xsc" class="DocType"><class>DocType</class></pyref> for document type 
    58 declarations (e.g. <markup>&lt;!DOCTYPE html PUBLIC <rep>...</rep>&gt;</markup>).</item> 
     41<li><pyref module="ll.xist.xsc" class="Element"><class>Element</class></pyref> for &xml; elements;</li> 
     42<li><pyref module="ll.xist.xsc" class="Attr"><class>Attr</class></pyref> for attributes;</li> 
     43<li><pyref module="ll.xist.xsc" class="Attrs"><class>Attrs</class></pyref> for attribute mappings;</li> 
     44<li><pyref module="ll.xist.xsc" class="Text"><class>Text</class></pyref> for text data;</li> 
     45<li><pyref module="ll.xist.xsc" class="Frag"><class>Frag</class></pyref> for document fragments, 
     46(a <class>Frag</class> object is simply a list of nodes);</li> 
     47<li><pyref module="ll.xist.xsc" class="Comment"><class>Comment</class></pyref> for &xml; comments 
     48(e.g. <markup>&lt;!-- the comment --&gt;</markup>);</li> 
     49<li><pyref module="ll.xist.xsc" class="ProcInst"><class>ProcInst</class></pyref> for processing instructions 
     50(e.g. <markup>&lt;?php echo $spam;?&gt;</markup>);</li> 
     51<li><pyref module="ll.xist.xsc" class="Entity"><class>Entity</class></pyref> for entity references 
     52(e.g. <markup>&amp;parrot;</markup>) and</li> 
     53<li><pyref module="ll.xist.xsc" class="DocType"><class>DocType</class></pyref> for document type 
     54declarations (e.g. <markup>&lt;!DOCTYPE html PUBLIC <rep>...</rep>&gt;</markup>).</li> 
    5955</ul> 
    6056 
     
    140136provides several functions:</p> 
    141137<dl> 
    142 <term><lit>parsestring(data, base=None, encoding=None, **builderargs)</lit></term> 
    143 <item>Parse the string <arg>data</arg> into an &xist; tree.</item> 
    144 <term><lit>parseiter(iterable, base=None, encoding=None, **builderargs)</lit></term> 
    145 <item>Parse the input from the iterable <arg>iterable</arg> (which must produce the 
    146 input in chunks of bytes) into an &xist; tree.</item> 
    147 <term><lit>parsestream(stream, base=None, encoding=None, bufsize=8192, **builderargs)</lit></term> 
    148 <item>Parse &xml; from the stream <arg>stream</arg> into an &xist; tree.</item> 
    149 <term><lit>parsefile(filename, base=None, encoding=None, bufsize=8192, **builderargs)</lit></term> 
    150 <item>Parse &xml; input from the file named <arg>filename</arg>.</item> 
    151 <term><lit>parseurl(name, base=None, encoding=None, bufsize=8192, headers=None, data=None, **builderargs)</lit></term> 
    152 <item>Parse &xml; input from the &url; <arg>name</arg> into an &xist; tree.</item> 
    153 <term><lit>parseetree(tree, base=None, **builderargs)</lit></term> 
    154 <item>Parse &xml; input from the object <arg>tree</arg> which must support the 
    155 <a href="http://effbot.org/zone/element-index.htm">ElementTree</a> &api;.</item> 
     138<dt><lit>parsestring(data, base=None, encoding=None, **builderargs)</lit></dt> 
     139<dd>Parse the string <arg>data</arg> into an &xist; tree.</dd> 
     140<dt><lit>parseiter(iterable, base=None, encoding=None, **builderargs)</lit></dt> 
     141<dd>Parse the input from the iterable <arg>iterable</arg> (which must produce the 
     142input in chunks of bytes) into an &xist; tree.</dd> 
     143<dt><lit>parsestream(stream, base=None, encoding=None, bufsize=8192, **builderargs)</lit></dt> 
     144<dd>Parse &xml; from the stream <arg>stream</arg> into an &xist; tree.</dd> 
     145<dt><lit>parsefile(filename, base=None, encoding=None, bufsize=8192, **builderargs)</lit></dt> 
     146<dd>Parse &xml; input from the file named <arg>filename</arg>.</dd> 
     147<dt><lit>parseurl(name, base=None, encoding=None, bufsize=8192, headers=None, data=None, **builderargs)</lit></dt> 
     148<dd>Parse &xml; input from the &url; <arg>name</arg> into an &xist; tree.</dd> 
     149<dt><lit>parseetree(tree, base=None, **builderargs)</lit></dt> 
     150<dd>Parse &xml; input from the object <arg>tree</arg> which must support the 
     151<a href="http://effbot.org/zone/element-index.htm">ElementTree</a> &api;.</dd> 
    156152</dl> 
    157153<p>For example, parsing a string can be done like this:</p> 
     
    276272<pyref module="ll.xist.converters" class="Converter"><class>Converter</class></pyref> constructor:</p> 
    277273<dl> 
    278 <term><arg>root</arg></term><item><arg>root</arg> (which defaults to <lit>None</lit>) is the root &url; 
     274<dt><arg>root</arg></dt><dd><arg>root</arg> (which defaults to <lit>None</lit>) is the root &url; 
    279275for the conversion process. When you want to resolve a link in some of your own <meth>convert</meth> methods, 
    280276the &url; must be interpreted relative to this root &url; (You can use 
    281277<pyref module="ll.xist.xsc" class="URLAttr" method="forInput"><meth>URLAttr.forInput</meth></pyref> 
    282 for that).</item> 
    283 <term><arg>mode</arg></term><item><arg>mode</arg> (which defaults to <lit>None</lit>) works the same way 
    284 as modes in &xslt;. You can use this for implementing different conversion modes.</item> 
    285 <term><arg>stage</arg></term><item><arg>stage</arg> (which defaults to <lit>"deliver"</lit>) 
     278for that).</dd> 
     279<dt><arg>mode</arg></dt><dd><arg>mode</arg> (which defaults to <lit>None</lit>) works the same way 
     280as modes in &xslt;. You can use this for implementing different conversion modes.</dd> 
     281<dt><arg>stage</arg></dt><dd><arg>stage</arg> (which defaults to <lit>"deliver"</lit>) 
    286282allows you to implement multi stage conversion: Suppose that you want to deliver a dynamically 
    287283constructed web page with &xist; that contains results from a database query and the current time. 
     
    293289would do the conversion when <lit><arg>stage</arg>=="deliver"</lit> and simply returns itself 
    294290when <lit><arg>stage</arg>=="cache"</lit>, so it would still be part of the cached &xml; tree 
    295 and would be converted to &html; on every request.</item> 
    296 <term><arg>target</arg></term><item><arg>target</arg> (which defaults to 
     291and would be converted to &html; on every request.</dd> 
     292<dt><arg>target</arg></dt><dd><arg>target</arg> (which defaults to 
    297293<pyref module="ll.xist.ns.html"><mod>ll.xist.ns.html</mod></pyref>) specifies what the output should be. 
    298294Values must be <pyref module="ll.xist.xsc" class="Namespace">namespace subclasses</pyref> 
    299 (see below for an explanation of namespaces).</item> 
    300 <term><arg>lang</arg></term><item><p><arg>lang</arg> (which defaults to <lit>None</lit>) is the language 
     295(see below for an explanation of namespaces).</dd> 
     296<dt><arg>lang</arg></dt><dd><p><arg>lang</arg> (which defaults to <lit>None</lit>) is the language 
    301297in which the result tree should be. This can be used in the <meth>convert</meth> method 
    302298to implement different conversions for different languages, e.g.:</p> 
     
    316312        return node.convert(converter) 
    317313</prog> 
    318 </item> 
     314</dd> 
    319315</dl> 
    320316 
     
    347343 
    348344<ul> 
    349 <item><pyref module="ll.xist.xsc" class="TextAttr"><class>TextAttr</class></pyref>, for normal text attributes;</item> 
    350 <item><pyref module="ll.xist.xsc" class="URLAttr"><class>URLAttr</class></pyref>, for attributes that are &url;s;</item> 
    351 <item><pyref module="ll.xist.xsc" class="BoolAttr"><class>BoolAttr</class></pyref>, for boolean attributes (for such an attribute 
    352 only its presence is important, it's value will always be the same as the attribute name when publishing);</item> 
    353 <item><pyref module="ll.xist.xsc" class="IntAttr"><class>IntAttr</class></pyref>, for integer attributes;</item> 
    354 <item><pyref module="ll.xist.xsc" class="ColorAttr"><class>ColorAttr</class></pyref>, for color attributes (e.g. <lit>#ffffff</lit>).</item> 
     345<li><pyref module="ll.xist.xsc" class="TextAttr"><class>TextAttr</class></pyref>, for normal text attributes;</li> 
     346<li><pyref module="ll.xist.xsc" class="URLAttr"><class>URLAttr</class></pyref>, for attributes that are &url;s;</li> 
     347<li><pyref module="ll.xist.xsc" class="BoolAttr"><class>BoolAttr</class></pyref>, for boolean attributes (for such an attribute 
     348only its presence is important, it's value will always be the same as the attribute name when publishing);</li> 
     349<li><pyref module="ll.xist.xsc" class="IntAttr"><class>IntAttr</class></pyref>, for integer attributes;</li> 
     350<li><pyref module="ll.xist.xsc" class="ColorAttr"><class>ColorAttr</class></pyref>, for color attributes (e.g. <lit>#ffffff</lit>).</li> 
    355351</ul> 
    356352 
     
    832828 
    833829<dl> 
    834 <term><lit>xhtml==0</lit></term><item>This will give you pure &html;, i.e. no 
     830<dt><lit>xhtml==0</lit></dt><dd>This will give you pure &html;, i.e. no 
    835831final <lit>/</lit> for elements with an empty content model, so you'll get e.g. 
    836832<markup>&lt;br&gt;</markup> in the output. Elements that don't have an empty 
    837833content model, but are empty will be published with a start and end tag 
    838 (i.e. <markup>&lt;div&gt;&lt;/div&gt;</markup>).</item> 
    839 <term><lit>xhtml==1</lit></term><item>This gives &html; compatible &xhtml;. 
     834(i.e. <markup>&lt;div&gt;&lt;/div&gt;</markup>).</dd> 
     835<dt><lit>xhtml==1</lit></dt><dd>This gives &html; compatible &xhtml;. 
    840836Elements with an empty content model will be published like this: 
    841 <markup>&lt;br /&gt;</markup> (This is the default).</item> 
    842 <term><lit>xhtml==2</lit></term><item>This gives full &xml; output. Every empty 
     837<markup>&lt;br /&gt;</markup> (This is the default).</dd> 
     838<dt><lit>xhtml==2</lit></dt><dd>This gives full &xml; output. Every empty 
    843839element will be published with an empty tag (without an additional space): 
    844 <markup>&lt;br/&gt;</markup> or <markup>&lt;div/&gt;</markup>.</item> 
     840<markup>&lt;br/&gt;</markup> or <markup>&lt;div/&gt;</markup>.</dd> 
    845841</dl> 
    846842</section> 
  • docs/Misc.xml

    r3128 r3131  
    2424This means:</p> 
    2525<ul> 
    26 <item>When you have a relative &url; (e.g. <lit>#top</lit>) generated by a <meth>convert</meth> 
    27 call, this &url; will stay the same when publishing.</item> 
    28 <item>Base &url;s for parsing should never be relative: Relative base 
     26<li>When you have a relative &url; (e.g. <lit>#top</lit>) generated by a <meth>convert</meth> 
     27call, this &url; will stay the same when publishing.</li> 
     28<li>Base &url;s for parsing should never be relative: Relative base 
    2929&url;s will be prepended to all relative &url;s in the file, but this will not be 
    3030reverted for publishing. In most cases the base &url; should be a 
    31 <lit>root</lit> &url; when you parse local files.</item> 
    32 <item>When you parse remote web pages you can either 
     31<lit>root</lit> &url; when you parse local files.</li> 
     32<li>When you parse remote web pages you can either 
    3333omit the <arg>base</arg> argument, so it will default to the 
    3434&url; being parsing, so that links, images, etc. on the page 
    3535will still point back to their original location, or you 
    3636might want to use the empty &url; <lit>URL()</lit> as the 
    37 base, so you'll get all &url;s in the page as they are.</item> 
    38 <item><p>When &xist; is used as a compiler for static pages, you're 
     37base, so you'll get all &url;s in the page as they are.</li> 
     38<li><p>When &xist; is used as a compiler for static pages, you're 
    3939going to read source &xml; files, do a conversion and write the 
    4040result to a new target file. In this case you should probably 
     
    5656<p>When you use <lit>root:spam.html</lit> both for parsing 
    5757and publishing, <lit>#top</lit> will be written to the target file 
    58 as expected.</p></item> 
     58as expected.</p></li> 
    5959</ul> 
    6060 
  • docs/Searching.xml

    r3128 r3131  
    2525 
    2626<dl> 
    27 <term><lit>True</lit></term><item>This tells <meth>walk</meth> to 
    28 yield this node from the generator;</item> 
    29 <term><lit>False</lit></term><item>Don't yield this node from the generator;</item> 
    30 <term><lit>enterattrs</lit></term><item>This is a global constant in 
     27<dt><lit>True</lit></dt><dd>This tells <meth>walk</meth> to 
     28yield this node from the generator;</dd> 
     29<dt><lit>False</lit></dt><dd>Don't yield this node from the generator;</dd> 
     30<dt><lit>enterattrs</lit></dt><dd>This is a global constant in 
    3131<mod>ll.xist.xsc</mod> and tells <meth>walk</meth> to traverse 
    3232the attributes of this node (if it's an 
    3333<pyref class="Element"><class>Element</class></pyref>, otherwise this 
    34 option will be ignored);</item> 
    35 <term><lit>entercontent</lit></term><item>This is a global constant in 
     34option will be ignored);</dd> 
     35<dt><lit>entercontent</lit></dt><dd>This is a global constant in 
    3636<mod>ll.xist.xsc</mod> and tells <meth>walk</meth> to traverse 
    3737the child nodes of this node (if it's an 
    3838<pyref class="Element"><class>Element</class></pyref>, otherwise this 
    39 option will be ignored);</item> 
     39option will be ignored);</dd> 
    4040</dl> 
    4141 
  • src/ll/xist/__init__.py

    r3128 r3131  
    3434<p>Some of the significant features of &xist; include:</p> 
    3535<ul> 
    36 <item>Easily extensible with new &xml; elements,</item> 
    37 <item>Can be used for offline or online page generation,</item> 
    38 <item>Allows embedding Python code in &xml; files,</item> 
    39 <item>Supports separation of layout and logic,</item> 
    40 <item>Can be used together with <a href="http://www.modpython.org/">mod_python</a>, 
     36<li>Easily extensible with new &xml; elements,</li> 
     37<li>Can be used for offline or online page generation,</li> 
     38<li>Allows embedding Python code in &xml; files,</li> 
     39<li>Supports separation of layout and logic,</li> 
     40<li>Can be used together with <a href="http://www.modpython.org/">mod_python</a>, 
    4141<a href="http://pywx.idyll.org/">PyWX</a> or <a href="http://webware.sf.net/">Webware</a> 
    42 to generate dynamic pages,</item> 
    43 <item>Fully supports Unicode and &xml; namespaces,</item> 
    44 <item>Provides features to use &xist; together with &jsp;/Struts (when replacing 
    45 Struts tag libraries with &xist; this speeds up pages by a factor of 5&ndash;10.)</item> 
     42to generate dynamic pages,</li> 
     43<li>Fully supports Unicode and &xml; namespaces,</li> 
     44<li>Provides features to use &xist; together with &jsp;/Struts (when replacing 
     45Struts tag libraries with &xist; this speeds up pages by a factor of 5&ndash;10.)</li> 
    4646</ul> 
    4747 
  • src/ll/xist/ns/tld.py

    r3128 r3131  
    4242    <p>An attribute definition is composed of:</p> 
    4343    <ul> 
    44         <item>the attributes name (required)</item> 
    45         <item>if the attribute is required or optional (optional)</item> 
    46         <item>if the attributes value may be dynamically calculated at 
    47                 runtime by a scriptlet expression (optional) 
    48         </item> 
     44    <li>the attributes name (required)</li> 
     45    <li>if the attribute is required or optional (optional)</li> 
     46    <li>if the attributes value may be dynamically calculated at runtime by a 
     47    scriptlet expression (optional)</li> 
    4948    </ul> 
    5049    """ 
     
    7574    <p>There are currently three values specified:</p> 
    7675    <ul> 
    77         <item><lit>tagdependent</lit>: The body of the tag is interpreted 
     76        <li><lit>tagdependent</lit>: The body of the tag is interpreted 
    7877            by the tag implementation itself, and is most likely in a 
    7978            different <z>language</z>, e.g embedded &sql; statements. 
    80         </item> 
    81         <item><lit>JSP</lit>: The body of the tag contains nested &jsp; syntax</item> 
    82         <item><lit>empty</lit>: The body must be empty</item> 
     79        </li> 
     80        <li><lit>JSP</lit>: The body of the tag contains nested &jsp; syntax</li> 
     81        <li><lit>empty</lit>: The body must be empty</li> 
    8382    </ul> 
    8483    <p>The default (if not defined) is <lit>JSP</lit>.</p> 
     
    154153    <p>The tag defines a unique tag in this tag library, defining:</p> 
    155154    <ul> 
    156         <item>the unique tag/element name</item> 
    157         <item>the subclass of <class>javax.servlet.jsp.tagext.Tag</class> implementation class</item> 
    158         <item>an optional subclass of <class>javax.servlet.jsp.tagext.TagExtraInfo</class></item> 
    159         <item>the body content type (hint)</item> 
    160         <item>optional tag-specific information</item> 
    161         <item>any attributes</item> 
     155        <li>the unique tag/element name</li> 
     156        <li>the subclass of <class>javax.servlet.jsp.tagext.Tag</class> implementation class</li> 
     157        <li>an optional subclass of <class>javax.servlet.jsp.tagext.TagExtraInfo</class></li> 
     158        <li>the body content type (hint)</li> 
     159        <li>optional tag-specific information</li> 
     160        <li>any attributes</li> 
    162161    </ul> 
    163162    """ 
     
    203202    <p>The taglib tag is the document root, it defines:</p> 
    204203    <ul> 
    205         <item><lit>tlibversion</lit>: The version of the tag library implementation</item> 
    206         <item><lit>jspversion</lit>: The version of JSP the tag library depends upon</item> 
    207         <item><lit>shortname</lit>: A simple default short name that could be used by 
     204        <li><lit>tlibversion</lit>: The version of the tag library implementation</li> 
     205        <li><lit>jspversion</lit>: The version of JSP the tag library depends upon</li> 
     206        <li><lit>shortname</lit>: A simple default short name that could be used by 
    208207                    a &jsp; authoring tool to create names with a mnemonic 
    209208                    value; for example, the it may be used as the prefered 
    210209                    prefix value in taglib directives. 
    211         </item> 
    212         <item><lit>uri</lit>: A &url; uniquely identifying this taglib</item> 
    213         <item><lit>info</lit>: A simple string describing the <z>use</z> of 
     210        </li> 
     211        <li><lit>uri</lit>: A &url; uniquely identifying this taglib</li> 
     212        <li><lit>info</lit>: A simple string describing the <z>use</z> of 
    214213                this taglib, should be user discernable 
    215         </item> 
     214        </li> 
    216215    </ul> 
    217216    """ 
  • src/ll/xist/parsers.py

    r3128 r3131  
    236236        <p>Arguments have the following meaning:</p> 
    237237        <dl> 
    238         <term><arg>parser</arg></term><item>an instance of the 
     238        <dt><arg>parser</arg></dt><dd>an instance of the 
    239239        <pyref class="Parser"><class>Parser</class></pyref> class (or any object 
    240         that provides the appropriate interface).</item> 
    241  
    242         <term><arg>prefixes</arg></term><item>a mapping that maps namespace 
     240        that provides the appropriate interface).</dd> 
     241 
     242        <dt><arg>prefixes</arg></dt><dd>a mapping that maps namespace 
    243243        prefixes to namespace names/modules) (or lists of namespace names/modules). 
    244         This is used to preinitialize the namespace prefix mapping.</item> 
    245  
    246         <term><arg>tidy</arg></term><item>If <arg>tidy</arg> is true, 
     244        This is used to preinitialize the namespace prefix mapping.</dd> 
     245 
     246        <dt><arg>tidy</arg></dt><dd>If <arg>tidy</arg> is true, 
    247247        <a href="http://xmlsoft.org/">libxml2</a>'s &html; parser will be 
    248         used for parsing broken &html;.</item> 
    249  
    250         <term><arg>loc</arg></term><item>Should location information be attached 
    251         to the generated nodes?</item> 
    252  
    253         <term><arg>validate</arg></term><item>Should the parsed &xml; nodes be 
    254         validated after parsing?</item> 
    255  
    256         <term><arg>encoding</arg></term><item>The default encoding to use, when the 
     248        used for parsing broken &html;.</dd> 
     249 
     250        <dt><arg>loc</arg></dt><dd>Should location information be attached 
     251        to the generated nodes?</dd> 
     252 
     253        <dt><arg>validate</arg></dt><dd>Should the parsed &xml; nodes be 
     254        validated after parsing?</dd> 
     255 
     256        <dt><arg>encoding</arg></dt><dd>The default encoding to use, when the 
    257257        source doesn't provide an encoding. The default <lit>None</lit> results in 
    258         the encoding being detected from the &xml; itself.</item> 
    259  
    260         <term><arg>pool</arg></term><item>A <pyref module="ll.xist.xsc" class="Pool"><class>ll.xist.xsc.Pool</class></pyref> 
    261         object which will be used for instantiating all nodes during parsing.</item> 
     258        the encoding being detected from the &xml; itself.</dd> 
     259 
     260        <dt><arg>pool</arg></dt><dd>A <pyref module="ll.xist.xsc" class="Pool"><class>ll.xist.xsc.Pool</class></pyref> 
     261        object which will be used for instantiating all nodes during parsing.</dd> 
    262262        </dl> 
    263263        """ 
  • src/ll/xist/publishers.py

    r3128 r3131  
    5050        <p>With the parameter <arg>xhtml</arg> you can specify if you want &html; output:</p> 
    5151        <dl> 
    52         <term>&html; (<lit><arg>xhtml</arg>==0</lit>)</term> 
    53         <item>Elements with a empty content model will be published as 
    54         <markup>&lt;foo&gt;</markup>.</item> 
    55         <term>&html; browser compatible &xml; (<lit><arg>xhtml</arg>==1</lit>)</term> 
    56         <item>Elements with an empty content model will be published as <markup>&lt;foo /&gt;</markup> 
     52        <dt>&html; (<lit><arg>xhtml</arg>==0</lit>)</dt> 
     53        <dd>Elements with a empty content model will be published as 
     54        <markup>&lt;foo&gt;</markup>.</dd> 
     55        <dt>&html; browser compatible &xml; (<lit><arg>xhtml</arg>==1</lit>)</dt> 
     56        <dd>Elements with an empty content model will be published as <markup>&lt;foo /&gt;</markup> 
    5757        and others that just happen to be empty as <markup>&lt;foo&gt;&lt;/foo&gt;</markup>. This 
    58         is the default.</item> 
    59         <term>Pure &xml; (<lit><arg>xhtml</arg>==2</lit>)</term> 
    60         <item>All empty elements will be published as <markup>&lt;foo/&gt;</markup>.</item> 
     58        is the default.</dd> 
     59        <dt>Pure &xml; (<lit><arg>xhtml</arg>==2</lit>)</dt> 
     60        <dd>All empty elements will be published as <markup>&lt;foo/&gt;</markup>.</dd> 
    6161        </dl> 
    6262 
     
    7070 
    7171        <dl> 
    72         <term><lit>False</lit></term> 
    73         <item>Treat elements in this namespace as if they are not in any namespace 
     72        <dt><lit>False</lit></dt> 
     73        <dd>Treat elements in this namespace as if they are not in any namespace 
    7474        (if global attributes from this namespace are encountered, a prefix will 
    75         be used nonetheless).</item> 
    76         <term><lit>None</lit></term> 
    77         <item>Treat the namespace as the default namespaces (i.e. use unprefixed 
    78         element names). Global attributes will again result in a prefix.</item> 
    79         <term><lit>True</lit></term> 
    80         <item>The publisher uses a unique non-empty prefix for this namespace.</item> 
    81         <term>A string</term> 
    82         <item>Use this prefix for the namespace.</item> 
     75        be used nonetheless).</dd> 
     76        <dt><lit>None</lit></dt> 
     77        <dd>Treat the namespace as the default namespaces (i.e. use unprefixed 
     78        element names). Global attributes will again result in a prefix.</dd> 
     79        <dt><lit>True</lit></dt> 
     80        <dd>The publisher uses a unique non-empty prefix for this namespace.</dd> 
     81        <dt>A string</dt> 
     82        <dd>Use this prefix for the namespace.</dd> 
     83        </dl> 
    8384 
    8485        <p>If an element or attribute is encountered whose namespace is not in 
  • src/ll/xist/xsc.py

    r3128 r3131  
    10131013 
    10141014        <dl> 
    1015         <term><lit>True</lit></term><item>This tells <meth>walk</meth> to 
    1016         yield this node from the iterator.</item> 
    1017         <term><lit>False</lit></term><item>Don't yield this node from the iterator.</item> 
    1018         <term><lit>enterattrs</lit></term><item>This is a global constant in 
     1015        <dt><lit>True</lit></dt><dd>This tells <meth>walk</meth> to 
     1016        yield this node from the iterator.</dd> 
     1017        <dt><lit>False</lit></dt><dd>Don't yield this node from the iterator.</dd> 
     1018        <dt><lit>enterattrs</lit></dt><dd>This is a global constant in 
    10191019        <mod>ll.xist.xsc</mod> and tells <meth>walk</meth> to traverse 
    10201020        the attributes of this node (if it's an 
    10211021        <pyref class="Element"><class>Element</class></pyref>, otherwise this 
    1022         option will be ignored).</item> 
    1023         <term><lit>entercontent</lit></term><item>This is a global constant in 
     1022        option will be ignored).</dd> 
     1023        <dt><lit>entercontent</lit></dt><dd>This is a global constant in 
    10241024        <mod>ll.xist.xsc</mod> and tells <meth>walk</meth> to traverse 
    10251025        the child nodes of this node (if it's an 
    10261026        <pyref class="Element"><class>Element</class></pyref>, otherwise this 
    1027         option will be ignored).</item> 
     1027        option will be ignored).</dd> 
    10281028        </dl> 
    10291029 
     
    28162816    <p>Elements support the following class variables:</p> 
    28172817    <dl> 
    2818     <term><lit>model</lit></term><item>This is an object that is used for 
     2818    <dt><lit>model</lit></dt><dd>This is an object that is used for 
    28192819    validating the content of the element. See the module 
    28202820    <pyref module="ll.xist.sims"><mod>ll.xist.sims</mod></pyref> 
    28212821    for more info. If <lit>model</lit> is <lit>None</lit> validation will 
    2822     be skipped, otherwise it will be performed when parsing or publishing.</item> 
    2823  
    2824     <term><lit>Attrs</lit></term><item>This is a class derived from 
     2822    be skipped, otherwise it will be performed when parsing or publishing.</dd> 
     2823 
     2824    <dt><lit>Attrs</lit></dt><dd>This is a class derived from 
    28252825    <pyref class="Element.Attrs"><class>Element.Attrs</class></pyref> 
    28262826    and should define all attributes as classes nested inside this 
    2827     <class>Attrs</class> class.</item> 
    2828  
    2829     <term><lit>xmlns</lit></term><item>This is the name of the namespace this 
    2830     element belong to.</item> 
    2831  
    2832     <term><lit>register</lit></term><item>If <lit>register</lit> is false the 
    2833     element won't be registered with the parser.</item> 
    2834  
    2835     <term><lit>xmlname</lit></term><item>If the class name has to be different 
     2827    <class>Attrs</class> class.</dd> 
     2828 
     2829    <dt><lit>xmlns</lit></dt><dd>This is the name of the namespace this 
     2830    element belong to.</dd> 
     2831 
     2832    <dt><lit>register</lit></dt><dd>If <lit>register</lit> is false the 
     2833    element won't be registered with the parser.</dd> 
     2834 
     2835    <dt><lit>xmlname</lit></dt><dd>If the class name has to be different 
    28362836    from the &xml; name (e.g. because the &xml; name is not a valid Python identifier) 
    2837     <lit>xmlname</lit> can be used to specify the real &xml; name.</item> 
     2837    <lit>xmlname</lit> can be used to specify the real &xml; name.</dd> 
    28382838    </dl> 
    28392839    """ 
     
    34223422        <p>Register <arg>object</arg> in the pool. <arg>object</arg> can be:</p> 
    34233423        <ul> 
    3424         <item>A <pyref class="Element"><class>Element</class></pyref>, 
     3424        <li>A <pyref class="Element"><class>Element</class></pyref>, 
    34253425        <pyref class="ProcInst"><class>ProcInst</class></pyref>, 
    34263426        <pyref class="Entity"><class>Entity</class></pyref>, 
    3427         <pyref class="CharRef"><class>CharRef</class></pyref> class;</item> 
    3428         <item>An <pyref class="Attr"><class>Attr</class></pyref> class 
    3429         for a global attribute;</item> 
    3430         <item>An <pyref class="Attrs"><class>Attrs</class></pyref> class 
    3431         containing global attributes;</item> 
    3432         <item>A <class>dict</class> (all <class>Node</class> classes in the 
     3427        <pyref class="CharRef"><class>CharRef</class></pyref> class;</li> 
     3428        <li>An <pyref class="Attr"><class>Attr</class></pyref> class 
     3429        for a global attribute;</li> 
     3430        <li>An <pyref class="Attrs"><class>Attrs</class></pyref> class 
     3431        containing global attributes;</li> 
     3432        <li>A <class>dict</class> (all <class>Node</class> classes in the 
    34333433        values will be registered, this makes it possible to e.g. register all 
    3434         local variables by passing <lit>vars()</lit>);</item> 
    3435         <item>A module (all <class>Node</class> classes in the 
    3436         module will be registered);</item> 
     3434        local variables by passing <lit>vars()</lit>);</li> 
     3435        <li>A module (all <class>Node</class> classes in the 
     3436        module will be registered);</li> 
    34373437        </ul> 
    34383438        """