gpt4 book ai didi

java - 出现错误无法找到元素 'soapenv:Envelope' 的声明

转载 作者:行者123 更新时间:2023-11-30 07:38:07 26 4
gpt4 key购买 nike

我收到错误“找不到元素soapenv:Envelope 的声明”

与其他 xml 文件 xsd 一起工作正常..问题在于以下文件..

我的 Xml 文件是:-

<?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/
/tmp/checkxsd.xsd">
<soapenv:Body>
<ns:getEntitiesByFilterResponse
xmlns:ns="http://services"
xmlns:ax21="http://objects.services/xsd">
<ns:return xsi:type="ax21:EntityObj">
<ax21:entityId>1065798192</ax21:entityId>
<ax21:entityTypeId>4</ax21:entityTypeId>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>Project SoapUI 001</ax21:elementValue>
<ax21:id>436</ax21:id>
</ax21:methodValues>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>Project SoapUI 001</ax21:elementValue>
<ax21:id>100461</ax21:id>
</ax21:methodValues>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>Project SoapUI 001</ax21:elementValue>
<ax21:id>400015</ax21:id>
</ax21:methodValues>
</ns:return>
<ns:return xsi:type="ax21:EntityObj">
<ax21:entityId>1065835163</ax21:entityId>
<ax21:entityTypeId>4</ax21:entityTypeId>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>Project SoapUI 002</ax21:elementValue>
<ax21:id>436</ax21:id>
</ax21:methodValues>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>Project SoapUI 002</ax21:elementValue>
<ax21:id>100461</ax21:id>
</ax21:methodValues>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>Project SoapUI 002</ax21:elementValue>
<ax21:id>400015</ax21:id>
</ax21:methodValues>
</ns:return>
<ns:return xsi:type="ax21:EntityObj">
<ax21:entityId>1317237376</ax21:entityId>
<ax21:entityTypeId>4</ax21:entityTypeId>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>CopyTask_project_1448004605927</ax21:elementValue>
<ax21:id>436</ax21:id>
</ax21:methodValues>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>CopyTask_project_1448004605927</ax21:elementValue>
<ax21:id>100461</ax21:id>
</ax21:methodValues>
<ax21:methodValues xsi:type="ax21:ValuePair">
<ax21:elementValue>CopyTask_project_1448004605927</ax21:elementValue>
<ax21:id>400015</ax21:id>
</ax21:methodValues>
</ns:return>
</ns:getEntitiesByFilterResponse></soapenv:Body></soapenv:Envelope>

请在下面找到 XSD:-

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://objects.services/xsd">
<xs:element name="entityId">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:enumeration value="1065798192" />
<xs:enumeration value="1065835163" />
<xs:enumeration value="1317237376" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="entityTypeId" type="xs:byte" />
<xs:element name="methodValues">
<xs:complexType>
<xs:sequence>
<xs:element name="elementValue">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Project SoapUI 001" />
<xs:enumeration value="Project SoapUI 002" />
<xs:enumeration value="CopyTask_project_1448004605927" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="id">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:enumeration value="436" />
<xs:enumeration value="100461" />
<xs:enumeration value="400015" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

我根据 xml 验证 xsd 的 java 代码如下:-

SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new File("/tmp/checkxsd.xsd"));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new File("/home/my-pc/MyXMLFile.xml"))

非常感谢任何帮助。我被这个问题困住了。

最佳答案

您看到的消息几乎总是意味着 validator 没有加载架构;反过来,这几乎总是因为找不到它;这几乎总是因为指定要处理的架构文档的位置时出现一些错误。

一旦示例中的过长行被打破,并且可以方便地读取最外层元素的开始标签,而无需左右滚动,问题的一个根源(不一定是唯一的根源)似乎就很清楚了。您认为属性值规范的含义是什么

xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
http://schemas.xmlsoap.org/soap/envelope/
/tmp/checkxsd.xsd">

(此时,我预计您要么有一种拍脑袋的体验,要么困惑地扬起眉毛。如果是后者,我建议您查阅一些文档。)

关于java - 出现错误无法找到元素 'soapenv:Envelope' 的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35076966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com