Ich versuche, enum aus einer XSD-Datei zu lesen. Das Schema ist wie folgt
<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>
Ich habe auch versucht, mit ce aber ich erhalte die Anzahl der Listenelemente als Null. Im Folgenden finden Sie den Code, den ich verwende
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++;
}