<?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定义中,我无法理解此错误: 类型“地址”未定义为此架构中的根项目或任何包含或导入的项目 模式。
我想类型声明是在同一个模式中提供的。但这个宣言有什么问题?
答案 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">
...