Я сгенерировал cs-классы с помощью xsd-tool из какой-то XML-схемы.Схема представляет собой очень сложную схему, созданную из описаний класса uml.Теперь я написал простой тест для проверки функциональности сгенерированных xsd-классов.Тест использует XmlSerializer
для создания xml-файла.
В моей XSD-схеме есть несколько обязательных элементов (определение с minocc=1
и maxocc=1
по xsd-default).
Например (упрощенно):
<xs:element name="order">
<xs:complexType>
...
<xs:element name="orderId" type="string"/>
<xs:element name="material" type="Material"/>
...
<xs:complexType>
Материал сложного типа, состоящий из нескольких элементов.Это часть порядка.
Эти элементы должны всегда существовать в результирующем xml-файле, даже если они пусты или содержат только пустые элементы.Теперь, если я сериализую экземпляр класса в xml-файл, появятся только элементы, в которых свойства-свойства содержат значение.Если я устанавливаю orderId, появляется элемент orderId, но не материал-элемент, потому что в моем экземпляре класса он нулевой.В результате мой xml-файл не подходит для xsd-схемы.
У вас есть идея, как я могу проверить полученный xml-файл с моим xsd-файлом во время сериализации?Есть ли способ сказать XmlSerializer
, что он всегда должен генерировать обязательные элементы (возможно, со значением по умолчанию)?Или есть способ проверить структуру экземпляра класса, который должен быть сериализован?