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