1 /*
2  * Summary: implementation of XInclude
3  * Description: API to handle XInclude processing,
4  * implements the
5  * World Wide Web Consortium Last Call Working Draft 10 November 2003
6  * http://www.w3.org/TR/2003/WD-xinclude-20031110
7  *
8  * Copy: See Copyright for the status of this software.
9  *
10  * Author: Daniel Veillard
11  */
12 
13 #ifndef __XML_XINCLUDE_H__
14 #define __XML_XINCLUDE_H__
15 
16 #include <libxml/xmlversion.h>
17 #include <libxml/tree.h>
18 
19 #ifdef LIBXML_XINCLUDE_ENABLED
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 /**
26  * XINCLUDE_NS:
27  *
28  * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude
29  */
30 #define XINCLUDE_NS (const xmlChar *) "http://www.w3.org/2003/XInclude"
31 /**
32  * XINCLUDE_OLD_NS:
33  *
34  * Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude
35  */
36 #define XINCLUDE_OLD_NS (const xmlChar *) "http://www.w3.org/2001/XInclude"
37 /**
38  * XINCLUDE_NODE:
39  *
40  * Macro defining "include"
41  */
42 #define XINCLUDE_NODE (const xmlChar *) "include"
43 /**
44  * XINCLUDE_FALLBACK:
45  *
46  * Macro defining "fallback"
47  */
48 #define XINCLUDE_FALLBACK (const xmlChar *) "fallback"
49 /**
50  * XINCLUDE_HREF:
51  *
52  * Macro defining "href"
53  */
54 #define XINCLUDE_HREF (const xmlChar *) "href"
55 /**
56  * XINCLUDE_PARSE:
57  *
58  * Macro defining "parse"
59  */
60 #define XINCLUDE_PARSE (const xmlChar *) "parse"
61 /**
62  * XINCLUDE_PARSE_XML:
63  *
64  * Macro defining "xml"
65  */
66 #define XINCLUDE_PARSE_XML (const xmlChar *) "xml"
67 /**
68  * XINCLUDE_PARSE_TEXT:
69  *
70  * Macro defining "text"
71  */
72 #define XINCLUDE_PARSE_TEXT (const xmlChar *) "text"
73 /**
74  * XINCLUDE_PARSE_ENCODING:
75  *
76  * Macro defining "encoding"
77  */
78 #define XINCLUDE_PARSE_ENCODING (const xmlChar *) "encoding"
79 /**
80  * XINCLUDE_PARSE_XPOINTER:
81  *
82  * Macro defining "xpointer"
83  */
84 #define XINCLUDE_PARSE_XPOINTER (const xmlChar *) "xpointer"
85 
86 typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt;
87 typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr;
88 
89 /*
90  * standalone processing
91  */
92 XMLPUBFUN int XMLCALL
93 		xmlXIncludeProcess	(xmlDocPtr doc);
94 XMLPUBFUN int XMLCALL
95 		xmlXIncludeProcessFlags	(xmlDocPtr doc,
96 					 int flags);
97 XMLPUBFUN int XMLCALL
98 		xmlXIncludeProcessFlagsData(xmlDocPtr doc,
99 					 int flags,
100 					 void *data);
101 XMLPUBFUN int XMLCALL
102                 xmlXIncludeProcessTreeFlagsData(xmlNodePtr tree,
103                                          int flags,
104                                          void *data);
105 XMLPUBFUN int XMLCALL
106 		xmlXIncludeProcessTree	(xmlNodePtr tree);
107 XMLPUBFUN int XMLCALL
108 		xmlXIncludeProcessTreeFlags(xmlNodePtr tree,
109 					 int flags);
110 /*
111  * contextual processing
112  */
113 XMLPUBFUN xmlXIncludeCtxtPtr XMLCALL
114 		xmlXIncludeNewContext	(xmlDocPtr doc);
115 XMLPUBFUN int XMLCALL
116 		xmlXIncludeSetFlags	(xmlXIncludeCtxtPtr ctxt,
117 					 int flags);
118 XMLPUBFUN void XMLCALL
119 		xmlXIncludeFreeContext	(xmlXIncludeCtxtPtr ctxt);
120 XMLPUBFUN int XMLCALL
121 		xmlXIncludeProcessNode	(xmlXIncludeCtxtPtr ctxt,
122 					 xmlNodePtr tree);
123 #ifdef __cplusplus
124 }
125 #endif
126 
127 #endif /* LIBXML_XINCLUDE_ENABLED */
128 
129 #endif /* __XML_XINCLUDE_H__ */
130