Mar*_*cka 5 php xml multiple-schema
我想知道是否可以在PHP中对多个模式验证xml,或者我必须以某种方式合并我的模式.
谢谢你的回答!
我已经通过简单的 PHP 脚本解决了我的问题:
$mainSchemaFile = dirname(__FILE__) . "/main-schema.xml";
$additionalSchemaFile = 'second-schema.xml';
$additionalSchema = simplexml_load_file($additionalSchemaFile);
$additionalSchema->registerXPathNamespace("xs", "http://www.w3.org/2001/XMLSchema");
$nodes = $additionalSchema->xpath('/xs:schema/*');
$xml = '';
foreach ($nodes as $child) {
$xml .= $child->asXML() . "\n";
}
$result = str_replace("</xs:schema>", $xml . "</xs:schema>", file_get_contents($mainSchemaFile));
var_dump($result); // merged schema in form XML (string)
Run Code Online (Sandbox Code Playgroud)
但这仅是由于模式相同这一事实才有可能 - 即
<xs:schema xmlns="NAMESPACE"
targetNamespace="NAMESPACE"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
Run Code Online (Sandbox Code Playgroud)
都在两个文件中。