0

我有这样的简单架构

> <?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>

4

1 回答 1

1

您的简单模式的作者已经努力使无法从另一个模式文档中引用“国家”元素,方法是将其设置为fullpersoninfo类型的本地元素,而不是使其成为顶级元素。如果架构无法更改,那么您将不堪重负。

如果可以更改模式以使重用您想要重用的结构成为可能,那么您将需要包含或导入相关的模式文档,然后您将使用它们的限定名称来引用它们。但是看起来您有点不确定是要引用country元素还是要引用元素的类型country;如果你想产生一个连贯的模式,你需要下定决心。

于 2013-06-19T18:32:18.240 回答