2014-01-22 5 views
1

Я работаю над Visual-studio 2012 в C#. У меня есть xsd-файл abc.xsd, как указано ниже. Я хочу добавить его имена элементов (класс и место здесь) в список.Загрузить элементы XSD в списке

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema id="DocumentElement" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
    <xs:element name="DocumentElement" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
    <xs:complexType> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
     <xs:element name="PositionMaster"> 
      <xs:complexType> 
      <xs:all> 

      <xs:element name="Class" type="xs:string" minOccurs="0" /> 
      <xs:element name="Place" type="xs:string" minOccurs="0" /> 

      </xs:all> 
      </xs:complexType> 
     </xs:element> 
     </xs:choice> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

Код, написанный ниже

List listData = new List(); 
XmlDocument xslDoc = new XmlDocument(); 
xslDoc.Load(abc.xsd); 
XmlNamespaceManager nsMgr = new XmlNamespaceManager(xslDoc.NameTable); 
nsMgr.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform"); 

Что я должен писать дальше так, что мой список содержит эти элементы XSD? Эти элементы могут различаться по количеству.

ответ

0

Попробуйте это ...

using System.Xml.Linq; 

XDocument xDoc = XDocument.Load(@"C:\abc.xsd"); 
var t = xDoc.Descendants().Elements().Attributes().Where(x => x.Name == "name"); 

Вы можете добавить больше к где условия, чтобы отфильтровать результаты, как вам нужно

Смежные вопросы