(root)/
gettext-0.22.4/
libtextstyle/
lib/
libxml/
xmlreader.in.h
       1  /* libxml2 - Library for parsing XML documents
       2   * Copyright (C) 2006-2019 Free Software Foundation, Inc.
       3   *
       4   * This file is not part of the GNU gettext program, but is used with
       5   * GNU gettext.
       6   *
       7   * The original copyright notice is as follows:
       8   */
       9  
      10  /*
      11   * Copyright (C) 1998-2012 Daniel Veillard.  All Rights Reserved.
      12   *
      13   * Permission is hereby granted, free of charge, to any person obtaining a copy
      14   * of this software and associated documentation files (the "Software"), to deal
      15   * in the Software without restriction, including without limitation the rights
      16   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      17   * copies of the Software, and to permit persons to whom the Software is fur-
      18   * nished to do so, subject to the following conditions:
      19   *
      20   * The above copyright notice and this permission notice shall be included in
      21   * all copies or substantial portions of the Software.
      22   *
      23   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      24   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
      25   * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
      26   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      27   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      28   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
      29   * THE SOFTWARE.
      30   *
      31   * Author: Daniel Veillard
      32   */
      33  
      34  /*
      35   * Summary: the XMLReader implementation
      36   * Description: API of the XML streaming API based on C# interfaces.
      37   */
      38  
      39  #ifndef __XML_XMLREADER_H__
      40  #define __XML_XMLREADER_H__
      41  
      42  #include <libxml/xmlversion.h>
      43  #include <libxml/tree.h>
      44  #include <libxml/xmlIO.h>
      45  #ifdef LIBXML_SCHEMAS_ENABLED
      46  #include <libxml/relaxng.h>
      47  #include <libxml/xmlschemas.h>
      48  #endif
      49  
      50  #ifdef __cplusplus
      51  extern "C" {
      52  #endif
      53  
      54  /**
      55   * xmlParserSeverities:
      56   *
      57   * How severe an error callback is when the per-reader error callback API
      58   * is used.
      59   */
      60  typedef enum {
      61      XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
      62      XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
      63      XML_PARSER_SEVERITY_WARNING = 3,
      64      XML_PARSER_SEVERITY_ERROR = 4
      65  } xmlParserSeverities;
      66  
      67  #ifdef LIBXML_READER_ENABLED
      68  
      69  /**
      70   * xmlTextReaderMode:
      71   *
      72   * Internal state values for the reader.
      73   */
      74  typedef enum {
      75      XML_TEXTREADER_MODE_INITIAL = 0,
      76      XML_TEXTREADER_MODE_INTERACTIVE = 1,
      77      XML_TEXTREADER_MODE_ERROR = 2,
      78      XML_TEXTREADER_MODE_EOF =3,
      79      XML_TEXTREADER_MODE_CLOSED = 4,
      80      XML_TEXTREADER_MODE_READING = 5
      81  } xmlTextReaderMode;
      82  
      83  /**
      84   * xmlParserProperties:
      85   *
      86   * Some common options to use with xmlTextReaderSetParserProp, but it
      87   * is better to use xmlParserOption and the xmlReaderNewxxx and
      88   * xmlReaderForxxx APIs now.
      89   */
      90  typedef enum {
      91      XML_PARSER_LOADDTD = 1,
      92      XML_PARSER_DEFAULTATTRS = 2,
      93      XML_PARSER_VALIDATE = 3,
      94      XML_PARSER_SUBST_ENTITIES = 4
      95  } xmlParserProperties;
      96  
      97  /**
      98   * xmlReaderTypes:
      99   *
     100   * Predefined constants for the different types of nodes.
     101   */
     102  typedef enum {
     103      XML_READER_TYPE_NONE = 0,
     104      XML_READER_TYPE_ELEMENT = 1,
     105      XML_READER_TYPE_ATTRIBUTE = 2,
     106      XML_READER_TYPE_TEXT = 3,
     107      XML_READER_TYPE_CDATA = 4,
     108      XML_READER_TYPE_ENTITY_REFERENCE = 5,
     109      XML_READER_TYPE_ENTITY = 6,
     110      XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
     111      XML_READER_TYPE_COMMENT = 8,
     112      XML_READER_TYPE_DOCUMENT = 9,
     113      XML_READER_TYPE_DOCUMENT_TYPE = 10,
     114      XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
     115      XML_READER_TYPE_NOTATION = 12,
     116      XML_READER_TYPE_WHITESPACE = 13,
     117      XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
     118      XML_READER_TYPE_END_ELEMENT = 15,
     119      XML_READER_TYPE_END_ENTITY = 16,
     120      XML_READER_TYPE_XML_DECLARATION = 17
     121  } xmlReaderTypes;
     122  
     123  /**
     124   * xmlTextReader:
     125   *
     126   * Structure for an xmlReader context.
     127   */
     128  typedef struct _xmlTextReader xmlTextReader;
     129  
     130  /**
     131   * xmlTextReaderPtr:
     132   *
     133   * Pointer to an xmlReader context.
     134   */
     135  typedef xmlTextReader *xmlTextReaderPtr;
     136  
     137  /*
     138   * Constructors & Destructor
     139   */
     140  XMLPUBFUN xmlTextReaderPtr XMLCALL
     141  			xmlNewTextReader	(xmlParserInputBufferPtr input,
     142  	                                         const char *URI);
     143  XMLPUBFUN xmlTextReaderPtr XMLCALL
     144  			xmlNewTextReaderFilename(const char *URI);
     145  
     146  XMLPUBFUN void XMLCALL
     147  			xmlFreeTextReader	(xmlTextReaderPtr reader);
     148  
     149  XMLPUBFUN int XMLCALL
     150              xmlTextReaderSetup(xmlTextReaderPtr reader,
     151                     xmlParserInputBufferPtr input, const char *URL,
     152                     const char *encoding, int options);
     153  
     154  /*
     155   * Iterators
     156   */
     157  XMLPUBFUN int XMLCALL
     158  			xmlTextReaderRead	(xmlTextReaderPtr reader);
     159  
     160  #ifdef LIBXML_WRITER_ENABLED
     161  XMLPUBFUN xmlChar * XMLCALL
     162  			xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
     163  
     164  XMLPUBFUN xmlChar * XMLCALL
     165  			xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);
     166  #endif
     167  
     168  XMLPUBFUN xmlChar * XMLCALL
     169  			xmlTextReaderReadString	(xmlTextReaderPtr reader);
     170  XMLPUBFUN int XMLCALL
     171  			xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
     172  
     173  /*
     174   * Attributes of the node
     175   */
     176  XMLPUBFUN int XMLCALL
     177  			xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
     178  XMLPUBFUN int XMLCALL
     179  			xmlTextReaderDepth	(xmlTextReaderPtr reader);
     180  XMLPUBFUN int XMLCALL
     181  			xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
     182  XMLPUBFUN int XMLCALL
     183  			xmlTextReaderHasValue(xmlTextReaderPtr reader);
     184  XMLPUBFUN int XMLCALL
     185  			xmlTextReaderIsDefault	(xmlTextReaderPtr reader);
     186  XMLPUBFUN int XMLCALL
     187  			xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
     188  XMLPUBFUN int XMLCALL
     189  			xmlTextReaderNodeType	(xmlTextReaderPtr reader);
     190  XMLPUBFUN int XMLCALL
     191  			xmlTextReaderQuoteChar	(xmlTextReaderPtr reader);
     192  XMLPUBFUN int XMLCALL
     193  			xmlTextReaderReadState	(xmlTextReaderPtr reader);
     194  XMLPUBFUN int XMLCALL
     195                          xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
     196  
     197  XMLPUBFUN const xmlChar * XMLCALL
     198  		    xmlTextReaderConstBaseUri	(xmlTextReaderPtr reader);
     199  XMLPUBFUN const xmlChar * XMLCALL
     200  		    xmlTextReaderConstLocalName	(xmlTextReaderPtr reader);
     201  XMLPUBFUN const xmlChar * XMLCALL
     202  		    xmlTextReaderConstName	(xmlTextReaderPtr reader);
     203  XMLPUBFUN const xmlChar * XMLCALL
     204  		    xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
     205  XMLPUBFUN const xmlChar * XMLCALL
     206  		    xmlTextReaderConstPrefix	(xmlTextReaderPtr reader);
     207  XMLPUBFUN const xmlChar * XMLCALL
     208  		    xmlTextReaderConstXmlLang	(xmlTextReaderPtr reader);
     209  XMLPUBFUN const xmlChar * XMLCALL
     210  		    xmlTextReaderConstString	(xmlTextReaderPtr reader,
     211  						 const xmlChar *str);
     212  XMLPUBFUN const xmlChar * XMLCALL
     213  		    xmlTextReaderConstValue	(xmlTextReaderPtr reader);
     214  
     215  /*
     216   * use the Const version of the routine for
     217   * better performance and simpler code
     218   */
     219  XMLPUBFUN xmlChar * XMLCALL
     220  			xmlTextReaderBaseUri	(xmlTextReaderPtr reader);
     221  XMLPUBFUN xmlChar * XMLCALL
     222  			xmlTextReaderLocalName	(xmlTextReaderPtr reader);
     223  XMLPUBFUN xmlChar * XMLCALL
     224  			xmlTextReaderName	(xmlTextReaderPtr reader);
     225  XMLPUBFUN xmlChar * XMLCALL
     226  			xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
     227  XMLPUBFUN xmlChar * XMLCALL
     228  			xmlTextReaderPrefix	(xmlTextReaderPtr reader);
     229  XMLPUBFUN xmlChar * XMLCALL
     230  			xmlTextReaderXmlLang	(xmlTextReaderPtr reader);
     231  XMLPUBFUN xmlChar * XMLCALL
     232  			xmlTextReaderValue	(xmlTextReaderPtr reader);
     233  
     234  /*
     235   * Methods of the XmlTextReader
     236   */
     237  XMLPUBFUN int XMLCALL
     238  		    xmlTextReaderClose		(xmlTextReaderPtr reader);
     239  XMLPUBFUN xmlChar * XMLCALL
     240  		    xmlTextReaderGetAttributeNo	(xmlTextReaderPtr reader,
     241  						 int no);
     242  XMLPUBFUN xmlChar * XMLCALL
     243  		    xmlTextReaderGetAttribute	(xmlTextReaderPtr reader,
     244  						 const xmlChar *name);
     245  XMLPUBFUN xmlChar * XMLCALL
     246  		    xmlTextReaderGetAttributeNs	(xmlTextReaderPtr reader,
     247  						 const xmlChar *localName,
     248  						 const xmlChar *namespaceURI);
     249  XMLPUBFUN xmlParserInputBufferPtr XMLCALL
     250  		    xmlTextReaderGetRemainder	(xmlTextReaderPtr reader);
     251  XMLPUBFUN xmlChar * XMLCALL
     252  		    xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
     253  						 const xmlChar *prefix);
     254  XMLPUBFUN int XMLCALL
     255  		    xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
     256  						 int no);
     257  XMLPUBFUN int XMLCALL
     258  		    xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
     259  						 const xmlChar *name);
     260  XMLPUBFUN int XMLCALL
     261  		    xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
     262  						 const xmlChar *localName,
     263  						 const xmlChar *namespaceURI);
     264  XMLPUBFUN int XMLCALL
     265  		    xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
     266  XMLPUBFUN int XMLCALL
     267  		    xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
     268  XMLPUBFUN int XMLCALL
     269  		    xmlTextReaderMoveToElement	(xmlTextReaderPtr reader);
     270  XMLPUBFUN int XMLCALL
     271  		    xmlTextReaderNormalization	(xmlTextReaderPtr reader);
     272  XMLPUBFUN const xmlChar * XMLCALL
     273  		    xmlTextReaderConstEncoding  (xmlTextReaderPtr reader);
     274  
     275  /*
     276   * Extensions
     277   */
     278  XMLPUBFUN int XMLCALL
     279  		    xmlTextReaderSetParserProp	(xmlTextReaderPtr reader,
     280  						 int prop,
     281  						 int value);
     282  XMLPUBFUN int XMLCALL
     283  		    xmlTextReaderGetParserProp	(xmlTextReaderPtr reader,
     284  						 int prop);
     285  XMLPUBFUN xmlNodePtr XMLCALL
     286  		    xmlTextReaderCurrentNode	(xmlTextReaderPtr reader);
     287  
     288  XMLPUBFUN int XMLCALL
     289              xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
     290  
     291  XMLPUBFUN int XMLCALL
     292              xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
     293  
     294  XMLPUBFUN xmlNodePtr XMLCALL
     295  		    xmlTextReaderPreserve	(xmlTextReaderPtr reader);
     296  #ifdef LIBXML_PATTERN_ENABLED
     297  XMLPUBFUN int XMLCALL
     298  		    xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
     299  						 const xmlChar *pattern,
     300  						 const xmlChar **namespaces);
     301  #endif /* LIBXML_PATTERN_ENABLED */
     302  XMLPUBFUN xmlDocPtr XMLCALL
     303  		    xmlTextReaderCurrentDoc	(xmlTextReaderPtr reader);
     304  XMLPUBFUN xmlNodePtr XMLCALL
     305  		    xmlTextReaderExpand		(xmlTextReaderPtr reader);
     306  XMLPUBFUN int XMLCALL
     307  		    xmlTextReaderNext		(xmlTextReaderPtr reader);
     308  XMLPUBFUN int XMLCALL
     309  		    xmlTextReaderNextSibling	(xmlTextReaderPtr reader);
     310  XMLPUBFUN int XMLCALL
     311  		    xmlTextReaderIsValid	(xmlTextReaderPtr reader);
     312  #ifdef LIBXML_SCHEMAS_ENABLED
     313  XMLPUBFUN int XMLCALL
     314  		    xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
     315  						 const char *rng);
     316  XMLPUBFUN int XMLCALL
     317  		    xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
     318  						 xmlRelaxNGValidCtxtPtr ctxt,
     319  						 int options);
     320  
     321  XMLPUBFUN int XMLCALL
     322  		    xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
     323  						 xmlRelaxNGPtr schema);
     324  XMLPUBFUN int XMLCALL
     325  		    xmlTextReaderSchemaValidate	(xmlTextReaderPtr reader,
     326  						 const char *xsd);
     327  XMLPUBFUN int XMLCALL
     328  		    xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
     329  						 xmlSchemaValidCtxtPtr ctxt,
     330  						 int options);
     331  XMLPUBFUN int XMLCALL
     332  		    xmlTextReaderSetSchema	(xmlTextReaderPtr reader,
     333  						 xmlSchemaPtr schema);
     334  #endif
     335  XMLPUBFUN const xmlChar * XMLCALL
     336  		    xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
     337  XMLPUBFUN int XMLCALL
     338  		    xmlTextReaderStandalone     (xmlTextReaderPtr reader);
     339  
     340  
     341  /*
     342   * Index lookup
     343   */
     344  XMLPUBFUN long XMLCALL
     345  		xmlTextReaderByteConsumed	(xmlTextReaderPtr reader);
     346  
     347  /*
     348   * New more complete APIs for simpler creation and reuse of readers
     349   */
     350  XMLPUBFUN xmlTextReaderPtr XMLCALL
     351  		xmlReaderWalker		(xmlDocPtr doc);
     352  XMLPUBFUN xmlTextReaderPtr XMLCALL
     353  		xmlReaderForDoc		(const xmlChar * cur,
     354  					 const char *URL,
     355  					 const char *encoding,
     356  					 int options);
     357  XMLPUBFUN xmlTextReaderPtr XMLCALL
     358  		xmlReaderForFile	(const char *filename,
     359  					 const char *encoding,
     360  					 int options);
     361  XMLPUBFUN xmlTextReaderPtr XMLCALL
     362  		xmlReaderForMemory	(const char *buffer,
     363  					 int size,
     364  					 const char *URL,
     365  					 const char *encoding,
     366  					 int options);
     367  XMLPUBFUN xmlTextReaderPtr XMLCALL
     368  		xmlReaderForFd		(int fd,
     369  					 const char *URL,
     370  					 const char *encoding,
     371  					 int options);
     372  XMLPUBFUN xmlTextReaderPtr XMLCALL
     373  		xmlReaderForIO		(xmlInputReadCallback ioread,
     374  					 xmlInputCloseCallback ioclose,
     375  					 void *ioctx,
     376  					 const char *URL,
     377  					 const char *encoding,
     378  					 int options);
     379  
     380  XMLPUBFUN int XMLCALL
     381  		xmlReaderNewWalker	(xmlTextReaderPtr reader,
     382  					 xmlDocPtr doc);
     383  XMLPUBFUN int XMLCALL
     384  		xmlReaderNewDoc		(xmlTextReaderPtr reader,
     385  					 const xmlChar * cur,
     386  					 const char *URL,
     387  					 const char *encoding,
     388  					 int options);
     389  XMLPUBFUN int XMLCALL
     390  		xmlReaderNewFile	(xmlTextReaderPtr reader,
     391  					 const char *filename,
     392  					 const char *encoding,
     393  					 int options);
     394  XMLPUBFUN int XMLCALL
     395  		xmlReaderNewMemory	(xmlTextReaderPtr reader,
     396  					 const char *buffer,
     397  					 int size,
     398  					 const char *URL,
     399  					 const char *encoding,
     400  					 int options);
     401  XMLPUBFUN int XMLCALL
     402  		xmlReaderNewFd		(xmlTextReaderPtr reader,
     403  					 int fd,
     404  					 const char *URL,
     405  					 const char *encoding,
     406  					 int options);
     407  XMLPUBFUN int XMLCALL
     408  		xmlReaderNewIO		(xmlTextReaderPtr reader,
     409  					 xmlInputReadCallback ioread,
     410  					 xmlInputCloseCallback ioclose,
     411  					 void *ioctx,
     412  					 const char *URL,
     413  					 const char *encoding,
     414  					 int options);
     415  /*
     416   * Error handling extensions
     417   */
     418  typedef void *  xmlTextReaderLocatorPtr;
     419  
     420  /**
     421   * xmlTextReaderErrorFunc:
     422   * @arg: the user argument
     423   * @msg: the message
     424   * @severity: the severity of the error
     425   * @locator: a locator indicating where the error occurred
     426   *
     427   * Signature of an error callback from a reader parser
     428   */
     429  typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
     430  					       const char *msg,
     431  					       xmlParserSeverities severity,
     432  					       xmlTextReaderLocatorPtr locator);
     433  XMLPUBFUN int XMLCALL
     434  	    xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
     435  XMLPUBFUN xmlChar * XMLCALL
     436  	    xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
     437  XMLPUBFUN void XMLCALL
     438  	    xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
     439  					 xmlTextReaderErrorFunc f,
     440  					 void *arg);
     441  XMLPUBFUN void XMLCALL
     442  	    xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
     443  						   xmlStructuredErrorFunc f,
     444  						   void *arg);
     445  XMLPUBFUN void XMLCALL
     446  	    xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
     447  					 xmlTextReaderErrorFunc *f,
     448  					 void **arg);
     449  
     450  #endif /* LIBXML_READER_ENABLED */
     451  
     452  #ifdef __cplusplus
     453  }
     454  #endif
     455  
     456  #endif /* __XML_XMLREADER_H__ */
     457