summaryrefslogtreecommitdiff
path: root/ext/xml/tests/xml_set_notation_decl_handler_basic.phpt
diff options
context:
space:
mode:
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.phpt102
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