我想从现有的架构文件中重新定义一些复杂的类型。当我使用Altova时,XMLSpy报告了一个错误。它显示:
重新定义类型定义'Address‘必须是对其本身的扩展或限制。错误位置: xs:schema / xs:redefine / xs:complexType / xs:complexContent / xs:extension / @base Details src-refine.5:重新定义类型定义'Address‘必须是自身的扩展或限制。
源代码中已经包含了一个<xs:extension>部分。
<xs:redefine schemaLocation="reusable.xsd">
<xs:complexType name="Address">
<xs:complexContent>
<xs:extension base="Address">
<xs:sequence>
<xs:element name="PostCode"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:redefine>我不知道这是怎么回事。这是我的模式文件的源代码。
Source.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="we:love:xml:schemas:but:we:hate:namespaces">
<xs:redefine schemaLocation="reusable.xsd">
<xs:complexType name="Address">
<xs:complexContent>
<xs:extension base="Address">
<xs:sequence>
<xs:element name="PostCode" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:redefine>
<xs:element name="resume">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>提前谢谢。
reusable.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xf="we:love:xml:schemas:but:we:hate:namespaces" targetNamespace="we:love:xml:schemas:but:we:hate:namespaces" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:complexType name="Address">
<xs:annotation>
<xs:documentation>This is a type meant to represent a generic address. It consists of an
unlimited number of street addresses, a city, state or province, a postal code, and
country. It is suggested that if need be, on a transform use conditional processing
based on the Country element to get country specific layouts of the
addresses.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="StreetAddress" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="City"/>
<xs:element name="StateOrProvince" type="xs:string" minOccurs="0"/>
<xs:element name="PostalCode" type="xs:string"/>
<xs:element name="Country" type="xf:CountryType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>发布于 2015-04-10 08:46:35
您对命名空间URI的选择说明了一切。您不想扩展"Address",而是要扩展" wlxsbwhns :Address",其中前缀wlxsbwhns绑定到目标命名空间URI。
https://stackoverflow.com/questions/29554336
复制相似问题