Xml 从XSD中的属性提取simpletype枚举

Xml 从XSD中的属性提取simpletype枚举,xml,enums,xsd,attributes,simpletype,Xml,Enums,Xsd,Attributes,Simpletype,以下是模式的一个片段: </xs:schema> <xs:attribute name="myFields"> <xs:annotation> <xs:documentation>Blah Blah Blah</xs:documentation> </xs:annotation> <xs:simpleType> <xs:rest

以下是模式的一个片段:

</xs:schema>
  <xs:attribute name="myFields">
        <xs:annotation>
          <xs:documentation>Blah Blah Blah</xs:documentation>
        </xs:annotation>
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="field_1"/>
            <xs:enumeration value="field_2"/>
            <xs:enumeration value="field_3_etc"/>
        </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
</xs:schema>

废话连篇
如何“获取”simpleType?我希望它是一个字符串列表

到目前为止,我所能做的就是获取属性,因为它有一个名称。出于某种原因,我不能给simpleType命名(我认为只有顶级项目才允许命名)

以下是我的代码当前的样子:

        var schemaSet = new XmlSchemaSet();           
        schemaSet.Add("", XMLPath + SchemaFileName);
        schemaSet.Compile();


        var schema = schemaSet.Schemas().OfType<XmlSchema>().First();
        var attrs = schema.Items.OfType<XmlSchemaAttribute>()
            .First(x => x.Name == "myFields");
var schemaSet=new XmlSchemaSet();
schemaSet.Add(“,XMLPath+SchemaFileName);
schemaSet.Compile();
var schema=schemaSet.Schemas().OfType().First();
var attrs=schema.Items.OfType()
.First(x=>x.Name==“myFields”);

好吧,我想出来了

我需要将AttributeSchemaType内容转换为XmlSchemaSimpleTypeRestriction,然后获取其中的“方面”

var innerContentsOfRoot=(XmlSchemaSimpleTypeRestriction)attribute.AttributeSchemaType.Content;
var strings=innerContentsFoot.Facets.OfType().Select(d=>d.Value);
 var innerContentsOfRoot = (XmlSchemaSimpleTypeRestriction)attribute.AttributeSchemaType.Content;
 var strings = innerContentsOfRoot.Facets.OfType<XmlSchemaEnumerationFacet>().Select(d => d.Value);