2012-04-19 186 views
0
<?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定義,我無法理解這個錯誤: 類型「地址」是不是這個模式或任何包含或導入 架構中定義爲根項目。錯誤XSD自定義類型聲明

我想這個類型聲明是在同一個模式中提供的。但是這個聲明有什麼問題呢?

回答

1

你有一個本地元素聲明

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

但與NAME = 「地址」 無complexType定義。

我懷疑元素聲明

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

也許應該

<xs:complexType name="Address"> 
    ... 
+0

由於這個問題解決了 – Udhay 2012-04-19 15:15:12

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>