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>
これをXMLに対して検証するために、ラッパーPHPクラスを作成しました。そのコアでは、次のことを実行しています。
$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