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