处理导入/包含XML模式时的元素冲突

时间:2012-03-23 22:18:22

标签: xml xsd

给定以不同方式定义相同元素的模式定义,可以导入/包含两个定义并独立于第三个模式定义引用它们吗?

例如,给定:

<schema xmlns="http://www.w3.org/2001/XMLSchema"
  targetNamespace="urn:example:namespace">
    <element name="message" type="boolean"/>
</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema"
  targetNamespace="urn:example:namespace">
    <element name="message" type="date"/>
</schema>

可以构建以下内容:

<schema xmlns="http://www.w3.org/2001/XMLSchema"
  targetNamespace="urn:example:namespace">
    <complexType name="booleanMessageType">
        <sequence>
            <!-- reference to first definition here -->
        </sequence>
    </complexType>
    <complexType name="dateMessageType">
        <sequence>
            <!-- reference to second definition here -->
        </sequence>
    </complexType>
</schema>

1 个答案:

答案 0 :(得分:1)

答案是否定的,您不能拥有一个包含同一全局元素的两个定义的模式集。

如果标签名称很重要,那么您可以定义两种类型,例如: messageBoolean和messageDate,然后使用具有相同标记名称(消息)和不同类型的本地元素定义。