|
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 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__ */ |