xref: /PHP-7.4/ext/xmlreader/tests/013.phpt (revision 26dfce7f)
1--TEST--
2XMLReader: Schema validation
3--SKIPIF--
4<?php if (!extension_loaded('xmlreader')) die('skip');?>
5<?php if (!method_exists('XMLReader','setSchema')) die('skip XMLReader::setSchema() not supported');?>
6--FILE--
7<?php
8
9$xml =<<<EOF
10<?xml version="1.0" encoding="UTF-8" ?>
11<items>
12  <item>123</item>
13  <item>456</item>
14</items>
15EOF;
16
17$reader = new XMLReader();
18$reader->XML($xml);
19$reader->setSchema(__DIR__ . '/013.xsd');
20while($reader->read()) {
21	if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'item') {
22		$reader->read();
23		var_dump($reader->value);
24	}
25}
26$reader->close();
27
28?>
29===FAIL===
30<?php
31
32$xml =<<<EOF
33<?xml version="1.0" encoding="UTF-8" ?>
34<foo/>
35EOF;
36
37$reader = new XMLReader();
38$reader->XML($xml);
39$reader->setSchema(__DIR__ . '/013.xsd');
40while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
41$reader->close();
42
43?>
44===DONE===
45--EXPECTF--
46string(3) "123"
47string(3) "456"
48===FAIL===
49
50Warning: XMLReader::read(): Element 'foo': %s
51===DONE===
52