ReactOS  0.4.15-dev-5499-g1341c38
parser.h
Go to the documentation of this file.
1 /*
2  * Summary: the core parser module
3  * Description: Interfaces, constants and types related to the XML parser
4  *
5  * Copy: See Copyright for the status of this software.
6  *
7  * Author: Daniel Veillard
8  */
9 
10 #ifndef __XML_PARSER_H__
11 #define __XML_PARSER_H__
12 
13 #include <libxml/xmlversion.h>
14 #include <libxml/tree.h>
15 #include <libxml/dict.h>
16 #include <libxml/hash.h>
17 #include <libxml/valid.h>
18 #include <libxml/entities.h>
19 #include <libxml/xmlerror.h>
20 #include <libxml/xmlstring.h>
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
31 #define XML_DEFAULT_VERSION "1.0"
32 
51 
53  /* Input buffer */
54  xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */
55 
56  const char *filename; /* The file analyzed, if any */
57  const char *directory; /* the directory/base of the file */
58  const xmlChar *base; /* Base of the array to parse */
59  const xmlChar *cur; /* Current char being parsed */
60  const xmlChar *end; /* end of the array to parse */
61  int length; /* length if known */
62  int line; /* Current line */
63  int col; /* Current column */
64  /*
65  * NOTE: consumed is only tested for equality in the parser code,
66  * so even if there is an overflow this should not give troubles
67  * for parsing very large instances.
68  */
69  unsigned long consumed; /* How many xmlChars already consumed */
70  xmlParserInputDeallocate free; /* function to deallocate the base */
71  const xmlChar *encoding; /* the encoding string for entity */
72  const xmlChar *version; /* the version string for entity */
73  int standalone; /* Was that entity marked standalone */
74  int id; /* an unique identifier for the entity */
75 };
76 
86 
88  const struct _xmlNode* node;
89  /* Position & line # that text that created the node begins & ends on */
90  unsigned long begin_pos;
91  unsigned long begin_line;
92  unsigned long end_pos;
93  unsigned long end_line;
94 };
95 
99  unsigned long maximum;
100  unsigned long length;
102 };
103 
110 typedef enum {
111  XML_PARSER_EOF = -1, /* nothing is to be parsed */
112  XML_PARSER_START = 0, /* nothing has been parsed */
113  XML_PARSER_MISC, /* Misc* before int subset */
114  XML_PARSER_PI, /* Within a processing instruction */
115  XML_PARSER_DTD, /* within some DTD content */
116  XML_PARSER_PROLOG, /* Misc* after internal subset */
117  XML_PARSER_COMMENT, /* within a comment */
118  XML_PARSER_START_TAG, /* within a start tag */
119  XML_PARSER_CONTENT, /* within the content */
120  XML_PARSER_CDATA_SECTION, /* within a CDATA section */
121  XML_PARSER_END_TAG, /* within a closing tag */
122  XML_PARSER_ENTITY_DECL, /* within an entity declaration */
123  XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */
124  XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */
125  XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */
126  XML_PARSER_EPILOG, /* the Misc* after the last end tag */
127  XML_PARSER_IGNORE, /* within an IGNORED section */
128  XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */
130 
137 #define XML_DETECT_IDS 2
138 
146 #define XML_COMPLETE_ATTRS 4
147 
154 #define XML_SKIP_IDS 8
155 
161 typedef enum {
168 } xmlParserMode;
169 
170 typedef struct _xmlStartTag xmlStartTag;
171 
185  struct _xmlSAXHandler *sax; /* The SAX handler */
186  void *userData; /* For SAX interface only, used by DOM build */
187  xmlDocPtr myDoc; /* the document being built */
188  int wellFormed; /* is the document well formed */
189  int replaceEntities; /* shall we replace entities ? */
190  const xmlChar *version; /* the XML version string */
191  const xmlChar *encoding; /* the declared encoding, if any */
192  int standalone; /* standalone document */
193  int html; /* an HTML(1) document
194  * 3 is HTML after <head>
195  * 10 is HTML after <body>
196  */
197 
198  /* Input stream stack */
199  xmlParserInputPtr input; /* Current input stream */
200  int inputNr; /* Number of current input streams */
201  int inputMax; /* Max number of input streams */
202  xmlParserInputPtr *inputTab; /* stack of inputs */
203 
204  /* Node analysis stack only used for DOM building */
205  xmlNodePtr node; /* Current parsed Node */
206  int nodeNr; /* Depth of the parsing stack */
207  int nodeMax; /* Max depth of the parsing stack */
208  xmlNodePtr *nodeTab; /* array of nodes */
209 
210  int record_info; /* Whether node info should be kept */
211  xmlParserNodeInfoSeq node_seq; /* info about each node parsed */
212 
213  int errNo; /* error code */
214 
215  int hasExternalSubset; /* reference and external subset */
216  int hasPErefs; /* the internal subset has PE refs */
217  int external; /* are we parsing an external entity */
218 
219  int valid; /* is the document valid */
220  int validate; /* shall we try to validate ? */
221  xmlValidCtxt vctxt; /* The validity context */
222 
223  xmlParserInputState instate; /* current type of input */
224  int token; /* next char look-ahead */
225 
226  char *directory; /* the data directory */
227 
228  /* Node name stack */
229  const xmlChar *name; /* Current parsed Node */
230  int nameNr; /* Depth of the parsing stack */
231  int nameMax; /* Max depth of the parsing stack */
232  const xmlChar * *nameTab; /* array of nodes */
233 
234  long nbChars; /* unused */
235  long checkIndex; /* used by progressive parsing lookup */
236  int keepBlanks; /* ugly but ... */
237  int disableSAX; /* SAX callbacks are disabled */
238  int inSubset; /* Parsing is in int 1/ext 2 subset */
239  const xmlChar * intSubName; /* name of subset */
240  xmlChar * extSubURI; /* URI of external subset */
241  xmlChar * extSubSystem; /* SYSTEM ID of external subset */
242 
243  /* xml:space values */
244  int * space; /* Should the parser preserve spaces */
245  int spaceNr; /* Depth of the parsing stack */
246  int spaceMax; /* Max depth of the parsing stack */
247  int * spaceTab; /* array of space infos */
248 
249  int depth; /* to prevent entity substitution loops */
250  xmlParserInputPtr entity; /* used to check entities boundaries */
251  int charset; /* encoding of the in-memory content
252  actually an xmlCharEncoding */
253  int nodelen; /* Those two fields are there to */
254  int nodemem; /* Speed up large node parsing */
255  int pedantic; /* signal pedantic warnings */
256  void *_private; /* For user data, libxml won't touch it */
257 
258  int loadsubset; /* should the external subset be loaded */
259  int linenumbers; /* set line number in element content */
260  void *catalogs; /* document's own catalog */
261  int recovery; /* run in recovery mode */
262  int progressive; /* is this a progressive parsing */
263  xmlDictPtr dict; /* dictionary for the parser */
264  const xmlChar * *atts; /* array for the attributes callbacks */
265  int maxatts; /* the size of the array */
266  int docdict; /* use strings from dict to build tree */
267 
268  /*
269  * pre-interned strings
270  */
271  const xmlChar *str_xml;
274 
275  /*
276  * Everything below is used only by the new SAX mode
277  */
278  int sax2; /* operating in the new SAX mode */
279  int nsNr; /* the number of inherited namespaces */
280  int nsMax; /* the size of the arrays */
281  const xmlChar * *nsTab; /* the array of prefix/namespace name */
282  int *attallocs; /* which attribute were allocated */
283  xmlStartTag *pushTab; /* array of data for push */
284  xmlHashTablePtr attsDefault; /* defaulted attributes if any */
285  xmlHashTablePtr attsSpecial; /* non-CDATA attributes if any */
286  int nsWellFormed; /* is the document XML Namespace okay */
287  int options; /* Extra options */
288 
289  /*
290  * Those fields are needed only for streaming parsing so far
291  */
292  int dictNames; /* Use dictionary names for the tree */
293  int freeElemsNr; /* number of freed element nodes */
294  xmlNodePtr freeElems; /* List of freed element nodes */
295  int freeAttrsNr; /* number of freed attributes nodes */
296  xmlAttrPtr freeAttrs; /* List of freed attributes nodes */
297 
298  /*
299  * the complete error information for the last error.
300  */
302  xmlParserMode parseMode; /* the parser mode */
303  unsigned long nbentities; /* number of entities references */
304  unsigned long sizeentities; /* size of parsed entities */
305 
306  /* for use by HTML non-recursive parser */
307  xmlParserNodeInfo *nodeInfo; /* Current NodeInfo */
308  int nodeInfoNr; /* Depth of the parsing stack */
309  int nodeInfoMax; /* Max depth of the parsing stack */
310  xmlParserNodeInfo *nodeInfoTab; /* array of nodeInfos */
311 
312  int input_id; /* we need to label inputs */
313  unsigned long sizeentcopy; /* volume of entity copy */
314 };
315 
322  const xmlChar *(*getPublicId)(void *ctx);
323  const xmlChar *(*getSystemId)(void *ctx);
324  int (*getLineNumber)(void *ctx);
326 };
327 
351  const xmlChar *publicId,
352  const xmlChar *systemId);
362 typedef void (*internalSubsetSAXFunc) (void *ctx,
363  const xmlChar *name,
364  const xmlChar *ExternalID,
365  const xmlChar *SystemID);
375 typedef void (*externalSubsetSAXFunc) (void *ctx,
376  const xmlChar *name,
377  const xmlChar *ExternalID,
378  const xmlChar *SystemID);
389  const xmlChar *name);
400  const xmlChar *name);
412 typedef void (*entityDeclSAXFunc) (void *ctx,
413  const xmlChar *name,
414  int type,
415  const xmlChar *publicId,
416  const xmlChar *systemId,
417  xmlChar *content);
427 typedef void (*notationDeclSAXFunc)(void *ctx,
428  const xmlChar *name,
429  const xmlChar *publicId,
430  const xmlChar *systemId);
443 typedef void (*attributeDeclSAXFunc)(void *ctx,
444  const xmlChar *elem,
445  const xmlChar *fullname,
446  int type,
447  int def,
448  const xmlChar *defaultValue,
459 typedef void (*elementDeclSAXFunc)(void *ctx,
460  const xmlChar *name,
461  int type,
474  const xmlChar *name,
475  const xmlChar *publicId,
476  const xmlChar *systemId,
477  const xmlChar *notationName);
487  xmlSAXLocatorPtr loc);
494 typedef void (*startDocumentSAXFunc) (void *ctx);
501 typedef void (*endDocumentSAXFunc) (void *ctx);
510 typedef void (*startElementSAXFunc) (void *ctx,
511  const xmlChar *name,
512  const xmlChar **atts);
520 typedef void (*endElementSAXFunc) (void *ctx,
521  const xmlChar *name);
533 typedef void (*attributeSAXFunc) (void *ctx,
534  const xmlChar *name,
535  const xmlChar *value);
543 typedef void (*referenceSAXFunc) (void *ctx,
544  const xmlChar *name);
553 typedef void (*charactersSAXFunc) (void *ctx,
554  const xmlChar *ch,
555  int len);
566  const xmlChar *ch,
567  int len);
577  const xmlChar *target,
578  const xmlChar *data);
586 typedef void (*commentSAXFunc) (void *ctx,
587  const xmlChar *value);
597  void *ctx,
598  const xmlChar *value,
599  int len);
608 typedef void (XMLCDECL *warningSAXFunc) (void *ctx,
609  const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
618 typedef void (XMLCDECL *errorSAXFunc) (void *ctx,
619  const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
630 typedef void (XMLCDECL *fatalErrorSAXFunc) (void *ctx,
631  const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
640 typedef int (*isStandaloneSAXFunc) (void *ctx);
649 typedef int (*hasInternalSubsetSAXFunc) (void *ctx);
650 
659 typedef int (*hasExternalSubsetSAXFunc) (void *ctx);
660 
661 /************************************************************************
662  * *
663  * The SAX version 2 API extensions *
664  * *
665  ************************************************************************/
671 #define XML_SAX2_MAGIC 0xDEEDBEAF
672 
692 typedef void (*startElementNsSAX2Func) (void *ctx,
693  const xmlChar *localname,
694  const xmlChar *prefix,
695  const xmlChar *URI,
696  int nb_namespaces,
697  const xmlChar **namespaces,
698  int nb_attributes,
699  int nb_defaulted,
700  const xmlChar **attributes);
701 
713 typedef void (*endElementNsSAX2Func) (void *ctx,
714  const xmlChar *localname,
715  const xmlChar *prefix,
716  const xmlChar *URI);
717 
718 
742  errorSAXFunc error;
743  fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
747  unsigned int initialized;
748  /* The following fields are extensions available only on version 2 */
749  void *_private;
752  xmlStructuredErrorFunc serror;
753 };
754 
755 /*
756  * SAX Version 1
757  */
783  errorSAXFunc error;
784  fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
788  unsigned int initialized;
789 };
790 
791 
802 typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL,
803  const char *ID,
805 
806 #ifdef __cplusplus
807 }
808 #endif
809 
810 #include <libxml/encoding.h>
811 #include <libxml/xmlIO.h>
812 #include <libxml/globals.h>
813 
814 #ifdef __cplusplus
815 extern "C" {
816 #endif
817 
818 
819 /*
820  * Init/Cleanup
821  */
822 XMLPUBFUN void XMLCALL
823  xmlInitParser (void);
824 XMLPUBFUN void XMLCALL
825  xmlCleanupParser (void);
826 
827 /*
828  * Input functions
829  */
830 XMLPUBFUN int XMLCALL
832  int len);
833 XMLPUBFUN int XMLCALL
835  int len);
836 
837 /*
838  * Basic parsing Interfaces
839  */
840 #ifdef LIBXML_SAX1_ENABLED
842  xmlParseDoc (const xmlChar *cur);
844  xmlParseFile (const char *filename);
846  xmlParseMemory (const char *buffer,
847  int size);
848 #endif /* LIBXML_SAX1_ENABLED */
849 XMLPUBFUN int XMLCALL
851 XMLPUBFUN int XMLCALL
853 XMLPUBFUN void XMLCALL
855 XMLPUBFUN int XMLCALL
857 XMLPUBFUN int XMLCALL
859 
860 #ifdef LIBXML_SAX1_ENABLED
861 /*
862  * Recovery mode
863  */
865  xmlRecoverDoc (const xmlChar *cur);
867  xmlRecoverMemory (const char *buffer,
868  int size);
870  xmlRecoverFile (const char *filename);
871 #endif /* LIBXML_SAX1_ENABLED */
872 
873 /*
874  * Less common routines and SAX interfaces
875  */
876 XMLPUBFUN int XMLCALL
878 XMLPUBFUN int XMLCALL
880 #ifdef LIBXML_SAX1_ENABLED
881 XMLPUBFUN int XMLCALL
882  xmlSAXUserParseFile (xmlSAXHandlerPtr sax,
883  void *user_data,
884  const char *filename);
885 XMLPUBFUN int XMLCALL
886  xmlSAXUserParseMemory (xmlSAXHandlerPtr sax,
887  void *user_data,
888  const char *buffer,
889  int size);
891  xmlSAXParseDoc (xmlSAXHandlerPtr sax,
892  const xmlChar *cur,
893  int recovery);
895  xmlSAXParseMemory (xmlSAXHandlerPtr sax,
896  const char *buffer,
897  int size,
898  int recovery);
900  xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax,
901  const char *buffer,
902  int size,
903  int recovery,
904  void *data);
906  xmlSAXParseFile (xmlSAXHandlerPtr sax,
907  const char *filename,
908  int recovery);
910  xmlSAXParseFileWithData (xmlSAXHandlerPtr sax,
911  const char *filename,
912  int recovery,
913  void *data);
915  xmlSAXParseEntity (xmlSAXHandlerPtr sax,
916  const char *filename);
918  xmlParseEntity (const char *filename);
919 #endif /* LIBXML_SAX1_ENABLED */
920 
921 #ifdef LIBXML_VALID_ENABLED
923  xmlSAXParseDTD (xmlSAXHandlerPtr sax,
924  const xmlChar *ExternalID,
925  const xmlChar *SystemID);
927  xmlParseDTD (const xmlChar *ExternalID,
928  const xmlChar *SystemID);
930  xmlIOParseDTD (xmlSAXHandlerPtr sax,
932  xmlCharEncoding enc);
933 #endif /* LIBXML_VALID_ENABLE */
934 #ifdef LIBXML_SAX1_ENABLED
935 XMLPUBFUN int XMLCALL
936  xmlParseBalancedChunkMemory(xmlDocPtr doc,
938  void *user_data,
939  int depth,
940  const xmlChar *string,
941  xmlNodePtr *lst);
942 #endif /* LIBXML_SAX1_ENABLED */
945  const char *data,
946  int datalen,
947  int options,
948  xmlNodePtr *lst);
949 #ifdef LIBXML_SAX1_ENABLED
950 XMLPUBFUN int XMLCALL
951  xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc,
953  void *user_data,
954  int depth,
955  const xmlChar *string,
956  xmlNodePtr *lst,
957  int recover);
958 XMLPUBFUN int XMLCALL
959  xmlParseExternalEntity (xmlDocPtr doc,
961  void *user_data,
962  int depth,
963  const xmlChar *URL,
964  const xmlChar *ID,
965  xmlNodePtr *lst);
966 #endif /* LIBXML_SAX1_ENABLED */
967 XMLPUBFUN int XMLCALL
969  const xmlChar *URL,
970  const xmlChar *ID,
971  xmlNodePtr *lst);
972 
973 /*
974  * Parser contexts handling.
975  */
977  xmlNewParserCtxt (void);
978 XMLPUBFUN int XMLCALL
980 XMLPUBFUN void XMLCALL
982 XMLPUBFUN void XMLCALL
984 #ifdef LIBXML_SAX1_ENABLED
985 XMLPUBFUN void XMLCALL
986  xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt,
987  const xmlChar* buffer,
988  const char *filename);
989 #endif /* LIBXML_SAX1_ENABLED */
992 
993 #ifdef LIBXML_LEGACY_ENABLED
994 /*
995  * Reading/setting optional parsing features.
996  */
998 XMLPUBFUN int XMLCALL
999  xmlGetFeaturesList (int *len,
1000  const char **result);
1002 XMLPUBFUN int XMLCALL
1003  xmlGetFeature (xmlParserCtxtPtr ctxt,
1004  const char *name,
1005  void *result);
1007 XMLPUBFUN int XMLCALL
1008  xmlSetFeature (xmlParserCtxtPtr ctxt,
1009  const char *name,
1010  void *value);
1011 #endif /* LIBXML_LEGACY_ENABLED */
1012 
1013 #ifdef LIBXML_PUSH_ENABLED
1014 /*
1015  * Interfaces for the Push mode.
1016  */
1018  xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
1019  void *user_data,
1020  const char *chunk,
1021  int size,
1022  const char *filename);
1023 XMLPUBFUN int XMLCALL
1024  xmlParseChunk (xmlParserCtxtPtr ctxt,
1025  const char *chunk,
1026  int size,
1027  int terminate);
1028 #endif /* LIBXML_PUSH_ENABLED */
1029 
1030 /*
1031  * Special I/O mode.
1032  */
1033 
1036  void *user_data,
1037  xmlInputReadCallback ioread,
1038  xmlInputCloseCallback ioclose,
1039  void *ioctx,
1040  xmlCharEncoding enc);
1041 
1045  xmlCharEncoding enc);
1046 
1047 /*
1048  * Node infos.
1049  */
1052  const xmlNodePtr node);
1053 XMLPUBFUN void XMLCALL
1055 XMLPUBFUN void XMLCALL
1057 XMLPUBFUN unsigned long XMLCALL
1059  const xmlNodePtr node);
1060 XMLPUBFUN void XMLCALL
1062  const xmlParserNodeInfoPtr info);
1063 
1064 /*
1065  * External entities handling actually implemented in xmlIO.
1066  */
1067 
1068 XMLPUBFUN void XMLCALL
1073  xmlLoadExternalEntity (const char *URL,
1074  const char *ID,
1075  xmlParserCtxtPtr ctxt);
1076 
1077 /*
1078  * Index lookup, actually implemented in the encoding module
1079  */
1080 XMLPUBFUN long XMLCALL
1082 
1083 /*
1084  * New set of simpler/more flexible APIs
1085  */
1092 typedef enum {
1093  XML_PARSE_RECOVER = 1<<0, /* recover on errors */
1094  XML_PARSE_NOENT = 1<<1, /* substitute entities */
1095  XML_PARSE_DTDLOAD = 1<<2, /* load the external subset */
1096  XML_PARSE_DTDATTR = 1<<3, /* default DTD attributes */
1097  XML_PARSE_DTDVALID = 1<<4, /* validate with the DTD */
1098  XML_PARSE_NOERROR = 1<<5, /* suppress error reports */
1099  XML_PARSE_NOWARNING = 1<<6, /* suppress warning reports */
1100  XML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */
1101  XML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */
1102  XML_PARSE_SAX1 = 1<<9, /* use the SAX1 interface internally */
1103  XML_PARSE_XINCLUDE = 1<<10,/* Implement XInclude substitution */
1104  XML_PARSE_NONET = 1<<11,/* Forbid network access */
1105  XML_PARSE_NODICT = 1<<12,/* Do not reuse the context dictionary */
1106  XML_PARSE_NSCLEAN = 1<<13,/* remove redundant namespaces declarations */
1107  XML_PARSE_NOCDATA = 1<<14,/* merge CDATA as text nodes */
1108  XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */
1109  XML_PARSE_COMPACT = 1<<16,/* compact small text nodes; no modification of
1110  the tree allowed afterwards (will possibly
1111  crash if you try to modify the tree) */
1112  XML_PARSE_OLD10 = 1<<17,/* parse using XML-1.0 before update 5 */
1113  XML_PARSE_NOBASEFIX = 1<<18,/* do not fixup XINCLUDE xml:base uris */
1114  XML_PARSE_HUGE = 1<<19,/* relax any hardcoded limit from the parser */
1115  XML_PARSE_OLDSAX = 1<<20,/* parse using SAX2 interface before 2.7.0 */
1116  XML_PARSE_IGNORE_ENC= 1<<21,/* ignore internal document encoding hint */
1117  XML_PARSE_BIG_LINES = 1<<22 /* Store big lines numbers in text PSVI field */
1118 } xmlParserOption;
1119 
1120 XMLPUBFUN void XMLCALL
1122 XMLPUBFUN int XMLCALL
1124  const char *chunk,
1125  int size,
1126  const char *filename,
1127  const char *encoding);
1128 XMLPUBFUN int XMLCALL
1130  int options);
1132  xmlReadDoc (const xmlChar *cur,
1133  const char *URL,
1134  const char *encoding,
1135  int options);
1137  xmlReadFile (const char *URL,
1138  const char *encoding,
1139  int options);
1141  xmlReadMemory (const char *buffer,
1142  int size,
1143  const char *URL,
1144  const char *encoding,
1145  int options);
1147  xmlReadFd (int fd,
1148  const char *URL,
1149  const char *encoding,
1150  int options);
1153  xmlInputCloseCallback ioclose,
1154  void *ioctx,
1155  const char *URL,
1156  const char *encoding,
1157  int options);
1160  const xmlChar *cur,
1161  const char *URL,
1162  const char *encoding,
1163  int options);
1166  const char *filename,
1167  const char *encoding,
1168  int options);
1171  const char *buffer,
1172  int size,
1173  const char *URL,
1174  const char *encoding,
1175  int options);
1178  int fd,
1179  const char *URL,
1180  const char *encoding,
1181  int options);
1184  xmlInputReadCallback ioread,
1185  xmlInputCloseCallback ioclose,
1186  void *ioctx,
1187  const char *URL,
1188  const char *encoding,
1189  int options);
1190 
1191 /*
1192  * Library wide options
1193  */
1201 typedef enum {
1235  XML_WITH_NONE = 99999 /* just to be sure of allocation size */
1236 } xmlFeature;
1237 
1238 XMLPUBFUN int XMLCALL
1240 
1241 #ifdef __cplusplus
1242 }
1243 #endif
1244 #endif /* __XML_PARSER_H__ */
internalSubsetSAXFunc internalSubset
Definition: parser.h:720
XMLPUBFUN xmlParserInputPtr XMLCALL xmlNewIOInputStream(xmlParserCtxtPtr ctxt, xmlParserInputBufferPtr input, xmlCharEncoding enc)
xmlParserInput * xmlParserInputPtr
Definition: tree.h:36
INTERNETFEATURELIST feature
Definition: misc.c:1719
processingInstructionSAXFunc processingInstruction
Definition: parser.h:739
XMLPUBFUN int XMLCALL xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL, const xmlChar *ID, xmlNodePtr *lst)
Definition: parser.c:12968
void(XMLCDECL *) typedef const cha LIBXML_ATTR_FORMAT)(2, 3)
Definition: parser.h:619
Definition: pdh_main.c:93
int(* hasInternalSubsetSAXFunc)(void *ctx)
Definition: parser.h:649
xmlParserInputState instate
Definition: parser.h:223
unsigned long sizeentities
Definition: parser.h:304
XMLPUBFUN void XMLCALL xmlSetExternalEntityLoader(xmlExternalEntityLoader f)
void(* setDocumentLocatorSAXFunc)(void *ctx, xmlSAXLocatorPtr loc)
Definition: parser.h:486
XMLPUBFUN xmlDocPtr XMLCALL xmlReadDoc(const xmlChar *cur, const char *URL, const char *encoding, int options)
Definition: parser.c:15204
int * attallocs
Definition: parser.h:282
int * spaceTab
Definition: parser.h:247
void(* startElementNsSAX2Func)(void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI, int nb_namespaces, const xmlChar **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes)
Definition: parser.h:692
#define XML_DEPRECATED
Definition: xmlversion.h:494
void(* endElementSAXFunc)(void *ctx, const xmlChar *name)
Definition: parser.h:520
xmlChar * extSubURI
Definition: parser.h:240
endElementNsSAX2Func endElementNs
Definition: parser.h:751
GLuint64EXT * result
Definition: glext.h:11304
xmlParserInputPtr * inputTab
Definition: parser.h:202
void(* unparsedEntityDeclSAXFunc)(void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId, const xmlChar *notationName)
Definition: parser.h:473
xmlFeature
Definition: parser.h:1201
XMLPUBFUN void XMLCALL xmlInitParser(void)
Definition: parser.c:14676
XMLPUBFUN xmlDocPtr XMLCALL xmlReadFd(int fd, const char *URL, const char *encoding, int options)
Definition: parser.c:15278
void(* cdataBlockSAXFunc)(void *ctx, const xmlChar *value, int len)
Definition: parser.h:596
void(* endDocumentSAXFunc)(void *ctx)
Definition: parser.h:501
struct _tree tree
XMLPUBFUN void XMLCALL xmlCtxtReset(xmlParserCtxtPtr ctxt)
Definition: parser.c:14801
XMLPUBFUN void XMLCALL xmlClearParserCtxt(xmlParserCtxtPtr ctxt)
errorSAXFunc error
Definition: parser.h:783
long checkIndex
Definition: parser.h:235
int pedantic
Definition: parser.h:255
endDocumentSAXFunc endDocument
Definition: parser.h:733
int nsWellFormed
Definition: parser.h:286
setDocumentLocatorSAXFunc setDocumentLocator
Definition: parser.h:731
XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateDocParserCtxt(const xmlChar *cur)
Definition: parser.c:14542
const xmlChar * cur
Definition: parser.h:59
static char * encoding
Definition: xmllint.c:155
void(XMLCDECL * warningSAXFunc)(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
Definition: parser.h:608
XMLPUBFUN int XMLCALL xmlParserInputRead(xmlParserInputPtr in, int len)
xmlParserInputDeallocate free
Definition: parser.h:70
entityDeclSAXFunc entityDecl
Definition: parser.h:726
attributeDeclSAXFunc attributeDecl
Definition: parser.h:769
xmlAttrPtr freeAttrs
Definition: parser.h:296
int(* hasExternalSubsetSAXFunc)(void *ctx)
Definition: parser.h:659
XMLPUBFUN void XMLCALL xmlFreeParserCtxt(xmlParserCtxtPtr ctxt)
GLuint buffer
Definition: glext.h:5915
xmlNodePtr * nodeTab
Definition: parser.h:208
static int fd
Definition: io.c:51
xmlCharEncoding
Definition: encoding.h:56
XMLPUBFUN xmlExternalEntityLoader XMLCALL xmlGetExternalEntityLoader(void)
#define XMLPUBFUN
Definition: xmlexports.h:61
XMLPUBFUN xmlDocPtr XMLCALL xmlCtxtReadFd(xmlParserCtxtPtr ctxt, int fd, const char *URL, const char *encoding, int options)
Definition: parser.c:15471
fatalErrorSAXFunc fatalError
Definition: parser.h:784
hasInternalSubsetSAXFunc hasInternalSubset
Definition: parser.h:763
elementDeclSAXFunc elementDecl
Definition: parser.h:770
XMLPUBFUN xmlDocPtr XMLCALL xmlReadMemory(const char *buffer, int size, const char *URL, const char *encoding, int options)
Definition: parser.c:15253
externalSubsetSAXFunc externalSubset
Definition: parser.h:787
XMLPUBFUN void XMLCALL xmlStopParser(xmlParserCtxtPtr ctxt)
Definition: parser.c:12583
void(* entityDeclSAXFunc)(void *ctx, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content)
Definition: parser.h:412
int const JOCTET unsigned int datalen
Definition: jpeglib.h:1030
const char * filename
Definition: ioapi.h:137
void(XMLCDECL * fatalErrorSAXFunc)(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
Definition: parser.h:630
warningSAXFunc warning
Definition: parser.h:741
int external
Definition: parser.h:217
unsigned long begin_line
Definition: parser.h:91
long nbChars
Definition: parser.h:234
XMLPUBFUN xmlDocPtr XMLCALL xmlCtxtReadIO(xmlParserCtxtPtr ctxt, xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, const char *URL, const char *encoding, int options)
Definition: parser.c:15515
const xmlChar * version
Definition: parser.h:72
resolveEntitySAXFunc resolveEntity
Definition: parser.h:724
void(* attributeSAXFunc)(void *ctx, const xmlChar *name, const xmlChar *value)
Definition: parser.h:533
const xmlChar * base
Definition: parser.h:58
startElementSAXFunc startElement
Definition: parser.h:775
XMLPUBFUN unsigned long XMLCALL xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq, const xmlNodePtr node)
const xmlChar * name
Definition: parser.h:229
static int sax
Definition: xmllint.c:193
Definition: tree.h:406
referenceSAXFunc reference
Definition: parser.h:777
void(* notationDeclSAXFunc)(void *ctx, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId)
Definition: parser.h:427
int input_id
Definition: parser.h:312
unsigned int initialized
Definition: parser.h:747
void(* externalSubsetSAXFunc)(void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID)
Definition: parser.h:375
xmlParserInputPtr input
Definition: parser.h:199
int spaceMax
Definition: parser.h:246
int disableSAX
Definition: parser.h:237
int nodeInfoMax
Definition: parser.h:309
int recovery
Definition: parser.h:261
isStandaloneSAXFunc isStandalone
Definition: parser.h:721
unsigned long begin_pos
Definition: parser.h:90
XMLPUBFUN xmlDocPtr XMLCALL xmlReadFile(const char *URL, const char *encoding, int options)
Definition: parser.c:15229
const xmlChar * str_xmlns
Definition: parser.h:272
xmlParserNodeInfo * buffer
Definition: parser.h:101
endElementSAXFunc endElement
Definition: parser.h:776
xmlError lastError
Definition: parser.h:301
startElementSAXFunc startElement
Definition: parser.h:734
XMLPUBFUN int XMLCALL xmlLineNumbersDefault(int val)
int standalone
Definition: parser.h:192
void(* startDocumentSAXFunc)(void *ctx)
Definition: parser.h:494
static size_t elem
Definition: string.c:68
resolveEntitySAXFunc resolveEntity
Definition: parser.h:765
const xmlChar * str_xml
Definition: parser.h:271
void(* processingInstructionSAXFunc)(void *ctx, const xmlChar *target, const xmlChar *data)
Definition: parser.h:576
void(* ignorableWhitespaceSAXFunc)(void *ctx, const xmlChar *ch, int len)
Definition: parser.h:565
int linenumbers
Definition: parser.h:259
void(* attributeDeclSAXFunc)(void *ctx, const xmlChar *elem, const xmlChar *fullname, int type, int def, const xmlChar *defaultValue, xmlEnumerationPtr tree)
Definition: parser.h:443
content
Definition: atl_ax.c:993
int standalone
Definition: parser.h:73
attributeDeclSAXFunc attributeDecl
Definition: parser.h:728
unsigned long consumed
Definition: parser.h:69
int replaceEntities
Definition: parser.h:189
XMLPUBFUN void XMLCALL xmlClearNodeInfoSeq(xmlParserNodeInfoSeqPtr seq)
const WCHAR * str
xmlHashTablePtr attsDefault
Definition: parser.h:284
xmlParserInputState
Definition: parser.h:110
void(* internalSubsetSAXFunc)(void *ctx, const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID)
Definition: parser.h:362
void * _private
Definition: parser.h:256
void(* commentSAXFunc)(void *ctx, const xmlChar *value)
Definition: parser.h:586
cdataBlockSAXFunc cdataBlock
Definition: parser.h:745
int(XMLCALL * xmlInputCloseCallback)(void *context)
Definition: xmlIO.h:63
endElementSAXFunc endElement
Definition: parser.h:735
xmlChar * extSubSystem
Definition: parser.h:241
void(XMLCDECL *) typede void)(XMLCDECL *errorSAXFunc)(void *ctx
Definition: parser.h:618
xmlDictPtr dict
Definition: parser.h:263
setDocumentLocatorSAXFunc setDocumentLocator
Definition: parser.h:772
Definition: dict.c:111
const xmlChar * intSubName
Definition: parser.h:239
ignorableWhitespaceSAXFunc ignorableWhitespace
Definition: parser.h:738
int validate
Definition: parser.h:220
GLuint GLfloat * val
Definition: glext.h:7180
getEntitySAXFunc getEntity
Definition: parser.h:766
const xmlChar * str_xml_ns
Definition: parser.h:273
void(XMLCDECL *) typedef int(* isStandaloneSAXFunc)(void *ctx)
Definition: parser.h:640
XMLPUBFUN long XMLCALL xmlByteConsumed(xmlParserCtxtPtr ctxt)
Definition: encoding.c:2882
int inputMax
Definition: parser.h:201
void(* charactersSAXFunc)(void *ctx, const xmlChar *ch, int len)
Definition: parser.h:553
GLfloat f
Definition: glext.h:7540
void MSVCRT() terminate()
GLsizeiptr size
Definition: glext.h:5919
XMLPUBFUN void XMLCALL xmlInitNodeInfoSeq(xmlParserNodeInfoSeqPtr seq)
int wellFormed
Definition: parser.h:188
void * _private
Definition: parser.h:749
xmlParserErrors
Definition: xmlerror.h:99
xmlNodePtr node
Definition: parser.h:205
int record_info
Definition: parser.h:210
XMLPUBFUN xmlDocPtr XMLCALL xmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, const char *URL, const char *encoding, int options)
Definition: parser.c:15321
unparsedEntityDeclSAXFunc unparsedEntityDecl
Definition: parser.h:771
XMLPUBFUN int XMLCALL xmlKeepBlanksDefault(int val)
XMLPUBFUN int XMLCALL xmlParseExtParsedEnt(xmlParserCtxtPtr ctxt)
Definition: parser.c:10889
hasInternalSubsetSAXFunc hasInternalSubset
Definition: parser.h:722
int hasPErefs
Definition: parser.h:216
xmlStartTag * pushTab
Definition: parser.h:283
void(* referenceSAXFunc)(void *ctx, const xmlChar *name)
Definition: parser.h:543
int freeElemsNr
Definition: parser.h:293
XMLPUBFUN int XMLCALL xmlCtxtUseOptions(xmlParserCtxtPtr ctxt, int options)
Definition: parser.c:15141
charactersSAXFunc characters
Definition: parser.h:778
getParameterEntitySAXFunc getParameterEntity
Definition: parser.h:785
unsigned long end_pos
Definition: parser.h:92
unparsedEntityDeclSAXFunc unparsedEntityDecl
Definition: parser.h:730
XMLPUBFUN int XMLCALL xmlParserInputGrow(xmlParserInputPtr in, int len)
startDocumentSAXFunc startDocument
Definition: parser.h:773
ignorableWhitespaceSAXFunc ignorableWhitespace
Definition: parser.h:779
xmlEntityPtr(* getParameterEntitySAXFunc)(void *ctx, const xmlChar *name)
Definition: parser.h:399
void(XMLCDECL *) typedef const char msg)
Definition: parser.h:619
isStandaloneSAXFunc isStandalone
Definition: parser.h:762
xmlParserMode
Definition: parser.h:161
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
Definition: wdfdriver.h:113
XMLPUBFUN int XMLCALL xmlParseDocument(xmlParserCtxtPtr ctxt)
Definition: parser.c:10697
xmlParserNodeInfoSeq * xmlParserNodeInfoSeqPtr
Definition: parser.h:97
xmlParserNodeInfo * xmlParserNodeInfoPtr
Definition: parser.h:85
XMLPUBFUN xmlParserErrors XMLCALL xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen, int options, xmlNodePtr *lst)
Definition: parser.c:13496
XMLPUBFUN int XMLCALL xmlCtxtResetPush(xmlParserCtxtPtr ctxt, const char *chunk, int size, const char *filename, const char *encoding)
Definition: parser.c:14907
processingInstructionSAXFunc processingInstruction
Definition: parser.h:780
internalSubsetSAXFunc internalSubset
Definition: parser.h:761
Definition: tree.h:489
void(* elementDeclSAXFunc)(void *ctx, const xmlChar *name, int type, xmlElementContentPtr content)
Definition: parser.h:459
int nodeInfoNr
Definition: parser.h:308
int(XMLCALL * xmlInputReadCallback)(void *context, char *buffer, int len)
Definition: xmlIO.h:54
XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateIOParserCtxt(xmlSAXHandlerPtr sax, void *user_data, xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, void *ioctx, xmlCharEncoding enc)
Definition: parser.c:12605
GLint GLint GLsizei GLsizei GLsizei depth
Definition: gl.h:1546
const struct _xmlNode * node
Definition: parser.h:88
xmlDocPtr myDoc
Definition: parser.h:187
void(* startElementSAXFunc)(void *ctx, const xmlChar *name, const xmlChar **atts)
Definition: parser.h:510
const char * fullname
Definition: shader.c:1766
XMLPUBFUN void XMLCALL xmlParserAddNodeInfo(xmlParserCtxtPtr ctxt, const xmlParserNodeInfoPtr info)
xmlParserMode parseMode
Definition: parser.h:302
const xmlChar * encoding
Definition: parser.h:191
xmlStructuredErrorFunc serror
Definition: parser.h:752
unsigned char xmlChar
Definition: xmlstring.h:28
GLenum GLsizei len
Definition: glext.h:6722
struct _xmlSAXHandler * sax
Definition: parser.h:185
int freeAttrsNr
Definition: parser.h:295
GLsizei const GLfloat * value
Definition: glext.h:6069
const xmlChar * version
Definition: parser.h:190
#define ID
Definition: ruserpass.c:36
void * catalogs
Definition: parser.h:260
int loadsubset
Definition: parser.h:258
int(* getColumnNumber)(void *ctx)
Definition: parser.h:325
XMLPUBFUN xmlParserInputPtr XMLCALL xmlLoadExternalEntity(const char *URL, const char *ID, xmlParserCtxtPtr ctxt)
int dictNames
Definition: parser.h:292
int hasExternalSubset
Definition: parser.h:215
xmlParserInputPtr entity
Definition: parser.h:250
hasExternalSubsetSAXFunc hasExternalSubset
Definition: parser.h:764
fatalErrorSAXFunc fatalError
Definition: parser.h:743
unsigned long length
Definition: parser.h:100
FxCollectionEntry * cur
xmlParserInputBufferPtr buf
Definition: parser.h:54
endDocumentSAXFunc endDocument
Definition: parser.h:774
errorSAXFunc error
Definition: parser.h:742
void(* endElementNsSAX2Func)(void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI)
Definition: parser.h:713
xmlParserOption
Definition: parser.h:1092
unsigned long sizeentcopy
Definition: parser.h:313
int progressive
Definition: parser.h:262
getEntitySAXFunc getEntity
Definition: parser.h:725
const xmlChar ** atts
Definition: parser.h:264
unsigned long end_line
Definition: parser.h:93
const char * filename
Definition: parser.h:56
notationDeclSAXFunc notationDecl
Definition: parser.h:727
GLenum GLenum GLenum input
Definition: glext.h:9031
xmlParserNodeInfo * nodeInfoTab
Definition: parser.h:310
elementDeclSAXFunc elementDecl
Definition: parser.h:729
GLuint in
Definition: glext.h:9616
externalSubsetSAXFunc externalSubset
Definition: parser.h:746
int inSubset
Definition: parser.h:238
XMLPUBFUN int XMLCALL xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
xmlSAXHandlerV1 * xmlSAXHandlerV1Ptr
Definition: parser.h:759
entityDeclSAXFunc entityDecl
Definition: parser.h:767
cdataBlockSAXFunc cdataBlock
Definition: parser.h:786
xmlHashTablePtr attsSpecial
Definition: parser.h:285
char * directory
Definition: parser.h:226
#define XMLCDECL
Definition: xmlexports.h:52
startDocumentSAXFunc startDocument
Definition: parser.h:732
Definition: tree.h:551
XMLPUBFUN int XMLCALL xmlHasFeature(xmlFeature feature)
Definition: parser.c:874
unsigned long maximum
Definition: parser.h:99
getParameterEntitySAXFunc getParameterEntity
Definition: parser.h:744
const xmlChar ** nsTab
Definition: parser.h:281
xmlParserInputPtr(* xmlExternalEntityLoader)(const char *URL, const char *ID, xmlParserCtxtPtr context)
Definition: parser.h:802
#define XMLCALL
Definition: tree.h:434
const xmlChar * encoding
Definition: parser.h:71
warningSAXFunc warning
Definition: parser.h:782
commentSAXFunc comment
Definition: parser.h:740
Definition: name.c:38
XMLPUBFUN int XMLCALL xmlPedanticParserDefault(int val)
charactersSAXFunc characters
Definition: parser.h:737
XMLPUBFUN xmlDocPtr XMLCALL xmlCtxtReadFile(xmlParserCtxtPtr ctxt, const char *filename, const char *encoding, int options)
Definition: parser.c:15390
int keepBlanks
Definition: parser.h:236
xmlParserNodeInfo * nodeInfo
Definition: parser.h:307
int(* getLineNumber)(void *ctx)
Definition: parser.h:324
GLenum target
Definition: glext.h:7315
XMLPUBFUN int XMLCALL xmlSubstituteEntitiesDefault(int val)
static int recovery
Definition: xmllint.c:109
hasExternalSubsetSAXFunc hasExternalSubset
Definition: parser.h:723
XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlNewParserCtxt(void)
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
XMLPUBFUN xmlDocPtr XMLCALL xmlCtxtReadDoc(xmlParserCtxtPtr ctxt, const xmlChar *cur, const char *URL, const char *encoding, int options)
Definition: parser.c:15368
const char * directory
Definition: parser.h:57
XMLPUBFUN void XMLCALL xmlCleanupParser(void)
Definition: parser.c:14739
xmlEntityPtr(* getEntitySAXFunc)(void *ctx, const xmlChar *name)
Definition: parser.h:388
const xmlChar ** nameTab
Definition: parser.h:232
xmlValidCtxt vctxt
Definition: parser.h:221
int * space
Definition: parser.h:244
referenceSAXFunc reference
Definition: parser.h:736
xmlEntity * xmlEntityPtr
Definition: tree.h:49
commentSAXFunc comment
Definition: parser.h:781
void(* xmlParserInputDeallocate)(xmlChar *str)
Definition: parser.h:50
const xmlChar * end
Definition: parser.h:60
void * userData
Definition: parser.h:186
notationDeclSAXFunc notationDecl
Definition: parser.h:768
xmlParserNodeInfoSeq node_seq
Definition: parser.h:211
xmlNodePtr freeElems
Definition: parser.h:294
startElementNsSAX2Func startElementNs
Definition: parser.h:750
unsigned int initialized
Definition: parser.h:788
_In_ uint16_t _Out_ ULONG * atts
Definition: btrfs_drv.h:1107
XMLPUBFUN const xmlParserNodeInfo *XMLCALL xmlParserFindNodeInfo(const xmlParserCtxtPtr ctxt, const xmlNodePtr node)
Definition: dlist.c:348
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
xmlParserInputPtr(* resolveEntitySAXFunc)(void *ctx, const xmlChar *publicId, const xmlChar *systemId)
Definition: parser.h:350
unsigned long nbentities
Definition: parser.h:303
XMLPUBFUN xmlDocPtr XMLCALL xmlCtxtReadMemory(xmlParserCtxtPtr ctxt, const char *buffer, int size, const char *URL, const char *encoding, int options)
Definition: parser.c:15426
GLuint const GLchar * name
Definition: glext.h:6031