File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml / entities.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:38 2014 UTC (10 years, 2 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    1: /*
    2:  * Summary: interface for the XML entities handling
    3:  * Description: this module provides some of the entity API needed
    4:  *              for the parser and applications.
    5:  *
    6:  * Copy: See Copyright for the status of this software.
    7:  *
    8:  * Author: Daniel Veillard
    9:  */
   10: 
   11: #ifndef __XML_ENTITIES_H__
   12: #define __XML_ENTITIES_H__
   13: 
   14: #include <libxml/xmlversion.h>
   15: #include <libxml/tree.h>
   16: 
   17: #ifdef __cplusplus
   18: extern "C" {
   19: #endif
   20: 
   21: /*
   22:  * The different valid entity types.
   23:  */
   24: typedef enum {
   25:     XML_INTERNAL_GENERAL_ENTITY = 1,
   26:     XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
   27:     XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
   28:     XML_INTERNAL_PARAMETER_ENTITY = 4,
   29:     XML_EXTERNAL_PARAMETER_ENTITY = 5,
   30:     XML_INTERNAL_PREDEFINED_ENTITY = 6
   31: } xmlEntityType;
   32: 
   33: /*
   34:  * An unit of storage for an entity, contains the string, the value
   35:  * and the linkind data needed for the linking in the hash table.
   36:  */
   37: 
   38: struct _xmlEntity {
   39:     void           *_private;	        /* application data */
   40:     xmlElementType          type;       /* XML_ENTITY_DECL, must be second ! */
   41:     const xmlChar          *name;	/* Entity name */
   42:     struct _xmlNode    *children;	/* First child link */
   43:     struct _xmlNode        *last;	/* Last child link */
   44:     struct _xmlDtd       *parent;	/* -> DTD */
   45:     struct _xmlNode        *next;	/* next sibling link  */
   46:     struct _xmlNode        *prev;	/* previous sibling link  */
   47:     struct _xmlDoc          *doc;       /* the containing document */
   48: 
   49:     xmlChar                *orig;	/* content without ref substitution */
   50:     xmlChar             *content;	/* content or ndata if unparsed */
   51:     int                   length;	/* the content length */
   52:     xmlEntityType          etype;	/* The entity type */
   53:     const xmlChar    *ExternalID;	/* External identifier for PUBLIC */
   54:     const xmlChar      *SystemID;	/* URI for a SYSTEM or PUBLIC Entity */
   55: 
   56:     struct _xmlEntity     *nexte;	/* unused */
   57:     const xmlChar           *URI;	/* the full URI as computed */
   58:     int                    owner;	/* does the entity own the childrens */
   59:     int			 checked;	/* was the entity content checked */
   60: 					/* this is also used to count entites
   61: 					 * references done from that entity
   62: 					 * and if it contains '<' */
   63: };
   64: 
   65: /*
   66:  * All entities are stored in an hash table.
   67:  * There is 2 separate hash tables for global and parameter entities.
   68:  */
   69: 
   70: typedef struct _xmlHashTable xmlEntitiesTable;
   71: typedef xmlEntitiesTable *xmlEntitiesTablePtr;
   72: 
   73: /*
   74:  * External functions:
   75:  */
   76: 
   77: #ifdef LIBXML_LEGACY_ENABLED
   78: XMLPUBFUN void XMLCALL
   79: 		xmlInitializePredefinedEntities	(void);
   80: #endif /* LIBXML_LEGACY_ENABLED */
   81: 
   82: XMLPUBFUN xmlEntityPtr XMLCALL
   83: 			xmlNewEntity		(xmlDocPtr doc,
   84: 						 const xmlChar *name,
   85: 						 int type,
   86: 						 const xmlChar *ExternalID,
   87: 						 const xmlChar *SystemID,
   88: 						 const xmlChar *content);
   89: XMLPUBFUN xmlEntityPtr XMLCALL
   90: 			xmlAddDocEntity		(xmlDocPtr doc,
   91: 						 const xmlChar *name,
   92: 						 int type,
   93: 						 const xmlChar *ExternalID,
   94: 						 const xmlChar *SystemID,
   95: 						 const xmlChar *content);
   96: XMLPUBFUN xmlEntityPtr XMLCALL
   97: 			xmlAddDtdEntity		(xmlDocPtr doc,
   98: 						 const xmlChar *name,
   99: 						 int type,
  100: 						 const xmlChar *ExternalID,
  101: 						 const xmlChar *SystemID,
  102: 						 const xmlChar *content);
  103: XMLPUBFUN xmlEntityPtr XMLCALL
  104: 			xmlGetPredefinedEntity	(const xmlChar *name);
  105: XMLPUBFUN xmlEntityPtr XMLCALL
  106: 			xmlGetDocEntity		(xmlDocPtr doc,
  107: 						 const xmlChar *name);
  108: XMLPUBFUN xmlEntityPtr XMLCALL
  109: 			xmlGetDtdEntity		(xmlDocPtr doc,
  110: 						 const xmlChar *name);
  111: XMLPUBFUN xmlEntityPtr XMLCALL
  112: 			xmlGetParameterEntity	(xmlDocPtr doc,
  113: 						 const xmlChar *name);
  114: #ifdef LIBXML_LEGACY_ENABLED
  115: XMLPUBFUN const xmlChar * XMLCALL
  116: 			xmlEncodeEntities	(xmlDocPtr doc,
  117: 						 const xmlChar *input);
  118: #endif /* LIBXML_LEGACY_ENABLED */
  119: XMLPUBFUN xmlChar * XMLCALL
  120: 			xmlEncodeEntitiesReentrant(xmlDocPtr doc,
  121: 						 const xmlChar *input);
  122: XMLPUBFUN xmlChar * XMLCALL
  123: 			xmlEncodeSpecialChars	(xmlDocPtr doc,
  124: 						 const xmlChar *input);
  125: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
  126: 			xmlCreateEntitiesTable	(void);
  127: #ifdef LIBXML_TREE_ENABLED
  128: XMLPUBFUN xmlEntitiesTablePtr XMLCALL
  129: 			xmlCopyEntitiesTable	(xmlEntitiesTablePtr table);
  130: #endif /* LIBXML_TREE_ENABLED */
  131: XMLPUBFUN void XMLCALL
  132: 			xmlFreeEntitiesTable	(xmlEntitiesTablePtr table);
  133: #ifdef LIBXML_OUTPUT_ENABLED
  134: XMLPUBFUN void XMLCALL
  135: 			xmlDumpEntitiesTable	(xmlBufferPtr buf,
  136: 						 xmlEntitiesTablePtr table);
  137: XMLPUBFUN void XMLCALL
  138: 			xmlDumpEntityDecl	(xmlBufferPtr buf,
  139: 						 xmlEntityPtr ent);
  140: #endif /* LIBXML_OUTPUT_ENABLED */
  141: #ifdef LIBXML_LEGACY_ENABLED
  142: XMLPUBFUN void XMLCALL
  143: 			xmlCleanupPredefinedEntities(void);
  144: #endif /* LIBXML_LEGACY_ENABLED */
  145: 
  146: 
  147: #ifdef __cplusplus
  148: }
  149: #endif
  150: 
  151: # endif /* __XML_ENTITIES_H__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>