如何将元素添加到现有的xsd:complexType?

时间:2012-08-07 13:30:25

标签: c# xml xsd altova

我有一组模式定义,其中一个文件有xsd:ComplexType定义为" FloatingRateCalculation",现在我想扩展这个类型并想要添加一个元素,我不想扰乱现有架构。我想创建一个单独的.xsd文件,其中我将包含原始" FloatingRateCalculation"的模式。

我想这样做,以便原始架构保持完整,由供应商提供......

1 个答案:

答案 0 :(得分:0)

如果原始架构看起来像这样(Original.xsd)

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio 2012 Developer Edition 10.1.2.4113 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="FloatingRateCalculation">
        <xs:sequence>
            <xs:element name="Stuff" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>

enter image description here

然后您的架构(Extension.xsd)应该看起来像这样

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio 2012 Developer Edition 10.1.2.4113 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:include schemaLocation=".\Original.xsd" />
    <xs:complexType name="FloatingRateCalculationEx">
        <xs:complexContent>
            <xs:extension base="FloatingRateCalculation">
                <xs:sequence>
                    <xs:element name="MoreStuff" type="xs:string" />
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>

enter image description here