【发布时间】:2014-09-26 23:12:07
【问题描述】:
在 XML 模式中可能有一个扩展“链”吗?也就是说,可以定义一种数据类型 C 扩展 B 扩展 A 吗?我有一个看起来像这样的架构:
<complexType name="ServiceRequest">
<sequence>
<element name="validate" type="boolean" minOccurs="0" default="false" />
</sequence>
</complexType>
<complexType name="DataModificationRequest">
<complexContent>
<extension base="efms:ServiceRequest">
<sequence>
<element name="user-id" type="efms:UserID" />
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CreateTrackRequest">
<complexContent>
<extension base="efms:DataModificationRequest">
<sequence>
<element name="segment-number" type="efms:SegmentNumber" />
<element name="segment-subnumber" type="efms:SegmentSubnumber" />
</sequence>
</extension>
</complexContent>
</complexType>
当我在 Oxygen XML 的设计视图中查看这些项目时,DataModificationRequest 正确地显示了来自 ServiceRequest 的 validate 元素。但是 CreateTrackRequest 没有显示我希望它从其父 (DataModificationRequest) 和祖父 (ServiceRequest) 继承的任何元素。
OxygenXML 表示模式验证正确,但孙子没有按照我的预期继承元素。是我做错了什么,还是我不允许有这样的扩展链?
【问题讨论】: