013.phpt 1020 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --TEST--
  2. XMLReader: 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. /* $Id$ */
  9. $xml =<<<EOF
  10. <?xml version="1.0" encoding="UTF-8" ?>
  11. <items>
  12. <item>123</item>
  13. <item>456</item>
  14. </items>
  15. EOF;
  16. $reader = new XMLReader();
  17. $reader->XML($xml);
  18. $reader->setSchema(dirname(__FILE__) . '/013.xsd');
  19. while($reader->read()) {
  20. if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'item') {
  21. $reader->read();
  22. var_dump($reader->value);
  23. }
  24. }
  25. $reader->close();
  26. ?>
  27. ===FAIL===
  28. <?php
  29. $xml =<<<EOF
  30. <?xml version="1.0" encoding="UTF-8" ?>
  31. <foo/>
  32. EOF;
  33. $reader = new XMLReader();
  34. $reader->XML($xml);
  35. $reader->setSchema(dirname(__FILE__) . '/013.xsd');
  36. while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
  37. $reader->close();
  38. ?>
  39. ===DONE===
  40. --EXPECTF--
  41. string(3) "123"
  42. string(3) "456"
  43. ===FAIL===
  44. Warning: XMLReader::read(): Element 'foo': %s
  45. ===DONE===