У меня возникла проблема с синтаксическим анализом файла XML в промежуточные таблицы MS SQL через SSIS из-за файловой структуры XSD, которую я не могу изменить. Вот формат XSD:
<xs:element name="syndromes">
<xs:complexType>
<xs:sequence>
<xs:element name="syndrome" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="syndromeid" type="xs:integer"/>
<xs:element name="uniqueid" type="xs:integer"/>
<xs:element name="syndrome" type="xs:integer" minOccurs="0"/>
<xs:element name="syndromespec" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Я сопоставил всю свою таблицу и настроил пакет SSIS для импорта данных из XML в некоторые промежуточные таблицы. Когда я запускаю пакет SSIS, он сразу же выходит из строя и сообщает следующее:
[ABC_TEST_ XML [2822]] Ошибка: ABC_TEST_ XML не смог обработать данные XML. Элемент «синдром» не может содержать дочерний элемент. Модель содержимого - только текст.
После некоторого исследования выяснилось, что SSIS не может справиться с двумя элементами «синдрома» с одинаковым именем. XSD позволяет мне настраивать все сопоставления столбцов, поэтому я не понимаю, почему при синтаксическом анализе файла XML он не работает. Есть ли обходной путь? Есть ли способ преобразовать данные в файле перед синтаксическим анализом. Любая помощь будет принята с благодарностью.
Мне не разрешено ни изменять XSD, ни указывать отправителю данных на изменение исходного XML файла. Я должен иметь возможность анализировать данные, поскольку они соответствуют существующему XSD.