强制执行与xml架构的isA关系

时间:2012-02-14 23:38:49

标签: xml xsd

有没有办法在xmlSchema中强制执行标准isA关系?

类似

<complextype name="item">    
  #can be one of    
  <element type="desktop computer"/>    
  <element type="laptop"/>    
  <element type="smartphone"/>    
</complextype>

整个想法是,与type =“smartphone”相比,type =“desktop computer”的元素可以拥有完全不同的成员

它基本上尝试类似于语法的东西: -

itemlist = item | item . itemlist    
item = common_desc . (desktop_computer | laptop | smartphone)    
desktop_computer = monitor_specs . cabinet_dimensions . blah    
smartphone = carrier . 3g_enabled . blah_blah

依旧......

我知道这听起来像是一个相当人为的例子,你可能会说我需要为每个item_type定义一个新类型......但是我们假设这是一组非常有限的类型......

或者你可以从另一个关于饲料的isA关系(Recovering types through an Isa relationship

的问题中取例。

1 个答案:

答案 0 :(得分:1)

您可以像这样使用xs:choice: -

<complexType name="item">
    <choice>
        <element name="dc" type="desktop_computer"/>
        <element name="lp" type="laptop" />
    </choice>
</complexType>