导致XQuery错误的XML架构:简单类型元素不支持“text()”

导致XQuery错误的XML架构:简单类型元素不支持“text()”,xml,xsd,xquery-sql,Xml,Xsd,Xquery Sql,BAII编写了以下XML模式部分: <xs:schema> ... <xs:element name="Fields" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Field" minOccurs="3" maxOccurs="unbounded"> <xs:complexType

BAII编写了以下XML模式部分:

<xs:schema>
...
<xs:element name="Fields" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Field" minOccurs="3" maxOccurs="unbounded">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="title" type="xs:string"/>
              <xs:attribute name="seq" type="xs:int" default="0" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
...
</schema>
我在堆栈溢出上找到了答案

我很难弄清楚如何处理具有属性而没有元素的字段元素。我错误地认为唯一要做的就是将内容标记为simpleContent或complexContent。唯一需要做的是将mixed属性添加到complexType标记并将其设置为true。我将上述模式部分更改如下:

<xs:schema>
...
<xs:element name="Fields" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Field" minOccurs="3" maxOccurs="unbounded">
        <xs:complexType mixed="true">
          <xs:attribute name="title" type="xs:string" default="Unknown" />
          <xs:attribute name="seq" type="xs:int" default="0" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
...
</schema>
我现在可以在XQuery中访问Field元素的文本内容

<xs:schema>
...
<xs:element name="Fields" minOccurs="1" maxOccurs="1">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Field" minOccurs="3" maxOccurs="unbounded">
        <xs:complexType mixed="true">
          <xs:attribute name="title" type="xs:string" default="Unknown" />
          <xs:attribute name="seq" type="xs:int" default="0" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
...
</schema>