我正在嘗試從XSD文件讀取枚舉。該模式是如下從.XSD文件中提取枚舉數據
<xs:schema id="v1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="unqualified" elementFormDefault="qualified" msdata:IsDataSet="true">
<xs:simpleType name="Type">
<xs:restriction base="xs:string">
<xs:enumeration value="Op1" />
<xs:enumeration value="Op2" />
<xs:enumeration value="Op3" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
我也使用this嘗試,但我得到的列表項算作零。以下是我使用
DataSet _sR = new DataSet();
_sR.ReadXmlSchema(assembly.GetManifestResourceStream("v1.xsd"));
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(_sR.GetXml());
XmlNamespaceManager xMan = new XmlNamespaceManager(xDoc.NameTable);
xMan.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
XmlNodeList xNodeList = xDoc.SelectNodes(
"//xs:schema/xs:simpleType[@name='Type']/xs:restriction/xs:enumeration", xMan);
string[] enumVal = new string[xNodeList.Count];
int ctr = 0;
foreach (XmlNode xNode in xNodeList)
{
enumVal[ctr] = xNode.Attributes["value"].Value;
ctr++;
}
好的,我解決了您的問題,但是使用XLinq添加了另一個答案,以防其他人來這裏想要使用這種解決方案。自您更新並修復原始帖子以來,我也刪除了原始答案。 – Domenic 2010-05-24 17:01:08