28 typedef struct xbit *XBit;
29 typedef void CallbackProc(XBit bit,
void *arg);
30 typedef 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,
41 typedef enum xbit_type XBitType;
43 extern XML_API
const char8 *XBitTypeName[XBIT_enum_count];
46 AttributeDefinition definition;
53 CP_pcdata, CP_name, CP_seq, CP_choice
55 typedef enum cp_type CPType;
77 struct xbit **children;
81 #define pcdata_chars S1
86 #define comment_chars S1
88 #define cdsect_chars S1
90 #define xml_version 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,
128 typedef 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;
163 XML_API
int ParserInit(
void);
164 XML_API Parser NewParser(
void);
165 XML_API
void FreeParser(Parser p);
167 XML_API Entity ParserRootEntity(Parser p);
168 XML_API InputSource ParserRootSource(Parser p);
170 XML_API XBit ReadXBit(Parser p);
171 XML_API XBit PeekXBit(Parser p);
172 XML_API
void FreeXBit(XBit
xbit);
175 XBit ReadXTree(Parser p);
176 void FreeXTree(XBit tree);
179 XML_API XBit ParseDtd(Parser p, Entity e);
181 XML_API
void ParserSetWarningCallback(Parser p, CallbackProc cb);
182 XML_API
void ParserSetDtdCallback(Parser p, CallbackProc cb);
183 XML_API
void ParserSetEntityOpener(Parser p, EntityOpenerProc opener);
184 XML_API
void ParserSetCallbackArg(Parser p,
void *arg);
186 XML_API
int ParserPush(Parser p, InputSource source);
187 XML_API
void ParserPop(Parser p);
189 XML_API
void ParserSetFlag(Parser p, ParserFlag flag,
int value);
190 #define ParserGetFlag(p, flag) ((p)->flags & (1 << (flag)))
192 XML_API
void ParserPerror(Parser p, XBit bit);