updated libxml2 to 2.5.10
[TestXSLT.git] / libxml2 / doc / html / libxml-valid.html
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>valid</title><meta name="generator" content="DocBook XSL Stylesheets V1.58.1"><style xmlns="http://www.w3.org/TR/xhtml1/transitional" type="text/css">
2         .synopsis, .classsynopsis {
3             background: #eeeeee;
4             border: solid 1px #aaaaaa;
5             padding: 0.5em;
6         }
7         .programlisting {
8             background: #eeeeff;
9             border: solid 1px #aaaaff;
10             padding: 0.5em;
11         }
12         .variablelist {
13             padding: 4px;
14             margin-left: 3em;
15         }
16         .navigation {
17             background: #ffeeee;
18             border: solid 1px #ffaaaa;
19             margin-top: 0.5em;
20             margin-bottom: 0.5em;
21         }
22         .navigation a {
23             color: #770000;
24         }
25         .navigation a:visited {
26             color: #550000;
27         }
28         .navigation .title {
29             font-size: 200%;
30         }
31       </style><link rel="home" href="index.html" title="Gnome XML Library Reference Manual"><link rel="up" href="libxml-lib.html" title="Libxml Library Reference"><link rel="previous" href="libxml-entities.html" title="entities"><link rel="next" href="libxml-relaxng.html" title="relaxng"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-entities.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td><td><a accesskey="u" href="libxml-lib.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td><th width="100%" align="center">Gnome XML Library Reference Manual</th><td><a accesskey="n" href="libxml-relaxng.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td></tr></table><div class="refentry" lang="en"><a name="libxml-valid"></a><div class="titlepage"></div><div class="refnamediv"><h2>valid</h2><p>valid &#8212; </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
32
33
34
35 struct      <a href="libxml-valid.html#xmlValidState">xmlValidState</a>;
36 typedef     <a href="libxml-valid.html#xmlValidStatePtr">xmlValidStatePtr</a>;
37 void        (<a href="libxml-valid.html#xmlValidityErrorFunc">*xmlValidityErrorFunc</a>)         (void *ctx,
38                                              const char *msg,
39                                              ...);
40 void        (<a href="libxml-valid.html#xmlValidityWarningFunc">*xmlValidityWarningFunc</a>)       (void *ctx,
41                                              const char *msg,
42                                              ...);
43 struct      <a href="libxml-valid.html#xmlValidCtxt">xmlValidCtxt</a>;
44 typedef     <a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a>;
45 typedef     <a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a>;
46 typedef     <a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a>;
47 typedef     <a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a>;
48 typedef     <a href="libxml-valid.html#xmlIDTablePtr">xmlIDTablePtr</a>;
49 typedef     <a href="libxml-valid.html#xmlRefTablePtr">xmlRefTablePtr</a>;
50 <a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> <a href="libxml-valid.html#xmlNewValidCtxt">xmlNewValidCtxt</a>             (void);
51 void        <a href="libxml-valid.html#xmlFreeValidCtxt">xmlFreeValidCtxt</a>                (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a>);
52 <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> <a href="libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a>           (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
53                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
54                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
55                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *PublicID,
56                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);
57 <a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> <a href="libxml-valid.html#xmlCopyNotationTable">xmlCopyNotationTable</a>    (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);
58 void        <a href="libxml-valid.html#xmlFreeNotationTable">xmlFreeNotationTable</a>            (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);
59 void        <a href="libxml-valid.html#xmlDumpNotationDecl">xmlDumpNotationDecl</a>             (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
60                                              <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota);
61 void        <a href="libxml-valid.html#xmlDumpNotationTable">xmlDumpNotationTable</a>            (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
62                                              <a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);
63 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="libxml-valid.html#xmlNewElementContent">xmlNewElementContent</a>   (<a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
64                                              <a href="libxml-tree.html#xmlElementContentType">xmlElementContentType</a> type);
65 <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> <a href="libxml-valid.html#xmlCopyElementContent">xmlCopyElementContent</a>  (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
66 void        <a href="libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a>           (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur);
67 void        <a href="libxml-valid.html#xmlSnprintfElementContent">xmlSnprintfElementContent</a>       (char *buf,
68                                              int size,
69                                              <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content,
70                                              int glob);
71 void        <a href="libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a>        (char *buf,
72                                              <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content,
73                                              int glob);
74 <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a>             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
75                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
76                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
77                                              <a href="libxml-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> type,
78                                              <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);
79 <a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> <a href="libxml-valid.html#xmlCopyElementTable">xmlCopyElementTable</a>      (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);
80 void        <a href="libxml-valid.html#xmlFreeElementTable">xmlFreeElementTable</a>             (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);
81 void        <a href="libxml-valid.html#xmlDumpElementTable">xmlDumpElementTable</a>             (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
82                                              <a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);
83 void        <a href="libxml-valid.html#xmlDumpElementDecl">xmlDumpElementDecl</a>              (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
84                                              <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem);
85 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="libxml-valid.html#xmlCreateEnumeration">xmlCreateEnumeration</a>      (<a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
86 void        <a href="libxml-valid.html#xmlFreeEnumeration">xmlFreeEnumeration</a>              (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur);
87 <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> <a href="libxml-valid.html#xmlCopyEnumeration">xmlCopyEnumeration</a>        (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur);
88 <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a>         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
89                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
90                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
91                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
92                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ns,
93                                              <a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type,
94                                              <a href="libxml-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def,
95                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
96                                              <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);
97 <a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> <a href="libxml-valid.html#xmlCopyAttributeTable">xmlCopyAttributeTable</a>  (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);
98 void        <a href="libxml-valid.html#xmlFreeAttributeTable">xmlFreeAttributeTable</a>           (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);
99 void        <a href="libxml-valid.html#xmlDumpAttributeTable">xmlDumpAttributeTable</a>           (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
100                                              <a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);
101 void        <a href="libxml-valid.html#xmlDumpAttributeDecl">xmlDumpAttributeDecl</a>            (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
102                                              <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr);
103 <a href="libxml-tree.html#xmlIDPtr">xmlIDPtr</a>    <a href="libxml-valid.html#xmlAddID">xmlAddID</a>                        (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
104                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
105                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
106                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
107 void        <a href="libxml-valid.html#xmlFreeIDTable">xmlFreeIDTable</a>                  (<a href="libxml-valid.html#xmlIDTablePtr">xmlIDTablePtr</a> table);
108 <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a>  <a href="libxml-valid.html#xmlGetID">xmlGetID</a>                        (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
109                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID);
110 int         <a href="libxml-valid.html#xmlIsID">xmlIsID</a>                         (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
111                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
112                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
113 int         <a href="libxml-valid.html#xmlRemoveID">xmlRemoveID</a>                     (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
114                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
115 <a href="libxml-tree.html#xmlRefPtr">xmlRefPtr</a>   <a href="libxml-valid.html#xmlAddRef">xmlAddRef</a>                       (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
116                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
117                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
118                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
119 void        <a href="libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a>                 (<a href="libxml-valid.html#xmlRefTablePtr">xmlRefTablePtr</a> table);
120 int         <a href="libxml-valid.html#xmlIsRef">xmlIsRef</a>                        (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
121                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
122                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
123 int         <a href="libxml-valid.html#xmlRemoveRef">xmlRemoveRef</a>                    (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
124                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);
125 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlListPtr">xmlListPtr</GTKDOCLINK>  <a href="libxml-valid.html#xmlGetRefs">xmlGetRefs</a>                      (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
126                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID);
127 int         <a href="libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a>                 (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
128                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
129 int         <a href="libxml-valid.html#xmlValidateElementDecl">xmlValidateElementDecl</a>          (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
130                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
131                                              <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem);
132 <a href="libxml-tree.html#xmlChar">xmlChar</a>*    <a href="libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a> (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
133                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
134                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
135                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
136 <a href="libxml-tree.html#xmlChar">xmlChar</a>*    <a href="libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a>
137                                             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
138                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
139                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
140                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
141                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
142 int         <a href="libxml-valid.html#xmlValidateAttributeDecl">xmlValidateAttributeDecl</a>        (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
143                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
144                                              <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr);
145 int         <a href="libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a>       (<a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type,
146                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
147 int         <a href="libxml-valid.html#xmlValidateNotationDecl">xmlValidateNotationDecl</a>         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
148                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
149                                              <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota);
150 int         <a href="libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a>                  (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
151                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
152                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd);
153 int         <a href="libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a>             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
154                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
155 int         <a href="libxml-valid.html#xmlValidateDocument">xmlValidateDocument</a>             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
156                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
157 int         <a href="libxml-valid.html#xmlValidateElement">xmlValidateElement</a>              (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
158                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
159                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
160 int         <a href="libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a>           (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
161                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
162                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem);
163 int         <a href="libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a>         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
164                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
165                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
166                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr,
167                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
168 int         <a href="libxml-valid.html#xmlValidateOneNamespace">xmlValidateOneNamespace</a>         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
169                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
170                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
171                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix,
172                                              <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns,
173                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
174 int         <a href="libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a>        (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
175                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);
176 int         <a href="libxml-valid.html#xmlValidateNotationUse">xmlValidateNotationUse</a>          (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
177                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
178                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);
179 int         <a href="libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a>               (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
180                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
181 <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a>           (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
182                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
183                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
184 <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> <a href="libxml-valid.html#xmlGetDtdQAttrDesc">xmlGetDtdQAttrDesc</a>          (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
185                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
186                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
187                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix);
188 <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> <a href="libxml-valid.html#xmlGetDtdNotationDesc">xmlGetDtdNotationDesc</a>        (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
189                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
190 <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="libxml-valid.html#xmlGetDtdQElementDesc">xmlGetDtdQElementDesc</a>         (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
191                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
192                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix);
193 <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> <a href="libxml-valid.html#xmlGetDtdElementDesc">xmlGetDtdElementDesc</a>          (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
194                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);
195 int         <a href="libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a>        (<a href="libxml-tree.html#xmlNode">xmlNode</a> *prev,
196                                              <a href="libxml-tree.html#xmlNode">xmlNode</a> *next,
197                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> **list,
198                                              int max);
199 int         <a href="libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a>    (<a href="libxml-tree.html#xmlElementContent">xmlElementContent</a> *ctree,
200                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> **list,
201                                              int *len,
202                                              int max);
203 int         <a href="libxml-valid.html#xmlValidateNameValue">xmlValidateNameValue</a>            (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
204 int         <a href="libxml-valid.html#xmlValidateNamesValue">xmlValidateNamesValue</a>           (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
205 int         <a href="libxml-valid.html#xmlValidateNmtokenValue">xmlValidateNmtokenValue</a>         (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
206 int         <a href="libxml-valid.html#xmlValidateNmtokensValue">xmlValidateNmtokensValue</a>        (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);
207 int         <a href="libxml-valid.html#xmlValidBuildContentModel">xmlValidBuildContentModel</a>       (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
208                                              <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem);
209 int         <a href="libxml-valid.html#xmlValidatePushElement">xmlValidatePushElement</a>          (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
210                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
211                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
212                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *qname);
213 int         <a href="libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a>            (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
214                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data,
215                                              int len);
216 int         <a href="libxml-valid.html#xmlValidatePopElement">xmlValidatePopElement</a>           (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
217                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
218                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
219                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *qname);
220 </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
221
222 </p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="xmlValidState"></a>struct xmlValidState</h3><pre class="programlisting">struct xmlValidState;</pre><p>
223
224 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidStatePtr"></a>xmlValidStatePtr</h3><pre class="programlisting">typedef xmlValidState *xmlValidStatePtr;
225 </pre><p>
226
227 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidityErrorFunc"></a>xmlValidityErrorFunc ()</h3><pre class="programlisting">void        (*xmlValidityErrorFunc)         (void *ctx,
228                                              const char *msg,
229                                              ...);</pre><p>
230 Callback called when a validity error is found. This is a message
231 oriented function similar to an *printf function.</p><p>
232
233 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an xmlValidCtxtPtr validity error context
234 </td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td>  the string to format *printf like vararg
235 </td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td>  remaining arguments to the format
236 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidityWarningFunc"></a>xmlValidityWarningFunc ()</h3><pre class="programlisting">void        (*xmlValidityWarningFunc)       (void *ctx,
237                                              const char *msg,
238                                              ...);</pre><p>
239 Callback called when a validity warning is found. This is a message
240 oriented function similar to an *printf function.</p><p>
241
242 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td>  an xmlValidCtxtPtr validity error context
243 </td></tr><tr><td><span class="term"><i><tt>msg</tt></i> :</span></td><td>  the string to format *printf like vararg
244 </td></tr><tr><td><span class="term"><i><tt>...</tt></i> :</span></td><td>  remaining arguments to the format
245 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidCtxt"></a>struct xmlValidCtxt</h3><pre class="programlisting">struct xmlValidCtxt {
246     void *userData;                     /* user specific data block */
247     xmlValidityErrorFunc error;         /* the callback in case of errors */
248     xmlValidityWarningFunc warning;     /* the callback in case of warning */
249
250     /* Node analysis stack used when validating within entities */
251     xmlNodePtr         node;          /* Current parsed Node */
252     int                nodeNr;        /* Depth of the parsing stack */
253     int                nodeMax;       /* Max depth of the parsing stack */
254     xmlNodePtr        *nodeTab;       /* array of nodes */
255
256     int              finishDtd;       /* finished validating the Dtd ? */
257     xmlDocPtr              doc;       /* the document */
258     int                  valid;       /* temporary validity check result */
259
260     /* state state used for non-determinist content validation */
261     xmlValidState     *vstate;        /* current state */
262     int                vstateNr;      /* Depth of the validation stack */
263     int                vstateMax;     /* Max depth of the validation stack */
264     xmlValidState     *vstateTab;     /* array of validation states */
265
266 #ifdef LIBXML_REGEXP_ENABLED
267     xmlAutomataPtr            am;     /* the automata */
268     xmlAutomataStatePtr    state;     /* used to build the automata */
269 #else
270     void                     *am;
271     void                  *state;
272 #endif
273 };
274 </pre><p>
275 </p><p>
276
277 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidCtxtPtr"></a>xmlValidCtxtPtr</h3><pre class="programlisting">typedef xmlValidCtxt *xmlValidCtxtPtr;
278 </pre><p>
279
280 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNotationTablePtr"></a>xmlNotationTablePtr</h3><pre class="programlisting">typedef xmlNotationTable *xmlNotationTablePtr;
281 </pre><p>
282
283 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlElementTablePtr"></a>xmlElementTablePtr</h3><pre class="programlisting">typedef xmlElementTable *xmlElementTablePtr;
284 </pre><p>
285
286 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAttributeTablePtr"></a>xmlAttributeTablePtr</h3><pre class="programlisting">typedef xmlAttributeTable *xmlAttributeTablePtr;
287 </pre><p>
288
289 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIDTablePtr"></a>xmlIDTablePtr</h3><pre class="programlisting">typedef xmlIDTable *xmlIDTablePtr;
290 </pre><p>
291
292 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRefTablePtr"></a>xmlRefTablePtr</h3><pre class="programlisting">typedef xmlRefTable *xmlRefTablePtr;
293 </pre><p>
294
295 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNewValidCtxt"></a>xmlNewValidCtxt ()</h3><pre class="programlisting"><a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> xmlNewValidCtxt             (void);</pre><p>
296 Allocate a validation context structure.</p><p>
297
298 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not, otherwise the new validation context structure
299 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeValidCtxt"></a>xmlFreeValidCtxt ()</h3><pre class="programlisting">void        xmlFreeValidCtxt                (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a>);</pre><p>
300 Free a validation context structure.</p><p>
301
302 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>Param1</tt></i> :</span></td><td>
303
304
305 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAddNotationDecl"></a>xmlAddNotationDecl ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> xmlAddNotationDecl           (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
306                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
307                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
308                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *PublicID,
309                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *SystemID);</pre><p>
310 Register a new notation declaration</p><p>
311
312 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
313 </td></tr><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  pointer to the DTD
314 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the entity name
315 </td></tr><tr><td><span class="term"><i><tt>PublicID</tt></i> :</span></td><td>  the public identifier or NULL
316 </td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i> :</span></td><td>  the system identifier or NULL
317 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not, otherwise the entity
318 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCopyNotationTable"></a>xmlCopyNotationTable ()</h3><pre class="programlisting"><a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> xmlCopyNotationTable    (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);</pre><p>
319 Build a copy of a notation table.</p><p>
320
321 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  A notation table
322 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new xmlNotationTablePtr or NULL in case of error.
323 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeNotationTable"></a>xmlFreeNotationTable ()</h3><pre class="programlisting">void        xmlFreeNotationTable            (<a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);</pre><p>
324 Deallocate the memory used by an entities hash table.</p><p>
325
326 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An notation table
327 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlDumpNotationDecl"></a>xmlDumpNotationDecl ()</h3><pre class="programlisting">void        xmlDumpNotationDecl             (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
328                                              <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota);</pre><p>
329 This will dump the content the notation declaration as an XML DTD definition</p><p>
330
331 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  the XML buffer output
332 </td></tr><tr><td><span class="term"><i><tt>nota</tt></i> :</span></td><td>  A notation declaration
333 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlDumpNotationTable"></a>xmlDumpNotationTable ()</h3><pre class="programlisting">void        xmlDumpNotationTable            (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
334                                              <a href="libxml-valid.html#xmlNotationTablePtr">xmlNotationTablePtr</a> table);</pre><p>
335 This will dump the content of the notation table as an XML DTD definition</p><p>
336
337 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  the XML buffer output
338 </td></tr><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  A notation table
339 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNewElementContent"></a>xmlNewElementContent ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlNewElementContent   (<a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
340                                              <a href="libxml-tree.html#xmlElementContentType">xmlElementContentType</a> type);</pre><p>
341 Allocate an element content structure.</p><p>
342
343 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the subelement name or NULL
344 </td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td>  the type of element content decl
345 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not, otherwise the new element content structure
346 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCopyElementContent"></a>xmlCopyElementContent ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> xmlCopyElementContent  (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);</pre><p>
347 Build a copy of an element content description.</p><p>
348
349 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td>
350 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new xmlElementContentPtr or NULL in case of error.
351 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeElementContent"></a>xmlFreeElementContent ()</h3><pre class="programlisting">void        xmlFreeElementContent           (<a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> cur);</pre><p>
352 Free an element content structure. This is a recursive call !</p><p>
353
354 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td>  the element content tree to free
355 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSnprintfElementContent"></a>xmlSnprintfElementContent ()</h3><pre class="programlisting">void        xmlSnprintfElementContent       (char *buf,
356                                              int size,
357                                              <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content,
358                                              int glob);</pre><p>
359 This will dump the content of the element content definition
360 Intended just for the debug routine</p><p>
361
362 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  an output buffer
363 </td></tr><tr><td><span class="term"><i><tt>size</tt></i> :</span></td><td>  the buffer size
364 </td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td>  An element table
365 </td></tr><tr><td><span class="term"><i><tt>glob</tt></i> :</span></td><td> 1 if one must print the englobing parenthesis, 0 otherwise
366 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlSprintfElementContent"></a>xmlSprintfElementContent ()</h3><pre class="programlisting">void        xmlSprintfElementContent        (char *buf,
367                                              <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content,
368                                              int glob);</pre><p>
369 Deprecated, unsafe, use xmlSnprintfElementContent</p><p>
370
371 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  an output buffer
372 </td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td>  An element table
373 </td></tr><tr><td><span class="term"><i><tt>glob</tt></i> :</span></td><td> 1 if one must print the englobing parenthesis, 0 otherwise
374 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAddElementDecl"></a>xmlAddElementDecl ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> xmlAddElementDecl             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
375                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
376                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
377                                              <a href="libxml-tree.html#xmlElementTypeVal">xmlElementTypeVal</a> type,
378                                              <a href="libxml-tree.html#xmlElementContentPtr">xmlElementContentPtr</a> content);</pre><p>
379 Register a new element declaration</p><p>
380
381 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
382 </td></tr><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  pointer to the DTD
383 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the entity name
384 </td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td>  the element type
385 </td></tr><tr><td><span class="term"><i><tt>content</tt></i> :</span></td><td>  the element content tree or NULL
386 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not, otherwise the entity
387 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCopyElementTable"></a>xmlCopyElementTable ()</h3><pre class="programlisting"><a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> xmlCopyElementTable      (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);</pre><p>
388 Build a copy of an element table.</p><p>
389
390 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An element table
391 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new xmlElementTablePtr or NULL in case of error.
392 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeElementTable"></a>xmlFreeElementTable ()</h3><pre class="programlisting">void        xmlFreeElementTable             (<a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);</pre><p>
393 Deallocate the memory used by an element hash table.</p><p>
394
395 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An element table
396 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlDumpElementTable"></a>xmlDumpElementTable ()</h3><pre class="programlisting">void        xmlDumpElementTable             (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
397                                              <a href="libxml-valid.html#xmlElementTablePtr">xmlElementTablePtr</a> table);</pre><p>
398 This will dump the content of the element table as an XML DTD definition</p><p>
399
400 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  the XML buffer output
401 </td></tr><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An element table
402 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlDumpElementDecl"></a>xmlDumpElementDecl ()</h3><pre class="programlisting">void        xmlDumpElementDecl              (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
403                                              <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem);</pre><p>
404 This will dump the content of the element declaration as an XML
405 DTD definition</p><p>
406
407 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  the XML buffer output
408 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  An element table
409 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCreateEnumeration"></a>xmlCreateEnumeration ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlCreateEnumeration      (<a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
410 create and initialize an enumeration attribute node.</p><p>
411
412 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the enumeration name or NULL
413 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlEnumerationPtr just created or NULL in case
414                of error.
415 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeEnumeration"></a>xmlFreeEnumeration ()</h3><pre class="programlisting">void        xmlFreeEnumeration              (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur);</pre><p>
416 free an enumeration attribute node (recursive).</p><p>
417
418 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td>  the tree to free.
419 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCopyEnumeration"></a>xmlCopyEnumeration ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> xmlCopyEnumeration        (<a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> cur);</pre><p>
420 Copy an enumeration attribute node (recursive).</p><p>
421
422 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td>  the tree to copy.
423 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlEnumerationPtr just created or NULL in case
424                of error.
425 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAddAttributeDecl"></a>xmlAddAttributeDecl ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlAddAttributeDecl         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
426                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
427                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
428                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
429                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ns,
430                                              <a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type,
431                                              <a href="libxml-tree.html#xmlAttributeDefault">xmlAttributeDefault</a> def,
432                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *defaultValue,
433                                              <a href="libxml-tree.html#xmlEnumerationPtr">xmlEnumerationPtr</a> tree);</pre><p>
434 Register a new attribute declaration
435 Note that <i><tt>tree</tt></i> becomes the ownership of the DTD</p><p>
436
437 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
438 </td></tr><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  pointer to the DTD
439 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  the element name
440 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the attribute name
441 </td></tr><tr><td><span class="term"><i><tt>ns</tt></i> :</span></td><td>  the attribute namespace prefix
442 </td></tr><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td>  the attribute type
443 </td></tr><tr><td><span class="term"><i><tt>def</tt></i> :</span></td><td>  the attribute default type
444 </td></tr><tr><td><span class="term"><i><tt>defaultValue</tt></i> :</span></td><td>  the attribute default value
445 </td></tr><tr><td><span class="term"><i><tt>tree</tt></i> :</span></td><td>  if it's an enumeration, the associated list
446 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not new, otherwise the attribute decl
447 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlCopyAttributeTable"></a>xmlCopyAttributeTable ()</h3><pre class="programlisting"><a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> xmlCopyAttributeTable  (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);</pre><p>
448 Build a copy of an attribute table.</p><p>
449
450 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An attribute table
451 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the new xmlAttributeTablePtr or NULL in case of error.
452 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeAttributeTable"></a>xmlFreeAttributeTable ()</h3><pre class="programlisting">void        xmlFreeAttributeTable           (<a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);</pre><p>
453 Deallocate the memory used by an entities hash table.</p><p>
454
455 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An attribute table
456 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlDumpAttributeTable"></a>xmlDumpAttributeTable ()</h3><pre class="programlisting">void        xmlDumpAttributeTable           (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
457                                              <a href="libxml-valid.html#xmlAttributeTablePtr">xmlAttributeTablePtr</a> table);</pre><p>
458 This will dump the content of the attribute table as an XML DTD definition</p><p>
459
460 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  the XML buffer output
461 </td></tr><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An attribute table
462 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlDumpAttributeDecl"></a>xmlDumpAttributeDecl ()</h3><pre class="programlisting">void        xmlDumpAttributeDecl            (<a href="libxml-tree.html#xmlBufferPtr">xmlBufferPtr</a> buf,
463                                              <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr);</pre><p>
464 This will dump the content of the attribute declaration as an XML
465 DTD definition</p><p>
466
467 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>buf</tt></i> :</span></td><td>  the XML buffer output
468 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  An attribute declaration
469 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAddID"></a>xmlAddID ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlIDPtr">xmlIDPtr</a>    xmlAddID                        (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
470                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
471                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
472                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);</pre><p>
473 Register a new id declaration</p><p>
474
475 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
476 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  pointer to the document
477 </td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  the value name
478 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  the attribute holding the ID
479 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not, otherwise the new xmlIDPtr
480 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeIDTable"></a>xmlFreeIDTable ()</h3><pre class="programlisting">void        xmlFreeIDTable                  (<a href="libxml-valid.html#xmlIDTablePtr">xmlIDTablePtr</a> table);</pre><p>
481 Deallocate the memory used by an ID hash table.</p><p>
482
483 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An id table
484 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetID"></a>xmlGetID ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a>  xmlGetID                        (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
485                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID);</pre><p>
486 Search the attribute declaring the given ID</p><p>
487
488 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  pointer to the document
489 </td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td>  the ID value
490 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not found, otherwise the xmlAttrPtr defining the ID
491 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIsID"></a>xmlIsID ()</h3><pre class="programlisting">int         xmlIsID                         (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
492                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
493                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);</pre><p>
494 Determine whether an attribute is of type ID. In case we have DTD(s)
495 then this is done if DTD loading has been requested. In the case
496 of HTML documents parsed with the HTML parser, then ID detection is
497 done systematically.</p><p>
498
499 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
500 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  the element carrying the attribute
501 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  the attribute
502 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 or 1 depending on the lookup result
503 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRemoveID"></a>xmlRemoveID ()</h3><pre class="programlisting">int         xmlRemoveID                     (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
504                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);</pre><p>
505 Remove the given attribute from the ID table maintained internally.</p><p>
506
507 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
508 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  the attribute
509 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 if the lookup failed and 0 otherwise
510 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlAddRef"></a>xmlAddRef ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlRefPtr">xmlRefPtr</a>   xmlAddRef                       (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
511                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
512                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value,
513                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);</pre><p>
514 Register a new ref declaration</p><p>
515
516 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
517 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  pointer to the document
518 </td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  the value name
519 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  the attribute holding the Ref
520 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not, otherwise the new xmlRefPtr
521 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlFreeRefTable"></a>xmlFreeRefTable ()</h3><pre class="programlisting">void        xmlFreeRefTable                 (<a href="libxml-valid.html#xmlRefTablePtr">xmlRefTablePtr</a> table);</pre><p>
522 Deallocate the memory used by an Ref hash table.</p><p>
523
524 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>table</tt></i> :</span></td><td>  An ref table
525 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIsRef"></a>xmlIsRef ()</h3><pre class="programlisting">int         xmlIsRef                        (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
526                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
527                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);</pre><p>
528 Determine whether an attribute is of type Ref. In case we have DTD(s)
529 then this is simple, otherwise we use an heuristic: name Ref (upper
530 or lowercase).</p><p>
531
532 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
533 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  the element carrying the attribute
534 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  the attribute
535 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 or 1 depending on the lookup result
536 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlRemoveRef"></a>xmlRemoveRef ()</h3><pre class="programlisting">int         xmlRemoveRef                    (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
537                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr);</pre><p>
538 Remove the given attribute from the Ref table maintained internally.</p><p>
539
540 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
541 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  the attribute
542 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 if the lookup failed and 0 otherwise
543 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetRefs"></a>xmlGetRefs ()</h3><pre class="programlisting"><GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlListPtr">xmlListPtr</GTKDOCLINK>  xmlGetRefs                      (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
544                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *ID);</pre><p>
545 Find the set of references for the supplied ID.</p><p>
546
547 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  pointer to the document
548 </td></tr><tr><td><span class="term"><i><tt>ID</tt></i> :</span></td><td>  the ID value
549 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>NULL if not found, otherwise node set for the ID.
550 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateRoot"></a>xmlValidateRoot ()</h3><pre class="programlisting">int         xmlValidateRoot                 (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
551                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);</pre><p>
552 Try to validate a the root element
553 basically it does the following check as described by the
554 XML-1.0 recommendation:
555  - [ VC: Root Element Type ]
556 it doesn't try to recurse or apply other check to the element</p><p>
557
558 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
559 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
560 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
561 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateElementDecl"></a>xmlValidateElementDecl ()</h3><pre class="programlisting">int         xmlValidateElementDecl          (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
562                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
563                                              <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem);</pre><p>
564 Try to validate a single element definition
565 basically it does the following checks as described by the
566 XML-1.0 recommendation:
567  - [ VC: One ID per Element Type ]
568  - [ VC: No Duplicate Types ]
569  - [ VC: Unique Element Type Declaration ]</p><p>
570
571 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
572 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
573 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element definition
574 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
575 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidNormalizeAttributeValue"></a>xmlValidNormalizeAttributeValue ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>*    xmlValidNormalizeAttributeValue (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
576                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
577                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
578                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
579 Does the validation related extra step of the normalization of attribute
580 values:
581 </p><p>
582 If the declared value is not CDATA, then the XML processor must further
583 process the normalized attribute value by discarding any leading and
584 trailing space (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="x20">x20</GTKDOCLINK>) characters, and by replacing sequences of space
585 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="x20">x20</GTKDOCLINK>) characters by single space (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="x20">x20</GTKDOCLINK>) character.</p><p>
586
587 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
588 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  the parent
589 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the attribute name
590 </td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  the attribute value
591 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new normalized string if normalization is needed, NULL otherwise
592      the caller must free the returned value.
593 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidCtxtNormalizeAttributeValue"></a>xmlValidCtxtNormalizeAttributeValue ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlChar">xmlChar</a>*    xmlValidCtxtNormalizeAttributeValue
594                                             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
595                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
596                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
597                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
598                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
599 Does the validation related extra step of the normalization of attribute
600 values:
601 </p><p>
602 If the declared value is not CDATA, then the XML processor must further
603 process the normalized attribute value by discarding any leading and
604 trailing space (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="x20">x20</GTKDOCLINK>) characters, and by replacing sequences of space
605 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="x20">x20</GTKDOCLINK>) characters by single space (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="x20">x20</GTKDOCLINK>) character.
606 </p><p>
607 Also  check VC: Standalone Document Declaration in P32, and update
608  ctxt-&gt;valid accordingly</p><p>
609
610 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the validation context
611 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
612 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  the parent
613 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the attribute name
614 </td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  the attribute value
615 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new normalized string if normalization is needed, NULL otherwise
616      the caller must free the returned value.
617 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateAttributeDecl"></a>xmlValidateAttributeDecl ()</h3><pre class="programlisting">int         xmlValidateAttributeDecl        (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
618                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
619                                              <a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> attr);</pre><p>
620 Try to validate a single attribute definition
621 basically it does the following checks as described by the
622 XML-1.0 recommendation:
623  - [ VC: Attribute Default Legal ]
624  - [ VC: Enumeration ]
625  - [ VC: ID Attribute Default ]
626 </p><p>
627 The ID/IDREF uniqueness and matching are done separately</p><p>
628
629 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
630 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
631 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  an attribute definition
632 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
633 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateAttributeValue"></a>xmlValidateAttributeValue ()</h3><pre class="programlisting">int         xmlValidateAttributeValue       (<a href="libxml-tree.html#xmlAttributeType">xmlAttributeType</a> type,
634                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
635 Validate that the given attribute value match  the proper production
636 </p><p>
637 [ VC: ID ]
638 Values of type ID must match the Name production....
639 </p><p>
640 [ VC: IDREF ]
641 Values of type IDREF must match the Name production, and values
642 of type IDREFS must match Names ...
643 </p><p>
644 [ VC: Entity Name ]
645 Values of type ENTITY must match the Name production, values
646 of type ENTITIES must match Names ...
647 </p><p>
648 [ VC: Name Token ]
649 Values of type NMTOKEN must match the Nmtoken production; values
650 of type NMTOKENS must match Nmtokens.</p><p>
651
652 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>type</tt></i> :</span></td><td>  an attribute type
653 </td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  an attribute value
654 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
655 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateNotationDecl"></a>xmlValidateNotationDecl ()</h3><pre class="programlisting">int         xmlValidateNotationDecl         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
656                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
657                                              <a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> nota);</pre><p>
658 Try to validate a single notation definition
659 basically it does the following checks as described by the
660 XML-1.0 recommendation:
661  - it seems that no validity constraint exists on notation declarations
662 But this function get called anyway ...</p><p>
663
664 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
665 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
666 </td></tr><tr><td><span class="term"><i><tt>nota</tt></i> :</span></td><td>  a notation definition
667 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
668 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateDtd"></a>xmlValidateDtd ()</h3><pre class="programlisting">int         xmlValidateDtd                  (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
669                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
670                                              <a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd);</pre><p>
671 Try to validate the document against the dtd instance
672 </p><p>
673 basically it does check all the definitions in the DtD.</p><p>
674
675 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
676 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
677 </td></tr><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  a dtd instance
678 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
679 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateDtdFinal"></a>xmlValidateDtdFinal ()</h3><pre class="programlisting">int         xmlValidateDtdFinal             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
680                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);</pre><p>
681 Does the final step for the dtds validation once all the
682 subsets have been parsed
683 </p><p>
684 basically it does the following checks described by the XML Rec
685 - check that ENTITY and ENTITIES type attributes default or 
686   possible values matches one of the defined entities.
687 - check that NOTATION type attributes default or 
688   possible values matches one of the defined notations.</p><p>
689
690 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
691 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
692 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 if invalid and -1 if not well-formed
693 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateDocument"></a>xmlValidateDocument ()</h3><pre class="programlisting">int         xmlValidateDocument             (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
694                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);</pre><p>
695 Try to validate the document instance
696 </p><p>
697 basically it does the all the checks described by the XML Rec
698 i.e. validates the internal and external subset (if present)
699 and validate the document tree.</p><p>
700
701 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
702 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
703 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
704 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateElement"></a>xmlValidateElement ()</h3><pre class="programlisting">int         xmlValidateElement              (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
705                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
706                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem);</pre><p>
707 Try to validate the subtree under an element</p><p>
708
709 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
710 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
711 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element instance
712 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
713 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateOneElement"></a>xmlValidateOneElement ()</h3><pre class="programlisting">int         xmlValidateOneElement           (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
714                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
715                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem);</pre><p>
716 Try to validate a single element and it's attributes,
717 basically it does the following checks as described by the
718 XML-1.0 recommendation:
719  - [ VC: Element Valid ]
720  - [ VC: Required Attribute ]
721 Then call <a href="libxml-valid.html#xmlValidateOneAttribute">xmlValidateOneAttribute</a>() for each attribute present.
722 </p><p>
723 The ID/IDREF checkings are done separately</p><p>
724
725 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
726 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
727 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element instance
728 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
729 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateOneAttribute"></a>xmlValidateOneAttribute ()</h3><pre class="programlisting">int         xmlValidateOneAttribute         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
730                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
731                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
732                                              <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> attr,
733                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
734 Try to validate a single attribute for an element
735 basically it does the following checks as described by the
736 XML-1.0 recommendation:
737  - [ VC: Attribute Value Type ]
738  - [ VC: Fixed Attribute Default ]
739  - [ VC: Entity Name ]
740  - [ VC: Name Token ]
741  - [ VC: ID ]
742  - [ VC: IDREF ]
743  - [ VC: Entity Name ]
744  - [ VC: Notation Attributes ]
745 </p><p>
746 The ID/IDREF uniqueness and matching are done separately</p><p>
747
748 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
749 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
750 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element instance
751 </td></tr><tr><td><span class="term"><i><tt>attr</tt></i> :</span></td><td>  an attribute instance
752 </td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  the attribute value (without entities processing)
753 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
754 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateOneNamespace"></a>xmlValidateOneNamespace ()</h3><pre class="programlisting">int         xmlValidateOneNamespace         (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
755                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
756                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
757                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix,
758                                              <a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> ns,
759                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
760 Try to validate a single namespace declaration for an element
761 basically it does the following checks as described by the
762 XML-1.0 recommendation:
763  - [ VC: Attribute Value Type ]
764  - [ VC: Fixed Attribute Default ]
765  - [ VC: Entity Name ]
766  - [ VC: Name Token ]
767  - [ VC: ID ]
768  - [ VC: IDREF ]
769  - [ VC: Entity Name ]
770  - [ VC: Notation Attributes ]
771 </p><p>
772 The ID/IDREF uniqueness and matching are done separately</p><p>
773
774 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
775 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
776 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element instance
777 </td></tr><tr><td><span class="term"><i><tt>prefix</tt></i> :</span></td><td>  the namespace prefix
778 </td></tr><tr><td><span class="term"><i><tt>ns</tt></i> :</span></td><td>  an namespace declaration instance
779 </td></tr><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  the attribute value (without entities processing)
780 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
781 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateDocumentFinal"></a>xmlValidateDocumentFinal ()</h3><pre class="programlisting">int         xmlValidateDocumentFinal        (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
782                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc);</pre><p>
783 Does the final step for the document validation once all the
784 incremental validation steps have been completed
785 </p><p>
786 basically it does the following checks described by the XML Rec
787 </p><p>
788 Check all the IDREF/IDREFS attributes definition for validity</p><p>
789
790 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
791 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
792 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
793 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateNotationUse"></a>xmlValidateNotationUse ()</h3><pre class="programlisting">int         xmlValidateNotationUse          (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
794                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
795                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *notationName);</pre><p>
796 Validate that the given name match a notation declaration.
797 - [ VC: Notation Declared ]</p><p>
798
799 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
800 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
801 </td></tr><tr><td><span class="term"><i><tt>notationName</tt></i> :</span></td><td>  the notation name to check
802 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
803 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlIsMixedElement"></a>xmlIsMixedElement ()</h3><pre class="programlisting">int         xmlIsMixedElement               (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
804                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
805 Search in the DtDs whether an element accept Mixed content (or ANY)
806 basically if it is supposed to accept text childs</p><p>
807
808 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  the document
809 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the element name
810 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 if no, 1 if yes, and -1 if no element description is available
811 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetDtdAttrDesc"></a>xmlGetDtdAttrDesc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlGetDtdAttrDesc           (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
812                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
813                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
814 Search the DTD for the description of this attribute on
815 this element.</p><p>
816
817 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  a pointer to the DtD to search
818 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  the element name
819 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the attribute name
820 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlAttributePtr if found or NULL
821 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetDtdQAttrDesc"></a>xmlGetDtdQAttrDesc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttributePtr">xmlAttributePtr</a> xmlGetDtdQAttrDesc          (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
822                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *elem,
823                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
824                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix);</pre><p>
825 Search the DTD for the description of this qualified attribute on
826 this element.</p><p>
827
828 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  a pointer to the DtD to search
829 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  the element name
830 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the attribute name
831 </td></tr><tr><td><span class="term"><i><tt>prefix</tt></i> :</span></td><td>  the attribute namespace prefix
832 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlAttributePtr if found or NULL
833 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetDtdNotationDesc"></a>xmlGetDtdNotationDesc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNotationPtr">xmlNotationPtr</a> xmlGetDtdNotationDesc        (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
834                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
835 Search the DTD for the description of this notation</p><p>
836
837 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  a pointer to the DtD to search
838 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the notation name
839 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlNotationPtr if found or NULL
840 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetDtdQElementDesc"></a>xmlGetDtdQElementDesc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> xmlGetDtdQElementDesc         (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
841                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name,
842                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *prefix);</pre><p>
843 Search the DTD for the description of this element</p><p>
844
845 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  a pointer to the DtD to search
846 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the element name
847 </td></tr><tr><td><span class="term"><i><tt>prefix</tt></i> :</span></td><td>  the element namespace prefix
848 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlElementPtr if found or NULL
849 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlGetDtdElementDesc"></a>xmlGetDtdElementDesc ()</h3><pre class="programlisting"><a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> xmlGetDtdElementDesc          (<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd,
850                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *name);</pre><p>
851 Search the DTD for the description of this element</p><p>
852
853 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>dtd</tt></i> :</span></td><td>  a pointer to the DtD to search
854 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td>  the element name
855 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xmlElementPtr if found or NULL
856 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidGetValidElements"></a>xmlValidGetValidElements ()</h3><pre class="programlisting">int         xmlValidGetValidElements        (<a href="libxml-tree.html#xmlNode">xmlNode</a> *prev,
857                                              <a href="libxml-tree.html#xmlNode">xmlNode</a> *next,
858                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> **list,
859                                              int max);</pre><p>
860 This function returns the list of authorized children to insert
861 within an existing tree while respecting the validity constraints
862 forced by the Dtd. The insertion point is defined using <i><tt>prev</tt></i> and
863 <i><tt>next</tt></i> in the following ways:
864  to insert before 'node': xmlValidGetValidElements(node-&gt;prev, node, ...
865  to insert next 'node': xmlValidGetValidElements(node, node-&gt;next, ...
866  to replace 'node': xmlValidGetValidElements(node-&gt;prev, node-&gt;next, ...
867  to prepend a child to 'node': xmlValidGetValidElements(NULL, node-&gt;childs,
868  to append a child to 'node': xmlValidGetValidElements(node-&gt;last, NULL, ...
869 </p><p>
870 pointers to the element names are inserted at the beginning of the array
871 and do not need to be freed.</p><p>
872
873 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>prev</tt></i> :</span></td><td>  an element to insert after
874 </td></tr><tr><td><span class="term"><i><tt>next</tt></i> :</span></td><td>  an element to insert next
875 </td></tr><tr><td><span class="term"><i><tt>list</tt></i> :</span></td><td>  an array to store the list of child names
876 </td></tr><tr><td><span class="term"><i><tt>max</tt></i> :</span></td><td>  the size of the array
877 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of element in the list, or -1 in case of error. If
878    the function returns the value <i><tt>max</tt></i> the caller is invited to grow the
879    receiving array and retry.
880 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidGetPotentialChildren"></a>xmlValidGetPotentialChildren ()</h3><pre class="programlisting">int         xmlValidGetPotentialChildren    (<a href="libxml-tree.html#xmlElementContent">xmlElementContent</a> *ctree,
881                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> **list,
882                                              int *len,
883                                              int max);</pre><p>
884 Build/extend a list of  potential children allowed by the content tree</p><p>
885
886 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctree</tt></i> :</span></td><td>  an element content tree
887 </td></tr><tr><td><span class="term"><i><tt>list</tt></i> :</span></td><td>  an array to store the list of child names
888 </td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td>  a pointer to the number of element in the list
889 </td></tr><tr><td><span class="term"><i><tt>max</tt></i> :</span></td><td>  the size of the array
890 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of element in the list, or -1 in case of error.
891 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateNameValue"></a>xmlValidateNameValue ()</h3><pre class="programlisting">int         xmlValidateNameValue            (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
892 Validate that the given value match Name production</p><p>
893
894 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  an Name value
895 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
896 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateNamesValue"></a>xmlValidateNamesValue ()</h3><pre class="programlisting">int         xmlValidateNamesValue           (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
897 Validate that the given value match Names production</p><p>
898
899 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  an Names value
900 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
901 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateNmtokenValue"></a>xmlValidateNmtokenValue ()</h3><pre class="programlisting">int         xmlValidateNmtokenValue         (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
902 Validate that the given value match Nmtoken production
903 </p><p>
904 [ VC: Name Token ]</p><p>
905
906 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  an Nmtoken value
907 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
908 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidateNmtokensValue"></a>xmlValidateNmtokensValue ()</h3><pre class="programlisting">int         xmlValidateNmtokensValue        (const <a href="libxml-tree.html#xmlChar">xmlChar</a> *value);</pre><p>
909 Validate that the given value match Nmtokens production
910 </p><p>
911 [ VC: Name Token ]</p><p>
912
913 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>value</tt></i> :</span></td><td>  an Nmtokens value
914 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if valid or 0 otherwise
915 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidBuildContentModel"></a>xmlValidBuildContentModel ()</h3><pre class="programlisting">int         xmlValidBuildContentModel       (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
916                                              <a href="libxml-tree.html#xmlElementPtr">xmlElementPtr</a> elem);</pre><p>
917 (Re)Build the automata associated to the content model of this
918 element</p><p>
919
920 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  a validation context
921 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element declaration node
922 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 in case of success, 0 in case of error
923 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidatePushElement"></a>xmlValidatePushElement ()</h3><pre class="programlisting">int         xmlValidatePushElement          (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
924                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
925                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
926                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *qname);</pre><p>
927 Push a new element start on the validation stack.</p><p>
928
929 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
930 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
931 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element instance
932 </td></tr><tr><td><span class="term"><i><tt>qname</tt></i> :</span></td><td>  the qualified name as appearing in the serialization
933 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if no validation problem was found or 0 otherwise
934 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidatePushCData"></a>xmlValidatePushCData ()</h3><pre class="programlisting">int         xmlValidatePushCData            (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
935                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *data,
936                                              int len);</pre><p>
937 check the CData parsed for validation in the current stack</p><p>
938
939 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
940 </td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td>  some character data read
941 </td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td>  the lenght of the data
942 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if no validation problem was found or 0 otherwise
943 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlValidatePopElement"></a>xmlValidatePopElement ()</h3><pre class="programlisting">int         xmlValidatePopElement           (<a href="libxml-valid.html#xmlValidCtxtPtr">xmlValidCtxtPtr</a> ctxt,
944                                              <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc,
945                                              <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> elem,
946                                              const <a href="libxml-tree.html#xmlChar">xmlChar</a> *qname);</pre><p>
947 Pop the element end from the validation stack.</p><p>
948
949 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td>  the validation context
950 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td>  a document instance
951 </td></tr><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td>  an element instance
952 </td></tr><tr><td><span class="term"><i><tt>qname</tt></i> :</span></td><td>  the qualified name as appearing in the serialization
953 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if no validation problem was found or 0 otherwise
954 </td></tr></tbody></table></div></div></div></div><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libxml-entities.html"><b>&lt;&lt; entities</b></a></td><td align="right"><a accesskey="n" href="libxml-relaxng.html"><b>relaxng &gt;&gt;</b></a></td></tr></table></body></html>