如何在xml模式中使用substitutionGroup来获取complexType中的元素?

时间:2013-10-24 18:03:23

标签: xml xsd

如何使这项工作? 例如:

<xs:element name="name" 
            type="xs:string" 
            substitutionGroup="firstname"/>

以下代码...

<xs:complexType name="basic">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string" />
    <xs:element name="lastname" type="xs:string" />
  </xs:sequence>
</xs:complexType>

1 个答案:

答案 0 :(得分:1)

替换组只能由顶级元素组成;您在复杂类型“basic”中声明的'firstname'元素是该复杂类型的本地元素,因此不能将您的'name'元素命名为其替换组的头部。

要了解原因,请问自己:如果架构中有三个名为“firstname”的本地元素,其中两个是字符串,其中一个是布尔值,那么XSD验证器将如何决定引用的含义在'name'的声明中?