Проверка XSD minLength с помощью PHP DOMDocument :: schemaValidateSource () - PullRequest
0 голосов
/ 10 января 2012

Я хочу проверить XML через XSD.Я должен упомянуть, что мой 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, но я бы не хотел их использовать.

Я использую PHP 5.3.5 с libxml 2.7.7 на WinXP.

1 Ответ

0 голосов
/ 10 января 2012

На первый взгляд, это выглядит как ошибка, но здесь недостаточно информации, чтобы с уверенностью сказать, что это все.Это должен быть ваш первый шаг в случае подозрения на ошибку, так как она может подтвердить ее тем или иным способом.

...