Any root element (that is not abstract) can be used as the definition for the root element in an XML document.
Furthermore you can keep the same root element name and change the type of the element using the xsi:type attribute in the XML document (the type used must be based on the type defined in the 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>
Sample XML Doc 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>
Sample XML Doc 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>
Sample XML Doc 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>