首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展现有complexType

扩展现有complexType
EN

Stack Overflow用户
提问于 2014-11-29 08:25:14
回答 1查看 69关注 0票数 1

本主题与xsd: define an element that can be repeated an even number of times相关。我想使用带有扩展的complexContent创建一个新的复杂类型。我试过这个:

代码语言:javascript
复制
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >

<xs:complexType name="evenOccurrence">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="B" maxOccurs="2" minOccurs="2"/>
    </xs:sequence>
</xs:complexType>  

<xs:complexType name="oddOcurrence">
    <xs:complexContent>
        <xs:extension base="evenOccurrence">
            <xs:sequence>
                <xs:element name="B"/>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

这段代码会产生以下错误:cos:B和B(或它们的替换组中的元素)违反了“唯一粒子属性”。在对此模式进行验证期间,将为这两个粒子创建歧义。我怎么能解决这个问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-29 12:43:36

这是两种类似的方法:

1-不得延期:

代码语言:javascript
复制
<xs:complexType name="oddOcurrence">
    <xs:sequence>
        <xs:element name="B" /> <!-- 1 time -->
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
            <!-- 2n times -->
            <xs:element name="B" maxOccurs="2" minOccurs="2" />
        </xs:sequence>
    </xs:sequence>
</xs:complexType>

2-类似,有扩展

代码语言:javascript
复制
<xs:complexType name="elementOneTime">
    <xs:sequence>
        <!-- 1 time -->
        <xs:element name="B" />
    </xs:sequence>
</xs:complexType>


<xs:complexType name="oddOcurrence">
    <xs:complexContent>
        <xs:extension base="elementOneTime">
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
                <!-- 2n times -->
                <xs:element name="B" maxOccurs="2" minOccurs="2" />
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

编辑:,为什么它模棱两可?

由于evenOccurrence可以是空的,所以当解析器找到第一个B元素和oddOccurance时,它不知道解析evenOccurance的第一个B还是只出现一次的B元素。

首先放置只有在消除歧义之后才能出现的元素,因为第一个B元素将被分析,然后解析器将进入一个状态,它将分析oddOccurence类型(所有其他B元素)。

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

https://stackoverflow.com/questions/27200364

复制
相关文章

相似问题

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