42 Entity internal_part, external_part;
45 Entity predefined_entities;
56enum entity_type {ET_external, ET_internal};
59enum markup_language {ML_xml, ML_nsl, ML_unspecified};
62enum standalone_declaration {
64 SDD_unspecified, SDD_no, SDD_yes, SDD_enum_count
68extern const char8 *StandaloneDeclarationName[SDD_enum_count];
76 const char8 *base_url;
86 int line1_char_offset;
87 int matches_parent_text;
91 const char8 *systemid;
92 const char8 *publicid;
95 const char8 *version_decl;
98 const char8 *ddb_filename;
105 CT_mixed, CT_any, CT_bogus1, CT_bogus2, CT_empty, CT_element, CT_enum_count
107typedef enum content_type ContentType;
109extern XML_API
const char8 *ContentTypeName[CT_enum_count];
130 DT_required, DT_bogus1, DT_implied,
131 DT_bogus2, DT_none, DT_fixed, DT_enum_count
133typedef enum default_type DefaultType;
135extern XML_API
const char8 *DefaultTypeName[DT_enum_count];
139 AT_cdata, AT_bogus1, AT_bogus2, AT_nmtoken, AT_bogus3, AT_entity,
140 AT_idref, AT_bogus4, AT_bogus5, AT_nmtokens, AT_bogus6, AT_entities,
141 AT_idrefs, AT_id, AT_notation, AT_enumeration, AT_enum_count
143typedef enum attribute_type AttributeType;
145extern XML_API
const char8 *AttributeTypeName[AT_enum_count];
157 char type, default_type;
164 Char **allowed_values;
166 const Char *default_value;
176 const char8 *systemid;
177 const char8 *publicid;
183XML_API
Dtd NewDtd(
void);
184XML_API
void FreeDtd(
Dtd dtd);
186XML_API
Entity NewExternalEntityN(
const Char *name,
int namelen,
187 const char8 *publicid,
const char8 *systemid,
190XML_API
Entity NewInternalEntityN(
const Char *name,
int namelen,
192 int line_offset,
int line1_char_offset,
193 int matches_parent_text);
194XML_API
void FreeEntity(
Entity e);
196XML_API
const char8 *EntityURL(
Entity e);
197XML_API
const char8 *EntityDescription(
Entity e);
198XML_API
void EntitySetBaseURL(
Entity e,
const char8 *url);
199XML_API
const char8 *EntityBaseURL(
Entity e);
204#define NewExternalEntity(name, pub, sys, nnot, parent) \
205 NewExternalEntityN(name, name ? Strlen(name) : 0, pub, sys, nnot, parent)
206#define NewInternalEntity(name, test, parent, l, l1, mat) \
207 NewInternalEntityN(name, name ? Strlen(name) : 0, test, parent, l, l1, mat)
208#define FindEntity(dtd, name, pe) FindEntityN(dtd, name, Strlen(name), pe)
211 ContentType type,
Char *content);
213 const Char *name,
int namelen);
219#define DefineElement(dtd, name, type, content) \
220 DefineElementN(dtd, name, Strlen(name), type, content)
221#define TentativelyDefineElement(dtd, name) \
222 TentativelyDefineElementN(dtd, name, Strlen(name))
223#define FindElement(dtd, name) FindElementN(dtd, name, Strlen(name))
226 const Char *name,
int namelen,
227 AttributeType type,
Char **allowed_values,
228 DefaultType default_type,
229 const Char *default_value);
231 const Char *name,
int namelen);
234#define DefineAttribute(element, name, type, all, dt, dv) \
235 DefineAttributeN(element, name, Strlen(name), type, all, dt, dv)
236#define FindAttribute(element, name) \
237 FindAttributeN(element, name, Strlen(name))
240 const char8 *publicid,
const char8 *systemid);
242 const Char *name,
int namelen);
244 const char8 *publicid,
const char8 *systemid);
248#define DefineNotation(dtd, name, pub, sys) \
249 DefineNotationN(dtd, name, Strlen(name), pub, sys)
250#define TentativelyDefineNotation(dtd, name) \
251 TentativelyDefineNotationN(dtd, name, Strlen(name))
252#define FindNotation(dtd, name) FindNotationN(dtd, name, Strlen(name))