2012-11-25 30 views
2

我有一個XSD文件,我需要獲取其中所有元素的名稱列表。C#中的XSD元素

我試過如下:

openFileDialog1.ShowDialog(); 
tbSchema.Text = openFileDialog1.FileName; 

cbElement.Items.Clear(); 

XmlSchemaSet schemaSet = new XmlSchemaSet(); 
schemaSet.Add("", tbSchema.Text); 
schemaSet.Compile(); 
XmlSchema customerSchema = null; 
foreach (XmlSchema schema in schemaSet.Schemas()) 
{ 
    customerSchema = schema; 
} 
foreach (XmlSchemaElement element in customerSchema.Elements.Values) 
{ 
    cbElement.Items.Add(element.Name); 
} 

,但它仍然無法正常工作。

+1

將文件加載到一個'XDocument'和使用LINQ到XML進行查詢。畢竟,XSD文件是XML。 – Oded

回答

1

你可以嘗試這樣的事情: -

XmlDocument doc = new XmlDocument(); 
doc.Load("D:\\schema.xsd");      // Load the document from the root of an ASP.Net website 

XmlElement schemaElement = doc.DocumentElement; // The root element of the schema document is the <schema> element 
string elementName = schemaElement.LocalName; // This will print "schema" 
foreach (XmlNode ele in schemaElement.ChildNodes) 
{ 
    if (ele.LocalName == "element") 
    { 
    ..... 
    } 
} 
+0

謝謝Rahul,但我該如何繼續:我需要xsd中所有元素的名稱:'' –