2016-03-27 27 views
0

要素の参照を兄弟にしたいと思っていますが、これをスキーマに実装する方法がわかりません。XML要素を参照する兄弟

私はこれが可能である場合は、それらを参照するために探していますので、スタッフの各メンバーもスタッフの一員である上司を持っています意味
<staff pid="818789"> 
    <supervisor staff="201022"></supervisor> 
    ... 
</staff> 

:私は私の.xmlファイルに次のように持っています。

"pid"は私のスキーマで作成したタイプで、6桁の文字列です。

私は自分の.xsdファイルに次き:

<xs:element name="staff"> 
    <xs:complexType>  
     <xs:sequence> 
      <xs:element name="supervisorID" type="pidType" minOccurs="0" maxOccurs="1"/> 
      ... 
     </xs:sequence> 
     <xs:attribute name="pid" type="pidType" use="required"/> 
    </xs:complexType> 
</xs:element> 

それは次のエラーを与える:

ERROR - CVC-type.3.1.1:要素 '監督は' 単純型です、名前空間名が 'http://www.w3.org/2001/XMLSchema-instance'で、[ローカル名]が 'type'、 'nil'、 'schemaLocation'または 'noNamespaceSchemaLocation'のいずれかである属性を除いて、属性を持つことはできません。ただし、属性 'staff'が見つかりました。

私はそれがエラーを発生させる理由は理解できますが、私はそれを何に変更するのか理解できません。

+0

として定義されなければならないがそれはなぜそれは問題でしょう全く無関係だ私たちスタッフの要素 – Kachna

+0

のための完全なXSDを示して? – Porteous96

答えて

1

属性を持つ要素は複合型でなければなりません。 だから、スーパーバイザ要素が従う

<xs:element name="supervisor"> 
     <xs:complexType> 

        <xs:attribute name="staff" type = "pidType" use="required"/> 

     </xs:complexType> 

</xs:element> 
+0

あなたの答えをありがとう、それは私の問題を解決するようだが、今私は新しいerrors.Wouldあなたの答えを説明することを理解している私はそれを理解する? – Porteous96

+0

あなたの編集は私の問題を解決し、あなたが何をしたのか理解しています。どうもありがとう。 – Porteous96

関連する問題