我正在使用 Delphi XE2
中的 XML Data Binding Wizard
。
模式具有这种类型的必需标记:
<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
-group 添加任何元素,就不会有 <Values>
-tag,XML 文件将无法通过 XSD
验证。如果接口提供了“添加”Values
标记的方法,那么这可能不是问题。
是否有一个标准的方法来处理这个问题,或者我是否正确地使用了生成的代码?
简单地说,如果 HeaderType
、 ValuesType
和 EventsType
是复杂类型的,那么使用 Data Binding Wizard
的代码生成以下 XML
(这是在没有子节点的情况下使用上述模式进行验证所需要的) ,是否有 任何的方法、解决方法或其他方法:
<MyReport>
<Header />
<Values />
<Events />
</MyReport>
(我知道还有其他类似的问题,比如 <xs:sequence>
生成的代码在最终的 XML
-file 中没有执行正确的顺序,但是至少对于这个问题,有一个解决方案,只需将子代插入到正确的顺序中。我仍然认为如果 Embarcadero
能够提供一个完整的接口就好了,它能够考虑到更多的这些特性。)