XML 验证:cvc-complex-type.2.4.a:找到以元素 {..} 开头的无效内容
XML Validation: cvc-complex-type.2.4.a: Invalid content found starting with element {..}
我正在尝试验证三个 XML 文件,我从每个文件中得到相同的两个错误。用于验证的方案是使用 Oxygen 18.0 使用方案生成函数创建的(具体使用三个 XMLs)。
错误是:
cvc-complex-type.2.4.a: Invalid content was found starting with element '{"http://www.tei-c.org/ns/1.0":p}'. One of '{"http://www.tei-c.org/ns/1.0":div}' is expected.
和
cvc-complex-type.2.4.b: The content of element 'div' is not complete. One of '{"http://www.tei-c.org/ns/1.0":p}' is expected.
它们总是引用包含在以下内容中的元素:** **
<?xml version="1.0" encoding="utf-8"?>
<text rend="Section" xml:lang="kat">
<body>
<**div** type="Content" n="1">
<div type="Section" n="1">
<**p**>
我不确定这是由于错误的方案(有一个问题阻止我现在上传它)还是文件本身导致了错误。然而,所有文件都是格式正确的。
其他消息来源说,它通过将默认值更改为 elementFormDefault="qualified"
来修复,但我的 XML 已经包含它。我希望错误要么与 targetNamespace="http://www.tei-c.org/ns/1.0"
(XML 的一部分)相关联,要么与错误的元素顺序相关联。它也可能与 minOccurs="0"
有关 - 但就这一点而言,我已经阅读了太多线程,以至于我已经忘记了一个明智的解决方案。
显而易见的是三重检查:标签在最后正确关闭
</div></div>
</body>
</text>
这是上面使用的XML:http://pastebin.com/USKZxXM4
div
的内容模型允许它为空或由 div
和 p
的序列组成:
<xs:sequence minOccurs="0">
<xs:element ref="ns1:div"/>
<xs:element ref="ns1:p"/>
</xs:sequence>
鉴于您的 XML 有一个 div
元素和 div
子元素以及另一个 div
元素和 p
子元素,您应该改为div
的内容模型是一系列可选的子项:
<xs:sequence>
<xs:element ref="ns1:div" minOccurs="0"/>
<xs:element ref="ns1:p" minOccurs="0"/>
</xs:sequence>
如果两者都存在,或者选择其中之一:
<xs:choice>
<xs:element ref="ns1:div"/>
<xs:element ref="ns1:p"/>
</xs:choice>
如果只有一个可能存在的话。
我正在尝试验证三个 XML 文件,我从每个文件中得到相同的两个错误。用于验证的方案是使用 Oxygen 18.0 使用方案生成函数创建的(具体使用三个 XMLs)。
错误是:
cvc-complex-type.2.4.a: Invalid content was found starting with element '{"http://www.tei-c.org/ns/1.0":p}'. One of '{"http://www.tei-c.org/ns/1.0":div}' is expected.
和
cvc-complex-type.2.4.b: The content of element 'div' is not complete. One of '{"http://www.tei-c.org/ns/1.0":p}' is expected.
它们总是引用包含在以下内容中的元素:** **
<?xml version="1.0" encoding="utf-8"?>
<text rend="Section" xml:lang="kat">
<body>
<**div** type="Content" n="1">
<div type="Section" n="1">
<**p**>
我不确定这是由于错误的方案(有一个问题阻止我现在上传它)还是文件本身导致了错误。然而,所有文件都是格式正确的。
其他消息来源说,它通过将默认值更改为 elementFormDefault="qualified"
来修复,但我的 XML 已经包含它。我希望错误要么与 targetNamespace="http://www.tei-c.org/ns/1.0"
(XML 的一部分)相关联,要么与错误的元素顺序相关联。它也可能与 minOccurs="0"
有关 - 但就这一点而言,我已经阅读了太多线程,以至于我已经忘记了一个明智的解决方案。
显而易见的是三重检查:标签在最后正确关闭
</div></div>
</body>
</text>
这是上面使用的XML:http://pastebin.com/USKZxXM4
div
的内容模型允许它为空或由 div
和 p
的序列组成:
<xs:sequence minOccurs="0">
<xs:element ref="ns1:div"/>
<xs:element ref="ns1:p"/>
</xs:sequence>
鉴于您的 XML 有一个 div
元素和 div
子元素以及另一个 div
元素和 p
子元素,您应该改为div
的内容模型是一系列可选的子项:
<xs:sequence>
<xs:element ref="ns1:div" minOccurs="0"/>
<xs:element ref="ns1:p" minOccurs="0"/>
</xs:sequence>
如果两者都存在,或者选择其中之一:
<xs:choice>
<xs:element ref="ns1:div"/>
<xs:element ref="ns1:p"/>
</xs:choice>
如果只有一个可能存在的话。