首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XSD:带有一些选择的序列

XSD:带有一些选择的序列
EN

Stack Overflow用户
提问于 2017-07-26 18:06:40
回答 1查看 126关注 0票数 0

我有一个不同类型的序列,对于其中一些,我想确保最多使用这些元素中的一个。这里有一些例子:<Synchronisation><Link>可能会同时出现。有像<TextBox><Label><CheckBox>等元素。从这些元素中最多允许一个元素。<TextBox><Label><CheckBox>

有效的XML:

代码语言:javascript
运行
复制
<Property>
    <Synchronisation/>
</Property>

<Property>
    <Synchronisation/>
    <Link/>
</Property>

<Property>
    <Synchronisation/>
    <Link/>
    <TextBox/>
</Property>

<Property>
    <Synchronisation/>
    <Link/>
    <Label/>
</Property>

由于出现<TextBox><Label>,XML无效。

代码语言:javascript
运行
复制
<Property>
    <Synchronisation/>
    <Link/>
    <Label/>
    <TextBox/>
</Property>

我试着这样做xsd,但它不起作用:

代码语言:javascript
运行
复制
<xsd:complexType name="PropertyType">
    <xsd:sequence minOccurs="0">
        <xsd:element minOccurs="0" maxOccurs="1" name="Synchronisation" type="SynchronisationType"/>
        <xsd:element minOccurs="0" maxOccurs="1" name="Links" type="LinksType"/>
        <xsd:element minOccurs="0" maxOccurs="1" ref="ElementType"/>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ElementType">
    <xsd:choice>
        <xsd:element name="TextBox" type="TextBoxType"/>
        <xsd:element name="Label" type="TextBoxType"/>
        <xsd:element name="CheckBox" type="TextBoxType"/>
    </xsd:choice>
</xsd:complexType>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-26 21:05:17

最后,我找到了这个问题的解决方案:

代码语言:javascript
运行
复制
<xsd:complexType name="PropertyType">
    <xsd:sequence minOccurs="0">
        <xsd:element minOccurs="0" maxOccurs="1" name="Synchronisation" type="SynchronisationType"/>
        <xsd:element minOccurs="0" maxOccurs="1" name="Links" type="LinksType"/>
        <xsd:choice minOccurs="0" maxOccurs="1"/>
            <xsd:element minOccurs="0" maxOccurs="1" name="TextBox" type="TextBoxType" /> 
            <xsd:element minOccurs="0" maxOccurs="1" name="Label" type="LabelType" /> 
            <xsd:element minOccurs="0" maxOccurs="1" name="CheckBox" type="CheckBoxType" /> 
        </xsd:choice>
    </xsd:sequence>
</xsd:complexType>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45323791

复制
相关文章

相似问题

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