ReactOS  0.4.13-dev-1089-g05f0b08
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 <stdarg.h>
14 
15 #include <libxml/xmlversion.h>
16 #include <libxml/tree.h>
17 #include <libxml/dict.h>
18 #include <libxml/hash.h>
19 #include <libxml/valid.h>
20 #include <libxml/entities.h>
21 #include <libxml/xmlerror.h>
22 #include <libxml/xmlstring.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
33 #define XML_DEFAULT_VERSION "1.0"
34 
53 
55  /* Input buffer */
56  xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */
57 
58  const char *filename; /* The file analyzed, if any */
59  const char *directory; /* the directory/base of the file */
60  const xmlChar *base; /* Base of the array to parse */
61  const xmlChar *cur; /* Current char being parsed */
62  const xmlChar *end; /* end of the array to parse */
63  int length; /* length if known */
64  int line; /* Current line */
65  int col; /* Current column */
66  /*
67  * NOTE: consumed is only tested for equality in the parser code,
68  * so even if there is an overflow this should not give troubles
69  * for parsing very large instances.
70  */
71  unsigned long consumed; /* How many xmlChars already consumed */
72  xmlParserInputDeallocate free; /* function to deallocate the base */
73  const xmlChar *encoding; /* the encoding string for entity */
74  const xmlChar *version; /* the version string for entity */
75  int standalone; /* Was that entity marked standalone */
76  int id; /* an unique identifier for the entity */
77 };
78 
88 
90  const struct _xmlNode* node;
91  /* Position & line # that text that created the node begins & ends on */
92  unsigned long begin_pos;
93  unsigned long begin_line;
94  unsigned long end_pos;
95  unsigned long end_line;
96 };
97 
101  unsigned long maximum;
102  unsigned long length;
104 };
105 
112 typedef enum {
113  XML_PARSER_EOF = -1, /* nothing is to be parsed */
114  XML_PARSER_START = 0, /* nothing has been parsed */
115  XML_PARSER_MISC, /* Misc* before int subset */
116  XML_PARSER_PI, /* Within a processing instruction */
117  XML_PARSER_DTD, /* within some DTD content */
118  XML_PARSER_PROLOG, /* Misc* after internal subset */
119  XML_PARSER_COMMENT, /* within a comment */
120  XML_PARSER_START_TAG, /* within a start tag */
121  XML_PARSER_CONTENT, /* within the content */
122  XML_PARSER_CDATA_SECTION, /* within a CDATA section */
123  XML_PARSER_END_TAG, /* within a closing tag */
124  XML_PARSER_ENTITY_DECL, /* within an entity declaration */
125  XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */
126  XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */
127  XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */
128  XML_PARSER_EPILOG, /* the Misc* after the last end tag */
129  XML_PARSER_IGNORE, /* within an IGNORED section */
130  XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */
132 
139 #define XML_DETECT_IDS 2
140 
148 #define XML_COMPLETE_ATTRS 4
149 
156 #define XML_SKIP_IDS 8
157 
163 typedef enum {
170 } xmlParserMode;
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)/Docbook(2) 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; /* number of xmlChar processed */
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  void * *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 Nanespace okay */
287  int options; /* Extra options */
288 
289  /*
290  * Those fields are needed only for treaming 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 informations 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);
325  int (*getColumnNumber)(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);
388 typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
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,
473 typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
474  const xmlChar *name,
475  const xmlChar *publicId,
476  const xmlChar *systemId,
477  const xmlChar *notationName);
486 typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
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);
565 typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
566  const xmlChar *ch,
567  int len);
576 typedef void (*processingInstructionSAXFunc) (void *ctx,
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 */
991  xmlCreateDocParserCtxt (const xmlChar *cur);
992 
993 #ifdef LIBXML_LEGACY_ENABLED
994 /*
995  * Reading/setting optional parsing features.
996  */
997 XMLPUBFUN int XMLCALL
998  xmlGetFeaturesList (int *len,
999  const char **result);
1000 XMLPUBFUN int XMLCALL
1001  xmlGetFeature (xmlParserCtxtPtr ctxt,
1002  const char *name,
1003  void *result);
1004 XMLPUBFUN int XMLCALL
1005  xmlSetFeature (xmlParserCtxtPtr ctxt,
1006  const char *name,
1007  void *value);
1008 #endif /* LIBXML_LEGACY_ENABLED */
1009 
1010 #ifdef LIBXML_PUSH_ENABLED
1011 /*
1012  * Interfaces for the Push mode.
1013  */
1015  xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
1016  void *user_data,
1017  const char *chunk,
1018  int size,
1019  const char *filename);
1020 XMLPUBFUN int XMLCALL
1021  xmlParseChunk (xmlParserCtxtPtr ctxt,
1022  const char *chunk,
1023  int size,
1024  int terminate);
1025 #endif /* LIBXML_PUSH_ENABLED */
1026 
1027 /*
1028  * Special I/O mode.
1029  */
1030 
1033  void *user_data,
1034  xmlInputReadCallback ioread,
1035  xmlInputCloseCallback ioclose,
1036  void *ioctx,
1037  xmlCharEncoding enc);
1038 
1042  xmlCharEncoding enc);
1043 
1044 /*
1045  * Node infos.
1046  */
1049  const xmlNodePtr node);
1050 XMLPUBFUN void XMLCALL
1052 XMLPUBFUN void XMLCALL
1054 XMLPUBFUN unsigned long XMLCALL
1056  const xmlNodePtr node);
1057 XMLPUBFUN void XMLCALL
1059  const xmlParserNodeInfoPtr info);
1060 
1061 /*
1062  * External entities handling actually implemented in xmlIO.
1063  */
1064 
1065 XMLPUBFUN void XMLCALL
1070  xmlLoadExternalEntity (const char *URL,
1071  const char *ID,
1072  xmlParserCtxtPtr ctxt);
1073 
1074 /*
1075  * Index lookup, actually implemented in the encoding module
1076  */
1077 XMLPUBFUN long XMLCALL
1079 
1080 /*
1081  * New set of simpler/more flexible APIs
1082  */
1089 typedef enum {
1090  XML_PARSE_RECOVER = 1<<0, /* recover on errors */
1091  XML_PARSE_NOENT = 1<<1, /* substitute entities */
1092  XML_PARSE_DTDLOAD = 1<<2, /* load the external subset */
1093  XML_PARSE_DTDATTR = 1<<3, /* default DTD attributes */
1094  XML_PARSE_DTDVALID = 1<<4, /* validate with the DTD */
1095  XML_PARSE_NOERROR = 1<<5, /* suppress error reports */
1096  XML_PARSE_NOWARNING = 1<<6, /* suppress warning reports */
1097  XML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */
1098  XML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */
1099  XML_PARSE_SAX1 = 1<<9, /* use the SAX1 interface internally */
1100  XML_PARSE_XINCLUDE = 1<<10,/* Implement XInclude substitition */
1101  XML_PARSE_NONET = 1<<11,/* Forbid network access */
1102  XML_PARSE_NODICT = 1<<12,/* Do not reuse the context dictionary */
1103  XML_PARSE_NSCLEAN = 1<<13,/* remove redundant namespaces declarations */
1104  XML_PARSE_NOCDATA = 1<<14,/* merge CDATA as text nodes */
1105  XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */
1106  XML_PARSE_COMPACT = 1<<16,/* compact small text nodes; no modification of
1107  the tree allowed afterwards (will possibly
1108  crash if you try to modify the tree) */
1109  XML_PARSE_OLD10 = 1<<17,/* parse using XML-1.0 before update 5 */
1110  XML_PARSE_NOBASEFIX = 1<<18,/* do not fixup XINCLUDE xml:base uris */
1111  XML_PARSE_HUGE = 1<<19,/* relax any hardcoded limit from the parser */
1112  XML_PARSE_OLDSAX = 1<<20,/* parse using SAX2 interface before 2.7.0 */
1113  XML_PARSE_IGNORE_ENC= 1<<21,/* ignore internal document encoding hint */
1114  XML_PARSE_BIG_LINES = 1<<22 /* Store big lines numbers in text PSVI field */
1115 } xmlParserOption;
1116 
1117 XMLPUBFUN void XMLCALL
1119 XMLPUBFUN int XMLCALL
1121  const char *chunk,
1122  int size,
1123  const char *filename,
1124  const char *encoding);
1125 XMLPUBFUN int XMLCALL
1127  int options);
1129  xmlReadDoc (const xmlChar *cur,
1130  const char *URL,
1131  const char *encoding,
1132  int options);
1134  xmlReadFile (const char *URL,
1135  const char *encoding,
1136  int options);
1138  xmlReadMemory (const char *buffer,
1139  int size,
1140  const char *URL,
1141  const char *encoding,
1142  int options);
1144  xmlReadFd (int fd,
1145  const char *URL,
1146  const char *encoding,
1147  int options);
1150  xmlInputCloseCallback ioclose,
1151  void *ioctx,
1152  const char *URL,
1153  const char *encoding,
1154  int options);
1157  const xmlChar *cur,
1158  const char *URL,
1159  const char *encoding,
1160  int options);
1163  const char *filename,
1164  const char *encoding,
1165  int options);
1168  const char *buffer,
1169  int size,
1170  const char *URL,
1171  const char *encoding,
1172  int options);
1175  int fd,
1176  const char *URL,
1177  const char *encoding,
1178  int options);
1181  xmlInputReadCallback ioread,
1182  xmlInputCloseCallback ioclose,
1183  void *ioctx,
1184  const char *URL,
1185  const char *encoding,
1186  int options);
1187 
1188 /*
1189  * Library wide options
1190  */
1198 typedef enum {
1232  XML_WITH_NONE = 99999 /* just to be sure of allocation size */
1233 } xmlFeature;
1234 
1235 XMLPUBFUN int XMLCALL
1237 
1238 #ifdef __cplusplus
1239 }
1240 #endif
1241 #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:1689
processingInstructionSAXFunc processingInstruction
Definition: parser.h:739
XMLPUBFUN int XMLCALL xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx, const xmlChar *URL, const xmlChar *ID, xmlNodePtr *lst)
Definition: parser.c:12867
void(XMLCDECL *) typedef const cha LIBXML_ATTR_FORMAT)(2, 3)
Definition: parser.h:619
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:15225
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
void(* endElementSAXFunc)(void *ctx, const xmlChar *name)
Definition: parser.h:520
xmlChar * extSubURI
Definition: parser.h:240
endElementNsSAX2Func endElementNs
Definition: parser.h:751
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
Definition: http.c:6587
xmlFeature
Definition: parser.h:1198
XMLPUBFUN void XMLCALL xmlInitParser(void)
Definition: parser.c:14706
XMLPUBFUN xmlDocPtr XMLCALL xmlReadFd(int fd, const char *URL, const char *encoding, int options)
Definition: parser.c:15299
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:14813
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:14572
const xmlChar * cur
Definition: parser.h:61
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:72
entityDeclSAXFunc entityDecl
Definition: parser.h:726
attributeDeclSAXFunc attributeDecl
Definition: parser.h:769
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
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:58
XMLPUBFUN xmlExternalEntityLoader XMLCALL xmlGetExternalEntityLoader(void)
#define XMLPUBFUN
Definition: xmlexports.h:30
XMLPUBFUN xmlDocPtr XMLCALL xmlCtxtReadFd(xmlParserCtxtPtr ctxt, int fd, const char *URL, const char *encoding, int options)
Definition: parser.c:15504
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:15274
externalSubsetSAXFunc externalSubset
Definition: parser.h:787
XMLPUBFUN void XMLCALL xmlStopParser(xmlParserCtxtPtr ctxt)
Definition: parser.c:12483
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:1027
const char * filename
Definition: ioapi.h:135
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:93
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:15548
const xmlChar * version
Definition: parser.h:74
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:60
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:198
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:92
XMLPUBFUN xmlDocPtr XMLCALL xmlReadFile(const char *URL, const char *encoding, int options)
Definition: parser.c:15250
const xmlChar * str_xmlns
Definition: parser.h:272
xmlParserNodeInfo * buffer
Definition: parser.h:103
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:994
int standalone
Definition: parser.h:75
attributeDeclSAXFunc attributeDecl
Definition: parser.h:728
unsigned long consumed
Definition: parser.h:71
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:112
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
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
void ** pushTab
Definition: parser.h:283
XMLPUBFUN long XMLCALL xmlByteConsumed(xmlParserCtxtPtr ctxt)
Definition: encoding.c:2803
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:15342
unparsedEntityDeclSAXFunc unparsedEntityDecl
Definition: parser.h:771
XMLPUBFUN int XMLCALL xmlKeepBlanksDefault(int val)
XMLPUBFUN int XMLCALL xmlParseExtParsedEnt(xmlParserCtxtPtr ctxt)
Definition: parser.c:10772
hasInternalSubsetSAXFunc hasInternalSubset
Definition: parser.h:722
int hasPErefs
Definition: parser.h:216
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:15162
charactersSAXFunc characters
Definition: parser.h:778
getParameterEntitySAXFunc getParameterEntity
Definition: parser.h:785
unsigned long end_pos
Definition: parser.h:94
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:163
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
XMLPUBFUN int XMLCALL xmlParseDocument(xmlParserCtxtPtr ctxt)
Definition: parser.c:10579
xmlParserNodeInfoSeq * xmlParserNodeInfoSeqPtr
Definition: parser.h:99
xmlParserNodeInfo * xmlParserNodeInfoPtr
Definition: parser.h:87
XMLPUBFUN xmlParserErrors XMLCALL xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen, int options, xmlNodePtr *lst)
Definition: parser.c:13533
XMLPUBFUN int XMLCALL xmlCtxtResetPush(xmlParserCtxtPtr ctxt, const char *chunk, int size, const char *filename, const char *encoding)
Definition: parser.c:14918
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:12505
GLint GLint GLsizei GLsizei GLsizei depth
Definition: gl.h:1546
const struct _xmlNode * node
Definition: parser.h:90
xmlDocPtr myDoc
Definition: parser.h:187
void(* startElementSAXFunc)(void *ctx, const xmlChar *name, const xmlChar **atts)
Definition: parser.h:510
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
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)
GLsizei const GLfloat * value
Definition: glext.h:6069
int dictNames
Definition: parser.h:292
int hasExternalSubset
Definition: parser.h:215
ed encoding
Definition: write.c:2839
xmlParserInputPtr entity
Definition: parser.h:250
hasExternalSubsetSAXFunc hasExternalSubset
Definition: parser.h:764
fatalErrorSAXFunc fatalError
Definition: parser.h:743
unsigned long length
Definition: parser.h:102
xmlParserInputBufferPtr buf
Definition: parser.h:56
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:1089
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:95
const char * filename
Definition: parser.h:58
notationDeclSAXFunc notationDecl
Definition: parser.h:727
__XML_EXTERNC typedef xmlDict * xmlDictPtr
Definition: dict.h:24
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:49
startDocumentSAXFunc startDocument
Definition: parser.h:732
Definition: tree.h:551
XMLPUBFUN int XMLCALL xmlHasFeature(xmlFeature feature)
Definition: parser.c:846
unsigned long maximum
Definition: parser.h:101
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:73
warningSAXFunc warning
Definition: parser.h:782
commentSAXFunc comment
Definition: parser.h:740
Definition: name.c:36
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:15423
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:115
hasExternalSubsetSAXFunc hasExternalSubset
Definition: parser.h:723
XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlNewParserCtxt(void)
XMLPUBFUN xmlDocPtr XMLCALL xmlCtxtReadDoc(xmlParserCtxtPtr ctxt, const xmlChar *cur, const char *URL, const char *encoding, int options)
Definition: parser.c:15389
const char * directory
Definition: parser.h:59
XMLPUBFUN void XMLCALL xmlCleanupParser(void)
Definition: parser.c:14764
xmlEntityPtr(* getEntitySAXFunc)(void *ctx, const xmlChar *name)
Definition: parser.h:388
const xmlChar ** nameTab
Definition: parser.h:232
xmlValidCtxt vctxt
Definition: parser.h:221
GLuint64EXT * result
Definition: glext.h:11304
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:52
const xmlChar * end
Definition: parser.h:62
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:1065
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:15459
GLuint const GLchar * name
Definition: glext.h:6031