XSD complexContent 和 sequence 的区别

XSD difference between complexContent and sequence

XSD中的sequencecomplexContent有什么区别?

我是 XSD 的新手,但我已经阅读了一些关于 XSD 的文章和 w3schools 教程。
我也在网上搜索了很多,但没有任何地方解释两者之间的区别。

例如:

<xs:element name="foo">
    <xs:complexType> 
        <xs:sequence>
            <xs:element name="bar" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
</xs:element>

<xs:element name="foo">
    <xs:complexType> 
        <xs:complexContent>
            <xs:element name="bar" type="xs:string" />
        </xs:complexContent>
    </xs:complexType>
</xs:element>

虽然两者 xs:complexContent and xs:sequence can appear as child elements of xs:complexType,但它们的用途完全不同:

  • 使用 xs:complexContent(使用 xs:restrictionxs:extension 子元素)来定义一个类型限制或扩展另一种类型。
  • 使用xs:sequence表示从属元素的顺序 (或其他从属分组结构)。

请注意,您的 xs:complexContent 示例无效,因为 xs:element 不能是 xs:complexContent 的直接子代。

另请参阅: