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__ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>