
DTDを見ていたら、結局、この要素の下には何が書けるの?と分からなくなってきたので、ツリー構造を表示するようにしてみた。PEARのXML_DTDを使ったら、簡単だった。
<?php
/**
* DTDの読み込みと表示
*/
/** PEAR の XML_DTD */
include 'XML/DTD.php';
$dtd = 'XXXXXXXX.dtd';
$parser = new XML_DTD_Parser;
$dtdobj = $parser->parse($dtd);
// <root>から表示
print_tree('root', 0);
/**
* XML_DTD_Treeの表示
* @param string $target 表示するDTDのELEMENT名
*/
function print_tree($target, $indent)
{
global $dtdobj;
$children = $dtdobj->getChildren($target);
// タブでインデント
for ($i = 0; $i < $indent; $i++)
{
echo "\t";
}
echo "$target\n";
if ($target == 'XXXX')
{
// 無限に入れ子になってしまうELEMENTはここではじく。
return;
}
foreach ($children as $child)
{
print_tree($child, $indent + 1);
}
}
?>