使用Delphi XML数据绑定向导时,所需的标签不存在

我在Delphi XE2中使用XML数据绑定向导。 该模式具有这种types的标签:

<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> 

问题是,如果我不向Value组添加任何元素,则不会有<Values> -tag,并且XML文件将无法通过XSD进行validation。 如果界面提供了一种“添加”Values-tag的方法,这可能不会成为问题。

有没有处理这个标准的方法,或者我正确地使用生成的代码?

简单地说 ,是否有任何方式,变通方法或其他方法,使用数据绑定向导中的代码来生成以下XML(在没有子节点时使用上述模式进行validation所需的),给定HeaderType ,ValuesType和EventsType是complexType:

 <MyReport> <Header /> <Values /> <Events /> </MyReport> 

(我知道还有其他类似的问题,比如<xs:sequence>生成的代码没有在最终的XML文件中强制执行正确的顺序,但至less对于这个问题,只需要在我仍然认为如果Embarcadero提供一个完整的界面,将会考虑更多这些function,那么这样做还是不错的。)

不知道明白,但也许你正在寻找的是:use =“optional”

 <xs:element name="MyReport" type="MyReportType" /> <xs:complexType name="MyReportType"> <xs:all> <xs:element name="Header" type="HeaderType" use="optional" /> <xs:element name="Values" type="ValuesType" use="optional" /> <xs:element name="Events" type="EventsType" use="optional" /> </xs:all> </xs:complexType> 

告诉我,如果没关系