1eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/*
2eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * DOCBparser.c : an attempt to parse SGML Docbook documents
3eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
4877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * This is deprecated !!!
5877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * Code removed with release 2.6.0 it was broken.
63648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard * The doc are expect to be migrated to XML DocBook
7e95e2396f34e7e7c5f472ad018d7207974074225Daniel Veillard *
8eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * See Copyright for the status of this software.
9eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
10c5d64345cf19bfd72418eb0a837869b0462e9130Daniel Veillard * daniel@veillard.com
11eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
12eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
1334ce8bece2f22cc99d25221b77315cd008f4866bDaniel Veillard#define IN_LIBXML
14eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard#include "libxml.h"
15eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard#ifdef LIBXML_DOCB_ENABLED
16eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
17877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard#include <libxml/xmlerror.h>
18877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard#include <libxml/DOCBparser.h>
19eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
20eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
21877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * docbEncodeEntities:
22877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * @out:  a pointer to an array of bytes to store the result
23877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * @outlen:  the length of @out
24877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * @in:  a pointer to an array of UTF-8 chars
25877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * @inlen:  the length of @in
26877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * @quoteChar: the quote character to escape (' or ") or zero.
27eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
28877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * Take a block of UTF-8 chars in and try to convert it to an ASCII
29877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * plus SGML entities block of chars out.
30eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
31877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
32877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * The value of @inlen after return is the number of octets consumed
33877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard *     as the return value is positive, else unpredictable.
34877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard * The value of @outlen after return is the number of octets consumed.
35eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
36877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillardint
37877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbEncodeEntities(unsigned char *out ATTRIBUTE_UNUSED,
38877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                   int *outlen ATTRIBUTE_UNUSED,
39877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                   const unsigned char *in ATTRIBUTE_UNUSED,
40877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                   int *inlen ATTRIBUTE_UNUSED,
41877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                   int quoteChar ATTRIBUTE_UNUSED)
4284666b3831a5ffdf57b89e8f89293b7802a6b814Daniel Veillard{
43877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
44eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
45877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
46877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
47877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbEncodeEntities() deprecated function reached\n");
48877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
49eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
50877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    return(-1);
51eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
52eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
53eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
5401c13b5be2d249ef66d86585adee87901bb8efa2Daniel Veillard * docbParseDocument:
55eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @ctxt:  an SGML parser context
56f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard *
57eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * parse an SGML document (and build a tree if using the standard SAX
58eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * interface).
59eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
60eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns 0, -1 in case of error. the parser context is augmented
61eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *                as a result of the parsing.
62eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
63eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
64eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillardint
65877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbParseDocument(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
66eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard{
67877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
68eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
69877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
70eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard        xmlGenericError(xmlGenericErrorContext,
71877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbParseDocument() deprecated function reached\n");
72877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
73eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
743648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return (xmlParseDocument(ctxt));
75eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
76eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
77eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
78eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * docbFreeParserCtxt:
79eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @ctxt:  an SGML parser context
80eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
81eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Free all the memory used by a parser context. However the parsed
82eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * document in ctxt->myDoc is not freed.
83eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
84eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
85eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillardvoid
86877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbFreeParserCtxt(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
87eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard{
88877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
89eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
90877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
91877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
92877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbFreeParserCtxt() deprecated function reached\n");
93877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
94eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
953648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    xmlFreeParserCtxt(ctxt);
96eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
97eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
98eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
99eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * docbParseChunk:
100eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @ctxt:  an XML parser context
101eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @chunk:  an char array
102eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @size:  the size in byte of the chunk
103eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @terminate:  last chunk indicator
104eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
105eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Parse a Chunk of memory
106eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
107eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns zero if no error, the xmlParserErrors otherwise.
108eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
109eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillardint
110877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbParseChunk(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED,
111877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard               const char *chunk ATTRIBUTE_UNUSED,
112877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard	       int size ATTRIBUTE_UNUSED,
113877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard               int terminate ATTRIBUTE_UNUSED)
114877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard{
115877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
116eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
117877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
118877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
119877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbParseChunk() deprecated function reached\n");
120877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
121eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
122eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
1233648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return (xmlParseChunk(ctxt, chunk, size, terminate));
124877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard}
125eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
126eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
12701c13b5be2d249ef66d86585adee87901bb8efa2Daniel Veillard * docbCreatePushParserCtxt:
128eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @sax:  a SAX handler
129eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @user_data:  The user data returned on SAX callbacks
130eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @chunk:  a pointer to an array of chars
131eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @size:  number of chars in the array
132eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @filename:  an optional file name or URI
133eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @enc:  an optional encoding
134eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
135eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Create a parser context for using the DocBook SGML parser in push mode
136eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * To allow content encoding detection, @size should be >= 4
137eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * The value of @filename is used for fetching external entities
138eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * and error/warning reports.
139eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
140eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns the new parser context or NULL
141eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
142eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel VeillarddocbParserCtxtPtr
143877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbCreatePushParserCtxt(docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
144877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                         void *user_data ATTRIBUTE_UNUSED,
145877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                         const char *chunk ATTRIBUTE_UNUSED,
146877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard			 int size ATTRIBUTE_UNUSED,
147877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard			 const char *filename ATTRIBUTE_UNUSED,
148877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                         xmlCharEncoding enc ATTRIBUTE_UNUSED)
149877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard{
150877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
151eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
152877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
153877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
154877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbParseChunk() deprecated function reached\n");
155877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
156eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
157eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
1583648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return(xmlCreatePushParserCtxt(sax, user_data, chunk, size, filename));
159eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
160eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
161eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
16201c13b5be2d249ef66d86585adee87901bb8efa2Daniel Veillard * docbSAXParseDoc:
163eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @cur:  a pointer to an array of xmlChar
164eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @encoding:  a free form C string describing the SGML document encoding, or NULL
165eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @sax:  the SAX handler block
166f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * @userData: if using SAX, this pointer will be provided on callbacks.
167eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
168eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * parse an SGML in-memory document and build a tree.
169eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * It use the given SAX function block to handle the parsing callback.
170eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * If sax is NULL, fallback to the default DOM tree building routines.
171f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard *
172eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns the resulting document tree
173eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
174eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
175eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel VeillarddocbDocPtr
176877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbSAXParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
177877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                const char *encoding ATTRIBUTE_UNUSED,
178877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard		docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
179877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                void *userData ATTRIBUTE_UNUSED)
180877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard{
181877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
182eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
183877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
184877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
185877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbParseChunk() deprecated function reached\n");
186877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
187eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
188eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
1893648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return (xmlSAXParseMemoryWithData(sax, (const char *)cur,
1903648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard			  xmlStrlen((const xmlChar *) cur), 0,  userData));
191eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
192eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
193eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
19401c13b5be2d249ef66d86585adee87901bb8efa2Daniel Veillard * docbParseDoc:
195eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @cur:  a pointer to an array of xmlChar
196eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @encoding:  a free form C string describing the SGML document encoding, or NULL
197eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
198eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * parse an SGML in-memory document and build a tree.
199f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard *
200eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns the resulting document tree
201eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
202eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
203eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel VeillarddocbDocPtr
204877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
205877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard             const char *encoding ATTRIBUTE_UNUSED)
206877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard{
207877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
208877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard
209877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
210877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
211877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbParseChunk() deprecated function reached\n");
212877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
213877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    }
214877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard
2153648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return (xmlParseDoc(cur));
216eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
217eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
218eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
219eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
22001c13b5be2d249ef66d86585adee87901bb8efa2Daniel Veillard * docbCreateFileParserCtxt:
221eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @filename:  the filename
2221034da2bfffb9f898ae4330c85c98728faa2308eDaniel Veillard * @encoding:  the SGML document encoding, or NULL
223eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
224f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * Create a parser context for a file content.
225eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Automatic support for ZLIB/Compress compressed document is provided
226eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * by default if found at compile-time.
227eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
228eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns the new parser context or NULL
229eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
230eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel VeillarddocbParserCtxtPtr
231877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbCreateFileParserCtxt(const char *filename ATTRIBUTE_UNUSED,
232877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                         const char *encoding ATTRIBUTE_UNUSED)
233eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard{
234877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
235eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
236877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
237877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
238877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbCreateFileParserCtxt() deprecated function reached\n");
239877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
240eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
241eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
2423648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return (xmlCreateFileParserCtxt(filename));
243eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
244eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
245eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
24601c13b5be2d249ef66d86585adee87901bb8efa2Daniel Veillard * docbSAXParseFile:
247eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @filename:  the filename
248eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @encoding:  a free form C string describing the SGML document encoding, or NULL
249eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @sax:  the SAX handler block
250f8e3db0445a1bc8cfe3f77326b07ec161482caa2Daniel Veillard * @userData: if using SAX, this pointer will be provided on callbacks.
251eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
252eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * parse an SGML file and build a tree. Automatic support for ZLIB/Compress
253eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * compressed document is provided by default if found at compile-time.
254eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * It use the given SAX function block to handle the parsing callback.
255eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * If sax is NULL, fallback to the default DOM tree building routines.
256eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
257eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns the resulting document tree
258eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
259eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
260eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel VeillarddocbDocPtr
261877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbSAXParseFile(const char *filename ATTRIBUTE_UNUSED,
262877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                 const char *encoding ATTRIBUTE_UNUSED,
263877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                 docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
264877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard		 void *userData ATTRIBUTE_UNUSED)
265877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard{
266877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
267eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
268877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
269877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
270877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbSAXParseFile() deprecated function reached\n");
271877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
272eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard    }
273eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
2743648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return (xmlSAXParseFileWithData(sax, filename, 0, userData));
275eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard}
276eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
277eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard/**
27801c13b5be2d249ef66d86585adee87901bb8efa2Daniel Veillard * docbParseFile:
279eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @filename:  the filename
280eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * @encoding:  a free form C string describing document encoding, or NULL
281eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
282eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * parse a Docbook SGML file and build a tree. Automatic support for
283eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * ZLIB/Compress compressed document is provided by default if found
284eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * at compile-time.
285eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard *
286eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard * Returns the resulting document tree
287eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard */
288eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
289eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel VeillarddocbDocPtr
290877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel VeillarddocbParseFile(const char *filename ATTRIBUTE_UNUSED,
291877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard              const char *encoding ATTRIBUTE_UNUSED)
292877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard{
293877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    static int deprecated = 0;
294eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard
295877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    if (!deprecated) {
296877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        xmlGenericError(xmlGenericErrorContext,
297877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard                        "docbParseFile() deprecated function reached\n");
298877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard        deprecated = 1;
299877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard    }
300877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard
3013648fcb5976b9afd6606bf4a7035f6d6ca4e0005Daniel Veillard    return (xmlParseFile(filename));
302877a7bd6a35fae1dddb88bfb7af838ed8c369498Daniel Veillard}
3035d4644ef6e38479a648615eca758c5e962a141d5Daniel Veillard#define bottom_DOCBparser
3045d4644ef6e38479a648615eca758c5e962a141d5Daniel Veillard#include "elfgcchack.h"
305eae522a0d8aa9f830d2e447f29b504030dbb6bbdDaniel Veillard#endif /* LIBXML_DOCB_ENABLED */
306