2017-01-06 13 views
0

タイプの拡張子を使用していますが、特定のタイプである必要がある別の属性を追加しようとしています。悲しいことに、私は彼らの一人だけが一度に働くことができます。追加の属性を持つXSD拡張子

コード例は、(これは私が試した多くのもののほんの現在の状態です):、

<xs:complexType name="buttonBaseType"> 
    <xs:complexContent> 
     <xs:attribute name="text" type="nonEmptyString"/> 
     <xs:extension base="elementCommonInfo"/> 
    </xs:complexContent> 
</xs:complexType> 

elementCommonInfoは、いくつかの属性を定義し、2デフォルト値を持つものや、持っていないものを言うことができますもの。

このバージョンでは、次のコード<button text="e"/>base-frame.xml:7:27: attribute 'text' is not declared for element 'button'というエラーを作成します。 から1レベル上(xs:complexTypeの前または後)にxs:attributeを移動すると、そこに存在する必要がある属性がelementCommonInfoであるにもかかわらず、ドキュメントが検証をパスします。

TL; DR:「拡張」タイプで定義している新しい属性とともに、拡張からすべての属性を取得する方法を教えてください。

答えて

1

たぶん、あなたはこの方法でそれを試すことができます。

<xs:complexType name="buttonBaseType"> 
    <xs:simpleContent> 
     <xs:extension base="elementCommonInfo"> 
      <xs:attribute name="text" type="nonEmptyString"/> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 
+0

は 'elementCommonInfo'が単純型を持っていることを条件とします。 – Kachna

関連する問題