013.phpt 952 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. XMLReader: Schema validation
  3. --EXTENSIONS--
  4. xmlreader
  5. --SKIPIF--
  6. <?php if (!method_exists('XMLReader','setSchema')) die('skip XMLReader::setSchema() not supported');?>
  7. --FILE--
  8. <?php
  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(__DIR__ . '/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(__DIR__ . '/013.xsd');
  36. while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
  37. $reader->close();
  38. ?>
  39. --EXPECTF--
  40. string(3) "123"
  41. string(3) "456"
  42. ===FAIL===
  43. Warning: XMLReader::read(): Element 'foo': %s