0
XSD minLength驗證我想通過XSD驗證XML。 不得不提的就是我的XSD工作正常,除了這一塊:通過PHP的DOMDocument :: schemaValidateSource()
<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中的正則表達式模式,但我不想使用這些。
我在WinXP上使用PHP 5.3.5
和libxml 2.7.7
。
嗯,沒有想到這一點。有什麼建議麼?我會檢查XMLPad或Xerces。 – nevvermind 2012-01-10 15:30:00
是的,在命令行中使用libxml2 2.7.8的xmllint,驗證失敗;應該如此。感謝您指點我正確的方向。 – nevvermind 2012-01-11 08:08:06