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