XSD自定义类型声明中的错误

时间:2012-04-19 11:52:55

标签: xml xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Person">
    <xs:complexType>
        <xs:all>
            <xs:element name="address" type="Address"/>
        </xs:all>
    </xs:complexType>
</xs:element>
 <xs:element name="Address">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="line1" type="xs:string"/>
            <xs:element name="line2" type="xs:string"/>
            <xs:element name="state" type="xs:string"/>
            <xs:element name="city" type="xs:string"/>
            <xs:element name="postcode" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

在此XSD定义中,我无法理解此错误: 类型“地址”未定义为此架构中的根项目或任何包含或导入的项目 模式。

我想类型声明是在同一个模式中提供的。但这个宣言有什么问题?

2 个答案:

答案 0 :(得分:2)

<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Person">
        <xs:complexType>
            <xs:all>
                <xs:element name="address" type="Address"/>
            </xs:all>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="Address">
        <xs:sequence>
            <xs:element name="line1" type="xs:string"/>
            <xs:element name="line2" type="xs:string"/>
            <xs:element name="state" type="xs:string"/>
            <xs:element name="city" type="xs:string"/>
            <xs:element name="postcode" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

答案 1 :(得分:1)

您有本地元素声明

<xs:element name="address" type="Address"/>

但没有nameType =“Address”的complexType定义。

我怀疑元素声明

<xs:element name="Address">
    <xs:complexType>
    ...

应该是

<xs:complexType name="Address">
   ...
相关问题