PHP DOMDocument schemaValidate但获取类型

时间:2016-11-14 23:53:17

标签: php xml

Sa我有两种类型的模式,一种用于<Request>,另一种用于<Response>。我有两个架构xsd。

我希望能够得到&#34;类型&#34;模式,即使它是无效的。例如,<Request to2="">...应该无效,但我仍然知道这是Request

如果属性也错误,问题是$xml->schemaValidate(...)将为我的两个模式返回false

(这个例子很简单,实际上,我可以为每个模式类型设置多个谓词,所以我不想遍历子节点并检查nodeType是什么)。

有没有办法使用DOMDocument来验证选项(没有属性验证)?

例如:

<Request>...</Request>                      ---> {type: 'Request', isValid: true},
<Response>...</Response>                    ---> {type: 'Response', isValid: true},

<Request to="api/action">...</Request>      ---> {type: 'Request', isValid: true},
<Request tooo="api/action">...</Request>    ---> {type: 'Request', isValid: false},

<Response type="json">...</Response>        ---> {type: 'Response', isValid: true},
<Response typeeee="json">...</Response>     ---> {type: 'Response', isValid: false},

如果我使用$xml->schemaValidate('/path/to/request.xsd');$xml->schemaValidate('/path/to/response.xsd');,我将无法分别确定<Request tooo="api/action">...</Request><Response typeeee="json">...</Response>的类型,因为它们是&#34;无效&#34 ;

1 个答案:

答案 0 :(得分:0)

生成一个组合的XSD,根据标签名称验证这两种类型。