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