Я использую мастер привязки данных XML в Delphi XE2. Для этой схемы требуются теги этого типа:
<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
<xs:all>
<xs:element name="Header" type="HeaderType" />
<xs:element name="Values" type="ValuesType" />
<xs:element name="Events" type="EventsType" />
</xs:all>
</xs:complexType>
Проблема заключается в том, что если я не добавляю никаких элементов, например. группа значений, не будет <Values>
-tag, и XML файл не будет проверять проверку XSD. Вероятно, это не было бы проблемой, если бы интерфейс предоставлял метод "добавления" тега Values.
Есть ли стандартный способ обработки этого, или я использую сгенерированный код правильно?
Простой, есть ли какой-либо способ, обход или иначе, используя код из мастера привязки данных, для создания следующего XML (это то, что необходимо для проверки с использованием приведенной выше схемы когда нет дочерних узлов), заданные HeaderType, ValuesType и EventsType имеют сложный тип:
<MyReport>
<Header />
<Values />
<Events />
</MyReport>
(Я знаю, что есть другие подобные проблемы, такие как код, сгенерированный <xs:sequence>
, не применяющий правильный порядок в конечном XML файле, но, по крайней мере, для этого, есть обход, просто вставляя детей в правильный порядок. Я все еще думаю, было бы неплохо, если бы Embarcadero предоставил бы полный интерфейс, который учитывал бы все эти функции.)