/ libxml2 / include / libxml / catalog.h
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 Instuction 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 XMLCALL
 70  		xmlNewCatalog		(int sgml);
 71  XMLPUBFUN xmlCatalogPtr XMLCALL
 72  		xmlLoadACatalog		(const char *filename);
 73  XMLPUBFUN xmlCatalogPtr XMLCALL
 74  		xmlLoadSGMLSuperCatalog	(const char *filename);
 75  XMLPUBFUN int XMLCALL
 76  		xmlConvertSGMLCatalog	(xmlCatalogPtr catal);
 77  XMLPUBFUN int XMLCALL
 78  		xmlACatalogAdd		(xmlCatalogPtr catal,
 79  					 const xmlChar *type,
 80  					 const xmlChar *orig,
 81  					 const xmlChar *replace);
 82  XMLPUBFUN int XMLCALL
 83  		xmlACatalogRemove	(xmlCatalogPtr catal,
 84  					 const xmlChar *value);
 85  XMLPUBFUN xmlChar * XMLCALL
 86  		xmlACatalogResolve	(xmlCatalogPtr catal,
 87  					 const xmlChar *pubID,
 88  	                                 const xmlChar *sysID);
 89  XMLPUBFUN xmlChar * XMLCALL
 90  		xmlACatalogResolveSystem(xmlCatalogPtr catal,
 91  					 const xmlChar *sysID);
 92  XMLPUBFUN xmlChar * XMLCALL
 93  		xmlACatalogResolvePublic(xmlCatalogPtr catal,
 94  					 const xmlChar *pubID);
 95  XMLPUBFUN xmlChar * XMLCALL
 96  		xmlACatalogResolveURI	(xmlCatalogPtr catal,
 97  					 const xmlChar *URI);
 98  #ifdef LIBXML_OUTPUT_ENABLED
 99  XMLPUBFUN void XMLCALL
100  		xmlACatalogDump		(xmlCatalogPtr catal,
101  					 FILE *out);
102  #endif /* LIBXML_OUTPUT_ENABLED */
103  XMLPUBFUN void XMLCALL
104  		xmlFreeCatalog		(xmlCatalogPtr catal);
105  XMLPUBFUN int XMLCALL
106  		xmlCatalogIsEmpty	(xmlCatalogPtr catal);
107  
108  /*
109   * Global operations.
110   */
111  XMLPUBFUN void XMLCALL
112  		xmlInitializeCatalog	(void);
113  XMLPUBFUN int XMLCALL
114  		xmlLoadCatalog		(const char *filename);
115  XMLPUBFUN void XMLCALL
116  		xmlLoadCatalogs		(const char *paths);
117  XMLPUBFUN void XMLCALL
118  		xmlCatalogCleanup	(void);
119  #ifdef LIBXML_OUTPUT_ENABLED
120  XMLPUBFUN void XMLCALL
121  		xmlCatalogDump		(FILE *out);
122  #endif /* LIBXML_OUTPUT_ENABLED */
123  XMLPUBFUN xmlChar * XMLCALL
124  		xmlCatalogResolve	(const xmlChar *pubID,
125  	                                 const xmlChar *sysID);
126  XMLPUBFUN xmlChar * XMLCALL
127  		xmlCatalogResolveSystem	(const xmlChar *sysID);
128  XMLPUBFUN xmlChar * XMLCALL
129  		xmlCatalogResolvePublic	(const xmlChar *pubID);
130  XMLPUBFUN xmlChar * XMLCALL
131  		xmlCatalogResolveURI	(const xmlChar *URI);
132  XMLPUBFUN int XMLCALL
133  		xmlCatalogAdd		(const xmlChar *type,
134  					 const xmlChar *orig,
135  					 const xmlChar *replace);
136  XMLPUBFUN int XMLCALL
137  		xmlCatalogRemove	(const xmlChar *value);
138  XMLPUBFUN xmlDocPtr XMLCALL
139  		xmlParseCatalogFile	(const char *filename);
140  XMLPUBFUN int XMLCALL
141  		xmlCatalogConvert	(void);
142  
143  /*
144   * Strictly minimal interfaces for per-document catalogs used
145   * by the parser.
146   */
147  XMLPUBFUN void XMLCALL
148  		xmlCatalogFreeLocal	(void *catalogs);
149  XMLPUBFUN void * XMLCALL
150  		xmlCatalogAddLocal	(void *catalogs,
151  					 const xmlChar *URL);
152  XMLPUBFUN xmlChar * XMLCALL
153  		xmlCatalogLocalResolve	(void *catalogs,
154  					 const xmlChar *pubID,
155  	                                 const xmlChar *sysID);
156  XMLPUBFUN xmlChar * XMLCALL
157  		xmlCatalogLocalResolveURI(void *catalogs,
158  					 const xmlChar *URI);
159  /*
160   * Preference settings.
161   */
162  XMLPUBFUN int XMLCALL
163  		xmlCatalogSetDebug	(int level);
164  XMLPUBFUN xmlCatalogPrefer XMLCALL
165  		xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer);
166  XMLPUBFUN void XMLCALL
167  		xmlCatalogSetDefaults	(xmlCatalogAllow allow);
168  XMLPUBFUN xmlCatalogAllow XMLCALL
169  		xmlCatalogGetDefaults	(void);
170  
171  
172  /* DEPRECATED interfaces */
173  XMLPUBFUN const xmlChar * XMLCALL
174  		xmlCatalogGetSystem	(const xmlChar *sysID);
175  XMLPUBFUN const xmlChar * XMLCALL
176  		xmlCatalogGetPublic	(const xmlChar *pubID);
177  
178  #ifdef __cplusplus
179  }
180  #endif
181  #endif /* LIBXML_CATALOG_ENABLED */
182  #endif /* __XML_CATALOG_H__ */