Проверка XML для XSD в PHP libxml

Я создал xml, как показано ниже.

<Request> <RequestType>Logon</RequestType> <MobileId>23424</MobileId> <Password>123456Gg</Password> </Request> 

и мой xsd-файл похож на код ниже

 <?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> 

Я использовал функцию schemaValidate PHP DOMDocument для проверки xml на xsd, и он дает следующую ошибку

 Fatal Error 4: Start tag expected, '<' not found on line 5 Error 1872: The document has no document element. on line 0 

Но я проверил эти два файла (xml и xsd) в этой ссылке W3C XML Schema Online validation , и он успешно проверяет без какой-либо ошибки.

Что я должен сделать, чтобы получить работу в php?

Примечание: моя версия php libxml – 2.7.8

dom специально предоставляет две функции для проверки со схемой. Один из них – указать путь к файлу

 $doc = new DOMDocument(); $doc->load('PATH TO XML'); $is_valid_xml = $doc->schemaValidate('PATH TO XSD'); 

или вы могли бы использовать

 $is_valid_xml = $doc->schemaValidateSource($source) 

Этот источник должен быть строкой, содержащей схему. Кажется, что вы используете функцию schemaValidateSource, отличную от schemaValidate. (Однажды я застрял там же) приветствия

Просто закройте файл xsd:

 </xsd:schema> 

Я пробую это сейчас, и для меня это работает.