root/ext/xml/php_xml.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. ZEND_BEGIN_MODULE_GLOBALS

   1 /*
   2    +----------------------------------------------------------------------+
   3    | PHP Version 5                                                        |
   4    +----------------------------------------------------------------------+
   5    | Copyright (c) 1997-2016 The PHP Group                                |
   6    +----------------------------------------------------------------------+
   7    | This source file is subject to version 3.01 of the PHP license,      |
   8    | that is bundled with this package in the file LICENSE, and is        |
   9    | available through the world-wide-web at the following url:           |
  10    | http://www.php.net/license/3_01.txt                                  |
  11    | If you did not receive a copy of the PHP license and are unable to   |
  12    | obtain it through the world-wide-web, please send a note to          |
  13    | license@php.net so we can mail you a copy immediately.               |
  14    +----------------------------------------------------------------------+
  15    | Authors: Stig Sæther Bakken <ssb@php.net>                            |
  16    |          Thies C. Arntzen <thies@thieso.net>                         |
  17    |          Sterling Hughes <sterling@php.net>                          |
  18    +----------------------------------------------------------------------+
  19 */
  20 
  21 /* $Id$ */
  22 
  23 #ifndef PHP_XML_H
  24 #define PHP_XML_H
  25 
  26 #ifdef HAVE_XML
  27 extern zend_module_entry xml_module_entry;
  28 #define xml_module_ptr &xml_module_entry
  29 #else
  30 #define xml_module_ptr NULL
  31 #endif
  32 
  33 #ifdef HAVE_XML 
  34 
  35 #include "ext/xml/expat_compat.h"
  36 
  37 
  38 #ifdef XML_UNICODE
  39 #error "UTF-16 Unicode support not implemented!"
  40 #endif
  41 
  42 ZEND_BEGIN_MODULE_GLOBALS(xml)
  43         XML_Char *default_encoding;
  44 ZEND_END_MODULE_GLOBALS(xml)
  45 
  46 typedef struct {
  47         int index;
  48         int case_folding;
  49         XML_Parser parser;
  50         XML_Char *target_encoding;
  51 
  52         zval *startElementHandler;
  53         zval *endElementHandler;
  54         zval *characterDataHandler;
  55         zval *processingInstructionHandler;
  56         zval *defaultHandler;
  57         zval *unparsedEntityDeclHandler;
  58         zval *notationDeclHandler;
  59         zval *externalEntityRefHandler;
  60         zval *unknownEncodingHandler;   
  61         zval *startNamespaceDeclHandler;
  62         zval *endNamespaceDeclHandler;
  63 
  64         zend_function *startElementPtr;
  65         zend_function *endElementPtr;
  66         zend_function *characterDataPtr;
  67         zend_function *processingInstructionPtr;
  68         zend_function *defaultPtr;
  69         zend_function *unparsedEntityDeclPtr;
  70         zend_function *notationDeclPtr;
  71         zend_function *externalEntityRefPtr;
  72         zend_function *unknownEncodingPtr;
  73         zend_function *startNamespaceDeclPtr;
  74         zend_function *endNamespaceDeclPtr;
  75 
  76         zval *object;
  77 
  78         zval *data;
  79         zval *info;
  80         int level;
  81         int toffset;
  82         int curtag;
  83         zval **ctag;
  84         char **ltags;
  85         int lastwasopen;
  86         int skipwhite;
  87         int isparsing;
  88         
  89         XML_Char *baseURI;
  90 } xml_parser;
  91 
  92 
  93 typedef struct {
  94         XML_Char *name;
  95         char (*decoding_function)(unsigned short);
  96         unsigned short (*encoding_function)(unsigned char);
  97 } xml_encoding;
  98 
  99 
 100 enum php_xml_option {
 101     PHP_XML_OPTION_CASE_FOLDING = 1,
 102     PHP_XML_OPTION_TARGET_ENCODING,
 103     PHP_XML_OPTION_SKIP_TAGSTART,
 104     PHP_XML_OPTION_SKIP_WHITE
 105 };
 106 
 107 /* for xml_parse_into_struct */
 108         
 109 #define XML_MAXLEVEL 255 /* XXX this should be dynamic */
 110         
 111 PHP_FUNCTION(xml_parser_create);
 112 PHP_FUNCTION(xml_parser_create_ns);
 113 PHP_FUNCTION(xml_set_object);
 114 PHP_FUNCTION(xml_set_element_handler);
 115 PHP_FUNCTION(xml_set_character_data_handler);
 116 PHP_FUNCTION(xml_set_processing_instruction_handler);
 117 PHP_FUNCTION(xml_set_default_handler);
 118 PHP_FUNCTION(xml_set_unparsed_entity_decl_handler);
 119 PHP_FUNCTION(xml_set_notation_decl_handler);
 120 PHP_FUNCTION(xml_set_external_entity_ref_handler);
 121 PHP_FUNCTION(xml_set_start_namespace_decl_handler);
 122 PHP_FUNCTION(xml_set_end_namespace_decl_handler);
 123 PHP_FUNCTION(xml_parse);
 124 PHP_FUNCTION(xml_get_error_code);
 125 PHP_FUNCTION(xml_error_string);
 126 PHP_FUNCTION(xml_get_current_line_number);
 127 PHP_FUNCTION(xml_get_current_column_number);
 128 PHP_FUNCTION(xml_get_current_byte_index);
 129 PHP_FUNCTION(xml_parser_free);
 130 PHP_FUNCTION(xml_parser_set_option);
 131 PHP_FUNCTION(xml_parser_get_option);
 132 PHP_FUNCTION(utf8_encode);
 133 PHP_FUNCTION(utf8_decode);
 134 PHP_FUNCTION(xml_parse_into_struct);
 135 
 136 PHPAPI char *_xml_zval_strdup(zval *val);
 137 PHPAPI char *xml_utf8_decode(const XML_Char *, int, int *, const XML_Char *);
 138 PHPAPI char *xml_utf8_encode(const char *s, int len, int *newlen, const XML_Char *encoding);
 139 
 140 #endif /* HAVE_LIBEXPAT */
 141 
 142 #define phpext_xml_ptr xml_module_ptr
 143 
 144 #ifdef ZTS
 145 #define XML(v) TSRMG(xml_globals_id, zend_xml_globals *, v)
 146 #else
 147 #define XML(v) (xml_globals.v)
 148 #endif
 149 
 150 #endif /* PHP_XML_H */
 151 
 152 /*
 153  * Local variables:
 154  * tab-width: 4
 155  * c-basic-offset: 4
 156  * End:
 157  */

/* [<][>][^][v][top][bottom][index][help] */