Imported Upstream version 2.3.5
[platform/upstream/python-lxml.git] / doc / html / api / lxml.etree.Schematron-class.html
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">
5 <head>
6   <title>lxml.etree.Schematron</title>
7   <link rel="stylesheet" href="epydoc.css" type="text/css" />
8   <script type="text/javascript" src="epydoc.js"></script>
9 </head>
10
11 <body bgcolor="white" text="black" link="blue" vlink="#204080"
12       alink="#204080">
13 <!-- ==================== NAVIGATION BAR ==================== -->
14 <table class="navbar" border="0" width="100%" cellpadding="0"
15        bgcolor="#a0c0ff" cellspacing="0">
16   <tr valign="middle">
17   <!-- Home link -->
18       <th>&nbsp;&nbsp;&nbsp;<a
19         href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
20
21   <!-- Tree link -->
22       <th>&nbsp;&nbsp;&nbsp;<a
23         href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
24
25   <!-- Index link -->
26       <th>&nbsp;&nbsp;&nbsp;<a
27         href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
28
29   <!-- Help link -->
30       <th>&nbsp;&nbsp;&nbsp;<a
31         href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
32
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>
38           </tr></table></th>
39   </tr>
40 </table>
41 <table width="100%" cellpadding="0" cellspacing="0">
42   <tr valign="top">
43     <td width="100%">
44       <span class="breadcrumbs">
45         <a href="lxml-module.html">Package&nbsp;lxml</a> ::
46         <a href="lxml.etree-module.html">Module&nbsp;etree</a> ::
47         Class&nbsp;Schematron
48       </span>
49     </td>
50     <td>
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&nbsp;private</a>]</span></td></tr>
55         <tr><td align="right"><span class="options"
56             >[<a href="frames.html" target="_top">frames</a
57             >]&nbsp;|&nbsp;<a href="lxml.etree.Schematron-class.html"
58             target="_top">no&nbsp;frames</a>]</span></td></tr>
59       </table>
60     </td>
61   </tr>
62 </table>
63 <!-- ==================== CLASS DESCRIPTION ==================== -->
64 <h1 class="epydoc">Class Schematron</h1><p class="nomargin-top"></p>
65 <pre class="base-tree">
66 object --+    
67          |    
68 <a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a> --+
69              |
70             <strong class="uidshort">Schematron</strong>
71 </pre>
72
73 <hr />
74 <p>Schematron(self, etree=None, file=None)
75 A Schematron validator.</p>
76 <p>Pass a root Element or an ElementTree to turn it into a validator.
77 Alternatively, pass a filename as keyword argument 'file' to parse from
78 the file system.</p>
79 <p>Schematron is a less well known, but very powerful schema language.  The main
80 idea is to use the capabilities of XPath to put restrictions on the structure
81 and the content of XML documents.  Here is a simple example:</p>
82 <pre class="rst-literal-block">
83 &gt;&gt;&gt; schematron = etree.Schematron(etree.XML('''
84 ... &lt;schema xmlns=&quot;http://www.ascc.net/xml/schematron&quot; &gt;
85 ...   &lt;pattern name=&quot;id is the only permited attribute name&quot;&gt;
86 ...     &lt;rule context=&quot;*&quot;&gt;
87 ...       &lt;report test=&quot;&#64;*[not(name()='id')]&quot;&gt;Attribute
88 ...         &lt;name path=&quot;&#64;*[not(name()='id')]&quot;/&gt; is forbidden&lt;name/&gt;
89 ...       &lt;/report&gt;
90 ...     &lt;/rule&gt;
91 ...   &lt;/pattern&gt;
92 ... &lt;/schema&gt;
93 ... '''))
94
95 &gt;&gt;&gt; xml = etree.XML('''
96 ... &lt;AAA name=&quot;aaa&quot;&gt;
97 ...   &lt;BBB id=&quot;bbb&quot;/&gt;
98 ...   &lt;CCC color=&quot;ccc&quot;/&gt;
99 ... &lt;/AAA&gt;
100 ... ''')
101
102 &gt;&gt;&gt; schematron.validate(xml)
103 0
104
105 &gt;&gt;&gt; xml = etree.XML('''
106 ... &lt;AAA id=&quot;aaa&quot;&gt;
107 ...   &lt;BBB id=&quot;bbb&quot;/&gt;
108 ...   &lt;CCC/&gt;
109 ... &lt;/AAA&gt;
110 ... ''')
111
112 &gt;&gt;&gt; schematron.validate(xml)
113 1
114 </pre>
115 <p>Schematron was added to libxml2 in version 2.6.21.  Before version 2.6.32,
116 however, Schematron lacked support for error reporting other than to stderr.
117 This version is therefore required to retrieve validation warnings and
118 errors in lxml.</p>
119
120 <!-- ==================== INSTANCE METHODS ==================== -->
121 <a name="section-InstanceMethods"></a>
122 <table class="summary" border="1" cellpadding="3"
123        cellspacing="0" width="100%" bgcolor="white">
124 <tr bgcolor="#70b0f0" class="table-header">
125   <td colspan="2" class="table-header">
126     <table border="0" cellpadding="0" cellspacing="0" width="100%">
127       <tr valign="top">
128         <td align="left"><span class="table-header">Instance Methods</span></td>
129         <td align="right" valign="top"
130          ><span class="options">[<a href="#section-InstanceMethods"
131          class="privatelink" onclick="toggle_private();"
132          >hide private</a>]</span></td>
133       </tr>
134     </table>
135   </td>
136 </tr>
137 <tr>
138     <td width="15%" align="right" valign="top" class="summary">
139       <span class="summary-type">&nbsp;</span>
140     </td><td class="summary">
141       <table width="100%" cellpadding="0" cellspacing="0" border="0">
142         <tr>
143           <td><span class="summary-sig"><a href="lxml.etree.Schematron-class.html#__call__" class="summary-sig-name">__call__</a>(<span class="summary-sig-arg">self</span>,
144         <span class="summary-sig-arg">etree</span>)</span><br />
145       Validate doc using Schematron.</td>
146           <td align="right" valign="top">
147             
148             
149           </td>
150         </tr>
151       </table>
152       
153     </td>
154   </tr>
155 <tr>
156     <td width="15%" align="right" valign="top" class="summary">
157       <span class="summary-type">&nbsp;</span>
158     </td><td class="summary">
159       <table width="100%" cellpadding="0" cellspacing="0" border="0">
160         <tr>
161           <td><span class="summary-sig"><a href="lxml.etree.Schematron-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
162         <span class="summary-sig-arg">etree</span>=<span class="summary-sig-default">None</span>,
163         <span class="summary-sig-arg">file</span>=<span class="summary-sig-default">None</span>)</span><br />
164       x.__init__(...) initializes x; see help(type(x)) for signature</td>
165           <td align="right" valign="top">
166             
167             
168           </td>
169         </tr>
170       </table>
171       
172     </td>
173   </tr>
174 <tr>
175     <td width="15%" align="right" valign="top" class="summary">
176       <span class="summary-type">a new object with type S, a subtype of T</span>
177     </td><td class="summary">
178       <table width="100%" cellpadding="0" cellspacing="0" border="0">
179         <tr>
180           <td><span class="summary-sig"><a href="lxml.etree.Schematron-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">T</span>,
181         <span class="summary-sig-arg">S</span>,
182         <span class="summary-sig-arg">...</span>)</span></td>
183           <td align="right" valign="top">
184             
185             
186           </td>
187         </tr>
188       </table>
189       
190     </td>
191   </tr>
192   <tr>
193     <td colspan="2" class="summary">
194     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a></code></b>:
195       <code><a href="lxml.etree._Validator-class.html#assertValid">assertValid</a></code>,
196       <code><a href="lxml.etree._Validator-class.html#assert_">assert_</a></code>,
197       <code><a href="lxml.etree._Validator-class.html#validate">validate</a></code>
198       </p>
199     <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a></code></b> (private):
200       <code><a href="lxml.etree._Validator-class.html#_append_log_message" onclick="show_private();">_append_log_message</a></code>,
201       <code><a href="lxml.etree._Validator-class.html#_clear_error_log" onclick="show_private();">_clear_error_log</a></code>
202       </p></div>
203     <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
204       <code>__delattr__</code>,
205       <code>__format__</code>,
206       <code>__getattribute__</code>,
207       <code>__hash__</code>,
208       <code>__reduce__</code>,
209       <code>__reduce_ex__</code>,
210       <code>__repr__</code>,
211       <code>__setattr__</code>,
212       <code>__sizeof__</code>,
213       <code>__str__</code>,
214       <code>__subclasshook__</code>
215       </p>
216     </td>
217   </tr>
218 </table>
219 <!-- ==================== PROPERTIES ==================== -->
220 <a name="section-Properties"></a>
221 <table class="summary" border="1" cellpadding="3"
222        cellspacing="0" width="100%" bgcolor="white">
223 <tr bgcolor="#70b0f0" class="table-header">
224   <td colspan="2" class="table-header">
225     <table border="0" cellpadding="0" cellspacing="0" width="100%">
226       <tr valign="top">
227         <td align="left"><span class="table-header">Properties</span></td>
228         <td align="right" valign="top"
229          ><span class="options">[<a href="#section-Properties"
230          class="privatelink" onclick="toggle_private();"
231          >hide private</a>]</span></td>
232       </tr>
233     </table>
234   </td>
235 </tr>
236   <tr>
237     <td colspan="2" class="summary">
238     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a></code></b>:
239       <code><a href="lxml.etree._Validator-class.html#error_log">error_log</a></code>
240       </p>
241     <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
242       <code>__class__</code>
243       </p>
244     </td>
245   </tr>
246 </table>
247 <!-- ==================== METHOD DETAILS ==================== -->
248 <a name="section-MethodDetails"></a>
249 <table class="details" border="1" cellpadding="3"
250        cellspacing="0" width="100%" bgcolor="white">
251 <tr bgcolor="#70b0f0" class="table-header">
252   <td colspan="2" class="table-header">
253     <table border="0" cellpadding="0" cellspacing="0" width="100%">
254       <tr valign="top">
255         <td align="left"><span class="table-header">Method Details</span></td>
256         <td align="right" valign="top"
257          ><span class="options">[<a href="#section-MethodDetails"
258          class="privatelink" onclick="toggle_private();"
259          >hide private</a>]</span></td>
260       </tr>
261     </table>
262   </td>
263 </tr>
264 </table>
265 <a name="__call__"></a>
266 <div>
267 <table class="details" border="1" cellpadding="3"
268        cellspacing="0" width="100%" bgcolor="white">
269 <tr><td>
270   <table width="100%" cellpadding="0" cellspacing="0" border="0">
271   <tr valign="top"><td>
272   <h3 class="epydoc"><span class="sig"><span class="sig-name">__call__</span>(<span class="sig-arg">self</span>,
273         <span class="sig-arg">etree</span>)</span>
274     <br /><em class="fname">(Call operator)</em>
275   </h3>
276   </td><td align="right" valign="top"
277     >&nbsp;
278     </td>
279   </tr></table>
280   
281   <p>Validate doc using Schematron.</p>
282 <p>Returns true if document is valid, false if not.</p>
283   <dl class="fields">
284   </dl>
285 </td></tr></table>
286 </div>
287 <a name="__init__"></a>
288 <div>
289 <table class="details" border="1" cellpadding="3"
290        cellspacing="0" width="100%" bgcolor="white">
291 <tr><td>
292   <table width="100%" cellpadding="0" cellspacing="0" border="0">
293   <tr valign="top"><td>
294   <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
295         <span class="sig-arg">etree</span>=<span class="sig-default">None</span>,
296         <span class="sig-arg">file</span>=<span class="sig-default">None</span>)</span>
297     <br /><em class="fname">(Constructor)</em>
298   </h3>
299   </td><td align="right" valign="top"
300     >&nbsp;
301     </td>
302   </tr></table>
303   
304   x.__init__(...) initializes x; see help(type(x)) for signature
305   <dl class="fields">
306     <dt>Overrides:
307         object.__init__
308     </dt>
309   </dl>
310 </td></tr></table>
311 </div>
312 <a name="__new__"></a>
313 <div>
314 <table class="details" border="1" cellpadding="3"
315        cellspacing="0" width="100%" bgcolor="white">
316 <tr><td>
317   <table width="100%" cellpadding="0" cellspacing="0" border="0">
318   <tr valign="top"><td>
319   <h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,
320         <span class="sig-arg">S</span>,
321         <span class="sig-arg">...</span>)</span>
322   </h3>
323   </td><td align="right" valign="top"
324     >&nbsp;
325     </td>
326   </tr></table>
327   
328   
329   <dl class="fields">
330     <dt>Returns: a new object with type S, a subtype of T</dt>
331     <dt>Overrides:
332         object.__new__
333     </dt>
334   </dl>
335 </td></tr></table>
336 </div>
337 <br />
338 <!-- ==================== NAVIGATION BAR ==================== -->
339 <table class="navbar" border="0" width="100%" cellpadding="0"
340        bgcolor="#a0c0ff" cellspacing="0">
341   <tr valign="middle">
342   <!-- Home link -->
343       <th>&nbsp;&nbsp;&nbsp;<a
344         href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
345
346   <!-- Tree link -->
347       <th>&nbsp;&nbsp;&nbsp;<a
348         href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
349
350   <!-- Index link -->
351       <th>&nbsp;&nbsp;&nbsp;<a
352         href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
353
354   <!-- Help link -->
355       <th>&nbsp;&nbsp;&nbsp;<a
356         href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
357
358   <!-- Project homepage -->
359       <th class="navbar" align="right" width="100%">
360         <table border="0" cellpadding="0" cellspacing="0">
361           <tr><th class="navbar" align="center"
362             ><a class="navbar" target="_top" href="/">lxml API</a></th>
363           </tr></table></th>
364   </tr>
365 </table>
366 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
367   <tr>
368     <td align="left" class="footer">
369     Generated by Epydoc 3.0.1 on Tue Jul 31 10:14:18 2012
370     </td>
371     <td align="right" class="footer">
372       <a target="mainFrame" href="http://epydoc.sourceforge.net"
373         >http://epydoc.sourceforge.net</a>
374     </td>
375   </tr>
376 </table>
377
378 <script type="text/javascript">
379   <!--
380   // Private objects are initially displayed (because if
381   // javascript is turned off then we want them to be
382   // visible); but by default, we want to hide them.  So hide
383   // them unless we have a cookie that says to show them.
384   checkCookie();
385   // -->
386 </script>
387 </body>
388 </html>