SOAP信封响应xml验证

时间:2018-07-09 22:47:14

标签: xml xslt xpath soap xsd

我有一个肥皂信封

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="file:///Users/michael/Downloads/soap.xsd">
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>

soap.xsd只是保存到soap.xsd的http://schemas.xmlsoap.org/soap/envelope/的本地版本

当我尝试验证这一点时,它表示每个targetAction的架构目标都不正确

所有试验和错误都指向xmlns:xsi标记,指出了错误

我想知道它是否与SOAP 1.0和1.1有关

(我已经能够使用完全相同的方法来验证soap中的xml),我非常确定这可以在一个元素中完成,但是出于理智的考虑,我试图使其正常工作

1 个答案:

答案 0 :(得分:1)

通过反复试验,确定肥皂的答案是以下格式

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/\">
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>

然后您可以验证这是一个有效的SOAP,但是可悲的是,如果主体中存在xml,并且您还正确地指向xsd文件,则它们都无法验证。

当我说验证时,我的意思是不使用lib2xml或任何其他外部工具。仅使用xml文件本身进行验证