首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSD基complexType

XSD基complexType
EN

Stack Overflow用户
提问于 2015-01-28 10:46:05
回答 1查看 148关注 0票数 0

我想配置一个基类型,它有具体的子类型。可以通过配置只允许一个子元素的元素来使用此类型。

代码语言:javascript
复制
<xs:complexType name="VcsType">
    <xs:sequence>
        <xs:element name="enabled" type="xs:boolean" default="false" minOccurs="1"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="GitVcsType">
    <xs:complexContent>
        <xs:extension base="VcsType">
            <xs:sequence>
                <xs:element name="url" type="xs:string" minOccurs="1"/>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

<xs:complexType name="SvnVcsType">
    <xs:complexContent>
        <xs:extension base="VcsType">
            <xs:sequence>
                <xs:element name="version" type="xs:string" minOccurs="1"/>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

现在我想说的是:

代码语言:javascript
复制
<xs:element name="vcs" type="VcsType" minOccurs="0"/>

它将被相应地替换(如果是git/svn等)。我怎么能这么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-10 09:25:37

从我已经看到的情况来看,这只是缺少的XML方面的东西。

您有一个模式

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<!-- Created with Liquid XML 2015 Designer Edition (Trial) 13.0.1.5719 (http://www.liquid-technologies.com) -->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="vcs" type="VcsType" />
    <xs:complexType name="VcsType">
        <xs:sequence>
            <xs:element name="enabled" type="xs:boolean" minOccurs="1" default="false" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="GitVcsType">
        <xs:complexContent>
            <xs:extension base="VcsType">
                <xs:sequence>
                    <xs:element name="url" type="xs:string" minOccurs="1" />
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="SvnVcsType">
        <xs:complexContent>
            <xs:extension base="VcsType">
                <xs:sequence>
                    <xs:element name="version" type="xs:string" minOccurs="1" />
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>

由于从VscType派生了两件事,所以可以根据VscType本身、GitVscType或SvnVscType创建一个文档。

这会导致

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid XML 2015 Designer Edition (Trial) 13.0.1.5719 (http://www.liquid-technologies.com) -->
<vcs>
    <enabled>true</enabled>
</vcs>
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid XML 2015 Designer Edition (Trial) 13.0.1.5719 (http://www.liquid-technologies.com) -->
<vcs xsi:type="GitVcsType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <enabled>true</enabled>
    <url>string</url>
</vcs>
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid XML 2015 Designer Edition (Trial) 13.0.1.5719 (http://www.liquid-technologies.com) -->
<vcs xsi:type="SvnVcsType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <enabled>true</enabled>
    <version>1.0.0.0</version>
</vcs>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28190244

复制
相关文章

相似问题

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