2012-04-13 21 views
0

私はスキーマを作成しようとしています。スキーマを作成すると、1つのスキーマを参照として使用し、タッチできない別のスキーマを使用します。私が今問題を抱えているという問題は、私が拘束のrcase-NameAndTypeOK3.2.5に直面していることです。 XMLスキーマrcase-NameAndTypeOK.3.2.5が無効

<!--Msg --> 
<xs:complexType name="Main"> 
    <xs:complexContent> 
     <xs:restriction base="B"> 
      <xs:sequence> 
       <xs:element name="B1" type="BType"/> 
       <xs:element name="B2" type="BType"/> 
       <xs:element name="B3" type="B3-Type"/> 
      </xs:sequence> 
     </xs:restriction> 
    </xs:complexContent> 
</xs:complexType> 
<!-- Types --> 
<xs:complexType name="B3-Type"> 
    <xs:complexContent> 
     <xs:extension base="BType"> 
      <xs:sequence> 
       <xs:element name="B-4"/> 
      </xs:sequence> 
     </xs:extension> 
    </xs:complexContent> 
</xs:complexType> 

<!-- Source --> 
<xs:complexType name="BType"> 
    <xs:sequence> 
     <xs:element name="B-1"/> 
     <xs:element name="B-2"/> 
     <xs:element name="B-3"/> 
    </xs:sequence> 
</xs:complexType> 
<xs:complexType name="B"> 
    <xs:sequence> 
     <xs:element name="B1" type="BType"/> 
     <xs:element name="B2" type="BType"/> 
     <xs:element name="B3" type="BType"/> 
    </xs:sequence> 
</xs:complexType> 

は、私の周りの仕事を持って、それがメインの制約を削除しています。メインの制限を解除しないで、別の回避策がありますか?私が間違っていることはありますか?

答えて

0

私は別の回避策が表示されない - それはBとしてではなく1つの余分サブ要素B-4を持つ要素B3を含めることができるということで - 問題は、制限もBの拡張ではない定義されているようMainということです。

あなたはベース1と、おそらく他のいくつかの異なったに等しいいくつかの宣言で固定されるベーススキーマ、その後派生スキーマを持つようにしたい場合は

あなたはあなたの助け xsd:redefine

+0

感謝を使用する必要があります! – user1330885

+0

あなたは大歓迎です。 – MiMo