powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / SQLXMLBulkLoad проблеам с дочерними элементами у которых есть аттрибуты
5 сообщений из 5, страница 1 из 1
SQLXMLBulkLoad проблеам с дочерними элементами у которых есть аттрибуты
    #34000625
Andry777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Помогите пож. написать схему SQLXMLBulkLoad для xml вида:


Код: plaintext
1.
2.
3.
<elem1 attr1="attr1" attr2="attr2">
   <elem2 attr1="attr1" attr2="attr2" />
   <elem3 attr1="attr1" attr2="attr2" />
</elem1>

Загрузить файл нужно в одну таблицу.

Использую xsd:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<xsd:element name="elem1" sql:relation="t_elem">
   <xsd:complexType>
       <xsd:sequence>
          <xsd:element name="elem2">
              <xsd:complexType>
                 <xsd:attribute name="attr1" sql:field="field1" />
                 <xsd:attribute name="attr2" sql:field="field2" />
              </xsd:complexType>
          </xsd:element>
       </xsd:sequence>
   </xsd:complexType>
</xsd:element>

Получаю ошибку Schema mapping: Schema: relationship expected on 'elem2'
Как правильно описать elem2?
...
Рейтинг: 0 / 0
SQLXMLBulkLoad проблеам с дочерними элементами у которых есть аттрибуты
    #34003520
Andry777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо никто SQLXMLBulkLoad особо не пользуется.

Если посмотреть на задачу с другой стороны.
1 способ. Можно в ручную обработать файл. файл будет не более 10 Мб при помощи MSXML.
2 способ. Преобразовать файл к виду:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<elem1 attr1="attr1" attr2="attr2">
   <elem2>
       <attr1>"attr1"</<attr1>
       <attr2>"attr2"</<attr2>
   </elem2>
   <elem3>
       <attr1>"attr1"</<attr1>
       <attr2>"attr2"</<attr2>
   </elem3>       
</elem1>
и загрузить преобразованный файл при помощи SQLXMLBulkLoad.

Что посоветуете? Какой способ предпочтительнее? файлов будет несколько в течении дня.
...
Рейтинг: 0 / 0
SQLXMLBulkLoad проблеам с дочерними элементами у которых есть аттрибуты
    #34008634
Kwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так :
<xsd:element name="elem1" sql:relation="t_elem">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="elem2" sql:is-constant="1">
<xsd:complexType>
<xsd:attribute name="attr1" sql:field="field1" />
<xsd:attribute name="attr2" sql:field="field2" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
...
Рейтинг: 0 / 0
SQLXMLBulkLoad проблеам с дочерними элементами у которых есть аттрибуты
    #34010434
Andry777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KwanА если так :
<xsd:element name="elem1" sql:relation="t_elem">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="elem2" sql:is-constant="1">
<xsd:complexType>
<xsd:attribute name="attr1" sql:field="field1" />
<xsd:attribute name="attr2" sql:field="field2" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

Пробовал :-)
Ошибка что-то типа: constant элемент не может иметь атрибутов.
Пока задача решена так: файл преобразуется к виду атрибуты в виде элементов и затем загрузка.
Проверял на 50т записях размер файла ~45 Мб преобразование ~20-30сек.
Загрузка преобразованного файла ~80Мб ~20 сек.
...
Рейтинг: 0 / 0
SQLXMLBulkLoad проблеам с дочерними элементами у которых есть аттрибуты
    #34011014
Andry777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кому пригодится Преобразование любого файла к виду пригодному для загрузки в одну таблицу
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / SQLXMLBulkLoad проблеам с дочерними элементами у которых есть аттрибуты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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