没有元素引用的XSD complexType有什么用?

时间:2018-03-02 13:24:37

标签: xml xsd xsd-validation xml-validation

我的任务是验证和解释以及XSD架构,这个架构以:

开头
<xsd:schema xmlns:xsd="http://....">
<xsd:complexType name="TemplateType"> <!-- Nowhere referenced -->
  <xsd:sequence>
    <xsd:element name="DataType" type="DocumentDataType"/>
  </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DocumentDataType">

自我上次的XSD任务以来已经太久了,但在某个地方我会期待<element type="templateType">,但事实并非如此。

这里有什么问题?我生锈的XSD知识或交付的XSD?

1 个答案:

答案 0 :(得分:2)

复杂类型名称(xsd:complexType/@name)可以是

  1. 用于定义元素的类型(xsd:element/@type),正如您所说。
  2. 用于通过扩展名(xsd:extension/@base)或定义派生类型 限制(xsd:restriction/@base)。
  3. 用于包含或导入此XSD的XSD。
  4. 用于XML instances via xsi:type [ Credit @MichaelKay ]
  5. 计划将来在当前的XSD中使用。
  6. 只是未使用。
  7. 因此,除了直接定义元素类型之外,您的TemplateType可能有另一个目的,或者它可能已经在XSD的演变过程中成为残余。