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