我已经创建了一个XML像下面XML验证libxml的
<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>
我已经使用PHP的DOM文档的schemaValidate功能验证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
对不起,我已经用它验证在提到URL中的XML([XML模式验证(XSD有效http://www.utilities-online.info/ xsdvalidation /#。UsqYpNIW2Fk))在这里,我错过了包括 – Kanagu
啊..好的。让我们看看这个... –
我得到它的工作,我在做什么错在这里是,我用$ xml = simplexml_load_string(xmlstring);然后将该xml对象用于DOMDocument :: loadXML($ xml),当我直接将xmlstring用于DOMDocument时,那么它工作正常 – Kanagu