我尝试使用http://www.freeformatter.com/xml-validator-xsd.html针对我的XSD验证我的XML,但它失败并出现上述错误。 我发现了许多相同的问题,但没有一个答案对我有帮助。 请帮忙,什么是正确的XML / XSD?
我的XML :(只有最小的一个)
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope" >
</soapenv:Envelope>
我的XSD :(只有最小的一个)
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
</xs:schema>
答案 0 :(得分:2)
有几个问题:
您的XML没有提示XSD的位置。
补救措施:使用xsi:schemaLocation
(请参阅下面的XSD)。
SOAP的XML名称空间URI是非标准的。
补救措施:使用http://schemas.xmlsoap.org/soap/envelope/
(请注意尾随斜杠)。
您的XSD未定义targetNamespace
。
补救措施:定义一个,或者更好,使用standard Schema for the SOAP/1.1 envelope。
您可以使用以下空SOAP信封消息来检查您的消息;它将消除您的错误并允许找到soapenv:Envelope
的声明:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
<soapenv:Body/>
</soapenv:Envelope>