Я искал и пытался во многих формах передать XML-ответ в простой DataTable точно так же, как это делает Excel.
XML похож на:
<?xml version="1.0" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAPSDK4:Function xmlns:SOAPSDK4="http://www.externalwebservice.com/message/">
<Lists>
<ListCode>12345</ListCode>
<ListGroups>
<ListGroup>
<CodeGroup>ASDF</CodeGroup>
<DescriptionGroup>Example</DescriptionGroup>
</ListGroup>
</ListGroups>
<List>
<CodeList>ABC</CodeList>
<DescriptionList>Example List</DescriptionList>
<ListCategories>
<ListCategory>Type1</ListCategory>
<ListCategory>Type2</ListCategory>
</ListCategories>
<ListKinds>
<Kind>
<KindType>A</KindType>
<KindTarget>1</KindTarget>
<KindAttributes>
<KindAttribute1>A</KindAttribute1>
<KindAttribute2>B</KindAttribute2>
</KindAttributes>
</Kind>
</ListKinds>
</List>
</Lists>
</SOAPSDK4:Function>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
То, что делает Excel, может помочь мне в том, что мне нужно, то есть заполнить 4 таблицы этими данными и их связями.
Я пытался использовать DataSet.ReadXML, но проблема с ним в том, что по какой-то причине этот метод генерирует 14 таблиц с бесполезными данными, потому что нет никакой связи вообще.
Позже я попытался использовать DataTable.ReadXML, но у меня возникла проблема: «DataTable не поддерживает вывод схемы из Xml». затем попытался использовать DataTable.ReadXmlSchema (XML), и он выдал ошибку без корневого документа, затем я создал XSD с командной строкой, и два сгенерированных дали ошибку, наконец, я использовал Visual Studio для генерации XSD, он сгенерировал 4 XSD без ошибок, но без созданных столбцов и без добавления данных. Ни одного из них.
У меня сейчас нет идей. Какие-либо предложения? Может быть, не DataTable без нормализованных данных (что делает Excel), а другой подход, напрямую связанный с XML?
Спасибо.