• 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 #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 XML_HIDDEN void
50 xmlCtxtVErr(xmlParserCtxtPtr ctxt, xmlNodePtr node, xmlErrorDomain domain,
51             xmlParserErrors code, xmlErrorLevel level,
52             const xmlChar *str1, const xmlChar *str2, const xmlChar *str3,
53             int int1, const char *msg, va_list ap);
54 XML_HIDDEN void
55 xmlCtxtErr(xmlParserCtxtPtr ctxt, xmlNodePtr node, xmlErrorDomain domain,
56            xmlParserErrors code, xmlErrorLevel level,
57            const xmlChar *str1, const xmlChar *str2, const xmlChar *str3,
58            int int1, const char *msg, ...);
59 XML_HIDDEN void
60 xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info);
61 XML_HIDDEN void LIBXML_ATTR_FORMAT(3,0)
62 xmlWarningMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error,
63               const char *msg, const xmlChar *str1, const xmlChar *str2);
64 XML_HIDDEN void
65 xmlCtxtErrIO(xmlParserCtxtPtr ctxt, int code, const char *uri);
66 
67 XML_HIDDEN void
68 xmlHaltParser(xmlParserCtxtPtr ctxt);
69 XML_HIDDEN int
70 xmlParserGrow(xmlParserCtxtPtr ctxt);
71 XML_HIDDEN void
72 xmlParserShrink(xmlParserCtxtPtr ctxt);
73 
74 XML_HIDDEN void
75 xmlDetectEncoding(xmlParserCtxtPtr ctxt);
76 XML_HIDDEN void
77 xmlSetDeclaredEncoding(xmlParserCtxtPtr ctxt, xmlChar *encoding);
78 XML_HIDDEN const xmlChar *
79 xmlGetActualEncoding(xmlParserCtxtPtr ctxt);
80 
81 XML_HIDDEN xmlParserNsData *
82 xmlParserNsCreate(void);
83 XML_HIDDEN void
84 xmlParserNsFree(xmlParserNsData *nsdb);
85 /*
86  * These functions allow SAX handlers to attach extra data to namespaces
87  * efficiently and should be made public.
88  */
89 XML_HIDDEN int
90 xmlParserNsUpdateSax(xmlParserCtxtPtr ctxt, const xmlChar *prefix,
91                      void *saxData);
92 XML_HIDDEN void *
93 xmlParserNsLookupSax(xmlParserCtxtPtr ctxt, const xmlChar *prefix);
94 
95 XML_HIDDEN xmlParserInputPtr
96 xmlLoadResource(xmlParserCtxtPtr ctxt, const char *url, const char *publicId,
97                 xmlResourceType type);
98 XML_HIDDEN xmlParserInputPtr
99 xmlCtxtNewInputFromUrl(xmlParserCtxtPtr ctxt, const char *url,
100                        const char *publicId, const char *encoding, int flags);
101 XML_HIDDEN xmlParserInputPtr
102 xmlCtxtNewInputFromMemory(xmlParserCtxtPtr ctxt, const char *url,
103                           const void *mem, size_t size,
104                           const char *encoding, int flags);
105 XML_HIDDEN xmlParserInputPtr
106 xmlCtxtNewInputFromString(xmlParserCtxtPtr ctxt, const char *url,
107                           const char *str, const char *encoding, int flags);
108 XML_HIDDEN xmlParserInputPtr
109 xmlCtxtNewInputFromFd(xmlParserCtxtPtr ctxt, const char *filename, int fd,
110                       const char *encoding, int flags);
111 XML_HIDDEN xmlParserInputPtr
112 xmlCtxtNewInputFromIO(xmlParserCtxtPtr ctxt, const char *url,
113                       xmlInputReadCallback ioRead,
114                       xmlInputCloseCallback ioClose,
115                       void *ioCtxt,
116                       const char *encoding, int flags);
117 XML_HIDDEN xmlParserInputPtr
118 xmlNewPushInput(const char *url, const char *chunk, int size);
119 
120 XML_HIDDEN xmlChar *
121 xmlExpandEntitiesInAttValue(xmlParserCtxtPtr ctxt, const xmlChar *str,
122                             int normalize);
123 
124 #endif /* XML_PARSER_H_PRIVATE__ */
125