entities.h
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. /*
  2.  * entities.h : interface for the XML entities handking
  3.  *
  4.  * See Copyright for the status of this software.
  5.  *
  6.  * Daniel.Veillard@w3.org
  7.  */
  8. #ifndef __XML_ENTITIES_H__
  9. #define __XML_ENTITIES_H__
  10. #include <libxml/tree.h>
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. /*
  15.  * The different valid entity types
  16.  */
  17. typedef enum {
  18.     XML_INTERNAL_GENERAL_ENTITY = 1,
  19.     XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
  20.     XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
  21.     XML_INTERNAL_PARAMETER_ENTITY = 4,
  22.     XML_EXTERNAL_PARAMETER_ENTITY = 5,
  23.     XML_INTERNAL_PREDEFINED_ENTITY = 6
  24. } xmlEntityType;
  25. /*
  26.  * An unit of storage for an entity, contains the string, the value
  27.  * and the linkind data needed for the linking in the hash table.
  28.  */
  29. typedef struct _xmlEntity xmlEntity;
  30. typedef xmlEntity *xmlEntityPtr;
  31. struct _xmlEntity {
  32. #ifndef XML_WITHOUT_CORBA
  33.     void           *_private;         /* for Corba, must be first ! */
  34. #endif
  35.     xmlElementType          type;       /* XML_ENTITY_DECL, must be second ! */
  36.     const xmlChar          *name; /* Attribute name */
  37.     struct _xmlNode    *children; /* NULL */
  38.     struct _xmlNode        *last; /* NULL */
  39.     struct _xmlDtd       *parent; /* -> DTD */
  40.     struct _xmlNode        *next; /* next sibling link  */
  41.     struct _xmlNode        *prev; /* previous sibling link  */
  42.     struct _xmlDoc          *doc;       /* the containing document */
  43.     xmlChar                *orig; /* content without ref substitution */
  44.     xmlChar             *content; /* content or ndata if unparsed */
  45.     int                   length; /* the content length */
  46.     xmlEntityType          etype; /* The entity type */
  47.     const xmlChar    *ExternalID; /* External identifier for PUBLIC */
  48.     const xmlChar      *SystemID; /* URI for a SYSTEM or PUBLIC Entity */
  49. #ifdef WITH_EXTRA_ENT_DETECT
  50.     /* Referenced entities name stack */
  51.     xmlChar           *ent;             /* Current parsed Node */
  52.     int                entNr;           /* Depth of the parsing stack */
  53.     int                entMax;          /* Max depth of the parsing stack */
  54.     xmlChar *         *entTab;          /* array of nodes */
  55. #endif
  56. };
  57. /*
  58.  * ALl entities are stored in a table there is one table per DTD
  59.  * and one extra per document.
  60.  */
  61. #define XML_MIN_ENTITIES_TABLE 32
  62. typedef struct _xmlEntitiesTable xmlEntitiesTable;
  63. typedef xmlEntitiesTable *xmlEntitiesTablePtr;
  64. struct _xmlEntitiesTable {
  65.     int nb_entities; /* number of elements stored */
  66.     int max_entities; /* maximum number of elements */
  67.     xmlEntityPtr *table; /* the table of entities */
  68. };
  69. /*
  70.  * External functions :
  71.  */
  72. xmlEntityPtr xmlAddDocEntity (xmlDocPtr doc,
  73.  const xmlChar *name,
  74.  int type,
  75.  const xmlChar *ExternalID,
  76.  const xmlChar *SystemID,
  77.  const xmlChar *content);
  78. xmlEntityPtr xmlAddDtdEntity (xmlDocPtr doc,
  79.  const xmlChar *name,
  80.  int type,
  81.  const xmlChar *ExternalID,
  82.  const xmlChar *SystemID,
  83.  const xmlChar *content);
  84. xmlEntityPtr xmlGetPredefinedEntity (const xmlChar *name);
  85. xmlEntityPtr xmlGetDocEntity (xmlDocPtr doc,
  86.  const xmlChar *name);
  87. xmlEntityPtr xmlGetDtdEntity (xmlDocPtr doc,
  88.  const xmlChar *name);
  89. xmlEntityPtr xmlGetParameterEntity (xmlDocPtr doc,
  90.  const xmlChar *name);
  91. const xmlChar * xmlEncodeEntities (xmlDocPtr doc,
  92.  const xmlChar *input);
  93. xmlChar * xmlEncodeEntitiesReentrant(xmlDocPtr doc,
  94.  const xmlChar *input);
  95. xmlEntitiesTablePtr xmlCreateEntitiesTable (void);
  96. xmlEntitiesTablePtr xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
  97. void xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
  98. void xmlDumpEntitiesTable (xmlBufferPtr buf,
  99.  xmlEntitiesTablePtr table);
  100. void xmlDumpEntityDecl (xmlBufferPtr buf,
  101.  xmlEntityPtr ent);
  102. xmlEntitiesTablePtr xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
  103. void xmlCleanupPredefinedEntities(void);
  104. #ifdef WITH_EXTRA_ENT_DETECT
  105. int xmlEntityAddReference (xmlEntityPtr ent,
  106.  const xmlChar *to);
  107. #endif
  108. #ifdef __cplusplus
  109. }
  110. #endif
  111. # endif /* __XML_ENTITIES_H__ */