通过PHP的domdocument :: schemavalidatesource()通过XSD最小程度验证
-
26-10-2019 - |
题
我想通过XSD验证XML。我必须提到我的XSD正常工作, 除了 这一块:
<xs:element name="some_element">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
我做了一个包装器PHP课程,以对XML进行验证,从而核心,它正在这样做:
$dom = new DOMDocument();
$dom->loadXML($xml);
// handle errors manually
set_error_handler(array($this, 'errorHandler'));
// validate
$isValid = $dom->schemaValidateSource($xsd);
// restore default error handler
restore_error_handler();
问题是,即使 <some_element></some_element>
或者 <some_element>[100_chars_here]</some_element>
, ,它验证(我没有错误),我希望该元素的最小内容长度为50。
某处有错误吗?我在这里想念什么?它可与XSD中的Regex模式一起使用,但我不想使用这些图案。
我在用着 PHP 5.3.5
和 libxml 2.7.7
在winxp上。
解决方案
从表面上看,它看起来像是一个错误,但是这里没有足够的信息可以肯定地说。
您是否尝试使用其他模式处理器运行验证?如果怀疑错误,那应该是您的第一步,因为它可能以一种或另一种方式确认它。
不隶属于 StackOverflow