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