013.phpt 1008 B

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