rrichards Thu Dec 8 23:57:20 2005 EDT Added files: (Branch: PHP_5_1) /php-src/ext/xmlwriter/tests 006.phpt 007.phpt 008.phpt 009.phpt OO_007.phpt OO_008.phpt OO_009.phpt
Modified files: /php-src/ext/xmlwriter php_xmlwriter.c php_xmlwriter.h Log: MFH: enable a few additional functions - add tests
http://cvs.php.net/diff.php/php-src/ext/xmlwriter/php_xmlwriter.c?r1=1.20.2.4&r2=1.20.2.5&ty=u Index: php-src/ext/xmlwriter/php_xmlwriter.c diff -u php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.4 php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.5 --- php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.4 Wed Dec 7 00:09:31 2005 +++ php-src/ext/xmlwriter/php_xmlwriter.c Thu Dec 8 23:57:20 2005 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_xmlwriter.c,v 1.20.2.4 2005/12/07 05:09:31 rrichards Exp $ */ +/* $Id: php_xmlwriter.c,v 1.20.2.5 2005/12/09 04:57:20 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -139,6 +139,7 @@ PHP_FE(xmlwriter_write_attribute, NULL) #if LIBXML_VERSION > 20617 PHP_FE(xmlwriter_start_attribute_ns,NULL) + PHP_FE(xmlwriter_write_attribute_ns,NULL) #endif PHP_FE(xmlwriter_start_element, NULL) PHP_FE(xmlwriter_end_element, NULL) @@ -160,6 +161,12 @@ PHP_FE(xmlwriter_write_dtd, NULL) PHP_FE(xmlwriter_start_dtd_element, NULL) PHP_FE(xmlwriter_end_dtd_element, NULL) + PHP_FE(xmlwriter_write_dtd_element, NULL) +#if LIBXML_VERSION > 20608 + PHP_FE(xmlwriter_start_dtd_attlist, NULL) + PHP_FE(xmlwriter_end_dtd_attlist, NULL) + PHP_FE(xmlwriter_write_dtd_attlist, NULL) +#endif PHP_FE(xmlwriter_output_memory, NULL) PHP_FE(xmlwriter_flush, NULL) {NULL, NULL, NULL} @@ -184,6 +191,7 @@ PHP_ME_MAPPING(writeAttribute, xmlwriter_write_attribute, NULL) #if LIBXML_VERSION > 20617 PHP_ME_MAPPING(startAttributeNs, xmlwriter_start_attribute_ns,NULL) + PHP_ME_MAPPING(writeAttributeNs, xmlwriter_write_attribute_ns,NULL) #endif PHP_ME_MAPPING(startElement, xmlwriter_start_element, NULL) PHP_ME_MAPPING(endElement, xmlwriter_end_element, NULL) @@ -205,6 +213,12 @@ PHP_ME_MAPPING(writeDtd, xmlwriter_write_dtd, NULL) PHP_ME_MAPPING(startDtdElement, xmlwriter_start_dtd_element, NULL) PHP_ME_MAPPING(endDtdElement, xmlwriter_end_dtd_element, NULL) + PHP_ME_MAPPING(writeDtdElement, xmlwriter_write_dtd_element, NULL) +#if LIBXML_VERSION > 20608 + PHP_ME_MAPPING(startDtdAttlist, xmlwriter_start_dtd_attlist, NULL) + PHP_ME_MAPPING(endDtdAttlist, xmlwriter_end_dtd_attlist, NULL) + PHP_ME_MAPPING(writeDtdAttlist, xmlwriter_write_dtd_attlist, NULL) +#endif PHP_ME_MAPPING(outputMemory, xmlwriter_output_memory, NULL) PHP_ME_MAPPING(flush, xmlwriter_flush, NULL) {NULL, NULL, NULL} @@ -338,7 +352,7 @@ /* }}} */ #if LIBXML_VERSION >= 20605 -/* {{{ proto bool xmlwriter_set_indent(resource xmlwriter, bool) +/* {{{ proto bool xmlwriter_set_indent(resource xmlwriter, bool indent) Toggle indentation on/off - returns FALSE on error */ PHP_FUNCTION(xmlwriter_set_indent) { @@ -628,6 +642,7 @@ } /* }}} */ +#if LIBXML_VERSION > 20617 /* {{{ proto bool xmlwriter_write_attribute_ns(resource xmlwriter, string prefix, string name, string uri, string content) Write full namespaced attribute - returns FALSE on error */ PHP_FUNCTION(xmlwriter_write_attribute_ns) @@ -671,6 +686,7 @@ RETURN_FALSE; } /* }}} */ +#endif /* {{{ proto bool xmlwriter_start_element(resource xmlwriter, string name) Create start element tag - returns FALSE on error */ @@ -1364,7 +1380,7 @@ zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &name, &name_len, &content, &content_len) == FAILURE) { return; } XMLWRITER_FROM_OBJECT(intern, this); @@ -1393,6 +1409,7 @@ } /* }}} */ +#if LIBXML_VERSION > 20608 /* {{{ proto bool xmlwriter_start_dtd_attlist(resource xmlwriter, string name) Create start DTD AttList - returns FALSE on error */ PHP_FUNCTION(xmlwriter_start_dtd_attlist) @@ -1583,6 +1600,7 @@ RETURN_FALSE; } /* }}} */ +#endif /* {{{ proto resource xmlwriter_open_uri(resource xmlwriter, string source) Create new xmlwriter using source uri for output */ http://cvs.php.net/diff.php/php-src/ext/xmlwriter/php_xmlwriter.h?r1=1.10.2.3&r2=1.10.2.4&ty=u Index: php-src/ext/xmlwriter/php_xmlwriter.h diff -u php-src/ext/xmlwriter/php_xmlwriter.h:1.10.2.3 php-src/ext/xmlwriter/php_xmlwriter.h:1.10.2.4 --- php-src/ext/xmlwriter/php_xmlwriter.h:1.10.2.3 Sat Dec 3 18:20:07 2005 +++ php-src/ext/xmlwriter/php_xmlwriter.h Thu Dec 8 23:57:20 2005 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_xmlwriter.h,v 1.10.2.3 2005/12/03 23:20:07 tony2001 Exp $ */ +/* $Id: php_xmlwriter.h,v 1.10.2.4 2005/12/09 04:57:20 rrichards Exp $ */ #ifndef PHP_XMLWRITER_H #define PHP_XMLWRITER_H @@ -63,9 +63,9 @@ #endif PHP_FUNCTION(xmlwriter_start_attribute); PHP_FUNCTION(xmlwriter_end_attribute); -PHP_FUNCTION(xmlwriter_start_attribute_ns); PHP_FUNCTION(xmlwriter_write_attribute); #if LIBXML_VERSION > 20617 +PHP_FUNCTION(xmlwriter_start_attribute_ns); PHP_FUNCTION(xmlwriter_write_attribute_ns); #endif PHP_FUNCTION(xmlwriter_start_element); @@ -92,6 +92,12 @@ PHP_FUNCTION(xmlwriter_write_dtd); PHP_FUNCTION(xmlwriter_start_dtd_element); PHP_FUNCTION(xmlwriter_end_dtd_element); +PHP_FUNCTION(xmlwriter_write_dtd_element); +#if LIBXML_VERSION > 20608 +PHP_FUNCTION(xmlwriter_start_dtd_attlist); +PHP_FUNCTION(xmlwriter_end_dtd_attlist); +PHP_FUNCTION(xmlwriter_write_dtd_attlist); +#endif PHP_FUNCTION(xmlwriter_open_uri); PHP_FUNCTION(xmlwriter_open_memory); PHP_FUNCTION(xmlwriter_output_memory); http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/006.phpt?r=1.1&p=1 Index: php-src/ext/xmlwriter/tests/006.phpt +++ php-src/ext/xmlwriter/tests/006.phpt --TEST-- XMLWriter: libxml2 XML Writer, startDTD/writeElementNS --SKIPIF-- <?php if (!extension_loaded("xmlwriter")) die("skip"); if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ required"); ?> --FILE-- <?php /* $Id: 006.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */ $doc_dest = '001.xml'; $xw = xmlwriter_open_uri($doc_dest); xmlwriter_start_dtd($xw, 'foo', NULL, 'urn:bar'); xmlwriter_end_dtd($xw); xmlwriter_start_element($xw, 'foo'); xmlwriter_write_element_ns($xw, 'foo', 'bar', 'urn:foo', 'dummy content'); xmlwriter_end_element($xw); // Force to write and empty the buffer $output_bytes = xmlwriter_flush($xw, true); echo file_get_contents($doc_dest); unset($xw); unlink('001.xml'); ?> --EXPECT-- <!DOCTYPE foo SYSTEM "urn:bar"><foo><foo:bar xmlns:foo="urn:foo">dummy content</foo:bar></foo> http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/007.phpt?r=1.1&p=1 Index: php-src/ext/xmlwriter/tests/007.phpt +++ php-src/ext/xmlwriter/tests/007.phpt --TEST-- XMLWriter: libxml2 XML Writer, Elements & Attributes --SKIPIF-- <?php if (!extension_loaded("xmlwriter")) die("skip"); if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ required"); ?> --FILE-- <?php /* $Id: 007.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */ $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, TRUE); xmlwriter_set_indent_string($xw, ' '); xmlwriter_start_document($xw, '1.0', "UTF-8"); xmlwriter_start_element($xw, 'root'); xmlwriter_start_element_ns($xw, 'ns1', 'child1', 'urn:ns1'); xmlwriter_start_attribute_ns($xw, 'ns1', 'att1', 'urn:ns1'); xmlwriter_text($xw, 'a&b'); xmlwriter_end_attribute($xw); xmlwriter_write_attribute($xw, 'att2', "double\" single'"); xmlwriter_start_attribute_ns($xw, 'ns1', 'att2', 'urn:ns1'); xmlwriter_text($xw, "<>\"'&"); xmlwriter_end_attribute($xw); xmlwriter_write_element($xw, 'chars', "special characters: <>\"'&"); xmlwriter_end_element($xw); xmlwriter_end_document($xw); // Force to write and empty the buffer $output = xmlwriter_flush($xw, true); print $output; ?> --EXPECT-- <?xml version="1.0" encoding="UTF-8"?> <root> <ns1:child1 xmlns:ns1="urn:ns1" ns1:att1="a&b" xmlns:ns1="urn:ns1" att2="double" single'" ns1:att2="<>"'&" xmlns:ns1="urn:ns1"> <chars>special characters: <>"'&</chars> </ns1:child1> </root> http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/008.phpt?r=1.1&p=1 Index: php-src/ext/xmlwriter/tests/008.phpt +++ php-src/ext/xmlwriter/tests/008.phpt --TEST-- XMLWriter: libxml2 XML Writer DTD Element & Attlist --SKIPIF-- <?php if (!extension_loaded("xmlwriter")) die("skip"); if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ required"); ?> --FILE-- <?php /* $Id: 008.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */ $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, TRUE); xmlwriter_start_document($xw, NULL, "UTF-8"); xmlwriter_write_dtd_element($xw, 'sxe', '(elem1+, elem11, elem22*)'); xmlwriter_write_dtd_attlist($xw, 'sxe', 'id CDATA #implied'); xmlwriter_start_dtd_element($xw, 'elem1'); xmlwriter_text($xw, 'elem2*'); xmlwriter_end_dtd_element($xw); xmlwriter_start_dtd_attlist($xw, 'elem1'); xmlwriter_text($xw, "attr1 CDATA #required\n"); xmlwriter_text($xw, 'attr2 CDATA #implied'); xmlwriter_end_dtd_attlist($xw); xmlwriter_end_document($xw); // Force to write and empty the buffer $output = xmlwriter_flush($xw, true); print $output; ?> --EXPECT-- <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT sxe (elem1+, elem11, elem22*)> <!ATTLIST sxe id CDATA #implied> <!ELEMENT elem1 elem2*> <!ATTLIST elem1 attr1 CDATA #required attr2 CDATA #implied> http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/009.phpt?r=1.1&p=1 Index: php-src/ext/xmlwriter/tests/009.phpt +++ php-src/ext/xmlwriter/tests/009.phpt --TEST-- XMLWriter: PI, Comment, CDATA --SKIPIF-- <?php if (!extension_loaded("xmlwriter")) die("skip"); if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ required"); ?> --FILE-- <?php /* $Id: 009.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */ $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, TRUE); xmlwriter_start_document($xw, NULL, "UTF-8"); xmlwriter_start_element($xw, 'root'); xmlwriter_write_attribute($xw, 'id', 'elem1'); xmlwriter_start_element($xw, 'elem1'); xmlwriter_write_attribute($xw, 'attr1', 'first'); xmlwriter_write_comment($xw, 'start PI'); xmlwriter_start_element($xw, 'pi'); xmlwriter_write_pi($xw, 'php', 'echo "hello world"; '); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'cdata'); xmlwriter_start_cdata($xw); xmlwriter_end_element($xw); xmlwriter_text($xw, '<>&"'); xmlwriter_end_cdata($xw); xmlwriter_end_element($xw); xmlwriter_end_element($xw); xmlwriter_end_document($xw); // Force to write and empty the buffer $output = xmlwriter_flush($xw, true); print $output; ?> --EXPECT-- <?xml version="1.0" encoding="UTF-8"?> <root id="elem1"> <elem1 attr1="first"> <!--start PI--> <pi><?php echo "hello world"; ?></pi> <cdata><![CDATA[<>&"]]></cdata> </elem1> </root> http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/OO_007.phpt?r=1.1&p=1 Index: php-src/ext/xmlwriter/tests/OO_007.phpt +++ php-src/ext/xmlwriter/tests/OO_007.phpt --TEST-- XMLWriter: libxml2 XML Writer, Elements & Attributes --SKIPIF-- <?php if (!extension_loaded("xmlwriter")) die("skip"); if (!function_exists("$xw->start_comment")) die("skip: libxml2 2.6.7+ required"); ?> --FILE-- <?php /* $Id: OO_007.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */ $xw = new XMLWriter(); $xw->openMemory(); $xw->setIndent(TRUE); $xw->setIndentString(' '); $xw->startDocument('1.0', "UTF-8"); $xw->startElement('root'); $xw->startElementNS('ns1', 'child1', 'urn:ns1'); $xw->startAttributeNS('ns1', 'att1', 'urn:ns1'); $xw->text('a&b'); $xw->endAttribute(); $xw->writeAttribute('att2', "double\" single'"); $xw->startAttributeNS('ns1', 'att2', 'urn:ns1'); $xw->text("<>\"'&"); $xw->endAttribute(); $xw->writeElement('chars', "special characters: <>\"'&"); $xw->endElement(); $xw->endDocument(); // Force to write and empty the buffer $output = $xw->flush(true); print $output; ?> --EXPECT-- <?xml version="1.0" encoding="UTF-8"?> <root> <ns1:child1 xmlns:ns1="urn:ns1" ns1:att1="a&b" xmlns:ns1="urn:ns1" att2="double" single'" ns1:att2="<>"'&" xmlns:ns1="urn:ns1"> <chars>special characters: <>"'&</chars> </ns1:child1> </root> http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/OO_008.phpt?r=1.1&p=1 Index: php-src/ext/xmlwriter/tests/OO_008.phpt +++ php-src/ext/xmlwriter/tests/OO_008.phpt --TEST-- XMLWriter: libxml2 XML Writer DTD Element & Attlist --SKIPIF-- <?php if (!extension_loaded("xmlwriter")) die("skip"); if (!function_exists("$xw->start_comment")) die("skip: libxml2 2.6.7+ required"); ?> --FILE-- <?php /* $Id: OO_008.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */ $xw = new XMLWriter(); $xw->openMemory(); $xw->setIndent(TRUE); $xw->startDocument(NULL, "UTF-8"); $xw->writeDtdElement('sxe', '(elem1+, elem11, elem22*)'); $xw->writeDtdAttlist('sxe', 'id CDATA #implied'); $xw->startDtdElement('elem1'); $xw->text('elem2*'); $xw->endDtdElement(); $xw->startDtdAttlist('elem1'); $xw->text("attr1 CDATA #required\n"); $xw->text('attr2 CDATA #implied'); $xw->endDtdAttlist(); $xw->endDocument(); // Force to write and empty the buffer $output = $xw->flush(true); print $output; ?> --EXPECT-- <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT sxe (elem1+, elem11, elem22*)> <!ATTLIST sxe id CDATA #implied> <!ELEMENT elem1 elem2*> <!ATTLIST elem1 attr1 CDATA #required attr2 CDATA #implied> http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/OO_009.phpt?r=1.1&p=1 Index: php-src/ext/xmlwriter/tests/OO_009.phpt +++ php-src/ext/xmlwriter/tests/OO_009.phpt --TEST-- XMLWriter: PI, Comment, CDATA --SKIPIF-- <?php if (!extension_loaded("xmlwriter")) die("skip"); if (!function_exists("$xw->start_comment")) die("skip: libxml2 2.6.7+ required"); ?> --FILE-- <?php /* $Id: OO_009.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */ $xw = new XMLWriter(); $xw->openMemory(); $xw->setIndent(TRUE); $xw->startDocument("1.0", "UTF-8"); $xw->startElement('root'); $xw->writeAttribute('id', 'elem1'); $xw->startElement('elem1'); $xw->writeAttribute('attr1', 'first'); $xw->writeComment('start PI'); $xw->startElement('pi'); $xw->writePi('php', 'echo "hello world"; '); $xw->endElement(); $xw->startElement('cdata'); $xw->startCdata(); $xw->endElement(); $xw->text('<>&"'); $xw->endCdata(); $xw->endElement(); $xw->endElement(); $xw->endDocument(); // Force to write and empty the buffer $output = $xw->flush(true); print $output; ?> --EXPECT-- <?xml version="1.0" encoding="UTF-8"?> <root id="elem1"> <elem1 attr1="first"> <!--start PI--> <pi><?php echo "hello world"; ?></pi> <cdata><![CDATA[<>&"]]></cdata> </elem1> </root>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php