通過擴充套件現有的 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>

StackOverflow 文件