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

Откуда: Москва / Калуга
Сообщений: 34967
Блог
Коллеги, пытаюсь сделать загрузку xml-документа с inline-схемой через SSIS-пакет.
Всегда загружено 0 строк, пакет завершается успешно.

В чем может быть причина и как нужно поправить dtsx?

XML-документ:
+

<?xml version="1.0" encoding="utf-16"?>
<DataSet>
  <xs:schema id="MosPrime" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="MosPrime" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="MP">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="MP_Date" type="xs:dateTime" />
                <xs:element name="TON" type="xs:decimal" minOccurs="0" />
                <xs:element name="T1W" type="xs:decimal" minOccurs="0" />
                <xs:element name="T2W" type="xs:decimal" minOccurs="0" />
                <xs:element name="T1M" type="xs:decimal" minOccurs="0" />
                <xs:element name="T2M" type="xs:decimal" minOccurs="0" />
                <xs:element name="T3M" type="xs:decimal" minOccurs="0" />
                <xs:element name="T6M" type="xs:decimal" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//MP" />
        <xs:field xpath="MP_Date" />
      </xs:unique>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <MosPrime>
      <MP diffgr:id="MP1" msdata:rowOrder="0">
        <MP_Date>2015-08-03T00:00:00+03:00</MP_Date>
        <TON>10.8000</TON>
        <T1W>11.0400</T1W>
        <T2W>11.2700</T2W>
        <T1M>11.7600</T1M>
        <T2M>11.9100</T2M>
        <T3M>11.9700</T3M>
        <T6M>12.0300</T6M>
      </MP>
      <MP diffgr:id="MP2" msdata:rowOrder="1">
        <MP_Date>2015-08-04T00:00:00+03:00</MP_Date>
        <TON>10.5500</TON>
        <T1W>10.9600</T1W>
        <T2W>11.1900</T2W>
        <T1M>11.7200</T1M>
        <T2M>11.8300</T2M>
        <T3M>11.9000</T3M>
        <T6M>11.9400</T6M>
      </MP>
      <MP diffgr:id="MP3" msdata:rowOrder="2">
        <MP_Date>2015-08-05T00:00:00+03:00</MP_Date>
        <TON>10.5000</TON>
        <T1W>10.9500</T1W>
        <T2W>11.1700</T2W>
        <T1M>11.7100</T1M>
        <T2M>11.8000</T2M>
        <T3M>11.8700</T3M>
        <T6M>11.9200</T6M>
      </MP>
      <MP diffgr:id="MP4" msdata:rowOrder="3">
        <MP_Date>2015-08-06T00:00:00+03:00</MP_Date>
        <TON>10.5200</TON>
        <T1W>10.9700</T1W>
        <T2W>11.1700</T2W>
        <T1M>11.7100</T1M>
        <T2M>11.7900</T2M>
        <T3M>11.8600</T3M>
        <T6M>11.9100</T6M>
      </MP>
      <MP diffgr:id="MP5" msdata:rowOrder="4">
        <MP_Date>2015-08-07T00:00:00+03:00</MP_Date>
        <TON>10.5000</TON>
        <T1W>10.9900</T1W>
        <T2W>11.1800</T2W>
        <T1M>11.7100</T1M>
        <T2M>11.7900</T2M>
        <T3M>11.8400</T3M>
        <T6M>11.8900</T6M>
      </MP>
      <MP diffgr:id="MP6" msdata:rowOrder="5">
        <MP_Date>2015-08-10T00:00:00+03:00</MP_Date>
        <TON>10.6200</TON>
        <T1W>11.0400</T1W>
        <T2W>11.2000</T2W>
        <T1M>11.7000</T1M>
        <T2M>11.7700</T2M>
        <T3M>11.8300</T3M>
        <T6M>11.8900</T6M>
      </MP>
      <MP diffgr:id="MP7" msdata:rowOrder="6">
        <MP_Date>2015-08-11T00:00:00+03:00</MP_Date>
        <TON>10.7600</TON>
        <T1W>11.1600</T1W>
        <T2W>11.2800</T2W>
        <T1M>11.7000</T1M>
        <T2M>11.7600</T2M>
        <T3M>11.8300</T3M>
        <T6M>11.8900</T6M>
      </MP>
      <MP diffgr:id="MP8" msdata:rowOrder="7">
        <MP_Date>2015-08-12T00:00:00+03:00</MP_Date>
        <TON>10.8400</TON>
        <T1W>11.1600</T1W>
        <T2W>11.2900</T2W>
        <T1M>11.6800</T1M>
        <T2M>11.7400</T2M>
        <T3M>11.8100</T3M>
        <T6M>11.8800</T6M>
      </MP>
      <MP diffgr:id="MP9" msdata:rowOrder="8">
        <MP_Date>2015-08-13T00:00:00+03:00</MP_Date>
        <TON>10.9300</TON>
        <T1W>11.1900</T1W>
        <T2W>11.3100</T2W>
        <T1M>11.7300</T1M>
        <T2M>11.7700</T2M>
        <T3M>11.8400</T3M>
        <T6M>11.9100</T6M>
      </MP>
      <MP diffgr:id="MP10" msdata:rowOrder="9">
        <MP_Date>2015-08-14T00:00:00+03:00</MP_Date>
        <TON>11.3900</TON>
        <T1W>11.3500</T1W>
        <T2W>11.4400</T2W>
        <T1M>11.7900</T1M>
        <T2M>11.8000</T2M>
        <T3M>11.8700</T3M>
        <T6M>11.9300</T6M>
      </MP>
      <MP diffgr:id="MP11" msdata:rowOrder="10">
        <MP_Date>2015-08-17T00:00:00+03:00</MP_Date>
        <TON>11.4500</TON>
        <T1W>11.4900</T1W>
        <T2W>11.5300</T2W>
        <T1M>11.7600</T1M>
        <T2M>11.8000</T2M>
        <T3M>11.8500</T3M>
        <T6M>11.9900</T6M>
      </MP>
      <MP diffgr:id="MP12" msdata:rowOrder="11">
        <MP_Date>2015-08-18T00:00:00+03:00</MP_Date>
        <TON>11.4200</TON>
        <T1W>11.4600</T1W>
        <T2W>11.5300</T2W>
        <T1M>11.7800</T1M>
        <T2M>11.8200</T2M>
        <T3M>11.8600</T3M>
        <T6M>11.9500</T6M>
      </MP>
      <MP diffgr:id="MP13" msdata:rowOrder="12">
        <MP_Date>2015-08-19T00:00:00+03:00</MP_Date>
        <TON>11.4700</TON>
        <T1W>11.5500</T1W>
        <T2W>11.6100</T2W>
        <T1M>11.7600</T1M>
        <T2M>11.8700</T2M>
        <T3M>11.9100</T3M>
        <T6M>12.0100</T6M>
      </MP>
      <MP diffgr:id="MP14" msdata:rowOrder="13">
        <MP_Date>2015-08-20T00:00:00+03:00</MP_Date>
        <TON>11.4400</TON>
        <T1W>11.5700</T1W>
        <T2W>11.6200</T2W>
        <T1M>11.7700</T1M>
        <T2M>11.8800</T2M>
        <T3M>11.9600</T3M>
        <T6M>12.0900</T6M>
      </MP>
    </MosPrime>
  </diffgr:diffgram>
