首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Delphi XML数据绑定向导时所需的标记不存在

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

Stack Overflow用户
提问于 2012-10-01 21:48:52
回答 1查看 2K关注 0票数 99

我正在使用Delphi XE2中的XML Data Binding Wizard。架构具有此类型的必需标记:

代码语言:javascript
复制
<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-tag的方法,这可能不是问题。

有没有标准的方法来处理这个问题,或者我是不是错误地使用了生成的代码?

简单地说,,有没有什么方法可以使用Data Binding Wizard中的代码来生成以下XML (这是在没有子节点的情况下使用上面的模式进行验证所需的),假设HeaderTypeValuesTypeEventsType都是complexType:

代码语言:javascript
复制
<MyReport>
  <Header />
  <Values />
  <Events />
</MyReport> 

(我知道还有其他类似的问题,比如<xs:sequence>生成的代码没有在最终的XML-file中强制执行正确的顺序,但至少对于这个问题,可以通过简单地以正确的顺序插入子对象来解决这个问题。我仍然认为,如果Embarcadero能提供一个完整的接口,考虑到更多的这些特性,那就太好了。)

EN

回答 1

Stack Overflow用户

发布于 2017-02-17 17:18:55

我不确定是否理解,但也许您正在寻找的是: use="optional“

代码语言:javascript
复制
<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>

如果可以告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12674592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档