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
22extern "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
86typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt;
87typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr;
88
89/*
90 * standalone processing
91 */
92XMLPUBFUN int XMLCALL
93		xmlXIncludeProcess	(xmlDocPtr doc);
94XMLPUBFUN int XMLCALL
95		xmlXIncludeProcessFlags	(xmlDocPtr doc,
96					 int flags);
97XMLPUBFUN int XMLCALL
98		xmlXIncludeProcessFlagsData(xmlDocPtr doc,
99					 int flags,
100					 void *data);
101XMLPUBFUN int XMLCALL
102                xmlXIncludeProcessTreeFlagsData(xmlNodePtr tree,
103                                         int flags,
104                                         void *data);
105XMLPUBFUN int XMLCALL
106		xmlXIncludeProcessTree	(xmlNodePtr tree);
107XMLPUBFUN int XMLCALL
108		xmlXIncludeProcessTreeFlags(xmlNodePtr tree,
109					 int flags);
110/*
111 * contextual processing
112 */
113XMLPUBFUN xmlXIncludeCtxtPtr XMLCALL
114		xmlXIncludeNewContext	(xmlDocPtr doc);
115XMLPUBFUN int XMLCALL
116		xmlXIncludeSetFlags	(xmlXIncludeCtxtPtr ctxt,
117					 int flags);
118XMLPUBFUN void XMLCALL
119		xmlXIncludeFreeContext	(xmlXIncludeCtxtPtr ctxt);
120XMLPUBFUN 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