</DataSet>



К сообщению приложен файл. Размер - 23Kb
23 авг 15, 15:37    [18056727]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4813
Критик,

Вы бы скрины изнутри ваших двух квадратиков показали бы.
24 авг 15, 10:20    [18058548]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4422
Даже достаточно одного пока.
Первого.
24 авг 15, 20:00    [18061368]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34967
Блог


К сообщению приложен файл. Размер - 29Kb
24 авг 15, 21:03    [18061646]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34967
Блог


К сообщению приложен файл. Размер - 39Kb
24 авг 15, 21:03    [18061650]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34967
Блог
причина в xml - когда убрал множественные пространства имен, тогда заработало,
как такие xml обрабатывать через SSIS? (пример во первом сообщении)
24 авг 15, 21:30    [18061744]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34967
Блог
Нагуглил xslt-преобразование, с ним загрузка работает

+
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:output method="xml" indent="no" />
   <xsl:template match="/|comment()|processing-instruction()">
      <xsl:copy>
         <xsl:apply-templates />
      </xsl:copy>
   </xsl:template>
   <xsl:template match="*">
      <xsl:element name="{local-name()}">
         <xsl:apply-templates select="@*|node()" />
      </xsl:element>
   </xsl:template>
   <xsl:template match="@*">
      <xsl:attribute name="{local-name()}">
         <xsl:value-of select="." />
      </xsl:attribute>
   </xsl:template>
</xsl:stylesheet>


но получается коряво - после преобразования я теряю данные о inline-схеме и вынужден где-то хранить xsd...
24 авг 15, 21:52    [18061819]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
86
Guest
Критик,

Как я решил подобную задачу. Создал бд, в ней таблицу, которая хранит sql запрос формирующих xslt схему. Пакет SSIS настроил динамически, чтобы брал из таблички запрос и выполнял его (создавал XSD файл в нужной директории). Далее загружаю xml) P.S. выгрузка из 1С в xml, на основе xml выгрузки наполняю хранилище. + не нужно деплоить пакет. все настройки в табличке. если нужно, то изменить схему не составляет труда, например, добавив новый/удалив столбец в схему.
8 авг 16, 10:37    [19514530]     Ответить | Цитировать Сообщить модератору
 Re: SSIS, загрузка xml  [new]
86
Guest
86
Критик,

Как я решил подобную задачу. Создал бд, в ней таблицу, которая хранит sql запрос формирующих xslt схему. Пакет SSIS настроил динамически, чтобы брал из таблички запрос и выполнял его (создавал XSD файл в нужной директории). Далее загружаю xml) P.S. выгрузка из 1С в xml, на основе xml выгрузки наполняю хранилище. + не нужно деплоить пакет. все настройки в табличке. если нужно, то изменить схему не составляет труда, например, добавив новый/удалив столбец в схему.


Создал бд, в ней таблицу, которая хранит sql запрос формирующих XSD схему
8 авг 16, 10:39    [19514538]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить