📅  最后修改于: 2023-12-03 15:03:39.987000             🧑  作者: Mango
XMLReader::setRelaxNGSchema()函数是用于设置XMLReader对象解析XML文档时使用Relax NG(简称RNG)模式检验文档的模式。Relax NG是一种用于定义XML文档可接受的结构的schema语言。通过使用Relax NG的模式,XMLReader对象可以在解析XML文档时对文档结构进行验证,确保符合预定义的RNG规范。
bool XMLReader::setRelaxNGSchema ( string $filename )
参数
$filename
:RNG文件的路径。返回值
设置成功返回true,否则返回false。
下面是一个使用XMLReader::setRelaxNGSchema()函数的示例,假设有一个名为"example.xml"的XML文件,其内容如下:
<?xml version="1.0"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
下面是一个PHP脚本,使用XMLReader::setRelaxNGSchema()函数读取该XML文档并验证其是否符合预定义的RNG规范:
$xml = new XMLReader();
$xml->open('example.xml');
if($xml->setRelaxNGSchema('example.rng')) {
echo "RNG validation successful";
} else {
echo "RNG validation failed";
}
$xml->close();
在上面的示例中,"example.rng"是预定义的RNG规范文件,如果XML文档符合该规范,则输出"RNG validation successful",否则输出"RNG validation failed"。