Xsd 使用xs:all扩展XML模式类型有什么错?

Xsd 使用xs:all扩展XML模式类型有什么错?,xsd,Xsd,当我试图在XMLSpy中保存它时,它告诉我 复杂类型定义“mstns:ServiceType”及其扩展“{anonymous}”中既不允许使用“all”模型组 单击“详细信息”会提供一个我不理解的链接 添加:啊,是的,忘了提及-错误是这一行: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns="http://tempuri.org/ServiceDescription.xsd" xmlns:mstns="http:/

当我试图在XMLSpy中保存它时,它告诉我

复杂类型定义“mstns:ServiceType”及其扩展“{anonymous}”中既不允许使用“all”模型组

单击“详细信息”会提供一个我不理解的链接

添加:啊,是的,忘了提及-错误是这一行:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://tempuri.org/ServiceDescription.xsd" xmlns:mstns="http://tempuri.org/ServiceDescription.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://tempuri.org/ServiceDescription.xsd" elementFormDefault="qualified" id="ServiceDescription">
    <xs:element name="Template">
        <xs:complexType>
            <xs:complexContent>                                     
                <xs:extension base="ServiceType">
                    <xs:all>
                        <xs:element name="TemplateCode" type="xs:string"/>
                    </xs:all>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="ServiceType">
        <xs:all>
            <xs:element name="ServiceCode" type="xs:string"/>
        </xs:all>
    </xs:complexType>
</xs:schema>


问题是,如果您要扩展另一种类型,就不能拥有全部。据XML所知,父类型可能有一个序列模型,而且由于XML禁止将all组放入序列组中(因为这会破坏序列组的顺序),因此XML也禁止将all组放入复杂类型的扩展中。不过,您可以对这两个元素都使用sequence而不是all,这样就可以了。

不过元素会有一个严格的顺序,这是我不想要的。废话。
<xs:element name="TemplateCode" type="xs:string"/>