C# 在treeview中按XML中的出现顺序显示XML模式元素

C# 在treeview中按XML中的出现顺序显示XML模式元素,c#,xsd,C#,Xsd,我需要在树视图中显示XSD文件。我已经找到了一个解决方案!,但这只是按照节点出现的顺序显示文件中的所有节点。 我需要的是按照它们在XML文件中出现的顺序显示它们,并嵌套在XML文件中它们将嵌套的元素下: <?xml version="1.0" encoding="IBM437"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="cat" type="xs:s

我需要在树视图中显示XSD文件。我已经找到了一个解决方案!,但这只是按照节点出现的顺序显示文件中的所有节点。
我需要的是按照它们在XML文件中出现的顺序显示它们,并嵌套在XML文件中它们将嵌套的元素下:

<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="cat" type="xs:string"/>
    <xs:element name="dog" type="xs:string"/>

    <xs:element name="pets">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="cat"/>
          <xs:element ref="dog"/>
        </xs:choice>
      </xs:complexType>
    </xs:element>
</xs:schema>
如何取消识别根节点?我想一旦我得到了它,我就可以递归到根元素中的每个类型中,找到它的名称。
我在看这个!。我应该从名为“Document”的元素开始吗?它包含此类型文件中的两个顶级元素—“GrpHdr”和“OrgnlGrpInfAndSts”。


这是处理类似问题的标准方法吗?

显然没有,因为XSD可能包含超过1个根元素

-Pets
 -Dogs
 -Cats