(root)/
libxml2-2.12.3/
include/
libxml/
catalog.h
       1  /**
       2   * Summary: interfaces to the Catalog handling system
       3   * Description: the catalog module implements the support for
       4   * XML Catalogs and SGML catalogs
       5   *
       6   * SGML Open Technical Resolution TR9401:1997.
       7   * http://www.jclark.com/sp/catalog.htm
       8   *
       9   * XML Catalogs Working Draft 06 August 2001
      10   * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
      11   *
      12   * Copy: See Copyright for the status of this software.
      13   *
      14   * Author: Daniel Veillard
      15   */
      16  
      17  #ifndef __XML_CATALOG_H__
      18  #define __XML_CATALOG_H__
      19  
      20  #include <stdio.h>
      21  
      22  #include <libxml/xmlversion.h>
      23  #include <libxml/xmlstring.h>
      24  #include <libxml/tree.h>
      25  
      26  #ifdef LIBXML_CATALOG_ENABLED
      27  
      28  #ifdef __cplusplus
      29  extern "C" {
      30  #endif
      31  
      32  /**
      33   * XML_CATALOGS_NAMESPACE:
      34   *
      35   * The namespace for the XML Catalogs elements.
      36   */
      37  #define XML_CATALOGS_NAMESPACE					\
      38      (const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog"
      39  /**
      40   * XML_CATALOG_PI:
      41   *
      42   * The specific XML Catalog Processing Instruction name.
      43   */
      44  #define XML_CATALOG_PI						\
      45      (const xmlChar *) "oasis-xml-catalog"
      46  
      47  /*
      48   * The API is voluntarily limited to general cataloging.
      49   */
      50  typedef enum {
      51      XML_CATA_PREFER_NONE = 0,
      52      XML_CATA_PREFER_PUBLIC = 1,
      53      XML_CATA_PREFER_SYSTEM
      54  } xmlCatalogPrefer;
      55  
      56  typedef enum {
      57      XML_CATA_ALLOW_NONE = 0,
      58      XML_CATA_ALLOW_GLOBAL = 1,
      59      XML_CATA_ALLOW_DOCUMENT = 2,
      60      XML_CATA_ALLOW_ALL = 3
      61  } xmlCatalogAllow;
      62  
      63  typedef struct _xmlCatalog xmlCatalog;
      64  typedef xmlCatalog *xmlCatalogPtr;
      65  
      66  /*
      67   * Operations on a given catalog.
      68   */
      69  XMLPUBFUN xmlCatalogPtr
      70  		xmlNewCatalog		(int sgml);
      71  XMLPUBFUN xmlCatalogPtr
      72  		xmlLoadACatalog		(const char *filename);
      73  XMLPUBFUN xmlCatalogPtr
      74  		xmlLoadSGMLSuperCatalog	(const char *filename);
      75  XMLPUBFUN int
      76  		xmlConvertSGMLCatalog	(xmlCatalogPtr catal);
      77  XMLPUBFUN int
      78  		xmlACatalogAdd		(xmlCatalogPtr catal,
      79  					 const xmlChar *type,
      80  					 const xmlChar *orig,
      81  					 const xmlChar *replace);
      82  XMLPUBFUN int
      83  		xmlACatalogRemove	(xmlCatalogPtr catal,
      84  					 const xmlChar *value);
      85  XMLPUBFUN xmlChar *
      86  		xmlACatalogResolve	(xmlCatalogPtr catal,
      87  					 const xmlChar *pubID,
      88  	                                 const xmlChar *sysID);
      89  XMLPUBFUN xmlChar *
      90  		xmlACatalogResolveSystem(xmlCatalogPtr catal,
      91  					 const xmlChar *sysID);
      92  XMLPUBFUN xmlChar *
      93  		xmlACatalogResolvePublic(xmlCatalogPtr catal,
      94  					 const xmlChar *pubID);
      95  XMLPUBFUN xmlChar *
      96  		xmlACatalogResolveURI	(xmlCatalogPtr catal,
      97  					 const xmlChar *URI);
      98  #ifdef LIBXML_OUTPUT_ENABLED
      99  XMLPUBFUN void
     100  		xmlACatalogDump		(xmlCatalogPtr catal,
     101  					 FILE *out);
     102  #endif /* LIBXML_OUTPUT_ENABLED */
     103  XMLPUBFUN void
     104  		xmlFreeCatalog		(xmlCatalogPtr catal);
     105  XMLPUBFUN int
     106  		xmlCatalogIsEmpty	(xmlCatalogPtr catal);
     107  
     108  /*
     109   * Global operations.
     110   */
     111  XMLPUBFUN void
     112  		xmlInitializeCatalog	(void);
     113  XMLPUBFUN int
     114  		xmlLoadCatalog		(const char *filename);
     115  XMLPUBFUN void
     116  		xmlLoadCatalogs		(const char *paths);
     117  XMLPUBFUN void
     118  		xmlCatalogCleanup	(void);
     119  #ifdef LIBXML_OUTPUT_ENABLED
     120  XMLPUBFUN void
     121  		xmlCatalogDump		(FILE *out);
     122  #endif /* LIBXML_OUTPUT_ENABLED */
     123  XMLPUBFUN xmlChar *
     124  		xmlCatalogResolve	(const xmlChar *pubID,
     125  	                                 const xmlChar *sysID);
     126  XMLPUBFUN xmlChar *
     127  		xmlCatalogResolveSystem	(const xmlChar *sysID);
     128  XMLPUBFUN xmlChar *
     129  		xmlCatalogResolvePublic	(const xmlChar *pubID);
     130  XMLPUBFUN xmlChar *
     131  		xmlCatalogResolveURI	(const xmlChar *URI);
     132  XMLPUBFUN int
     133  		xmlCatalogAdd		(const xmlChar *type,
     134  					 const xmlChar *orig,
     135  					 const xmlChar *replace);
     136  XMLPUBFUN int
     137  		xmlCatalogRemove	(const xmlChar *value);
     138  XMLPUBFUN xmlDocPtr
     139  		xmlParseCatalogFile	(const char *filename);
     140  XMLPUBFUN int
     141  		xmlCatalogConvert	(void);
     142  
     143  /*
     144   * Strictly minimal interfaces for per-document catalogs used
     145   * by the parser.
     146   */
     147  XMLPUBFUN void
     148  		xmlCatalogFreeLocal	(void *catalogs);
     149  XMLPUBFUN void *
     150  		xmlCatalogAddLocal	(void *catalogs,
     151  					 const xmlChar *URL);
     152  XMLPUBFUN xmlChar *
     153  		xmlCatalogLocalResolve	(void *catalogs,
     154  					 const xmlChar *pubID,
     155  	                                 const xmlChar *sysID);
     156  XMLPUBFUN xmlChar *
     157  		xmlCatalogLocalResolveURI(void *catalogs,
     158  					 const xmlChar *URI);
     159  /*
     160   * Preference settings.
     161   */
     162  XMLPUBFUN int
     163  		xmlCatalogSetDebug	(int level);
     164  XMLPUBFUN xmlCatalogPrefer
     165  		xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer);
     166  XMLPUBFUN void
     167  		xmlCatalogSetDefaults	(xmlCatalogAllow allow);
     168  XMLPUBFUN xmlCatalogAllow
     169  		xmlCatalogGetDefaults	(void);
     170  
     171  
     172  /* DEPRECATED interfaces */
     173  XMLPUBFUN const xmlChar *
     174  		xmlCatalogGetSystem	(const xmlChar *sysID);
     175  XMLPUBFUN const xmlChar *
     176  		xmlCatalogGetPublic	(const xmlChar *pubID);
     177  
     178  #ifdef __cplusplus
     179  }
     180  #endif
     181  #endif /* LIBXML_CATALOG_ENABLED */
     182  #endif /* __XML_CATALOG_H__ */