参考XML Schema扩展

时间:2013-06-19 16:37:48

标签: xsd

我有像这样的简单模式

> <?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="employee" type="fullpersoninfo"/>

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

<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

在另一个模式中,我想引用personinfo:country,我该如何引用它?

  

<xs:element name="country" type="how do i refer this" minOccurs ="0" maxOccurs ="1">
</xs:element>

1 个答案:

答案 0 :(得分:1)

您的简单架构的作者努力使其无法从其他架构文档中引用“country”元素,将其设置为fullpersoninfo类型的本地元素,而不是将其设置为顶级元件。如果架构无法更改,那么您就会受到冲击。

如果可以更改架构以便可以重用要重用的构造,那么您将需要包含或导入相关的架构文档,然后您将使用其限定名称来引用它们。但看起来你是否想要引用country元素或country元素的类型有点不确定;如果你想制作一个连贯的架构,你需要下定决心。