当前位置: 首页 > 知识库问答 >
问题:

在不引用两个基于文件的XML和xsd文档的情况下,以任何语言验证XML响应

隆扬
2023-03-14

我有一个SOAP xml响应。

我有一个xsd文件。

但是,在SOAP xml响应的标头中是否有方法注入xsd模式文件的位置,并只验证XMLDocument

这是我想到的,但就是不起作用

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:getCCMVersionResponse xmlns:ns="http://www.cisco.com/AXL/API/10.5"> 
<return><componentVersion>     
<version>10.5.2.11900(3)</version>
</componentVersion>
</return>
</ns:getCCMVersionResponse>
</soapenv:Body>
</soapenv:Envelope>

我正在尝试更改标题

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://test123a.epizy.com/getCCMVersion.xsd">

我尝试过schemaLocation,我也尝试过file:///Users/me/Documents/getCCMVersion.xsd

有人能帮忙吗?

这家伙从来没有得到过aswer

SOAP响应架构验证

共有1个答案

谭玄天
2023-03-14
<?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>
<ns:getCCMVersionResponse xmlns:ns="http://www.cisco.com/AXL/API/10.5"                                                       
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                                              
xsi:schemaLocation="http://www.cisco.com/AXL/API/10.5  
/Users/michael/Downloads/axlsqltoolkit/schema/current/getCCMVersion.xsd">
<return>
<componentVersion>
<version>10.5.2.11900(3)</version>
</componentVersion>
</return>
</ns:getCCMVersionResponse>
</soapenv:Body>
</soapenv:Envelope>

原来这是正确的格式

但您不能同时对SOAP文档和SOAP中的XML进行自验证。

您将需要路径到

此外,如果xml响应或soap甚至lope已经声明了命名空间,则不能使用noNamespaceSchemaLocation。例如,xml响应已经具有

xmlns:ns="http://www.cisco.com/AXL/API/10.5"

在所有的尝试中,除了挫折什么都没有

<version>10.5.2.11900(3)</version>
</componentVersion>
</return>
</ns:getCCMVersionResponse>
</soapenv:Body>
 类似资料:
  • 使用https://www.freeformatter.com/xml-validator-xsd.html 如果我将soapenf完全从这里的响应和模式的混合中去掉,它工作得很好,但我希望两者都能做到。 (仅供参考,我想指出这个wsdl和xsd没有在endpoint上公开,CISCO提供了wsdl和xsd文件的zip文件)然后您可以根据wsdl/xsd向服务器发送请求,它会工作。但是wsdl和x

  • 使用eclipse时,我消除了所有错误,但当我更改xml文档中的元素内容时,超出了中设置的限制。xsd文件没有出现验证错误。我已尝试使用联机验证http://www.freeformatter.com/xml-validator-xsd.html我得到了错误“Cvc elt.1:找不到元素“DatabaseInventory”…行“4”,列“69”的声明”,但在eclipse中它验证得很好。不知道

  • 我需要针对给定的XSD文件验证多个XML文件。问题是XSD由两个文件组成。它们是嵌套的,尽管我知道哪个是第一个(其他文件的“父”)。在XML文件中,我使用命名空间来定义子节点在哪个XSD中定义

  • 我在验证xml和xsd时遇到问题。我从xsd模式中得到这个错误。 src解决方案。4.2:解析组件“urn:id”时出错。检测到“urn:id”位于命名空间“urn:schemas microsoft com:xml-diffgram-v1”中,但此命名空间中的组件无法从架构文档中引用virtual://server/schema.xsd。如果名称空间不正确,可能需要更改“urn:id”的前缀。如

  • 我想用JAXB创建一个通用的xmlFileValidator,它需要一个XML文件和一个模式文件,如果文件有效,则返回根类的对象,否则抛出SAXExc0019或JAXBExc0019。 } 下一行给出警告- 类型安全性:未选中从对象到JAXBElement的强制转换 而且我也无法映射未签名的对象并将其设置为E obj,这是在参数中传递的。我知道它可以返回,但我被要求将其设置为该参数。请帮忙。提前谢

  • 我在xsd中有一个问题,我不知道为什么stackoverflow阻止我问。我想有一个看起来像这样的标签 但我还想使用验证来验证这一点。 在xsd中,我有 我可以单独通过语法测试,但当我将验证和xml文件放在一起时,我不断收到错误,说order属性不允许出现在这个标记中。我想使用这个order属性,因为它是必需的。如果有人能告诉我怎么做!非常感谢!