mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-10-23 01:52:48 +03:00
Synchronized the header files with the library code in order to assure that all the various conditionals (LIBXML_xxxx_ENABLED) were the same in both. Modified the API database content to more accurately reflect the conditionals. Enhanced the generation of that database. Although there was no substantial change to any of the library code's logic, a large number of files were modified to achieve the above, and the configuration script was enhanced to do some automatic enabling of features (e.g. --with-xinclude forces --with-xpath). Additionally, all the format errors discovered by apibuild.py were corrected. * configure.in: enhanced cross-checking of options * doc/apibuild.py, doc/elfgcchack.xsl, doc/libxml2-refs.xml, doc/libxml2-api.xml, gentest.py: changed the usage of the <cond> element in module descriptions * elfgcchack.h, testapi.c: regenerated with proper conditionals * HTMLparser.c, SAX.c, globals.c, tree.c, xmlschemas.c, xpath.c, testSAX.c: cleaned up conditionals * include/libxml/[SAX.h, SAX2.h, debugXML.h, encoding.h, entities.h, hash.h, parser.h, parserInternals.h, schemasInternals.h, tree.h, valid.h, xlink.h, xmlIO.h, xmlautomata.h, xmlreader.h, xpath.h]: synchronized the conditionals with the corresponding module code * doc/examples/tree2.c, doc/examples/xpath1.c, doc/examples/xpath2.c: added additional conditions required for compilation * doc/*.html, doc/html/*.html: rebuilt the docs
140 lines
4.3 KiB
C
140 lines
4.3 KiB
C
/*
|
|
* Summary: interface for the XML entities handling
|
|
* Description: this module provides some of the entity API needed
|
|
* for the parser and applications.
|
|
*
|
|
* Copy: See Copyright for the status of this software.
|
|
*
|
|
* Author: Daniel Veillard
|
|
*/
|
|
|
|
#ifndef __XML_ENTITIES_H__
|
|
#define __XML_ENTITIES_H__
|
|
|
|
#include <libxml/xmlversion.h>
|
|
#include <libxml/tree.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* The different valid entity types.
|
|
*/
|
|
typedef enum {
|
|
XML_INTERNAL_GENERAL_ENTITY = 1,
|
|
XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
|
|
XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
|
|
XML_INTERNAL_PARAMETER_ENTITY = 4,
|
|
XML_EXTERNAL_PARAMETER_ENTITY = 5,
|
|
XML_INTERNAL_PREDEFINED_ENTITY = 6
|
|
} xmlEntityType;
|
|
|
|
/*
|
|
* An unit of storage for an entity, contains the string, the value
|
|
* and the linkind data needed for the linking in the hash table.
|
|
*/
|
|
|
|
struct _xmlEntity {
|
|
void *_private; /* application data */
|
|
xmlElementType type; /* XML_ENTITY_DECL, must be second ! */
|
|
const xmlChar *name; /* Entity name */
|
|
struct _xmlNode *children; /* First child link */
|
|
struct _xmlNode *last; /* Last child link */
|
|
struct _xmlDtd *parent; /* -> DTD */
|
|
struct _xmlNode *next; /* next sibling link */
|
|
struct _xmlNode *prev; /* previous sibling link */
|
|
struct _xmlDoc *doc; /* the containing document */
|
|
|
|
xmlChar *orig; /* content without ref substitution */
|
|
xmlChar *content; /* content or ndata if unparsed */
|
|
int length; /* the content length */
|
|
xmlEntityType etype; /* The entity type */
|
|
const xmlChar *ExternalID; /* External identifier for PUBLIC */
|
|
const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */
|
|
|
|
struct _xmlEntity *nexte; /* unused */
|
|
const xmlChar *URI; /* the full URI as computed */
|
|
int owner; /* does the entity own the childrens */
|
|
};
|
|
|
|
/*
|
|
* All entities are stored in an hash table.
|
|
* There is 2 separate hash tables for global and parameter entities.
|
|
*/
|
|
|
|
typedef struct _xmlHashTable xmlEntitiesTable;
|
|
typedef xmlEntitiesTable *xmlEntitiesTablePtr;
|
|
|
|
/*
|
|
* External functions:
|
|
*/
|
|
|
|
#ifdef LIBXML_LEGACY_ENABLED
|
|
XMLPUBFUN void XMLCALL
|
|
xmlInitializePredefinedEntities (void);
|
|
#endif /* LIBXML_LEGACY_ENABLED */
|
|
XMLPUBFUN xmlEntityPtr XMLCALL
|
|
xmlAddDocEntity (xmlDocPtr doc,
|
|
const xmlChar *name,
|
|
int type,
|
|
const xmlChar *ExternalID,
|
|
const xmlChar *SystemID,
|
|
const xmlChar *content);
|
|
XMLPUBFUN xmlEntityPtr XMLCALL
|
|
xmlAddDtdEntity (xmlDocPtr doc,
|
|
const xmlChar *name,
|
|
int type,
|
|
const xmlChar *ExternalID,
|
|
const xmlChar *SystemID,
|
|
const xmlChar *content);
|
|
XMLPUBFUN xmlEntityPtr XMLCALL
|
|
xmlGetPredefinedEntity (const xmlChar *name);
|
|
XMLPUBFUN xmlEntityPtr XMLCALL
|
|
xmlGetDocEntity (xmlDocPtr doc,
|
|
const xmlChar *name);
|
|
XMLPUBFUN xmlEntityPtr XMLCALL
|
|
xmlGetDtdEntity (xmlDocPtr doc,
|
|
const xmlChar *name);
|
|
XMLPUBFUN xmlEntityPtr XMLCALL
|
|
xmlGetParameterEntity (xmlDocPtr doc,
|
|
const xmlChar *name);
|
|
#ifdef LIBXML_LEGACY_ENABLED
|
|
XMLPUBFUN const xmlChar * XMLCALL
|
|
xmlEncodeEntities (xmlDocPtr doc,
|
|
const xmlChar *input);
|
|
#endif /* LIBXML_LEGACY_ENABLED */
|
|
XMLPUBFUN xmlChar * XMLCALL
|
|
xmlEncodeEntitiesReentrant(xmlDocPtr doc,
|
|
const xmlChar *input);
|
|
XMLPUBFUN xmlChar * XMLCALL
|
|
xmlEncodeSpecialChars (xmlDocPtr doc,
|
|
const xmlChar *input);
|
|
XMLPUBFUN xmlEntitiesTablePtr XMLCALL
|
|
xmlCreateEntitiesTable (void);
|
|
#ifdef LIBXML_TREE_ENABLED
|
|
XMLPUBFUN xmlEntitiesTablePtr XMLCALL
|
|
xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
|
|
#endif /* LIBXML_TREE_ENABLED */
|
|
XMLPUBFUN void XMLCALL
|
|
xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
|
|
#ifdef LIBXML_OUTPUT_ENABLED
|
|
XMLPUBFUN void XMLCALL
|
|
xmlDumpEntitiesTable (xmlBufferPtr buf,
|
|
xmlEntitiesTablePtr table);
|
|
XMLPUBFUN void XMLCALL
|
|
xmlDumpEntityDecl (xmlBufferPtr buf,
|
|
xmlEntityPtr ent);
|
|
#endif /* LIBXML_OUTPUT_ENABLED */
|
|
#ifdef LIBXML_LEGACY_ENABLED
|
|
XMLPUBFUN void XMLCALL
|
|
xmlCleanupPredefinedEntities(void);
|
|
#endif /* LIBXML_LEGACY_ENABLED */
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
# endif /* __XML_ENTITIES_H__ */
|