summaryrefslogtreecommitdiff
path: root/ext/xmlreader/examples
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2004-04-27 10:46:21 +0000
committerRob Richards <rrichards@php.net>2004-04-27 10:46:21 +0000
commit80fd6dcaa4eb5033194ef8140392d748c05c9c33 (patch)
tree7ca368f21b8b3eff9c9fcb5fe868d211c54f75bf /ext/xmlreader/examples
parent1f22d848e98e66939b8aa765892f9f9b8cd4034c (diff)
downloadphp-git-80fd6dcaa4eb5033194ef8140392d748c05c9c33.tar.gz
add relaxNG support
set xml base directory so it is consistant add validation examples
Diffstat (limited to 'ext/xmlreader/examples')
-rw-r--r--ext/xmlreader/examples/dtdexample.dtd8
-rw-r--r--ext/xmlreader/examples/dtdexample.xml15
-rw-r--r--ext/xmlreader/examples/relaxNG.rng11
-rw-r--r--ext/xmlreader/examples/relaxNG.xml1
-rw-r--r--ext/xmlreader/examples/relaxNG2.rng23
-rw-r--r--ext/xmlreader/examples/relaxNG3.rng8
-rw-r--r--ext/xmlreader/examples/xmlreader_relaxNG.php25
-rw-r--r--ext/xmlreader/examples/xmlreader_validatedtd.php18
8 files changed, 109 insertions, 0 deletions
diff --git a/ext/xmlreader/examples/dtdexample.dtd b/ext/xmlreader/examples/dtdexample.dtd
new file mode 100644
index 0000000000..ce53f0bc18
--- /dev/null
+++ b/ext/xmlreader/examples/dtdexample.dtd
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!ELEMENT LIST (MOVIE+)>
+<!ELEMENT MOVIE (TITLE, ORGTITLE, LOC, INFO)>
+<!ATTLIST MOVIE ID ID #REQUIRED>
+<!ELEMENT TITLE (#PCDATA)>
+<!ELEMENT ORGTITLE (#PCDATA)>
+<!ELEMENT LOC (#PCDATA)>
+<!ELEMENT INFO (#PCDATA)>
diff --git a/ext/xmlreader/examples/dtdexample.xml b/ext/xmlreader/examples/dtdexample.xml
new file mode 100644
index 0000000000..052889c05d
--- /dev/null
+++ b/ext/xmlreader/examples/dtdexample.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE LIST SYSTEM "dtdexample.dtd">
+<LIST>
+<MOVIE ID="x200338360">
+<TITLE>Move Title 1</TITLE>
+<ORGTITLE/><LOC>Location 1</LOC>
+<INFO/>
+</MOVIE>
+<MOVIE ID="m200338361">
+<TITLE>Move Title 2</TITLE>
+<ORGTITLE/>
+<LOC>Location 2</LOC>
+<INFO/>
+</MOVIE>
+</LIST>
diff --git a/ext/xmlreader/examples/relaxNG.rng b/ext/xmlreader/examples/relaxNG.rng
new file mode 100644
index 0000000000..f4357e04ef
--- /dev/null
+++ b/ext/xmlreader/examples/relaxNG.rng
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+<include href="relaxNG2.rng">
+<define name="TEI.prose"><ref name="INCLUDE"/></define>
+</include>
+</grammar>
+
+
+
diff --git a/ext/xmlreader/examples/relaxNG.xml b/ext/xmlreader/examples/relaxNG.xml
new file mode 100644
index 0000000000..6b0cac1225
--- /dev/null
+++ b/ext/xmlreader/examples/relaxNG.xml
@@ -0,0 +1 @@
+<TEI.2>hello</TEI.2> \ No newline at end of file
diff --git a/ext/xmlreader/examples/relaxNG2.rng b/ext/xmlreader/examples/relaxNG2.rng
new file mode 100644
index 0000000000..4adae7b151
--- /dev/null
+++ b/ext/xmlreader/examples/relaxNG2.rng
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:t="http://www.thaiopensource.com/ns/annotations" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+ <start>
+ <ref name="TEI.2"/>
+ </start>
+ <define name="IGNORE">
+ <notAllowed/>
+ </define>
+ <define name="INCLUDE">
+ <empty/>
+ </define>
+
+
+ <include href="relaxNG3.rng"/>
+
+ <define name="TEI.2">
+ <element name="TEI.2">
+ <text/>
+ </element>
+ </define>
+
+</grammar> \ No newline at end of file
diff --git a/ext/xmlreader/examples/relaxNG3.rng b/ext/xmlreader/examples/relaxNG3.rng
new file mode 100644
index 0000000000..73e1eb6165
--- /dev/null
+++ b/ext/xmlreader/examples/relaxNG3.rng
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:t="http://www.thaiopensource.com/ns/annotations" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+ <define name="TEI.prose" combine="interleave">
+ <ref name="IGNORE"/>
+ </define>
+
+</grammar> \ No newline at end of file
diff --git a/ext/xmlreader/examples/xmlreader_relaxNG.php b/ext/xmlreader/examples/xmlreader_relaxNG.php
new file mode 100644
index 0000000000..e56739a2fb
--- /dev/null
+++ b/ext/xmlreader/examples/xmlreader_relaxNG.php
@@ -0,0 +1,25 @@
+<?php
+$indent = 5; /* Number of spaces to indent per level */
+
+$reader = new XMLReader();
+$reader->open('relaxNG.xml');
+/*
+Example setting relaxNG using string:
+$reader->setRelaxNGSchemaSource(file_get_contents('relaxNG.rng'));
+*/
+if ($reader->setRelaxNGSchema('relaxNG.rng')) {
+ while ($reader->read()) {
+ /* Print node name indenting it based on depth and $indent var */
+ print str_repeat(" ", $reader->depth * $indent).$reader->name."\n";
+ }
+}
+
+print "\n";
+
+if (! $reader->isValid()) {
+ print "Document is not valid\n";
+} else {
+ print "Document is valid\n";
+}
+
+?> \ No newline at end of file
diff --git a/ext/xmlreader/examples/xmlreader_validatedtd.php b/ext/xmlreader/examples/xmlreader_validatedtd.php
new file mode 100644
index 0000000000..5173154f5a
--- /dev/null
+++ b/ext/xmlreader/examples/xmlreader_validatedtd.php
@@ -0,0 +1,18 @@
+<?php
+$indent = 5; /* Number of spaces to indent per level */
+
+$xml = new XMLReader();
+$xml->open("dtdexample.xml");
+$xml->setParserProperty(XMLREADER_LOADDTD, TRUE);
+$xml->setParserProperty(XMLREADER_VALIDATE, TRUE);
+while($xml->read()) {
+ /* Print node name indenting it based on depth and $indent var */
+ print str_repeat(" ", $xml->depth * $indent).$xml->name."\n";
+ if ($xml->hasAttributes) {
+ $attCount = $xml->attributeCount;
+ print str_repeat(" ", $xml->depth * $indent)." Number of Attributes: ".$xml->attributeCount."\n";
+ }
+}
+print "\n\nValid:\n";
+var_dump($xml->isValid());
+?> \ No newline at end of file