![]() | ![]() | ![]() | Gnome XML Library Reference Manual | ![]() |
---|
#define XML_INTERNAL_GENERAL_ENTITY #define XML_EXTERNAL_GENERAL_PARSED_ENTITY #define XML_EXTERNAL_GENERAL_UNPARSED_ENTITY #define XML_INTERNAL_PARAMETER_ENTITY #define XML_EXTERNAL_PARAMETER_ENTITY #define XML_INTERNAL_PREDEFINED_ENTITY struct xmlEntity; typedef xmlEntityPtr; #define XML_MIN_ENTITIES_TABLE struct xmlEntitiesTable; typedef xmlEntitiesTablePtr; void xmlAddDocEntity (xmlDocPtr doc, const xmlChar *name, int type, const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content); void xmlAddDtdEntity (xmlDocPtr doc, const xmlChar *name, int type, const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content); xmlEntityPtr xmlGetPredefinedEntity (const xmlChar *name); xmlEntityPtr xmlGetDocEntity (xmlDocPtr doc, const xmlChar *name); xmlEntityPtr xmlGetDtdEntity (xmlDocPtr doc, const xmlChar *name); xmlEntityPtr xmlGetParameterEntity (xmlDocPtr doc, const xmlChar *name); const xmlChar* xmlEncodeEntities (xmlDocPtr doc, const xmlChar *input); xmlChar* xmlEncodeEntitiesReentrant (xmlDocPtr doc, const xmlChar *input); xmlEntitiesTablePtr xmlCreateEntitiesTable (void); xmlEntitiesTablePtr xmlCopyEntitiesTable (xmlEntitiesTablePtr table); void xmlFreeEntitiesTable (xmlEntitiesTablePtr table); void xmlDumpEntitiesTable (xmlBufferPtr buf, xmlEntitiesTablePtr table); void xmlCleanupPredefinedEntities (void);
struct xmlEntity { int type; /* The entity type */ int len; /* The lenght of the name */ const xmlChar *name; /* Name of the entity */ const xmlChar *ExternalID; /* External identifier for PUBLIC Entity */ const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */ xmlChar *content; /* The entity content or ndata if unparsed */ int length; /* the content length */ xmlChar *orig; /* The entity cont without ref substitution */ /* Extended when merging 2,3,5 */ struct _xmlNode *children;/* NULL */ struct _xmlNode *last; /* NULL */ const xmlChar *URI; /* the full URI as computed */ };
struct xmlEntitiesTable { int nb_entities; /* number of elements stored */ int max_entities; /* maximum number of elements */ xmlEntityPtr table; /* the table of entities */ };
void xmlAddDocEntity (xmlDocPtr doc, const xmlChar *name, int type, const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content);
Register a new entity for this document.
doc : | the document |
name : | the entity name |
type : | the entity type XML_xxx_yyy_ENTITY |
ExternalID : | the entity external ID if available |
SystemID : | the entity system ID if available |
content : | the entity content |
void xmlAddDtdEntity (xmlDocPtr doc, const xmlChar *name, int type, const xmlChar *ExternalID, const xmlChar *SystemID, const xmlChar *content);
Register a new entity for this document DTD.
doc : | the document |
name : | the entity name |
type : | the entity type XML_xxx_yyy_ENTITY |
ExternalID : | the entity external ID if available |
SystemID : | the entity system ID if available |
content : | the entity content |
xmlEntityPtr xmlGetPredefinedEntity (const xmlChar *name);
Check whether this name is an predefined entity.
name : | the entity name |
Returns : | NULL if not, othervise the entity |
xmlEntityPtr xmlGetDocEntity (xmlDocPtr doc, const xmlChar *name);
Do an entity lookup in the document entity hash table and returns the corrsponding entity, otherwise a lookup is done in the predefined entities too.
doc : | the document referencing the entity |
name : | the entity name |
Returns : | A pointer to the entity structure or NULL if not found. |
xmlEntityPtr xmlGetDtdEntity (xmlDocPtr doc, const xmlChar *name);
Do an entity lookup in the Dtd entity hash table and returns the corresponding entity, if found.
doc : | the document referencing the entity |
name : | the entity name |
Returns : | A pointer to the entity structure or NULL if not found. |
xmlEntityPtr xmlGetParameterEntity (xmlDocPtr doc, const xmlChar *name);
Do an entity lookup in the internal and external subsets and returns the corresponding parameter entity, if found.
doc : | the document referencing the entity |
name : | the entity name |
Returns : | A pointer to the entity structure or NULL if not found. |
const xmlChar* xmlEncodeEntities (xmlDocPtr doc, const xmlChar *input);
Do a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts.
TODO: remove xmlEncodeEntities, once we are not afraid of breaking binary compatibility
People must migrate their code to xmlEncodeEntitiesReentrant ! This routine will issue a warning when encountered.
doc : | the document containing the string |
input : | A string to convert to XML. |
Returns : | A newly allocated string with the substitution done. |
xmlChar* xmlEncodeEntitiesReentrant (xmlDocPtr doc, const xmlChar *input);
Do a global encoding of a string, replacing the predefined entities and non ASCII values with their entities and CharRef counterparts. Contrary to xmlEncodeEntities, this routine is reentrant, and result must be deallocated.
doc : | the document containing the string |
input : | A string to convert to XML. |
Returns : | A newly allocated string with the substitution done. |
xmlEntitiesTablePtr xmlCreateEntitiesTable (void);
create and initialize an empty entities hash table.
Returns : | the xmlEntitiesTablePtr just created or NULL in case of error. |
xmlEntitiesTablePtr xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
Build a copy of an entity table.
table : | An entity table |
Returns : | the new xmlEntitiesTablePtr or NULL in case of error. |
void xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
Deallocate the memory used by an entities hash table.
table : | An entity table |
void xmlDumpEntitiesTable (xmlBufferPtr buf, xmlEntitiesTablePtr table);
This will dump the content of the entity table as an XML DTD definition
buf : | An XML buffer. |
table : | An entity table |
<<< tree | valid >>> |