我想通过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.5libxml 2.7.7 在winxp上。

有帮助吗?

解决方案

从表面上看,它看起来像是一个错误,但是这里没有足够的信息可以肯定地说。

您是否尝试使用其他模式处理器运行验证?如果怀疑错误,那应该是您的第一步,因为它可能以一种或另一种方式确认它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top