XML-Validierung gegen XSD-in PHP libxml
Erstellt habe ich eine xml wie unter
<Request>
<RequestType>Logon</RequestType>
<MobileId>23424</MobileId>
<Password>123456Gg</Password>
</Request>
und mein xsd-Datei ist wie unten code
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Request" type="RequestType"/>
<xsd:complexType name="RequestType">
<xsd:sequence>
<xsd:element name="RequestType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Logon"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="MobileId" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Password">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Benutzt habe ich DAS PHP-DOMDocument-s schemaValidate Funktion zum validieren der xml gegen xsd -, und es gibt folgenden Fehler
Fatal Error 4: Start tag expected, '<' not found on line 5
Error 1872: The document has no document element. on line 0
Aber die ich getestet habe, werden diese beiden Dateien (xml und xsd), in diesem link W3C-XML-Schema-Online-Validierung, und es erfolgreich überprüft, ohne sichtbare Fehler.
Was muss ich tun, um diese Arbeit in php?
Hinweis: meine php-libxml version 2.7.8
Du musst angemeldet sein, um einen Kommentar abzugeben.
dom speziell gibt zwei Funktionen zum validieren mit Schemas.
Eine ist, Sie geben den Dateipfad
sonst könnten Sie
Diese Quelle sollte eine Zeichenfolge mit dem schema.
Es scheint, dass Sie mit schemaValidateSource andere Funktion als schemaValidate.
(Einmal, ich steckte an der gleichen Stelle)
cheers
Gerade schließen Sie Ihre xsd-Datei:
Ich versuche es nun, und für mich funktioniert.