28typedef struct xbit *XBit;
29typedef void CallbackProc(XBit bit,
void *arg);
30typedef InputSource EntityOpenerProc(Entity e,
void *arg);
36 XBIT_start, XBIT_empty, XBIT_end, XBIT_eof, XBIT_pcdata,
37 XBIT_pi, XBIT_comment, XBIT_cdsect, XBIT_xml,
38 XBIT_error, XBIT_warning, XBIT_none,
41typedef enum xbit_type XBitType;
43extern XML_API
const char8 *XBitTypeName[XBIT_enum_count];
46 AttributeDefinition definition;
53 CP_pcdata, CP_name, CP_seq, CP_choice
55typedef enum cp_type CPType;
77 struct xbit **children;
81#define pcdata_chars S1
86#define comment_chars S1
88#define cdsect_chars S1
91#define xml_encoding_name s2
92#define xml_standalone i1
93#define xml_encoding i2
95#define error_message s1
100 ExpandCharacterEntities,
101 ExpandGeneralEntities,
104 XMLPredefinedEntities,
105 ErrorOnUnquotedAttributeValues,
106 NormaliseAttributeValues,
107 NormalizeAttributeValues,
108 ErrorOnBadCharacterEntities,
109 ErrorOnUndefinedEntities,
112 ErrorOnUndefinedElements,
113 WarnOnUndefinedElements,
114 ErrorOnUndefinedAttributes,
115 WarnOnUndefinedAttributes,
119 ReturnDefaultedAttributes,
123 AllowMultipleElements,
128typedef enum parser_flag ParserFlag;
133 {PS_prolog1, PS_prolog2, PS_body, PS_epilog, PS_end, PS_error};
136 ElementDefinition definition;
141 enum parse_state state;
142 Entity document_entity;
144 StandaloneDeclaration standalone;
147 int namelen, pbufsize, pbufnext;
151 CallbackProc *dtd_callback;
152 CallbackProc *warning_callback;
153 EntityOpenerProc *entity_opener;
156 int element_stack_alloc;
159 int external_pe_depth;
163XML_API
int ParserInit(
void);
164XML_API Parser NewParser(
void);
165XML_API
void FreeParser(Parser p);
167XML_API Entity ParserRootEntity(Parser p);
168XML_API InputSource ParserRootSource(Parser p);
170XML_API XBit ReadXBit(Parser p);
171XML_API XBit PeekXBit(Parser p);
172XML_API
void FreeXBit(XBit
xbit);
175XBit ReadXTree(Parser p);
176void FreeXTree(XBit tree);
179XML_API XBit ParseDtd(Parser p, Entity e);
181XML_API
void ParserSetWarningCallback(Parser p, CallbackProc cb);
182XML_API
void ParserSetDtdCallback(Parser p, CallbackProc cb);
183XML_API
void ParserSetEntityOpener(Parser p, EntityOpenerProc opener);
184XML_API
void ParserSetCallbackArg(Parser p,
void *arg);
186XML_API
int ParserPush(Parser p, InputSource source);
187XML_API
void ParserPop(Parser p);
189XML_API
void ParserSetFlag(Parser p, ParserFlag flag,
int value);
190#define ParserGetFlag(p, flag) ((p)->flags & (1 << (flag)))
192XML_API
void ParserPerror(Parser p, XBit bit);