目前,我正在为SOAP XML使用XSD,但当我在FREEFORMATTER上运行SOAP XML和XSD时。COM,我收到以下错误:
Cvc-elt.1:找不到元素声明“肥皂:信封”...第1行,第170列
这是我的SOAP XML:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Cancel_OrderLine xmlns="http://tempuri.org/">
<Data>
<Delivery>
<Delivery_No>1605000194</Delivery_No>
<Reason>qwertyu</Reason>
</Delivery>
<Delivery>
<Delivery_No>1605000194</Delivery_No>
<Reason>qwerty</Reason>
</Delivery>
</Data>
</Cancel_OrderLine>
</soap:Body>
</soap:Envelope>
这是我的XSD:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<xs:element name="Cancel_OrderLineReq">
<xs:complexType>
<xs:sequence>
<xs:element name="Data">
<xs:complexType>
<xs:sequence>
<xs:element name="Delivery" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:int" name="Delivery_No"/>
<xs:element type="xs:string" name="Reason"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我应该怎么做才能消除错误?
如果根据xsd验证xml,可能需要初始化builderFactory以“了解名称空间”——默认情况下为false。
final DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
final DocumentBuilder builder = builderFactory.newDocumentBuilder();
builder.parse(...);
首先,您必须向XSD的xs: Schema
元素添加Target Namespace="http://tempuri.org/"
,以便XSD应用于XML有效负载中使用的命名空间。
然后,您可以采取以下任一方法:更改XML或更改XSD。根据您控制的文件进行选择。
添加
xsi:schemaLocation="http://tempuri.org/ tempuri.xsd
http://schemas.xmlsoap.org/soap/envelope/
http://schemas.xmlsoap.org/soap/envelope/
到soap:信封:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xsi:schemaLocation="http://tempuri.org/ tempuri.xsd
http://schemas.xmlsoap.org/soap/envelope/
http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Cancel_OrderLine xmlns="http://tempuri.org/">
<Data>
<Delivery>
<Delivery_No>1605000194</Delivery_No>
<Reason>qwertyu</Reason>
</Delivery>
<Delivery>
<Delivery_No>1605000194</Delivery_No>
<Reason>qwerty</Reason>
</Delivery>
</Data>
</Cancel_OrderLine>
</soap:Body>
</soap:Envelope>
添加
<xs:import namespace="http://schemas.xmlsoap.org/soap/envelope/"
schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"/>
到XSD的xs: Schema
元素:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
targetNamespace="http://tempuri.org/">
<xs:import namespace="http://schemas.xmlsoap.org/soap/envelope/"
schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"/>
<xs:element name="Cancel_OrderLineReq">
<xs:complexType>
<xs:sequence>
<xs:element name="Data">
<xs:complexType>
<xs:sequence>
<xs:element name="Delivery" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:int" name="Delivery_No"/>
<xs:element type="xs:string" name="Reason"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
这两种方法都将允许成功验证SOAP信封及其有效负载。
问题内容: 我正在尝试获取一个bean对象以使用Spring Security验证用户登录功能: 我applicationContext.xml的如下: 但我得到这个异常: 我很难理解这个问题。 我对XML进行了如下更改: 我现在收到此异常: 问题答案: 你的默认名称空间是,http://www.springframework.org/schema/security并且你配置了它,xmlns:be
问题内容: 我有弹簧罐,并试图 从此处给出的教程中实现程序。xml配置文件为: 主要: 我不知道这些豆怎么了。到目前为止,关于其他问题的任何建议都无济于事。有什么帮助吗? 问题答案: 假设您使用的是Spring 3.1,请尝试以下操作: 在最后一行用您使用的 主要 Spring版本替换。含义:即使有Spring版本,也没有XSD 。
我有这个问题 XML格式的文档 我的XSD 我有个神经衰弱的问题。有什么想法吗? 问候
在spring中,每当我在dispatcher-servlet.xml中编写时,我都会得到这样的错误:-
我从GitHub获取了一个android项目,并将其克隆到了我的android Studio中。当我试图运行ActivityMain时。xml文件为了检查项目是否正常工作,我遇到了这个错误“找不到元素'RelativeLayout'的声明”。我不知道怎么解决这个问题。如果任何人有任何其他方式运行该项目,请建议太多。 github文件的链接如下所示 https://github.com/PedroC
我正在尝试用Spring配置Hazelcast。我正在为Hazelcast的xml文件配置使用单独的文件,我检查了我在该文件中用xml配置的xsd,它包含“Hazelcast”元素,也按照xsd中的名称空间规范进行了配置,还添加了3.3版本的Hazelcast,Hazelcast all 我检查了xsd文件-http://www.hazelcast.com/schema/confighazelca