Java xsd验证因cvc elt而失败。1:找不到元素的声明
我正在使用java中的xsd验证我的xml:Java xsd验证因cvc elt而失败。1:找不到元素的声明,java,xml,schema,Java,Xml,Schema,我正在使用java中的xsd验证我的xml: javax.xml.validation.SchemaFactory .newInstance("http://www.w3.org/2001/XMLSchema") .newSchema(new java.io.File(schemaPath)) .newValidator() .validate(new javax.xml.transform.stream.StreamSource(new java.io.FileInputStream(xmlP
javax.xml.validation.SchemaFactory
.newInstance("http://www.w3.org/2001/XMLSchema")
.newSchema(new java.io.File(schemaPath))
.newValidator()
.validate(new javax.xml.transform.stream.StreamSource(new java.io.FileInputStream(xmlPath)));
我得到以下错误:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 18; cvc-elt.1: Deklaration des Elements "WrappedBodyText" kann nicht gefunden werden.
我将xml简化为以下内容:
<WrappedBodyText></WrappedBodyText>
我将xsd缩减为:
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://compa.ny/customer/schema/Wrapper"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:Wrapper="http://compa.ny/customer/schema/Wrapper"
xmlns:WrapperType="http://compa.ny/customer/schema/WrapperType"
xmlns:standardservice="http://compa.ny/standard/service/schema">
<complexType name="WrappedBodyText">
</complexType>
</schema>
我在这里或其他论坛上浏览了几篇帖子,但我发现的错误似乎都不适用。请帮助据我所知,一个complexType的单一定义是不够的。我还必须定义一个元素:
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://compa.ny/customer/schema/Wrapper"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:Wrapper="http://compa.ny/customer/schema/Wrapper"
xmlns:WrapperType="http://compa.ny/customer/schema/WrapperType"
xmlns:standardservice="http://compa.ny/standard/service/schema">
<complexType name="WrappedBodyText">
</complexType>
<element name="WrappedBodyText" type="Wrapper:WrappedBodyText"/>
</schema>
但我的xml实例中也有一个错误。验证器找到命名空间为空的元素WrappedBodyText,但在定义的targetNamespace中需要一个元素。因此,我也更改了xml实例:
<WrappedBodyText xmlns="http://compa.ny/customer/schema/Wrapper"></WrappedBodyText>
我想这两个错误的结合是最糟糕的