DataSet.Write Xml без записи пустых элементов vb.net - PullRequest
0 голосов
/ 05 мая 2020

Я загружаю данные из базы данных sql и пытаюсь записать все, что содержится в наборе результатов, в XML -файл. XML -Файл должен быть действительным и правильно сформированным (у меня есть существующая XSD-схема). Мне удалось заставить все работать, кроме одного. При вызове DataSet.WriteXml("path") с DataSet, содержащим все необходимые атрибуты, пустые ячейки из DataTables, содержащиеся в DataSet, не экспортируются.


Я попытался преобразовать каждый dataColumn в columns типа String, а затем заменить Dbnull -Values ​​на String.empty, как показано в этом ответе .

Результат был примерно таким (без опечатки, пробелы действительно есть):

<w />
<x />
<y />
<z />

Схема:

<xs:element name="w" type="xs:unsignedByte" minOccurs="0"/>
<xs:element name="x" type="xs:unsignedByte" minOccurs="0"/>
<xs:element name="y" type="xs:unsignedByte" minOccurs="0"/>
<xs:element name="z" type="xs:unsignedByte" minOccurs="0"/>

При проверке на соответствие Данная схема дала мне следующие ошибки для w, x, y и z:

cvc-datatype-valid.1.2.1: '' is not a valid value for 'integer'.

Итак, мой вопрос в том, как разрешить эту ошибку? Я предполагаю, что это как-то связано с типом данных, поскольку я преобразовал его в строку. Или пробел внутри XML -Tag.

Я довольно много исследовал этот topi c, но не нашел удовлетворительных ответов. См. Также следующий вопрос: dataSet.write Xml не записывает пустой тег, если поле было пустым

...