powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Загрузка в Dataset из XML
3 сообщений из 3, страница 1 из 1
Загрузка в Dataset из XML
    #39235751
Здравствуйте

Имеется XML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="UTF-8"?>
<root>
 <key>
  <id>1</id>
  <sql>SELECT ug.* From _user_groups AS ug ORDER BY ug.name ASC</sql>
 </key>
 <key>
  <id>2</id>
  <sql>SELECT c.* FROM _currency AS c ORDER BY c.defaults DESC, c.id ASC</sql>
 </key>
</root>



Загружаю его
Код: vbnet
1.
2.
3.
Dim sr As New StringReader(xmlStr)
Dim ds As New DataSet
ds.ReadXml(sr, XmlReadMode.InferSchema)


Получаю на выходе DataSet c одной таблицей key в две колонки id и sql

Пытаюсь в XML добавить еще и тип параметра атрибутом
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="UTF-8"?>
<root>
 <key>
  <id type='decimal'>1</id>
  <sql type='string'>SELECT ug.* From _user_groups AS ug ORDER BY ug.name ASC</sql>
 </key>
 <key>
  <id type='decimal'>2</id>
  <sql type='string'>SELECT c.* FROM _currency AS c ORDER BY c.defaults DESC, c.id ASC</sql>
 </key>
</root>



После загрузки Три таблицы
key (колонка key_id),
id (три колонки type, id_Text, key_id),
sql (три колонки type, sql_Text, key_id)

Можно ли как-то получить одну таблицу с колонками нужного типа
Параметров в Ноде key необязательно может быть много Имена у вложеных нод Разные
...
Рейтинг: 0 / 0
Загрузка в Dataset из XML
    #39235820
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Николай Жуков,

Во-первых.

Код: c#
1.
ds.ReadXml(sr, XmlReadMode.Auto)



Во-вторых.
Если надо непременно указать тип колонки то
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
   <!ELEMENT key (id+, sql)>
   <!ELEMENT id (#PCDATA)>
   <!ATTLIST id data_byte CDATA #FIXED "INTEGER">
   <!ELEMENT sql (#PCDATA)>]>
<root>
 <key>
  <id>1</id>
  <sql>SELECT ug.* From _user_groups AS ug ORDER BY ug.name ASC</sql>
 </key>
 <key>
  <id>2</id>
  <sql>SELECT c.* FROM _currency AS c ORDER BY c.defaults DESC, c.id ASC</sql>
 </key>
</root>
...
Рейтинг: 0 / 0
Загрузка в Dataset из XML
    #39235868
Cat2<!DOCTYPE root [
<!ELEMENT key (id+, sql)>
<!ELEMENT id (#PCDATA)>
<!ATTLIST id data_byte CDATA #FIXED "INTEGER">
<!ELEMENT sql (#PCDATA)>]>
В чем то и дело что я не знаю на стороне формирования XML ни колонок ни названий ни структуры
Но каждую ячейку в цикле проверить на тип могу.
Сколько их будет и в скольких таблицах не известно.

В запросе у меня как раз что-то типа
Код: sql
1.
SELECT c.* FROM _currency AS c ORDER BY c.defaults DESC, c.id ASC



Просто первая таблица которую я получаю (список шаблонов MySQL-запросов с которыми можно работать)
Я отправляю номер шаблона и список параметров если они в нем есть. ({0},{1},.....)

В ответ XML

Уже думал подвязывать XMLScheme для шаблонов которые известны
Что-то типа
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version='1.0' encoding='utf-8'?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
  <xs:element name='root'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='key'>
          <xs:complexType>
            <xs:sequence>
              <xs:element name='id' type='xs:long'/>
              <xs:element name='sql' type='xs:string'/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>



Но когда в таблицы добавляются лишние колонки мне не возвращаются параметры из них

Нигде не могу найти можно ли выгружать все элементы из XML а по СХЕМЕ известным проставлять формат а остальные оставлять как есть.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Загрузка в Dataset из XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]