Frage

Ich möchte eine XML über XSD validieren. Ich muss erwähnen, dass mein XSD gut funktioniert, außer Dieses eine Stück:

<xs:element name="some_element">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="50"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Ich habe eine PHP -Klasse für Wrapper gemacht, um dies gegen einen XML zu validieren, und im Kern tut es dies:

$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();

Das Problem ist, dass, sogar auf <some_element></some_element> oder <some_element>[100_chars_here]</some_element>, Es validiert (ich bekomme keine Fehler), und ich möchte eine Mindestinhaltslänge von 50 für dieses Element haben.

Gibt es irgendwo einen Fehler? Was vermisse ich hier? Es funktioniert mit Regex -Mustern in XSD, aber ich möchte diese nicht verwenden.

Ich benutze PHP 5.3.5 mit libxml 2.7.7 auf winxp.

War es hilfreich?

Lösung

Auf den ersten Blick sieht es aus wie ein Fehler, aber hier gibt es nicht genügend Informationen, um das mit Sicherheit zu sagen.

Haben Sie versucht, die Validierung mit einem anderen Schema -Prozessor auszuführen? Dies sollte Ihr erster Schritt sein, wenn ein Fehler vermutet wird, da es wahrscheinlich auf die eine oder andere Weise bestätigt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top