1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: interface for an HTML 4.0 non-verifying parser 3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: this module implements an HTML 4.0 non-verifying parser 4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * with API compatible with the XML parser ones. It should 5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * be able to parse "real world" HTML, even if severely 6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * broken from a specification point of view. 7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software. 9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard 11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __HTML_PARSER_H__ 14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __HTML_PARSER_H__ 15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h> 16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/parser.h> 17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_HTML_ENABLED 19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" { 22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Most of the back-end structures from XML and HTML are shared. 26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlParserCtxt htmlParserCtxt; 28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlParserCtxtPtr htmlParserCtxtPtr; 29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlParserNodeInfo htmlParserNodeInfo; 30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlSAXHandler htmlSAXHandler; 31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlSAXHandlerPtr htmlSAXHandlerPtr; 32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlParserInput htmlParserInput; 33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlParserInputPtr htmlParserInputPtr; 34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlDocPtr htmlDocPtr; 35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlNodePtr htmlNodePtr; 36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Internal description of an HTML element, representing HTML 4.01 39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * and XHTML 1.0 (which share the same structure). 40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _htmlElemDesc htmlElemDesc; 42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef htmlElemDesc *htmlElemDescPtr; 43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectstruct _htmlElemDesc { 44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *name; /* The tag name */ 45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char startTag; /* Whether the start tag can be implied */ 46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char endTag; /* Whether the end tag can be implied */ 47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char saveEndTag; /* Whether the end tag should be saved */ 48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char empty; /* Is this an empty element ? */ 49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char depr; /* Is this a deprecated element ? */ 50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char dtd; /* 1: only in Loose DTD, 2: only Frameset one */ 51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char isinline; /* is this a block 0 or inline 1 element */ 52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *desc; /* the description */ 53ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* NRK Jan.2003 55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * New fields encapsulating HTML structure 56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Bugs: 58ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * This is a very limited representation. It fails to tell us when 59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * an element *requires* subelements (we only have whether they're 60ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * allowed or not), and it doesn't tell us where CDATA and PCDATA 61ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * are allowed. Some element relationships are not fully represented: 62ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * these are flagged with the word MODIFIER 63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 64ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char** subelts; /* allowed sub-elements of this element */ 65ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char* defaultsubelt; /* subelement for suggested auto-repair 66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project if necessary or NULL */ 67ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char** attrs_opt; /* Optional Attributes */ 68ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char** attrs_depr; /* Additional deprecated attributes */ 69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char** attrs_req; /* Required attributes */ 70ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}; 71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 73ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Internal description of an HTML entity. 74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 75ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _htmlEntityDesc htmlEntityDesc; 76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef htmlEntityDesc *htmlEntityDescPtr; 77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectstruct _htmlEntityDesc { 78ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project unsigned int value; /* the UNICODE value for the character */ 79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *name; /* The entity name */ 80ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *desc; /* the description */ 81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}; 82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 83ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 84ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * There is only few public functions. 85ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 86ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const htmlElemDesc * XMLCALL 87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlTagLookup (const xmlChar *tag); 88ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const htmlEntityDesc * XMLCALL 89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlEntityLookup(const xmlChar *name); 90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const htmlEntityDesc * XMLCALL 91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlEntityValueLookup(unsigned int value); 92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlIsAutoClosed(htmlDocPtr doc, 95ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlNodePtr elem); 96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlAutoCloseTag(htmlDocPtr doc, 98ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const xmlChar *name, 99ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlNodePtr elem); 100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const htmlEntityDesc * XMLCALL 101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlParseEntityRef(htmlParserCtxtPtr ctxt, 102ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const xmlChar **str); 103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 104ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlParseCharRef(htmlParserCtxtPtr ctxt); 105ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL 106ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlParseElement(htmlParserCtxtPtr ctxt); 107ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlParserCtxtPtr XMLCALL 109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlNewParserCtxt(void); 110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 111ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlParserCtxtPtr XMLCALL 112ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCreateMemoryParserCtxt(const char *buffer, 113ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int size); 114ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 115ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 116ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlParseDocument(htmlParserCtxtPtr ctxt); 117ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 118ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlSAXParseDoc (xmlChar *cur, 119ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 120ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlSAXHandlerPtr sax, 121ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project void *userData); 122ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 123ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlParseDoc (xmlChar *cur, 124ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding); 125ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 126ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlSAXParseFile(const char *filename, 127ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 128ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlSAXHandlerPtr sax, 129ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project void *userData); 130ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 131ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlParseFile (const char *filename, 132ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding); 133ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 134ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project UTF8ToHtml (unsigned char *out, 135ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *outlen, 136ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const unsigned char *in, 137ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *inlen); 138ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 139ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlEncodeEntities(unsigned char *out, 140ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *outlen, 141ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const unsigned char *in, 142ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *inlen, int quoteChar); 143ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 144ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlIsScriptAttribute(const xmlChar *name); 145ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 146ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlHandleOmittedElem(int val); 147ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 148ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_PUSH_ENABLED 149ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 150ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Interfaces for the Push mode. 151ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 152ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlParserCtxtPtr XMLCALL 153ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, 154ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project void *user_data, 155ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *chunk, 156ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int size, 157ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *filename, 158ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCharEncoding enc); 159ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 160ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlParseChunk (htmlParserCtxtPtr ctxt, 161ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *chunk, 162ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int size, 163ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int terminate); 164ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_PUSH_ENABLED */ 165ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 166ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL 167ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlFreeParserCtxt (htmlParserCtxtPtr ctxt); 168ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 169ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 170ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * New set of simpler/more flexible APIs 171ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 172ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 173ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlParserOption: 174ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 175ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * This is the set of XML parser options that can be passed down 176ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * to the xmlReadDoc() and similar calls. 177ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 178ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef enum { 179ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_PARSE_RECOVER = 1<<0, /* Relaxed parsing */ 180df143a5041f03a22808b59c76698770b74692815Selim Gurun HTML_PARSE_NODEFDTD = 1<<2, /* do not default a doctype if not found */ 181ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_PARSE_NOERROR = 1<<5, /* suppress error reports */ 182ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_PARSE_NOWARNING= 1<<6, /* suppress warning reports */ 183ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */ 184ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */ 185ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_PARSE_NONET = 1<<11,/* Forbid network access */ 186df143a5041f03a22808b59c76698770b74692815Selim Gurun HTML_PARSE_NOIMPLIED= 1<<13,/* Do not add implied html/body... elements */ 187df143a5041f03a22808b59c76698770b74692815Selim Gurun HTML_PARSE_COMPACT = 1<<16,/* compact small text nodes */ 188df143a5041f03a22808b59c76698770b74692815Selim Gurun HTML_PARSE_IGNORE_ENC=1<<21 /* ignore internal document encoding hint */ 189ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} htmlParserOption; 190ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 191ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL 192ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCtxtReset (htmlParserCtxtPtr ctxt); 193ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 194ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCtxtUseOptions (htmlParserCtxtPtr ctxt, 195ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 196ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 197ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlReadDoc (const xmlChar *cur, 198ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 199ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 200ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 201ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 202ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlReadFile (const char *URL, 203ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 204ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 205ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 206ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlReadMemory (const char *buffer, 207ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int size, 208ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 209ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 210ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 211ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 212ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlReadFd (int fd, 213ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 214ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 215ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 216ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 217ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlReadIO (xmlInputReadCallback ioread, 218ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlInputCloseCallback ioclose, 219ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project void *ioctx, 220ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 221ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 222ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 223ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 224ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCtxtReadDoc (xmlParserCtxtPtr ctxt, 225ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const xmlChar *cur, 226ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 227ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 228ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 229ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 230ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCtxtReadFile (xmlParserCtxtPtr ctxt, 231ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *filename, 232ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 233ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 234ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 235ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCtxtReadMemory (xmlParserCtxtPtr ctxt, 236ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *buffer, 237ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int size, 238ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 239ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 240ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 241ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 242ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCtxtReadFd (xmlParserCtxtPtr ctxt, 243ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int fd, 244ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 245ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 246ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 247ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlDocPtr XMLCALL 248ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlCtxtReadIO (xmlParserCtxtPtr ctxt, 249ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlInputReadCallback ioread, 250ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlInputCloseCallback ioclose, 251ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project void *ioctx, 252ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *URL, 253ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *encoding, 254ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int options); 255ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 256ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* NRK/Jan2003: further knowledge of HTML structure 257ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 258ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef enum { 259ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_NA = 0 , /* something we don't check at all */ 260ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_INVALID = 0x1 , 261ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_DEPRECATED = 0x2 , 262ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_VALID = 0x4 , 263ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project HTML_REQUIRED = 0xc /* VALID bit set so ( & HTML_VALID ) is TRUE */ 264ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} htmlStatus ; 265ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 266ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* Using htmlElemDesc rather than name here, to emphasise the fact 267ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project that otherwise there's a lookup overhead 268ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project*/ 269ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlStatus XMLCALL htmlAttrAllowed(const htmlElemDesc*, const xmlChar*, int) ; 270ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL htmlElementAllowedHere(const htmlElemDesc*, const xmlChar*) ; 271ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlStatus XMLCALL htmlElementStatusHere(const htmlElemDesc*, const htmlElemDesc*) ; 272ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN htmlStatus XMLCALL htmlNodeStatus(const htmlNodePtr, int) ; 273ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 274ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * htmlDefaultSubelement: 275ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @elt: HTML element 276ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 277ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns the default subelement for this element 278ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 279ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define htmlDefaultSubelement(elt) elt->defaultsubelt 280ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 281ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * htmlElementAllowedHereDesc: 282ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @parent: HTML parent element 283ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @elt: HTML element 284ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 285ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Checks whether an HTML element description may be a 286ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * direct child of the specified element. 287ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 288ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns 1 if allowed; 0 otherwise. 289ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 290ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define htmlElementAllowedHereDesc(parent,elt) \ 291ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project htmlElementAllowedHere((parent), (elt)->name) 292ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 293ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * htmlRequiredAttrs: 294ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @elt: HTML element 295ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 296ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns the attributes required for the specified element. 297ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 298ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define htmlRequiredAttrs(elt) (elt)->attrs_req 299ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 300ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 301ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 302ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} 303ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 304ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 305ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_HTML_ENABLED */ 306ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* __HTML_PARSER_H__ */ 307