0

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

4

1 に答える 1

0

一見バグのように見えますが、確実にそれを言うのに十分な情報はここにはありません。

別のスキーマプロセッサで検証を実行してみましたか?バグが疑われる場合は、それが何らかの方法で確認される可能性が高いため、これが最初のステップになるはずです。

于 2012-01-10T14:35:55.807 に答える