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