ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

valid.h
Go to the documentation of this file.
00001 /*
00002  * Summary: The DTD validation
00003  * Description: API for the DTD handling and the validity checking
00004  *
00005  * Copy: See Copyright for the status of this software.
00006  *
00007  * Author: Daniel Veillard
00008  */
00009 
00010 
00011 #ifndef __XML_VALID_H__
00012 #define __XML_VALID_H__
00013 
00014 #include <libxml/xmlversion.h>
00015 #include <libxml/xmlerror.h>
00016 #include <libxml/tree.h>
00017 #include <libxml/list.h>
00018 #include <libxml/xmlautomata.h>
00019 #include <libxml/xmlregexp.h>
00020 
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024 
00025 /*
00026  * Validation state added for non-determinist content model.
00027  */
00028 typedef struct _xmlValidState xmlValidState;
00029 typedef xmlValidState *xmlValidStatePtr;
00030 
00042 typedef void (XMLCDECL *xmlValidityErrorFunc) (void *ctx,
00043                  const char *msg,
00044                  ...) LIBXML_ATTR_FORMAT(2,3);
00045 
00057 typedef void (XMLCDECL *xmlValidityWarningFunc) (void *ctx,
00058                    const char *msg,
00059                    ...) LIBXML_ATTR_FORMAT(2,3);
00060 
00061 #ifdef IN_LIBXML
00062 
00067 #define XML_CTXT_FINISH_DTD_0 0xabcd1234
00068 
00073 #define XML_CTXT_FINISH_DTD_1 0xabcd1235
00074 #endif
00075 
00076 /*
00077  * xmlValidCtxt:
00078  * An xmlValidCtxt is used for error reporting when validating.
00079  */
00080 typedef struct _xmlValidCtxt xmlValidCtxt;
00081 typedef xmlValidCtxt *xmlValidCtxtPtr;
00082 struct _xmlValidCtxt {
00083     void *userData;         /* user specific data block */
00084     xmlValidityErrorFunc error;     /* the callback in case of errors */
00085     xmlValidityWarningFunc warning; /* the callback in case of warning */
00086 
00087     /* Node analysis stack used when validating within entities */
00088     xmlNodePtr         node;          /* Current parsed Node */
00089     int                nodeNr;        /* Depth of the parsing stack */
00090     int                nodeMax;       /* Max depth of the parsing stack */
00091     xmlNodePtr        *nodeTab;       /* array of nodes */
00092 
00093     unsigned int     finishDtd;       /* finished validating the Dtd ? */
00094     xmlDocPtr              doc;       /* the document */
00095     int                  valid;       /* temporary validity check result */
00096 
00097     /* state state used for non-determinist content validation */
00098     xmlValidState     *vstate;        /* current state */
00099     int                vstateNr;      /* Depth of the validation stack */
00100     int                vstateMax;     /* Max depth of the validation stack */
00101     xmlValidState     *vstateTab;     /* array of validation states */
00102 
00103 #ifdef LIBXML_REGEXP_ENABLED
00104     xmlAutomataPtr            am;     /* the automata */
00105     xmlAutomataStatePtr    state;     /* used to build the automata */
00106 #else
00107     void                     *am;
00108     void                  *state;
00109 #endif
00110 };
00111 
00112 /*
00113  * ALL notation declarations are stored in a table.
00114  * There is one table per DTD.
00115  */
00116 
00117 typedef struct _xmlHashTable xmlNotationTable;
00118 typedef xmlNotationTable *xmlNotationTablePtr;
00119 
00120 /*
00121  * ALL element declarations are stored in a table.
00122  * There is one table per DTD.
00123  */
00124 
00125 typedef struct _xmlHashTable xmlElementTable;
00126 typedef xmlElementTable *xmlElementTablePtr;
00127 
00128 /*
00129  * ALL attribute declarations are stored in a table.
00130  * There is one table per DTD.
00131  */
00132 
00133 typedef struct _xmlHashTable xmlAttributeTable;
00134 typedef xmlAttributeTable *xmlAttributeTablePtr;
00135 
00136 /*
00137  * ALL IDs attributes are stored in a table.
00138  * There is one table per document.
00139  */
00140 
00141 typedef struct _xmlHashTable xmlIDTable;
00142 typedef xmlIDTable *xmlIDTablePtr;
00143 
00144 /*
00145  * ALL Refs attributes are stored in a table.
00146  * There is one table per document.
00147  */
00148 
00149 typedef struct _xmlHashTable xmlRefTable;
00150 typedef xmlRefTable *xmlRefTablePtr;
00151 
00152 /* Notation */
00153 XMLPUBFUN xmlNotationPtr XMLCALL        
00154         xmlAddNotationDecl  (xmlValidCtxtPtr ctxt,
00155                      xmlDtdPtr dtd,
00156                      const xmlChar *name,
00157                      const xmlChar *PublicID,
00158                      const xmlChar *SystemID);
00159 #ifdef LIBXML_TREE_ENABLED
00160 XMLPUBFUN xmlNotationTablePtr XMLCALL 
00161         xmlCopyNotationTable    (xmlNotationTablePtr table);
00162 #endif /* LIBXML_TREE_ENABLED */
00163 XMLPUBFUN void XMLCALL          
00164         xmlFreeNotationTable    (xmlNotationTablePtr table);
00165 #ifdef LIBXML_OUTPUT_ENABLED
00166 XMLPUBFUN void XMLCALL          
00167         xmlDumpNotationDecl (xmlBufferPtr buf,
00168                      xmlNotationPtr nota);
00169 XMLPUBFUN void XMLCALL          
00170         xmlDumpNotationTable    (xmlBufferPtr buf,
00171                      xmlNotationTablePtr table);
00172 #endif /* LIBXML_OUTPUT_ENABLED */
00173 
00174 /* Element Content */
00175 /* the non Doc version are being deprecated */
00176 XMLPUBFUN xmlElementContentPtr XMLCALL 
00177         xmlNewElementContent    (const xmlChar *name,
00178                      xmlElementContentType type);
00179 XMLPUBFUN xmlElementContentPtr XMLCALL 
00180         xmlCopyElementContent   (xmlElementContentPtr content);
00181 XMLPUBFUN void XMLCALL           
00182         xmlFreeElementContent   (xmlElementContentPtr cur);
00183 /* the new versions with doc argument */
00184 XMLPUBFUN xmlElementContentPtr XMLCALL 
00185         xmlNewDocElementContent (xmlDocPtr doc,
00186                      const xmlChar *name,
00187                      xmlElementContentType type);
00188 XMLPUBFUN xmlElementContentPtr XMLCALL 
00189         xmlCopyDocElementContent(xmlDocPtr doc,
00190                      xmlElementContentPtr content);
00191 XMLPUBFUN void XMLCALL           
00192         xmlFreeDocElementContent(xmlDocPtr doc,
00193                      xmlElementContentPtr cur);
00194 XMLPUBFUN void XMLCALL           
00195         xmlSnprintfElementContent(char *buf,
00196                      int size,
00197                                      xmlElementContentPtr content,
00198                      int englob);
00199 #ifdef LIBXML_OUTPUT_ENABLED
00200 /* DEPRECATED */
00201 XMLPUBFUN void XMLCALL           
00202         xmlSprintfElementContent(char *buf,
00203                                      xmlElementContentPtr content,
00204                      int englob);
00205 #endif /* LIBXML_OUTPUT_ENABLED */
00206 /* DEPRECATED */
00207 
00208 /* Element */
00209 XMLPUBFUN xmlElementPtr XMLCALL    
00210         xmlAddElementDecl   (xmlValidCtxtPtr ctxt,
00211                      xmlDtdPtr dtd,
00212                      const xmlChar *name,
00213                      xmlElementTypeVal type,
00214                      xmlElementContentPtr content);
00215 #ifdef LIBXML_TREE_ENABLED
00216 XMLPUBFUN xmlElementTablePtr XMLCALL 
00217         xmlCopyElementTable (xmlElementTablePtr table);
00218 #endif /* LIBXML_TREE_ENABLED */
00219 XMLPUBFUN void XMLCALL         
00220         xmlFreeElementTable (xmlElementTablePtr table);
00221 #ifdef LIBXML_OUTPUT_ENABLED
00222 XMLPUBFUN void XMLCALL         
00223         xmlDumpElementTable (xmlBufferPtr buf,
00224                      xmlElementTablePtr table);
00225 XMLPUBFUN void XMLCALL         
00226         xmlDumpElementDecl  (xmlBufferPtr buf,
00227                      xmlElementPtr elem);
00228 #endif /* LIBXML_OUTPUT_ENABLED */
00229 
00230 /* Enumeration */
00231 XMLPUBFUN xmlEnumerationPtr XMLCALL 
00232         xmlCreateEnumeration    (const xmlChar *name);
00233 XMLPUBFUN void XMLCALL         
00234         xmlFreeEnumeration  (xmlEnumerationPtr cur);
00235 #ifdef LIBXML_TREE_ENABLED
00236 XMLPUBFUN xmlEnumerationPtr XMLCALL  
00237         xmlCopyEnumeration  (xmlEnumerationPtr cur);
00238 #endif /* LIBXML_TREE_ENABLED */
00239 
00240 /* Attribute */
00241 XMLPUBFUN xmlAttributePtr XMLCALL       
00242         xmlAddAttributeDecl (xmlValidCtxtPtr ctxt,
00243                      xmlDtdPtr dtd,
00244                      const xmlChar *elem,
00245                      const xmlChar *name,
00246                      const xmlChar *ns,
00247                      xmlAttributeType type,
00248                      xmlAttributeDefault def,
00249                      const xmlChar *defaultValue,
00250                      xmlEnumerationPtr tree);
00251 #ifdef LIBXML_TREE_ENABLED
00252 XMLPUBFUN xmlAttributeTablePtr XMLCALL 
00253         xmlCopyAttributeTable  (xmlAttributeTablePtr table);
00254 #endif /* LIBXML_TREE_ENABLED */
00255 XMLPUBFUN void XMLCALL           
00256         xmlFreeAttributeTable  (xmlAttributeTablePtr table);
00257 #ifdef LIBXML_OUTPUT_ENABLED
00258 XMLPUBFUN void XMLCALL           
00259         xmlDumpAttributeTable  (xmlBufferPtr buf,
00260                     xmlAttributeTablePtr table);
00261 XMLPUBFUN void XMLCALL           
00262         xmlDumpAttributeDecl   (xmlBufferPtr buf,
00263                     xmlAttributePtr attr);
00264 #endif /* LIBXML_OUTPUT_ENABLED */
00265 
00266 /* IDs */
00267 XMLPUBFUN xmlIDPtr XMLCALL  
00268         xmlAddID           (xmlValidCtxtPtr ctxt,
00269                     xmlDocPtr doc,
00270                     const xmlChar *value,
00271                     xmlAttrPtr attr);
00272 XMLPUBFUN void XMLCALL      
00273         xmlFreeIDTable         (xmlIDTablePtr table);
00274 XMLPUBFUN xmlAttrPtr XMLCALL    
00275         xmlGetID           (xmlDocPtr doc,
00276                     const xmlChar *ID);
00277 XMLPUBFUN int XMLCALL       
00278         xmlIsID            (xmlDocPtr doc,
00279                     xmlNodePtr elem,
00280                     xmlAttrPtr attr);
00281 XMLPUBFUN int XMLCALL       
00282         xmlRemoveID        (xmlDocPtr doc, 
00283                     xmlAttrPtr attr);
00284 
00285 /* IDREFs */
00286 XMLPUBFUN xmlRefPtr XMLCALL 
00287         xmlAddRef          (xmlValidCtxtPtr ctxt,
00288                     xmlDocPtr doc,
00289                     const xmlChar *value,
00290                     xmlAttrPtr attr);
00291 XMLPUBFUN void XMLCALL      
00292         xmlFreeRefTable        (xmlRefTablePtr table);
00293 XMLPUBFUN int XMLCALL       
00294         xmlIsRef           (xmlDocPtr doc,
00295                     xmlNodePtr elem,
00296                     xmlAttrPtr attr);
00297 XMLPUBFUN int XMLCALL       
00298         xmlRemoveRef           (xmlDocPtr doc, 
00299                     xmlAttrPtr attr);
00300 XMLPUBFUN xmlListPtr XMLCALL    
00301         xmlGetRefs         (xmlDocPtr doc,
00302                     const xmlChar *ID);
00303 
00307 #ifdef LIBXML_VALID_ENABLED
00308 /* Allocate/Release Validation Contexts */
00309 XMLPUBFUN xmlValidCtxtPtr XMLCALL       
00310         xmlNewValidCtxt(void);
00311 XMLPUBFUN void XMLCALL          
00312         xmlFreeValidCtxt(xmlValidCtxtPtr);
00313 
00314 XMLPUBFUN int XMLCALL       
00315         xmlValidateRoot     (xmlValidCtxtPtr ctxt,
00316                      xmlDocPtr doc);
00317 XMLPUBFUN int XMLCALL       
00318         xmlValidateElementDecl  (xmlValidCtxtPtr ctxt,
00319                      xmlDocPtr doc,
00320                                  xmlElementPtr elem);
00321 XMLPUBFUN xmlChar * XMLCALL 
00322         xmlValidNormalizeAttributeValue(xmlDocPtr doc,
00323                      xmlNodePtr elem,
00324                      const xmlChar *name,
00325                      const xmlChar *value);
00326 XMLPUBFUN xmlChar * XMLCALL 
00327         xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
00328                      xmlDocPtr doc,
00329                      xmlNodePtr elem,
00330                      const xmlChar *name,
00331                      const xmlChar *value);
00332 XMLPUBFUN int XMLCALL       
00333         xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
00334                      xmlDocPtr doc,
00335                                  xmlAttributePtr attr);
00336 XMLPUBFUN int XMLCALL       
00337         xmlValidateAttributeValue(xmlAttributeType type,
00338                      const xmlChar *value);
00339 XMLPUBFUN int XMLCALL       
00340         xmlValidateNotationDecl (xmlValidCtxtPtr ctxt,
00341                      xmlDocPtr doc,
00342                                  xmlNotationPtr nota);
00343 XMLPUBFUN int XMLCALL       
00344         xmlValidateDtd      (xmlValidCtxtPtr ctxt,
00345                      xmlDocPtr doc,
00346                      xmlDtdPtr dtd);
00347 XMLPUBFUN int XMLCALL       
00348         xmlValidateDtdFinal (xmlValidCtxtPtr ctxt,
00349                      xmlDocPtr doc);
00350 XMLPUBFUN int XMLCALL       
00351         xmlValidateDocument (xmlValidCtxtPtr ctxt,
00352                      xmlDocPtr doc);
00353 XMLPUBFUN int XMLCALL       
00354         xmlValidateElement  (xmlValidCtxtPtr ctxt,
00355                      xmlDocPtr doc,
00356                      xmlNodePtr elem);
00357 XMLPUBFUN int XMLCALL       
00358         xmlValidateOneElement   (xmlValidCtxtPtr ctxt,
00359                      xmlDocPtr doc,
00360                                  xmlNodePtr elem);
00361 XMLPUBFUN int XMLCALL   
00362         xmlValidateOneAttribute (xmlValidCtxtPtr ctxt,
00363                      xmlDocPtr doc,
00364                      xmlNodePtr elem,
00365                      xmlAttrPtr attr,
00366                      const xmlChar *value);
00367 XMLPUBFUN int XMLCALL       
00368         xmlValidateOneNamespace (xmlValidCtxtPtr ctxt,
00369                      xmlDocPtr doc,
00370                      xmlNodePtr elem,
00371                      const xmlChar *prefix,
00372                      xmlNsPtr ns,
00373                      const xmlChar *value);
00374 XMLPUBFUN int XMLCALL       
00375         xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
00376                      xmlDocPtr doc);
00377 #endif /* LIBXML_VALID_ENABLED */
00378 
00379 #if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
00380 XMLPUBFUN int XMLCALL       
00381         xmlValidateNotationUse  (xmlValidCtxtPtr ctxt,
00382                      xmlDocPtr doc,
00383                      const xmlChar *notationName);
00384 #endif /* LIBXML_VALID_ENABLED or LIBXML_SCHEMAS_ENABLED */
00385 
00386 XMLPUBFUN int XMLCALL       
00387         xmlIsMixedElement   (xmlDocPtr doc,
00388                      const xmlChar *name);
00389 XMLPUBFUN xmlAttributePtr XMLCALL   
00390         xmlGetDtdAttrDesc   (xmlDtdPtr dtd,
00391                      const xmlChar *elem,
00392                      const xmlChar *name);
00393 XMLPUBFUN xmlAttributePtr XMLCALL   
00394         xmlGetDtdQAttrDesc  (xmlDtdPtr dtd,
00395                      const xmlChar *elem,
00396                      const xmlChar *name,
00397                      const xmlChar *prefix);
00398 XMLPUBFUN xmlNotationPtr XMLCALL    
00399         xmlGetDtdNotationDesc   (xmlDtdPtr dtd,
00400                      const xmlChar *name);
00401 XMLPUBFUN xmlElementPtr XMLCALL 
00402         xmlGetDtdQElementDesc   (xmlDtdPtr dtd,
00403                      const xmlChar *name,
00404                      const xmlChar *prefix);
00405 XMLPUBFUN xmlElementPtr XMLCALL 
00406         xmlGetDtdElementDesc    (xmlDtdPtr dtd,
00407                      const xmlChar *name);
00408 
00409 #ifdef LIBXML_VALID_ENABLED
00410 
00411 XMLPUBFUN int XMLCALL       
00412         xmlValidGetPotentialChildren(xmlElementContent *ctree,
00413                      const xmlChar **names,
00414                      int *len,
00415                      int max);
00416 
00417 XMLPUBFUN int XMLCALL       
00418         xmlValidGetValidElements(xmlNode *prev,
00419                      xmlNode *next,
00420                      const xmlChar **names,
00421                      int max);
00422 XMLPUBFUN int XMLCALL       
00423         xmlValidateNameValue    (const xmlChar *value);
00424 XMLPUBFUN int XMLCALL       
00425         xmlValidateNamesValue   (const xmlChar *value);
00426 XMLPUBFUN int XMLCALL       
00427         xmlValidateNmtokenValue (const xmlChar *value);
00428 XMLPUBFUN int XMLCALL       
00429         xmlValidateNmtokensValue(const xmlChar *value);
00430 
00431 #ifdef LIBXML_REGEXP_ENABLED
00432 /*
00433  * Validation based on the regexp support
00434  */
00435 XMLPUBFUN int XMLCALL       
00436         xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
00437                      xmlElementPtr elem);
00438 
00439 XMLPUBFUN int XMLCALL       
00440         xmlValidatePushElement  (xmlValidCtxtPtr ctxt,
00441                      xmlDocPtr doc,
00442                      xmlNodePtr elem,
00443                      const xmlChar *qname);
00444 XMLPUBFUN int XMLCALL       
00445         xmlValidatePushCData    (xmlValidCtxtPtr ctxt,
00446                      const xmlChar *data,
00447                      int len);
00448 XMLPUBFUN int XMLCALL       
00449         xmlValidatePopElement   (xmlValidCtxtPtr ctxt,
00450                      xmlDocPtr doc,
00451                      xmlNodePtr elem,
00452                      const xmlChar *qname);
00453 #endif /* LIBXML_REGEXP_ENABLED */
00454 #endif /* LIBXML_VALID_ENABLED */
00455 #ifdef __cplusplus
00456 }
00457 #endif
00458 #endif /* __XML_VALID_H__ */

Generated on Fri May 25 2012 04:31:44 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.