xref: /aosp_15_r20/external/libxml2/include/private/parser.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker #ifndef XML_PARSER_H_PRIVATE__
2*7c568831SAndroid Build Coastguard Worker #define XML_PARSER_H_PRIVATE__
3*7c568831SAndroid Build Coastguard Worker 
4*7c568831SAndroid Build Coastguard Worker #include <libxml/parser.h>
5*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
6*7c568831SAndroid Build Coastguard Worker 
7*7c568831SAndroid Build Coastguard Worker #define XML_INVALID_CHAR 0x200000
8*7c568831SAndroid Build Coastguard Worker 
9*7c568831SAndroid Build Coastguard Worker #define XML_MAX_URI_LENGTH 2000
10*7c568831SAndroid Build Coastguard Worker 
11*7c568831SAndroid Build Coastguard Worker /**
12*7c568831SAndroid Build Coastguard Worker  * XML_VCTXT_DTD_VALIDATED:
13*7c568831SAndroid Build Coastguard Worker  *
14*7c568831SAndroid Build Coastguard Worker  * Set after xmlValidateDtdFinal was called.
15*7c568831SAndroid Build Coastguard Worker  */
16*7c568831SAndroid Build Coastguard Worker #define XML_VCTXT_DTD_VALIDATED (1u << 0)
17*7c568831SAndroid Build Coastguard Worker /**
18*7c568831SAndroid Build Coastguard Worker  * XML_VCTXT_USE_PCTXT:
19*7c568831SAndroid Build Coastguard Worker  *
20*7c568831SAndroid Build Coastguard Worker  * Set if the validation context is part of a parser context.
21*7c568831SAndroid Build Coastguard Worker  */
22*7c568831SAndroid Build Coastguard Worker #define XML_VCTXT_USE_PCTXT (1u << 1)
23*7c568831SAndroid Build Coastguard Worker 
24*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_HAS_ENCODING      (1u << 0)
25*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_AUTO_ENCODING     (7u << 1)
26*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_AUTO_UTF8         (1u << 1)
27*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_AUTO_UTF16LE      (2u << 1)
28*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_AUTO_UTF16BE      (3u << 1)
29*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_AUTO_OTHER        (4u << 1)
30*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_USES_ENC_DECL     (1u << 4)
31*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_ENCODING_ERROR    (1u << 5)
32*7c568831SAndroid Build Coastguard Worker #define XML_INPUT_PROGRESSIVE       (1u << 6)
33*7c568831SAndroid Build Coastguard Worker 
34*7c568831SAndroid Build Coastguard Worker #define PARSER_STOPPED(ctxt) ((ctxt)->disableSAX > 1)
35*7c568831SAndroid Build Coastguard Worker 
36*7c568831SAndroid Build Coastguard Worker #define PARSER_PROGRESSIVE(ctxt) \
37*7c568831SAndroid Build Coastguard Worker     ((ctxt)->input->flags & XML_INPUT_PROGRESSIVE)
38*7c568831SAndroid Build Coastguard Worker 
39*7c568831SAndroid Build Coastguard Worker #define PARSER_IN_PE(ctxt) \
40*7c568831SAndroid Build Coastguard Worker     (((ctxt)->input->entity != NULL) && \
41*7c568831SAndroid Build Coastguard Worker      (((ctxt)->input->entity->etype == XML_INTERNAL_PARAMETER_ENTITY) || \
42*7c568831SAndroid Build Coastguard Worker       ((ctxt)->input->entity->etype == XML_EXTERNAL_PARAMETER_ENTITY)))
43*7c568831SAndroid Build Coastguard Worker 
44*7c568831SAndroid Build Coastguard Worker #define PARSER_EXTERNAL(ctxt) \
45*7c568831SAndroid Build Coastguard Worker     (((ctxt)->inSubset == 2) || \
46*7c568831SAndroid Build Coastguard Worker      (((ctxt)->input->entity != NULL) && \
47*7c568831SAndroid Build Coastguard Worker       ((ctxt)->input->entity->etype == XML_EXTERNAL_PARAMETER_ENTITY)))
48*7c568831SAndroid Build Coastguard Worker 
49*7c568831SAndroid Build Coastguard Worker struct _xmlAttrHashBucket {
50*7c568831SAndroid Build Coastguard Worker     int index;
51*7c568831SAndroid Build Coastguard Worker };
52*7c568831SAndroid Build Coastguard Worker 
53*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
54*7c568831SAndroid Build Coastguard Worker xmlCtxtVErr(xmlParserCtxtPtr ctxt, xmlNodePtr node, xmlErrorDomain domain,
55*7c568831SAndroid Build Coastguard Worker             xmlParserErrors code, xmlErrorLevel level,
56*7c568831SAndroid Build Coastguard Worker             const xmlChar *str1, const xmlChar *str2, const xmlChar *str3,
57*7c568831SAndroid Build Coastguard Worker             int int1, const char *msg, va_list ap);
58*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
59*7c568831SAndroid Build Coastguard Worker xmlCtxtErr(xmlParserCtxtPtr ctxt, xmlNodePtr node, xmlErrorDomain domain,
60*7c568831SAndroid Build Coastguard Worker            xmlParserErrors code, xmlErrorLevel level,
61*7c568831SAndroid Build Coastguard Worker            const xmlChar *str1, const xmlChar *str2, const xmlChar *str3,
62*7c568831SAndroid Build Coastguard Worker            int int1, const char *msg, ...);
63*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
64*7c568831SAndroid Build Coastguard Worker xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info);
65*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void LIBXML_ATTR_FORMAT(3,0)
66*7c568831SAndroid Build Coastguard Worker xmlWarningMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
67*7c568831SAndroid Build Coastguard Worker               const char *msg, const xmlChar *str1, const xmlChar *str2);
68*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
69*7c568831SAndroid Build Coastguard Worker xmlCtxtErrIO(xmlParserCtxtPtr ctxt, int code, const char *uri);
70*7c568831SAndroid Build Coastguard Worker 
71*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
72*7c568831SAndroid Build Coastguard Worker xmlHaltParser(xmlParserCtxtPtr ctxt);
73*7c568831SAndroid Build Coastguard Worker XML_HIDDEN int
74*7c568831SAndroid Build Coastguard Worker xmlParserGrow(xmlParserCtxtPtr ctxt);
75*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
76*7c568831SAndroid Build Coastguard Worker xmlParserShrink(xmlParserCtxtPtr ctxt);
77*7c568831SAndroid Build Coastguard Worker 
78*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
79*7c568831SAndroid Build Coastguard Worker xmlDetectEncoding(xmlParserCtxtPtr ctxt);
80*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
81*7c568831SAndroid Build Coastguard Worker xmlSetDeclaredEncoding(xmlParserCtxtPtr ctxt, xmlChar *encoding);
82*7c568831SAndroid Build Coastguard Worker XML_HIDDEN const xmlChar *
83*7c568831SAndroid Build Coastguard Worker xmlGetActualEncoding(xmlParserCtxtPtr ctxt);
84*7c568831SAndroid Build Coastguard Worker 
85*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserNsData *
86*7c568831SAndroid Build Coastguard Worker xmlParserNsCreate(void);
87*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void
88*7c568831SAndroid Build Coastguard Worker xmlParserNsFree(xmlParserNsData *nsdb);
89*7c568831SAndroid Build Coastguard Worker /*
90*7c568831SAndroid Build Coastguard Worker  * These functions allow SAX handlers to attach extra data to namespaces
91*7c568831SAndroid Build Coastguard Worker  * efficiently and should be made public.
92*7c568831SAndroid Build Coastguard Worker  */
93*7c568831SAndroid Build Coastguard Worker XML_HIDDEN int
94*7c568831SAndroid Build Coastguard Worker xmlParserNsUpdateSax(xmlParserCtxtPtr ctxt, const xmlChar *prefix,
95*7c568831SAndroid Build Coastguard Worker                      void *saxData);
96*7c568831SAndroid Build Coastguard Worker XML_HIDDEN void *
97*7c568831SAndroid Build Coastguard Worker xmlParserNsLookupSax(xmlParserCtxtPtr ctxt, const xmlChar *prefix);
98*7c568831SAndroid Build Coastguard Worker 
99*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserInputPtr
100*7c568831SAndroid Build Coastguard Worker xmlLoadResource(xmlParserCtxtPtr ctxt, const char *url, const char *publicId,
101*7c568831SAndroid Build Coastguard Worker                 xmlResourceType type);
102*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserInputPtr
103*7c568831SAndroid Build Coastguard Worker xmlCtxtNewInputFromUrl(xmlParserCtxtPtr ctxt, const char *url,
104*7c568831SAndroid Build Coastguard Worker                        const char *publicId, const char *encoding, int flags);
105*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserInputPtr
106*7c568831SAndroid Build Coastguard Worker xmlCtxtNewInputFromMemory(xmlParserCtxtPtr ctxt, const char *url,
107*7c568831SAndroid Build Coastguard Worker                           const void *mem, size_t size,
108*7c568831SAndroid Build Coastguard Worker                           const char *encoding, int flags);
109*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserInputPtr
110*7c568831SAndroid Build Coastguard Worker xmlCtxtNewInputFromString(xmlParserCtxtPtr ctxt, const char *url,
111*7c568831SAndroid Build Coastguard Worker                           const char *str, const char *encoding, int flags);
112*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserInputPtr
113*7c568831SAndroid Build Coastguard Worker xmlCtxtNewInputFromFd(xmlParserCtxtPtr ctxt, const char *filename, int fd,
114*7c568831SAndroid Build Coastguard Worker                       const char *encoding, int flags);
115*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserInputPtr
116*7c568831SAndroid Build Coastguard Worker xmlCtxtNewInputFromIO(xmlParserCtxtPtr ctxt, const char *url,
117*7c568831SAndroid Build Coastguard Worker                       xmlInputReadCallback ioRead,
118*7c568831SAndroid Build Coastguard Worker                       xmlInputCloseCallback ioClose,
119*7c568831SAndroid Build Coastguard Worker                       void *ioCtxt,
120*7c568831SAndroid Build Coastguard Worker                       const char *encoding, int flags);
121*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlParserInputPtr
122*7c568831SAndroid Build Coastguard Worker xmlNewPushInput(const char *url, const char *chunk, int size);
123*7c568831SAndroid Build Coastguard Worker 
124*7c568831SAndroid Build Coastguard Worker XML_HIDDEN xmlChar *
125*7c568831SAndroid Build Coastguard Worker xmlExpandEntitiesInAttValue(xmlParserCtxtPtr ctxt, const xmlChar *str,
126*7c568831SAndroid Build Coastguard Worker                             int normalize);
127*7c568831SAndroid Build Coastguard Worker 
128*7c568831SAndroid Build Coastguard Worker #endif /* XML_PARSER_H_PRIVATE__ */
129