diff options
Diffstat (limited to 'ext/xml/tests/xml_set_notation_decl_handler_basic.phpt')
-rw-r--r-- | ext/xml/tests/xml_set_notation_decl_handler_basic.phpt | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/ext/xml/tests/xml_set_notation_decl_handler_basic.phpt b/ext/xml/tests/xml_set_notation_decl_handler_basic.phpt new file mode 100644 index 0000000..6616681 --- /dev/null +++ b/ext/xml/tests/xml_set_notation_decl_handler_basic.phpt @@ -0,0 +1,102 @@ +--TEST-- +Test xml_set_notation_decl_handler function : basic +--SKIPIF-- +<?php +if (!extension_loaded("xml")) { + print "skip - XML extension not loaded"; +} +?> +--FILE-- +<?php +/* Prototype : proto bool xml_set_notation_decl_handler ( resource $parser , callback $handler ) + * Description: Sets the notation declaration handler function for the XML parser. + * Source code: ext/xml/xml.c + * Alias to functions: + */ + +class XML_Parser +{ + + function unparsed_entity_decl_handler($parser, $entity_name, $base, $system_ID, $public_ID, $notation_name) + { + echo "unparsed_entity_decl_handler called\n"; + echo "...Entity name=" . $entity_name . "\n"; + echo "...Base=" . $base . "\n"; + echo "...System ID=" . $system_ID . "\n"; + echo "...Public ID=" . $public_ID . "\n"; + echo "...Notation name=" . $notation_name . "\n"; + } + + function notation_decl_handler($parser, $name, $base, $system_ID,$public_ID) + { + echo "notation_decl_handler called\n"; + echo "...Name=" . $name . "\n"; + echo "...Base=" . $base . "\n"; + echo "...System ID=" . $system_ID . "\n"; + echo "...Public ID=" . $public_ID . "\n"; + } + + function parse($data) + { + $parser = xml_parser_create(); + xml_set_object($parser, $this); + xml_set_notation_decl_handler($parser, "notation_decl_handler"); + xml_set_unparsed_entity_decl_handler($parser, "unparsed_entity_decl_handler"); + xml_parse($parser, $data, true); + xml_parser_free($parser); + } +} + +$xml = <<<HERE +<?xml version="1.0"?> +<!DOCTYPE dates [ + <!NOTATION USDATE SYSTEM "http://www.schema.net/usdate.not"> + <!NOTATION AUSDATE SYSTEM "http://www.schema.net/ausdate.not"> + <!NOTATION ISODATE SYSTEM "http://www.schema.net/isodate.not"> + <!ENTITY testUS SYSTEM "test_usdate.xml" NDATA USDATE> + <!ENTITY testAUS SYSTEM "test_ausdate.xml" NDATA AUSDATE> + <!ENTITY testISO SYSTEM "test_isodate_xml" NDATA ISODATE>]> +]> +HERE; + +echo "Simple test of xml_set_notation_decl_handler(() function\n"; +$p1 = new Xml_Parser(); +$p1->parse($xml); +echo "Done\n"; +?> +--EXPECT-- +Simple test of xml_set_notation_decl_handler(() function +notation_decl_handler called +...Name=USDATE +...Base= +...System ID=http://www.schema.net/usdate.not +...Public ID= +notation_decl_handler called +...Name=AUSDATE +...Base= +...System ID=http://www.schema.net/ausdate.not +...Public ID= +notation_decl_handler called +...Name=ISODATE +...Base= +...System ID=http://www.schema.net/isodate.not +...Public ID= +unparsed_entity_decl_handler called +...Entity name=testUS +...Base= +...System ID=test_usdate.xml +...Public ID= +...Notation name=USDATE +unparsed_entity_decl_handler called +...Entity name=testAUS +...Base= +...System ID=test_ausdate.xml +...Public ID= +...Notation name=AUSDATE +unparsed_entity_decl_handler called +...Entity name=testISO +...Base= +...System ID=test_isodate_xml +...Public ID= +...Notation name=ISODATE +Done |