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 的内容模型允许它为空或由 divp 的序列组成:

  <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>

如果只有一个可能存在的话。