Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

XML -> DataSet   Найти похожие ветки 

 
Галинка ©   (2006-12-21 15:24) [0]

Есть XML-документ со схемой:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="Kanaele">
   <xs:complexType>
     <xs:sequence>
       <xs:element name="VibeKurve">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="Eingaenge">
               <xs:complexType>
                 <xs:sequence>
                   <xs:element maxOccurs="unbounded" name="Kanal">
                     <xs:complexType>
                       <xs:sequence>
                         <xs:element name="ID" type="xs:unsignedByte" />
                         <xs:element name="Name" type="xs:string" />
                         <xs:element name="Einheit" type="xs:string" />
                       </xs:sequence>
                     </xs:complexType>
                   </xs:element>
                 </xs:sequence>
               </xs:complexType>
             </xs:element>
             <xs:element name="Ausgaenge" />
           </xs:sequence>
         </xs:complexType>
       </xs:element>
    </xs:complexType>
  </xs:element>
</xs:schema>
Как получить датасет с таблицами с названиями по тегам первого + второго уровня и с записыми по тегам третьего. Типа:
DataTable "VibeKurveEingaenge" (ID, Name, Einheit).


 
Megabyte ©   (2006-12-21 17:11) [1]

Копайся с утилитой XMLMapper и компонентами XMTransform и ClientDataSet.


 
saxon   (2006-12-21 17:36) [2]


> Галинка ©

У вас <xs:sequence> не закрыт.
В чем делаете? (Delphi or ?)


 
Галинка ©   (2006-12-21 17:47) [3]

saxon   (21.12.06 17:36) [2]
делаю в  или... в си шарпе. Это просто кусок схемы, вся не влезла. это просто например.

у меня есть работоспособный вариант, но там в документ читаем хмл и потом в foreach делаем то, что нам собственно нада.

               dataSet1.Tables.Clear();
               XmlDocument curKanaele = new XmlDocument();
               curKanaele.Load(openFileDialog1.FileName);
               foreach (XmlNode curBaustein in curKanaele.DocumentElement.ChildNodes)
                   foreach (XmlNode curKanArt in curBaustein.ChildNodes)
                   {
                       string dtName = curBaustein.Name + curKanArt.Name;
                       DataTable curDT = new DataTable(dtName);
                       DataColumn cID = new DataColumn("ID", System.Type.GetType("System.Int32"));
                       curDT.Columns.Add(cID);
                       DataColumn cName = new DataColumn("Name", System.Type.GetType("System.String"));
                       curDT.Columns.Add(cName);
                       DataColumn cEinheit = new DataColumn("Einheit", System.Type.GetType("System.String"));
                       curDT.Columns.Add(cEinheit);
                       DataRow curDR;

                       foreach (XmlNode curKanal in curKanArt.ChildNodes)
                       {
                           object[] paramArray = new object[3];
                           paramArray[0] = Convert.ToInt32(curKanal.ChildNodes.Item(0).InnerText);
                           paramArray[1] = curKanal.ChildNodes.Item(1).InnerText;
                           paramArray[2] = curKanal.ChildNodes.Item(2).InnerText;

                           curDR = curDT.NewRow();
                           curDR.ItemArray = paramArray;
                           curDT.Rows.Add(curDR);
                       }
                       dataSet1.Tables.Add(curDT);
                   }


Но такой вариант не очень прельщает, хотелось бы понять как это все работает средствами DataSet"a.


 
saxon   (2006-12-21 17:53) [4]

DataSet.ReadXmlSchema ?


 
saxon   (2006-12-21 17:55) [5]

По крайней мере схему из [0] я считал. DataSet сказал что - 3 таблицы.



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
3-1161776236
Megabyte
2006-10-25 15:37
2007.01.14
Не активизируется кнопка Post у DBNavigator при удалении


2-1166780797
svt
2006-12-22 12:46
2007.01.14
Уважаемые мастера, подскажите можно ли работать через Delphi


2-1166876122
antonn
2006-12-23 15:15
2007.01.14
Пиктограммка в SpeedButton


10-1128336974
Квэнди
2005-10-03 14:56
2007.01.14
Фиксирование строк в Excel


15-1166662585
Oreolek
2006-12-21 03:56
2007.01.14
Ассемблер