pajoye Fri Mar 31 23:20:58 2006 UTC Modified files: /php-src/ext/xmlreader php_xmlreader.c Log: - move setSchema to the 2.6.20 block, this method is only available from this version http://cvs.php.net/viewcvs.cgi/php-src/ext/xmlreader/php_xmlreader.c?r1=1.31&r2=1.32&diff_format=u Index: php-src/ext/xmlreader/php_xmlreader.c diff -u php-src/ext/xmlreader/php_xmlreader.c:1.31 php-src/ext/xmlreader/php_xmlreader.c:1.32 --- php-src/ext/xmlreader/php_xmlreader.c:1.31 Fri Mar 31 20:50:29 2006 +++ php-src/ext/xmlreader/php_xmlreader.c Fri Mar 31 23:20:58 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_xmlreader.c,v 1.31 2006/03/31 20:50:29 helly Exp $ */ +/* $Id: php_xmlreader.c,v 1.32 2006/03/31 23:20:58 pajoye Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -944,6 +944,47 @@ php_xmlreader_no_arg_string(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextReaderReadString); } /* }}} */ + +/* {{{ proto boolean XMLReader::setSchema(string filename) +Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). */ +PHP_METHOD(xmlreader, setSchema) +{ +#ifdef LIBXML_SCHEMAS_ENABLED + zval *id; + int source_len = 0, retval = -1; + xmlreader_object *intern; + char *source; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!", &source, &source_len) == FAILURE) { + return; + } + + if (source != NULL && !source_len) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Schema data source is required"); + RETURN_FALSE; + } + + id = getThis(); + + intern = (xmlreader_object *)zend_object_store_get_object(id TSRMLS_CC); + if (intern && intern->ptr) { + retval = xmlTextReaderSchemaValidate(intern->ptr, source); + + if (retval == 0) { + RETURN_TRUE; + } + } + + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to set schema. This must be set prior to reading or schema contains errors."); + + RETURN_FALSE; +#else + php_error_docref(NULL TSRMLS_CC, E_WARNING, "No Schema support built into libxml."); + + RETURN_FALSE; +#endif +} +/* }}} */ #endif /* {{{ proto boolean XMLReader::setParserProperty(int property, boolean value) @@ -992,46 +1033,6 @@ } /* }}} */ -/* {{{ proto boolean XMLReader::setSchema(string filename) -Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read(). */ -PHP_METHOD(xmlreader, setSchema) -{ -#ifdef LIBXML_SCHEMAS_ENABLED - zval *id; - int source_len = 0, retval = -1; - xmlreader_object *intern; - char *source; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!", &source, &source_len) == FAILURE) { - return; - } - - if (source != NULL && !source_len) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Schema data source is required"); - RETURN_FALSE; - } - - id = getThis(); - - intern = (xmlreader_object *)zend_object_store_get_object(id TSRMLS_CC); - if (intern && intern->ptr) { - retval = xmlTextReaderSchemaValidate(intern->ptr, source); - - if (retval == 0) { - RETURN_TRUE; - } - } - - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to set schema. This must be set prior to reading or schema contains errors."); - - RETURN_FALSE; -#else - php_error_docref(NULL TSRMLS_CC, E_WARNING, "No Schema support built into libxml."); - - RETURN_FALSE; -#endif -} - /* TODO XMLPUBFUN int XMLCALL xmlTextReaderSetSchema (xmlTextReaderPtr reader, @@ -1167,6 +1168,7 @@ PHP_ME(xmlreader, readInnerXml, NULL, ZEND_ACC_PUBLIC) PHP_ME(xmlreader, readOuterXml, NULL, ZEND_ACC_PUBLIC) PHP_ME(xmlreader, readString, NULL, ZEND_ACC_PUBLIC) + PHP_ME(xmlreader, setSchema, NULL, ZEND_ACC_PUBLIC) #endif /* Not Yet Implemented though defined in libxml as of 2.6.9dev PHP_ME(xmlreader, resetState, NULL, ZEND_ACC_PUBLIC) @@ -1174,7 +1176,6 @@ PHP_ME(xmlreader, setParserProperty, NULL, ZEND_ACC_PUBLIC) PHP_ME(xmlreader, setRelaxNGSchema, NULL, ZEND_ACC_PUBLIC) PHP_ME(xmlreader, setRelaxNGSchemaSource, NULL, ZEND_ACC_PUBLIC) - PHP_ME(xmlreader, setSchema, NULL, ZEND_ACC_PUBLIC) PHP_ME(xmlreader, XML, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_ALLOW_STATIC) PHP_ME(xmlreader, expand, NULL, ZEND_ACC_PUBLIC) {NULL, NULL, NULL}
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php