blob: 863ab25ad9feeadf61be4c1fc761a8e396fc0644 [file] [log] [blame]
Owen Taylor3473f882001-02-23 17:55:21 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: implementation of XInclude
3 * Description: API to handle XInclude processing,
4 * implements the
Daniel Veillarde74d2e12003-12-09 11:35:37 +00005 * World Wide Web Consortium Last Call Working Draft 10 November 2003
6 * http://www.w3.org/TR/2003/WD-xinclude-20031110
Owen Taylor3473f882001-02-23 17:55:21 +00007 *
Daniel Veillardbe586972003-11-18 20:56:51 +00008 * Copy: See Copyright for the status of this software.
Owen Taylor3473f882001-02-23 17:55:21 +00009 *
Daniel Veillardbe586972003-11-18 20:56:51 +000010 * Author: Daniel Veillard
Owen Taylor3473f882001-02-23 17:55:21 +000011 */
12
13#ifndef __XML_XINCLUDE_H__
14#define __XML_XINCLUDE_H__
15
Igor Zlatkovic76874e42003-08-25 09:05:12 +000016#include <libxml/xmlversion.h>
Owen Taylor3473f882001-02-23 17:55:21 +000017#include <libxml/tree.h>
18
Daniel Veillarda2351322004-06-27 12:08:10 +000019#ifdef LIBXML_XINCLUDE_ENABLED
20
Owen Taylor3473f882001-02-23 17:55:21 +000021#ifdef __cplusplus
22extern "C" {
23#endif
24
John Fleck0eaf41c2003-12-01 04:45:26 +000025/**
26 * XINCLUDE_NS:
27 *
Daniel Veillardb5fa0202003-12-08 17:41:29 +000028 * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude
John Fleck0eaf41c2003-12-01 04:45:26 +000029 */
Daniel Veillardb5fa0202003-12-08 17:41:29 +000030#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"
John Fleck0eaf41c2003-12-01 04:45:26 +000037/**
38 * XINCLUDE_NODE:
39 *
40 * Macro defining "include"
41 */
Daniel Veillard7899c5c2003-11-03 12:31:38 +000042#define XINCLUDE_NODE (const xmlChar *) "include"
John Fleck0eaf41c2003-12-01 04:45:26 +000043/**
44 * XINCLUDE_FALLBACK:
45 *
46 * Macro defining "fallback"
47 */
Daniel Veillard7899c5c2003-11-03 12:31:38 +000048#define XINCLUDE_FALLBACK (const xmlChar *) "fallback"
John Fleck0eaf41c2003-12-01 04:45:26 +000049/**
50 * XINCLUDE_HREF:
51 *
52 * Macro defining "href"
53 */
Daniel Veillard7899c5c2003-11-03 12:31:38 +000054#define XINCLUDE_HREF (const xmlChar *) "href"
John Fleck0eaf41c2003-12-01 04:45:26 +000055/**
56 * XINCLUDE_PARSE:
57 *
58 * Macro defining "parse"
59 */
Daniel Veillard7899c5c2003-11-03 12:31:38 +000060#define XINCLUDE_PARSE (const xmlChar *) "parse"
John Fleck0eaf41c2003-12-01 04:45:26 +000061/**
62 * XINCLUDE_PARSE_XML:
63 *
64 * Macro defining "xml"
65 */
Daniel Veillard7899c5c2003-11-03 12:31:38 +000066#define XINCLUDE_PARSE_XML (const xmlChar *) "xml"
John Fleck0eaf41c2003-12-01 04:45:26 +000067/**
68 * XINCLUDE_PARSE_TEXT:
69 *
70 * Macro defining "text"
71 */
Daniel Veillard7899c5c2003-11-03 12:31:38 +000072#define XINCLUDE_PARSE_TEXT (const xmlChar *) "text"
John Fleck0eaf41c2003-12-01 04:45:26 +000073/**
74 * XINCLUDE_PARSE_ENCODING:
75 *
76 * Macro defining "encoding"
77 */
Daniel Veillard7899c5c2003-11-03 12:31:38 +000078#define XINCLUDE_PARSE_ENCODING (const xmlChar *) "encoding"
Daniel Veillardb5fa0202003-12-08 17:41:29 +000079/**
80 * XINCLUDE_PARSE_XPOINTER:
81 *
82 * Macro defining "xpointer"
83 */
84#define XINCLUDE_PARSE_XPOINTER (const xmlChar *) "xpointer"
Owen Taylor3473f882001-02-23 17:55:21 +000085
Daniel Veillard7899c5c2003-11-03 12:31:38 +000086typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt;
87typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr;
88
89/*
90 * standalone processing
91 */
Stefan Behnelb9590e92009-08-24 19:45:54 +020092XMLPUBFUN int XMLCALL
Daniel Veillard7899c5c2003-11-03 12:31:38 +000093 xmlXIncludeProcess (xmlDocPtr doc);
Stefan Behnelb9590e92009-08-24 19:45:54 +020094XMLPUBFUN int XMLCALL
Daniel Veillarde74d2e12003-12-09 11:35:37 +000095 xmlXIncludeProcessFlags (xmlDocPtr doc,
96 int flags);
Stefan Behnelb9590e92009-08-24 19:45:54 +020097XMLPUBFUN int XMLCALL
Daniel Veillard681e9042006-09-29 09:16:00 +000098 xmlXIncludeProcessFlagsData(xmlDocPtr doc,
99 int flags,
100 void *data);
Stefan Behnelb9590e92009-08-24 19:45:54 +0200101XMLPUBFUN int XMLCALL
102 xmlXIncludeProcessTreeFlagsData(xmlNodePtr tree,
103 int flags,
104 void *data);
105XMLPUBFUN int XMLCALL
Daniel Veillard7899c5c2003-11-03 12:31:38 +0000106 xmlXIncludeProcessTree (xmlNodePtr tree);
Stefan Behnelb9590e92009-08-24 19:45:54 +0200107XMLPUBFUN int XMLCALL
Daniel Veillarde74d2e12003-12-09 11:35:37 +0000108 xmlXIncludeProcessTreeFlags(xmlNodePtr tree,
109 int flags);
Daniel Veillard7899c5c2003-11-03 12:31:38 +0000110/*
111 * contextual processing
112 */
113XMLPUBFUN xmlXIncludeCtxtPtr XMLCALL
114 xmlXIncludeNewContext (xmlDocPtr doc);
Daniel Veillarde74d2e12003-12-09 11:35:37 +0000115XMLPUBFUN int XMLCALL
116 xmlXIncludeSetFlags (xmlXIncludeCtxtPtr ctxt,
117 int flags);
Daniel Veillard7899c5c2003-11-03 12:31:38 +0000118XMLPUBFUN void XMLCALL
119 xmlXIncludeFreeContext (xmlXIncludeCtxtPtr ctxt);
120XMLPUBFUN int XMLCALL
121 xmlXIncludeProcessNode (xmlXIncludeCtxtPtr ctxt,
122 xmlNodePtr tree);
Owen Taylor3473f882001-02-23 17:55:21 +0000123#ifdef __cplusplus
124}
125#endif
Daniel Veillarda2351322004-06-27 12:08:10 +0000126
127#endif /* LIBXML_XINCLUDE_ENABLED */
128
Owen Taylor3473f882001-02-23 17:55:21 +0000129#endif /* __XML_XINCLUDE_H__ */