catalog.h

Go to the documentation of this file.
00001 
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 
00037 #define XML_CATALOGS_NAMESPACE                  \
00038     (const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog"
00039 
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__ */
footer
 SourceForge.net Logo