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