任何根元素(不是抽象的)都可以用作XML文档中根元素的定义。
此外,您可以保留相同的根元素名称,并使用XML文档中的xsi:type属性(使用的类型必须基于RootElm中定义的类型)更改元素的类型。
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio 2018 (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="RootElm" type="RootType" />
<xs:complexType name="RootType">
<xs:sequence>
<xs:element name="A" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="RootType1">
<xs:complexContent>
<xs:extension base="RootType">
<xs:sequence>
<xs:element name="B" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RootType2">
<xs:complexContent>
<xs:extension base="RootType">
<xs:sequence>
<xs:element name="C" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
示例XML文档1
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid Studio 2018 (https://www.liquid-technologies.com) -->
<RootElm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Temp\XSDFile1.xsd">
<A />
</RootElm>
示例XML文档2
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid Studio 2018 (https://www.liquid-technologies.com) -->
<RootElm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Temp\XSDFile1.xsd"
xsi:type="RootType1">
<A />
<B></B>
</RootElm>
示例XML文档3
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid Studio 2018 (https://www.liquid-technologies.com) -->
<RootElm xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Temp\XSDFile1.xsd"
xsi:type="RootType2">
<A />
<C />
</RootElm>