Paul Cercueil / libxml2

Dependents:   libiio

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers catalog.h Source File

catalog.h

00001 /**
00002  * Summary: interfaces to the Catalog handling system
00003  * Description: the catalog module implements the support for
00004  * XML Catalogs and SGML catalogs
00005  *
00006  * SGML Open Technical Resolution TR9401:1997.
00007  * http://www.jclark.com/sp/catalog.htm
00008  *
00009  * XML Catalogs Working Draft 06 August 2001
00010  * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
00011  *
00012  * Copy: See Copyright for the status of this software.
00013  *
00014  * Author: Daniel Veillard
00015  */
00016 
00017 #ifndef __XML_CATALOG_H__
00018 #define __XML_CATALOG_H__
00019 
00020 #include <stdio.h>
00021 
00022 #include <libxml/xmlversion.h>
00023 #include <libxml/xmlstring.h>
00024 #include <libxml/tree.h>
00025 
00026 #ifdef LIBXML_CATALOG_ENABLED
00027 
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031 
00032 /**
00033  * XML_CATALOGS_NAMESPACE:
00034  *
00035  * The namespace for the XML Catalogs elements.
00036  */
00037 #define XML_CATALOGS_NAMESPACE                  \
00038     (const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog"
00039 /**
00040  * XML_CATALOG_PI:
00041  *
00042  * The specific XML Catalog Processing Instuction name.
00043  */
00044 #define XML_CATALOG_PI                      \
00045     (const xmlChar *) "oasis-xml-catalog"
00046 
00047 /*
00048  * The API is voluntarily limited to general cataloging.
00049  */
00050 typedef enum {
00051     XML_CATA_PREFER_NONE = 0,
00052     XML_CATA_PREFER_PUBLIC = 1,
00053     XML_CATA_PREFER_SYSTEM
00054 } xmlCatalogPrefer;
00055 
00056 typedef enum {
00057     XML_CATA_ALLOW_NONE = 0,
00058     XML_CATA_ALLOW_GLOBAL = 1,
00059     XML_CATA_ALLOW_DOCUMENT = 2,
00060     XML_CATA_ALLOW_ALL = 3
00061 } xmlCatalogAllow;
00062 
00063 typedef struct _xmlCatalog xmlCatalog;
00064 typedef xmlCatalog *xmlCatalogPtr;
00065 
00066 /*
00067  * Operations on a given catalog.
00068  */
00069 XMLPUBFUN xmlCatalogPtr XMLCALL
00070         xmlNewCatalog       (int sgml);
00071 XMLPUBFUN xmlCatalogPtr XMLCALL
00072         xmlLoadACatalog     (const char *filename);
00073 XMLPUBFUN xmlCatalogPtr XMLCALL
00074         xmlLoadSGMLSuperCatalog (const char *filename);
00075 XMLPUBFUN int XMLCALL
00076         xmlConvertSGMLCatalog   (xmlCatalogPtr catal);
00077 XMLPUBFUN int XMLCALL
00078         xmlACatalogAdd      (xmlCatalogPtr catal,
00079                      const xmlChar *type,
00080                      const xmlChar *orig,
00081                      const xmlChar *replace);
00082 XMLPUBFUN int XMLCALL
00083         xmlACatalogRemove   (xmlCatalogPtr catal,
00084                      const xmlChar *value);
00085 XMLPUBFUN xmlChar * XMLCALL
00086         xmlACatalogResolve  (xmlCatalogPtr catal,
00087                      const xmlChar *pubID,
00088                                      const xmlChar *sysID);
00089 XMLPUBFUN xmlChar * XMLCALL
00090         xmlACatalogResolveSystem(xmlCatalogPtr catal,
00091                      const xmlChar *sysID);
00092 XMLPUBFUN xmlChar * XMLCALL
00093         xmlACatalogResolvePublic(xmlCatalogPtr catal,
00094                      const xmlChar *pubID);
00095 XMLPUBFUN xmlChar * XMLCALL
00096         xmlACatalogResolveURI   (xmlCatalogPtr catal,
00097                      const xmlChar *URI);
00098 #ifdef LIBXML_OUTPUT_ENABLED
00099 XMLPUBFUN void XMLCALL
00100         xmlACatalogDump     (xmlCatalogPtr catal,
00101                      FILE *out);
00102 #endif /* LIBXML_OUTPUT_ENABLED */
00103 XMLPUBFUN void XMLCALL
00104         xmlFreeCatalog      (xmlCatalogPtr catal);
00105 XMLPUBFUN int XMLCALL
00106         xmlCatalogIsEmpty   (xmlCatalogPtr catal);
00107 
00108 /*
00109  * Global operations.
00110  */
00111 XMLPUBFUN void XMLCALL
00112         xmlInitializeCatalog    (void);
00113 XMLPUBFUN int XMLCALL
00114         xmlLoadCatalog      (const char *filename);
00115 XMLPUBFUN void XMLCALL
00116         xmlLoadCatalogs     (const char *paths);
00117 XMLPUBFUN void XMLCALL
00118         xmlCatalogCleanup   (void);
00119 #ifdef LIBXML_OUTPUT_ENABLED
00120 XMLPUBFUN void XMLCALL
00121         xmlCatalogDump      (FILE *out);
00122 #endif /* LIBXML_OUTPUT_ENABLED */
00123 XMLPUBFUN xmlChar * XMLCALL
00124         xmlCatalogResolve   (const xmlChar *pubID,
00125                                      const xmlChar *sysID);
00126 XMLPUBFUN xmlChar * XMLCALL
00127         xmlCatalogResolveSystem (const xmlChar *sysID);
00128 XMLPUBFUN xmlChar * XMLCALL
00129         xmlCatalogResolvePublic (const xmlChar *pubID);
00130 XMLPUBFUN xmlChar * XMLCALL
00131         xmlCatalogResolveURI    (const xmlChar *URI);
00132 XMLPUBFUN int XMLCALL
00133         xmlCatalogAdd       (const xmlChar *type,
00134                      const xmlChar *orig,
00135                      const xmlChar *replace);
00136 XMLPUBFUN int XMLCALL
00137         xmlCatalogRemove    (const xmlChar *value);
00138 XMLPUBFUN xmlDocPtr XMLCALL
00139         xmlParseCatalogFile (const char *filename);
00140 XMLPUBFUN int XMLCALL
00141         xmlCatalogConvert   (void);
00142 
00143 /*
00144  * Strictly minimal interfaces for per-document catalogs used
00145  * by the parser.
00146  */
00147 XMLPUBFUN void XMLCALL
00148         xmlCatalogFreeLocal (void *catalogs);
00149 XMLPUBFUN void * XMLCALL
00150         xmlCatalogAddLocal  (void *catalogs,
00151                      const xmlChar *URL);
00152 XMLPUBFUN xmlChar * XMLCALL
00153         xmlCatalogLocalResolve  (void *catalogs,
00154                      const xmlChar *pubID,
00155                                      const xmlChar *sysID);
00156 XMLPUBFUN xmlChar * XMLCALL
00157         xmlCatalogLocalResolveURI(void *catalogs,
00158                      const xmlChar *URI);
00159 /*
00160  * Preference settings.
00161  */
00162 XMLPUBFUN int XMLCALL
00163         xmlCatalogSetDebug  (int level);
00164 XMLPUBFUN xmlCatalogPrefer XMLCALL
00165         xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer);
00166 XMLPUBFUN void XMLCALL
00167         xmlCatalogSetDefaults   (xmlCatalogAllow allow);
00168 XMLPUBFUN xmlCatalogAllow XMLCALL
00169         xmlCatalogGetDefaults   (void);
00170 
00171 
00172 /* DEPRECATED interfaces */
00173 XMLPUBFUN const xmlChar * XMLCALL
00174         xmlCatalogGetSystem (const xmlChar *sysID);
00175 XMLPUBFUN const xmlChar * XMLCALL
00176         xmlCatalogGetPublic (const xmlChar *pubID);
00177 
00178 #ifdef __cplusplus
00179 }
00180 #endif
00181 #endif /* LIBXML_CATALOG_ENABLED */
00182 #endif /* __XML_CATALOG_H__ */
00183