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);