通过扩展现有的 xscomplexType 来创建全局 xscomplexType
在此示例中,我们基于现有的 xs:complexType(PersonType)
创建新的 xs:complexType(EmployeeType)
。
这种结构稍微复杂一些。因为基础 xs:complexType(PersonType)
被认为是复杂的 (更多关于此内容),我们添加<xs:complexContent>元素。然后因为我们正在扩展 PersonType,我们添加元素<xs:extension base =PersonType
>。在 xs:extension 标记内,我们可以添加一个 compositor(xs:all / xs:choice / xs:sequence)和任何其他属性。
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio 2017 (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="PersonType">
<xs:sequence>
<xs:element name="Forename" type="xs:string" />
<xs:element name="Surname" type="xs:string" />
</xs:sequence>
<xs:attribute name="Gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="male" />
<xs:enumeration value="female" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="EmployeeType">
<xs:complexContent>
<xs:extension base="PersonType">
<xs:sequence>
<xs:element name="Salary" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="EmployeeID" type="xs:int" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>