<?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());
?>