XML (Де-) Элементы сериализации с разными наборами полей по значениям атрибутов - PullRequest
0 голосов
/ 16 июня 2020

У меня есть XML с элементами data, каждый из них имеет разные наборы дочерних элементов и разное значение атрибута id.

<?xml version="1.0" encoding="UTF-8"?>
<document>
                <data id="securities">
                </data>
                <data id="marketdata">
                </data>
                <data id="dataversion">
                </data>
</document>

Я создал XSD с помощью инструмента xsd.exe и, после этого, файл * .cs из сгенерированного файла XSD, а также инструмент xsd.exe. Теперь у меня в сгенерированном файле * .cs (ссылка - https://pastebin.com/Je70yytZ) не очень красивые классы с классом documentDataRowsRow, который содержит ВСЕ возможные поля атрибутов элементов XML data.

Итак, вопрос в том, как правильно переписать классы в сгенерированном файле * .cs, чтобы сделать другое сопоставление на основе значения атрибута id элемента data?

Например, вместо привязки класса documentData (со всеми возможными полями атрибутов) ко всем элементам data, я хочу иметь разные классы (с возможными именами documentDataSecurities, documentDataMarketdata ...) с разными полями и эти классы должны быть привязаны к элементам data значением атрибута id.

Как мне переписать этот код, чтобы привязать классы по значению атрибута id?

[System.Xml.Serialization.XmlElementAttribute("data", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public documentData[] Items {
...