1 <?xml version="1.0" encoding="ascii"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6 <title>lxml.isoschematron.Schematron</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
11 <body bgcolor="white" text="black" link="blue" vlink="#204080"
13 <!-- ==================== NAVIGATION BAR ==================== -->
14 <table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
18 <th> <a
19 href="lxml-module.html">Home</a> </th>
22 <th> <a
23 href="module-tree.html">Trees</a> </th>
26 <th> <a
27 href="identifier-index.html">Indices</a> </th>
30 <th> <a
31 href="help.html">Help</a> </th>
33 <!-- Project homepage -->
34 <th class="navbar" align="right" width="100%">
35 <table border="0" cellpadding="0" cellspacing="0">
36 <tr><th class="navbar" align="center"
37 ><a class="navbar" target="_top" href="/">lxml API</a></th>
41 <table width="100%" cellpadding="0" cellspacing="0">
44 <span class="breadcrumbs">
45 <a href="lxml-module.html">Package lxml</a> ::
46 <a href="lxml.isoschematron-module.html">Package isoschematron</a> ::
51 <table cellpadding="0" cellspacing="0">
52 <!-- hide/show private -->
53 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
54 onclick="toggle_private();">hide private</a>]</span></td></tr>
55 <tr><td align="right"><span class="options"
56 >[<a href="frames.html" target="_top">frames</a
57 >] | <a href="lxml.isoschematron.Schematron-class.html"
58 target="_top">no frames</a>]</span></td></tr>
63 <!-- ==================== CLASS DESCRIPTION ==================== -->
64 <h1 class="epydoc">Class Schematron</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.isoschematron-pysrc.html#Schematron">source code</a></span></p>
65 <pre class="base-tree">
68 <a href="lxml.etree._Validator-class.html" onclick="show_private();">etree._Validator</a> --+
70 <strong class="uidshort">Schematron</strong>
74 <p>An ISO Schematron validator.</p>
75 <p>Pass a root Element or an ElementTree to turn it into a validator.
76 Alternatively, pass a filename as keyword argument 'file' to parse from
78 <p>Schematron is a less well known, but very powerful schema language.
79 The main idea is to use the capabilities of XPath to put restrictions on
80 the structure and the content of XML documents.</p>
81 <p>The standard behaviour is to fail on <tt class="rst-docutils literal"><span class="pre">failed-assert</span></tt> findings only
82 (<tt class="rst-docutils literal">ASSERTS_ONLY</tt>). To change this, you can either pass a report filter
83 function to the <tt class="rst-docutils literal">error_finder</tt> parameter (e.g. <tt class="rst-docutils literal">ASSERTS_AND_REPORTS</tt>
84 or a custom <tt class="rst-docutils literal">XPath</tt> object), or subclass isoschematron.Schematron for
85 complete control of the validation process.</p>
86 <p>Built on the Schematron language 'reference' skeleton pure-xslt
87 implementation, the validator is created as an XSLT 1.0 stylesheet using
90 <ol class="rst-arabic simple" start="0">
91 <li>(Extract from XML Schema or RelaxNG schema)</li>
92 <li>Process inclusions</li>
93 <li>Process abstract patterns</li>
94 <li>Compile the schematron schema to XSLT</li>
97 <p>The <tt class="rst-docutils literal">include</tt> and <tt class="rst-docutils literal">expand</tt> keyword arguments can be used to switch off
99 To set parameters for steps 1), 2) and 3) hand parameter dictionaries to the
100 keyword arguments <tt class="rst-docutils literal">include_params</tt>, <tt class="rst-docutils literal">expand_params</tt> or
101 <tt class="rst-docutils literal">compile_params</tt>.
102 For convenience, the compile-step parameter <tt class="rst-docutils literal">phase</tt> is also exposed as a
103 keyword argument <tt class="rst-docutils literal">phase</tt>. This takes precedence if the parameter is also
104 given in the parameter dictionary.</p>
105 <p>If <tt class="rst-docutils literal">store_schematron</tt> is set to True, the (included-and-expanded)
106 schematron document tree is stored and available through the <tt class="rst-docutils literal">schematron</tt>
108 If <tt class="rst-docutils literal">store_xslt</tt> is set to True, the validation XSLT document tree will be
109 stored and can be retrieved through the <tt class="rst-docutils literal">validator_xslt</tt> property.
110 With <tt class="rst-docutils literal">store_report</tt> set to True (default: False), the resulting validation
111 report document gets stored and can be accessed as the <tt class="rst-docutils literal">validation_report</tt>
113 <p>Here is a usage example:</p>
114 <pre class="rst-literal-block">
115 >>> from lxml import etree
116 >>> from lxml.isoschematron import Schematron
118 >>> schematron = Schematron(etree.XML('''
119 ... <schema xmlns="http://purl.oclc.org/dsdl/schematron" >
120 ... <pattern id="id_only_attribute">
121 ... <title>id is the only permitted attribute name</title>
122 ... <rule context="*">
123 ... <report test="@*[not(name()='id')]">Attribute
124 ... <name path="@*[not(name()='id')]"/> is forbidden<name/>
128 ... </schema>'''),
129 ... error_finder=Schematron.ASSERTS_AND_REPORTS)
131 >>> xml = etree.XML('''
132 ... <AAA name="aaa">
133 ... <BBB id="bbb"/>
134 ... <CCC color="ccc"/>
138 >>> schematron.validate(xml)
141 >>> xml = etree.XML('''
142 ... <AAA id="aaa">
143 ... <BBB id="bbb"/>
148 >>> schematron.validate(xml)
152 <!-- ==================== INSTANCE METHODS ==================== -->
153 <a name="section-InstanceMethods"></a>
154 <table class="summary" border="1" cellpadding="3"
155 cellspacing="0" width="100%" bgcolor="white">
156 <tr bgcolor="#70b0f0" class="table-header">
157 <td colspan="2" class="table-header">
158 <table border="0" cellpadding="0" cellspacing="0" width="100%">
160 <td align="left"><span class="table-header">Instance Methods</span></td>
161 <td align="right" valign="top"
162 ><span class="options">[<a href="#section-InstanceMethods"
163 class="privatelink" onclick="toggle_private();"
164 >hide private</a>]</span></td>
170 <td width="15%" align="right" valign="top" class="summary">
171 <span class="summary-type"> </span>
172 </td><td class="summary">
173 <table width="100%" cellpadding="0" cellspacing="0" border="0">
175 <td><span class="summary-sig"><a name="_extract"></a><span class="summary-sig-name">_extract</span>(<span class="summary-sig-arg">self</span>,
176 <span class="summary-sig-arg">element</span>)</span><br />
177 Extract embedded schematron schema from non-schematron host schema.
178 This method will only be called by __init__ if the given schema document
179 is not a schematron schema by itself.
180 Must return a schematron schema document tree or None.</td>
181 <td align="right" valign="top">
182 <span class="codelink"><a href="lxml.isoschematron-pysrc.html#Schematron._extract">source code</a></span>
191 <td width="15%" align="right" valign="top" class="summary">
192 <span class="summary-type"> </span>
193 </td><td class="summary">
194 <table width="100%" cellpadding="0" cellspacing="0" border="0">
196 <td><span class="summary-sig"><a href="lxml.isoschematron.Schematron-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
197 <span class="summary-sig-arg">etree</span>=<span class="summary-sig-default">None</span>,
198 <span class="summary-sig-arg">file</span>=<span class="summary-sig-default">None</span>,
199 <span class="summary-sig-arg">include</span>=<span class="summary-sig-default">True</span>,
200 <span class="summary-sig-arg">expand</span>=<span class="summary-sig-default">True</span>,
201 <span class="summary-sig-arg">include_params</span>=<span class="summary-sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
202 <span class="summary-sig-arg">expand_params</span>=<span class="summary-sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
203 <span class="summary-sig-arg">compile_params</span>=<span class="summary-sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
204 <span class="summary-sig-arg">store_schematron</span>=<span class="summary-sig-default">False</span>,
205 <span class="summary-sig-arg">store_xslt</span>=<span class="summary-sig-default">False</span>,
206 <span class="summary-sig-arg">store_report</span>=<span class="summary-sig-default">False</span>,
207 <span class="summary-sig-arg">phase</span>=<span class="summary-sig-default">None</span>,
208 <span class="summary-sig-arg">error_finder</span>=<span class="summary-sig-default">//svrl:failed-assert</span>)</span><br />
209 x.__init__(...) initializes x; see help(type(x)) for signature</td>
210 <td align="right" valign="top">
211 <span class="codelink"><a href="lxml.isoschematron-pysrc.html#Schematron.__init__">source code</a></span>
220 <td width="15%" align="right" valign="top" class="summary">
221 <span class="summary-type"> </span>
222 </td><td class="summary">
223 <table width="100%" cellpadding="0" cellspacing="0" border="0">
225 <td><span class="summary-sig"><a href="lxml.isoschematron.Schematron-class.html#__call__" class="summary-sig-name">__call__</a>(<span class="summary-sig-arg">self</span>,
226 <span class="summary-sig-arg">etree</span>)</span><br />
227 Validate doc using Schematron.</td>
228 <td align="right" valign="top">
229 <span class="codelink"><a href="lxml.isoschematron-pysrc.html#Schematron.__call__">source code</a></span>
238 <td colspan="2" class="summary">
239 <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.etree._Validator-class.html" onclick="show_private();">etree._Validator</a></code></b>:
240 <code><a href="lxml.etree._Validator-class.html#__new__">__new__</a></code>,
241 <code><a href="lxml.etree._Validator-class.html#assertValid">assertValid</a></code>,
242 <code><a href="lxml.etree._Validator-class.html#assert_">assert_</a></code>,
243 <code><a href="lxml.etree._Validator-class.html#validate">validate</a></code>
245 <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.etree._Validator-class.html" onclick="show_private();">etree._Validator</a></code></b> (private):
246 <code><a href="lxml.etree._Validator-class.html#_append_log_message" onclick="show_private();">_append_log_message</a></code>,
247 <code><a href="lxml.etree._Validator-class.html#_clear_error_log" onclick="show_private();">_clear_error_log</a></code>
249 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
250 <code>__delattr__</code>,
251 <code>__format__</code>,
252 <code>__getattribute__</code>,
253 <code>__hash__</code>,
254 <code>__reduce__</code>,
255 <code>__reduce_ex__</code>,
256 <code>__repr__</code>,
257 <code>__setattr__</code>,
258 <code>__sizeof__</code>,
259 <code>__str__</code>,
260 <code>__subclasshook__</code>
265 <!-- ==================== CLASS VARIABLES ==================== -->
266 <a name="section-ClassVariables"></a>
267 <table class="summary" border="1" cellpadding="3"
268 cellspacing="0" width="100%" bgcolor="white">
269 <tr bgcolor="#70b0f0" class="table-header">
270 <td colspan="2" class="table-header">
271 <table border="0" cellpadding="0" cellspacing="0" width="100%">
273 <td align="left"><span class="table-header">Class Variables</span></td>
274 <td align="right" valign="top"
275 ><span class="options">[<a href="#section-ClassVariables"
276 class="privatelink" onclick="toggle_private();"
277 >hide private</a>]</span></td>
283 <td width="15%" align="right" valign="top" class="summary">
284 <span class="summary-type"> </span>
285 </td><td class="summary">
286 <a name="_domain"></a><span class="summary-name">_domain</span> = <code title="28">28</code>
290 <td width="15%" align="right" valign="top" class="summary">
291 <span class="summary-type"> </span>
292 </td><td class="summary">
293 <a name="_level"></a><span class="summary-name">_level</span> = <code title="2">2</code>
297 <td width="15%" align="right" valign="top" class="summary">
298 <span class="summary-type"> </span>
299 </td><td class="summary">
300 <a name="_error_type"></a><span class="summary-name">_error_type</span> = <code title="4000">4000</code>
304 <td width="15%" align="right" valign="top" class="summary">
305 <span class="summary-type"> </span>
306 </td><td class="summary">
307 <a name="ASSERTS_ONLY"></a><span class="summary-name">ASSERTS_ONLY</span> = <code title="//svrl:failed-assert">//svrl:failed-assert</code>
311 <td width="15%" align="right" valign="top" class="summary">
312 <span class="summary-type"> </span>
313 </td><td class="summary">
314 <a href="lxml.isoschematron.Schematron-class.html#ASSERTS_AND_REPORTS" class="summary-name">ASSERTS_AND_REPORTS</a> = <code title="//svrl:failed-assert | //svrl:successful-report">//svrl:failed-assert | //svrl:successful<code class="variable-ellipsis">...</code></code>
318 <td width="15%" align="right" valign="top" class="summary">
319 <span class="summary-type"> </span>
320 </td><td class="summary">
321 <a name="_extract_xsd"></a><span class="summary-name">_extract_xsd</span> = <code title="<lxml.etree.XSLT object>"><lxml.etree.XSLT object></code>
325 <td width="15%" align="right" valign="top" class="summary">
326 <span class="summary-type"> </span>
327 </td><td class="summary">
328 <a name="_extract_rng"></a><span class="summary-name">_extract_rng</span> = <code title="<lxml.etree.XSLT object>"><lxml.etree.XSLT object></code>
332 <td width="15%" align="right" valign="top" class="summary">
333 <span class="summary-type"> </span>
334 </td><td class="summary">
335 <a name="_include"></a><span class="summary-name">_include</span> = <code title="<lxml.etree.XSLT object>"><lxml.etree.XSLT object></code>
339 <td width="15%" align="right" valign="top" class="summary">
340 <span class="summary-type"> </span>
341 </td><td class="summary">
342 <a name="_expand"></a><span class="summary-name">_expand</span> = <code title="<lxml.etree.XSLT object>"><lxml.etree.XSLT object></code>
346 <td width="15%" align="right" valign="top" class="summary">
347 <span class="summary-type"> </span>
348 </td><td class="summary">
349 <a name="_compile"></a><span class="summary-name">_compile</span> = <code title="<lxml.etree.XSLT object>"><lxml.etree.XSLT object></code>
353 <td width="15%" align="right" valign="top" class="summary">
354 <span class="summary-type"> </span>
355 </td><td class="summary">
356 <a name="_validation_errors"></a><span class="summary-name">_validation_errors</span> = <code title="//svrl:failed-assert">//svrl:failed-assert</code>
360 <!-- ==================== PROPERTIES ==================== -->
361 <a name="section-Properties"></a>
362 <table class="summary" border="1" cellpadding="3"
363 cellspacing="0" width="100%" bgcolor="white">
364 <tr bgcolor="#70b0f0" class="table-header">
365 <td colspan="2" class="table-header">
366 <table border="0" cellpadding="0" cellspacing="0" width="100%">
368 <td align="left"><span class="table-header">Properties</span></td>
369 <td align="right" valign="top"
370 ><span class="options">[<a href="#section-Properties"
371 class="privatelink" onclick="toggle_private();"
372 >hide private</a>]</span></td>
378 <td width="15%" align="right" valign="top" class="summary">
379 <span class="summary-type"> </span>
380 </td><td class="summary">
381 <a href="lxml.isoschematron.Schematron-class.html#schematron" class="summary-name">schematron</a><br />
382 ISO-schematron schema document (None if object has been initialized
383 with store_schematron=False).
387 <td width="15%" align="right" valign="top" class="summary">
388 <span class="summary-type"> </span>
389 </td><td class="summary">
390 <a href="lxml.isoschematron.Schematron-class.html#validator_xslt" class="summary-name">validator_xslt</a><br />
391 ISO-schematron skeleton implementation XSLT validator document (None
392 if object has been initialized with store_xslt=False).
396 <td width="15%" align="right" valign="top" class="summary">
397 <span class="summary-type"> </span>
398 </td><td class="summary">
399 <a href="lxml.isoschematron.Schematron-class.html#validation_report" class="summary-name">validation_report</a><br />
400 ISO-schematron validation result report (None if result-storing has
405 <td colspan="2" class="summary">
406 <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.etree._Validator-class.html" onclick="show_private();">etree._Validator</a></code></b>:
407 <code><a href="lxml.etree._Validator-class.html#error_log">error_log</a></code>
409 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
410 <code>__class__</code>
415 <!-- ==================== METHOD DETAILS ==================== -->
416 <a name="section-MethodDetails"></a>
417 <table class="details" border="1" cellpadding="3"
418 cellspacing="0" width="100%" bgcolor="white">
419 <tr bgcolor="#70b0f0" class="table-header">
420 <td colspan="2" class="table-header">
421 <table border="0" cellpadding="0" cellspacing="0" width="100%">
423 <td align="left"><span class="table-header">Method Details</span></td>
424 <td align="right" valign="top"
425 ><span class="options">[<a href="#section-MethodDetails"
426 class="privatelink" onclick="toggle_private();"
427 >hide private</a>]</span></td>
433 <a name="__init__"></a>
435 <table class="details" border="1" cellpadding="3"
436 cellspacing="0" width="100%" bgcolor="white">
438 <table width="100%" cellpadding="0" cellspacing="0" border="0">
439 <tr valign="top"><td>
440 <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
441 <span class="sig-arg">etree</span>=<span class="sig-default">None</span>,
442 <span class="sig-arg">file</span>=<span class="sig-default">None</span>,
443 <span class="sig-arg">include</span>=<span class="sig-default">True</span>,
444 <span class="sig-arg">expand</span>=<span class="sig-default">True</span>,
445 <span class="sig-arg">include_params</span>=<span class="sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
446 <span class="sig-arg">expand_params</span>=<span class="sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
447 <span class="sig-arg">compile_params</span>=<span class="sig-default"><code class="variable-group">{</code><code class="variable-group">}</code></span>,
448 <span class="sig-arg">store_schematron</span>=<span class="sig-default">False</span>,
449 <span class="sig-arg">store_xslt</span>=<span class="sig-default">False</span>,
450 <span class="sig-arg">store_report</span>=<span class="sig-default">False</span>,
451 <span class="sig-arg">phase</span>=<span class="sig-default">None</span>,
452 <span class="sig-arg">error_finder</span>=<span class="sig-default">//svrl:failed-assert</span>)</span>
453 <br /><em class="fname">(Constructor)</em>
455 </td><td align="right" valign="top"
456 ><span class="codelink"><a href="lxml.isoschematron-pysrc.html#Schematron.__init__">source code</a></span>
460 x.__init__(...) initializes x; see help(type(x)) for signature
464 <dd><em class="note">(inherited documentation)</em></dd>
469 <a name="__call__"></a>
471 <table class="details" border="1" cellpadding="3"
472 cellspacing="0" width="100%" bgcolor="white">
474 <table width="100%" cellpadding="0" cellspacing="0" border="0">
475 <tr valign="top"><td>
476 <h3 class="epydoc"><span class="sig"><span class="sig-name">__call__</span>(<span class="sig-arg">self</span>,
477 <span class="sig-arg">etree</span>)</span>
478 <br /><em class="fname">(Call operator)</em>
480 </td><td align="right" valign="top"
481 ><span class="codelink"><a href="lxml.isoschematron-pysrc.html#Schematron.__call__">source code</a></span>
485 <p>Validate doc using Schematron.</p>
486 <p>Returns true if document is valid, false if not.</p>
492 <!-- ==================== CLASS VARIABLE DETAILS ==================== -->
493 <a name="section-ClassVariableDetails"></a>
494 <table class="details" border="1" cellpadding="3"
495 cellspacing="0" width="100%" bgcolor="white">
496 <tr bgcolor="#70b0f0" class="table-header">
497 <td colspan="2" class="table-header">
498 <table border="0" cellpadding="0" cellspacing="0" width="100%">
500 <td align="left"><span class="table-header">Class Variable Details</span></td>
501 <td align="right" valign="top"
502 ><span class="options">[<a href="#section-ClassVariableDetails"
503 class="privatelink" onclick="toggle_private();"
504 >hide private</a>]</span></td>
510 <a name="ASSERTS_AND_REPORTS"></a>
512 <table class="details" border="1" cellpadding="3"
513 cellspacing="0" width="100%" bgcolor="white">
515 <h3 class="epydoc">ASSERTS_AND_REPORTS</h3>
521 <dd><table><tr><td><pre class="variable">
522 //svrl:failed-assert | //svrl:successful-report
523 </pre></td></tr></table>
529 <!-- ==================== PROPERTY DETAILS ==================== -->
530 <a name="section-PropertyDetails"></a>
531 <table class="details" border="1" cellpadding="3"
532 cellspacing="0" width="100%" bgcolor="white">
533 <tr bgcolor="#70b0f0" class="table-header">
534 <td colspan="2" class="table-header">
535 <table border="0" cellpadding="0" cellspacing="0" width="100%">
537 <td align="left"><span class="table-header">Property Details</span></td>
538 <td align="right" valign="top"
539 ><span class="options">[<a href="#section-PropertyDetails"
540 class="privatelink" onclick="toggle_private();"
541 >hide private</a>]</span></td>
547 <a name="schematron"></a>
549 <table class="details" border="1" cellpadding="3"
550 cellspacing="0" width="100%" bgcolor="white">
552 <h3 class="epydoc">schematron</h3>
553 ISO-schematron schema document (None if object has been initialized
554 with store_schematron=False).
557 <dd class="value"><span class="summary-sig"><i>unreachable</i>.schematron(<span class="summary-sig-arg">self</span>)</span>
558 - ISO-schematron schema document (None if object has been initialized
559 with store_schematron=False).
564 <a name="validator_xslt"></a>
566 <table class="details" border="1" cellpadding="3"
567 cellspacing="0" width="100%" bgcolor="white">
569 <h3 class="epydoc">validator_xslt</h3>
570 ISO-schematron skeleton implementation XSLT validator document (None
571 if object has been initialized with store_xslt=False).
574 <dd class="value"><span class="summary-sig"><i>unreachable</i>.validator_xslt(<span class="summary-sig-arg">self</span>)</span>
575 - ISO-schematron skeleton implementation XSLT validator document (None
576 if object has been initialized with store_xslt=False).
581 <a name="validation_report"></a>
583 <table class="details" border="1" cellpadding="3"
584 cellspacing="0" width="100%" bgcolor="white">
586 <h3 class="epydoc">validation_report</h3>
587 ISO-schematron validation result report (None if result-storing has
591 <dd class="value"><span class="summary-sig"><i>unreachable</i>.validation_report(<span class="summary-sig-arg">self</span>)</span>
592 - ISO-schematron validation result report (None if result-storing has
599 <!-- ==================== NAVIGATION BAR ==================== -->
600 <table class="navbar" border="0" width="100%" cellpadding="0"
601 bgcolor="#a0c0ff" cellspacing="0">
604 <th> <a
605 href="lxml-module.html">Home</a> </th>
608 <th> <a
609 href="module-tree.html">Trees</a> </th>
612 <th> <a
613 href="identifier-index.html">Indices</a> </th>
616 <th> <a
617 href="help.html">Help</a> </th>
619 <!-- Project homepage -->
620 <th class="navbar" align="right" width="100%">
621 <table border="0" cellpadding="0" cellspacing="0">
622 <tr><th class="navbar" align="center"
623 ><a class="navbar" target="_top" href="/">lxml API</a></th>
627 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
629 <td align="left" class="footer">
630 Generated by Epydoc 3.0.1
631 on Wed Jan 29 12:26:21 2020
633 <td align="right" class="footer">
634 <a target="mainFrame" href="http://epydoc.sourceforge.net"
635 >http://epydoc.sourceforge.net</a>
640 <script type="text/javascript">
642 // Private objects are initially displayed (because if
643 // javascript is turned off then we want them to be
644 // visible); but by default, we want to hide them. So hide
645 // them unless we have a cookie that says to show them.