Xsd minlength -валидация через PHP Domdocument :: SchemaValidatesource ()

StackOverflow https://stackoverflow.com/questions/8804096

  •  26-10-2019
  •  | 
  •  

Вопрос

Я хочу проверить 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.

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top