Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
Vasiliev Anton
Member

Откуда:
Сообщений: 21
День добрый.

Имеется xml-файл:
<?xml version="1.0" encoding="UTF-8"?>
<Bill version="8.6.8" dbsymb="Normal" dbuuid="871D3F21-D3E0-408E-AAD7-BAC7DE03091F" count="2">
<record>
<ID>4232632</ID>
<Code>04/36203</Code>
<BillNo>4</BillNo>
<OpID>1039</OpID>
<UserID>1172</UserID>
<Amount>8313.72</Amount>
</record>
<record>
<ID>4233562</ID>
<Code>04/36209</Code>
<BillNo>5</BillNo>
<OpID>1039</OpID>
<UserID>1172</UserID>
<Amount>11295.85</Amount>
</record>
</Bill>

и его xsd-схема:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Bill">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="record">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ID" type="xs:unsignedInt" />
<xs:element minOccurs="0" name="Code" type="xs:string" />
<xs:element minOccurs="0" name="BillNo" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="OpID" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="UserID" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="Amount" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="version" type="xs:string" use="optional" />
<xs:attribute name="dbsymb" type="xs:string" use="optional" />
<xs:attribute name="dbuuid" type="xs:string" use="optional" />
<xs:attribute name="count" type="xs:unsignedShort" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>

В SQL Server Business Intelligence Development Studio создан пакет, который импортирует элементы ID,Code,BillNo,OpID,UserID,Amount из xml-файла в таблицу на SQL Server'e tbl_Bill(db_id,ID,Code,BillNo,OpID,UserID,Amount).

Вопрос в том, как в эту-же таблицу импортировать аттрибут dbuuid элемента Bill?

Благодарю, за помощь.
24 июн 15, 15:40    [17811875]     Ответить | Цитировать Сообщить модератору
 Re: Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Vasiliev Anton
Вопрос в том, как в эту-же таблицу импортировать аттрибут dbuuid элемента Bill?

Наверное, для начала добавить поле dbuuid в эту таблицу.
24 июн 15, 16:04    [17811981]     Ответить | Цитировать Сообщить модератору
 Re: Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
Vasiliev Anton
Member

Откуда:
Сообщений: 21
Какая разница как называется поле в таблице?
Во-первых, в настройках "OLE DB Destination" можно вручную назначить соответствие полей источника данных с полями результирующей таблицы. Названия полей значения не имеют.
Во-вторых, атрибутов элемента Bill не видно в настройках источника данных ("XML Source").
24 июн 15, 17:10    [17812319]     Ответить | Цитировать Сообщить модератору
 Re: Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Vasiliev Anton,

Загляните сюда.

http://blogs.msdn.com/b/mattm/archive/2007/12/11/using-xml-source.aspx

Вложенные ноды XML документа для источника это разные сущности, которые надо пустить в разные output-ы на выходе из XML Source. А вот дальше вы должны их пустить в разные destination или проджойнить между собой.
24 июн 15, 17:43    [17812463]     Ответить | Цитировать Сообщить модератору
 Re: Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Vasiliev Anton
Какая разница как называется поле в таблице?
Во-первых, в настройках "OLE DB Destination" можно вручную назначить соответствие полей источника данных с полями результирующей таблицы. Названия полей значения не имеют.
Во-вторых, атрибутов элемента Bill не видно в настройках источника данных ("XML Source").

Я имею ввиду, что не вижу, в какое поле Вы его собираетесь вставлять.
В db_id ?
25 июн 15, 07:59    [17813633]     Ответить | Цитировать Сообщить модератору
 Re: Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
Vasiliev Anton
Member

Откуда:
Сообщений: 21
Jovanny,

Да, хочу атрибут dbuuid писать в поле db_id.
25 июн 15, 12:45    [17814994]     Ответить | Цитировать Сообщить модератору
 Re: Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
Vasiliev Anton
Member

Откуда:
Сообщений: 21
a_voronin,

посмотрел примеры из этого блога.
Как я понял, нет простого способа импортировать атрибуты корневого элемента xml-документа. Надо использовать XSLT.
25 июн 15, 12:50    [17815026]     Ответить | Цитировать Сообщить модератору
 Re: Импорт аттрибутов из xml-файла с помощью SSIS-пакета  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Vasiliev Anton
a_voronin,

посмотрел примеры из этого блога.
Как я понял, нет простого способа импортировать атрибуты корневого элемента xml-документа. Надо использовать XSLT.


Чего-то вас вообще не в ту степь понесло.

Во-первых, простой способ я вам сказал.
Во-вторых, если не можете на SSIS, то воспользуйтесь https://msdn.microsoft.com/en-us/library/ms178030.aspx
25 июн 15, 14:51    [17815792]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить