2016-08-22 51 views
1

的存在我有一个父元素内三种可能的元素:XSD - 元素的存在取决于其它元件(一个或多个)

<parent> 
    <a>...</a> 
    <b>...</b> 
    <c>...</c> 
</parent> 

内部parent,元件b当元件a存在只允许。另外,元素c仅在元素b(因此也存在a)存在时才被允许。换句话说,以下配置被允许:

<parent> 
    <a>...</a> 
    <b>...</b> 
    <c>...</c> 
</parent> 

<parent> 
    <a>...</a> 
    <b>...</b> 
</parent> 

<parent> 
    <a>...</a> 
</parent> 

以下配置是无效的:

<parent> 
    <b>...</b> 
</parent> 

<parent> 
    <c>...</c> 
</parent> 

<parent> 
    <b>...</b> 
    <c>...</c> 
</parent> 

是在XSD此约束可表达?

回答

1

当然,语法是

(a, (b, (c)?)?) 

其转换为

<xs:sequence> 
    <xs:element name="a"/> 
    <xs:sequence minOccurs="0"> 
    <xs:element name="b"/> 
    <xs:element name="c" minOccurs="0"/> 
    </xs:sequence> 
</xs:sequence> 
相关问题