Edit

kc3-lang/libxml2/entities.h

Branch :

  • Show log

    Commit

  • Author : Daniel Veillard
    Date : 2001-03-21 12:53:50
    Hash : 354edd89
    Message : It's hard to estimate how much I hated to do this, but it's done ... The best way to solve the I18N problen is unfortunately to fix libxml1 parser to at least deal correctly with UTF8 and ISO-Latin-1 encodings. I have plugged in the 2.3.5 (or what will be it's not released yet) core XML parser in the libxml1 framework. No changes API wise. The only changes will be backward binary compatible extensions of some of the parser structures and the number of parser states. - configure.in: version will be 1.8.12 - Makefile.am: added .memdump tests - SAX.c entities.[ch] parser.[ch] tree.c valid.c xml-error.h xmlIO.[ch]: plugged the 2.3.5 libxml2 XML parser in, while preserving binary compatibility - uri.[ch]: the parser code really requires URI manipulation add this from 2.3.5 too - results/* : of course this changed the output of a number of tests - test/dtd12 : this test was actually not wellformed, the new parser pukes at it, fixed ... Daniel

  • entities.h
  • /*
     * entities.h : interface for the XML entities handking
     *
     * See Copyright for the status of this software.
     *
     * Daniel.Veillard@w3.org
     */
    
    #ifndef __XML_ENTITIES_H__
    #define __XML_ENTITIES_H__
    
    #include "tree.h"
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    #define XML_INTERNAL_GENERAL_ENTITY		1
    #define XML_EXTERNAL_GENERAL_PARSED_ENTITY	2
    #define XML_EXTERNAL_GENERAL_UNPARSED_ENTITY	3
    #define XML_INTERNAL_PARAMETER_ENTITY		4
    #define XML_EXTERNAL_PARAMETER_ENTITY		5
    #define XML_INTERNAL_PREDEFINED_ENTITY		6
    
    /*
     * An unit of storage for an entity, contains the string, the value
     * and the linkind data needed for the linking in the hash table.
     */
    
    typedef struct _xmlEntity xmlEntity;
    typedef xmlEntity *xmlEntityPtr;
    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 */
    };
    
    /*
     * ALl entities are stored in a table there is one table per DTD
     * and one extra per document.
     */
    
    #define XML_MIN_ENTITIES_TABLE	32
    
    typedef struct _xmlEntitiesTable xmlEntitiesTable;
    typedef xmlEntitiesTable *xmlEntitiesTablePtr;
    struct _xmlEntitiesTable {
        int nb_entities;		/* number of elements stored */
        int max_entities;		/* maximum number of elements */
        xmlEntityPtr table;	        /* the table of entities */
    };
    
    
    /*
     * External functions :
     */
    
    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);
    xmlEntitiesTablePtr	xmlCopyEntitiesTable	(xmlEntitiesTablePtr table);
    void			xmlCleanupPredefinedEntities(void);
    
    #ifdef __cplusplus
    }
    #endif
    
    # endif /* __XML_ENTITIES_H__ */