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