2012-02-22 16 views
1

この質問は無知ですが、ごめんなさい。私が望む例が見つからない。 XMLファイル内に単一の要素があり、その上に必要な属性を入れたい場合、XSDの定義は何ですか?私が見たドキュメンテーションは、型が他の要素や属性を含む複雑なものでなければならないことを示唆しているようです。しかし、他の要素なしでcomplexType定義を使用しようとすると、匿名の子タイプの苦情なしに "タイプ"を追加することはできません。私は基本的に属性を持つ単一要素のスキーマ定義

Texty尋ねテキスト

私の検索を定義するために何かをしたいと思っています

はかなりまっすぐ進むと思われ、複数のネストされた要素と複合型に属性を追加する方法を私に示しておきます。あなたはあまり笑っていなくても助けてくれますか?私はこれが単純でなければならないことを知っています。 anAttributeは、型xs:stringとanElementの型です。

おかげで、 BBB

+0

擬似コードは 'code'であることを意図していましたテキストテキストテキスト bittramp

答えて

2

単純型は属性を持つことができず、文字列が単純型です。したがって、属性宣言を運ぶために複合型を定義する必要があります。単純型文字列に基づいて複合型を定義するには、単純型文字列から新しい複合型導出する必要があります。

<xs:element name="anElement"> 
    <xs:complexType> 
    <xs:simpleContent> 
     <xs:extension base="xs:string"> 
     <xs:attribute name="anAttribute" type="xs:string"/> 
     </xs:extension> 
    </xs:simpleContent> 
    </xs:complexType> 
    </xs:element> 

を新しい(匿名)タイプの定義を開始するためにcomplexType要素を使用します。新しいタイプのコンテンツモデルに文字データと要素のみが含まれていることを示すには、simpleContent要素を使用します。最後に、単純な文字列型を拡張して新しい型を派生させます。拡張は、標準属性宣言を使用してanAttribute属性を追加することから成ります。

+0

guido、thanks!私はこの物語のモラルは、あなたの最も低いレベルの要素に属性を持たず、物事はチュートリアルと同じくらい簡単だと思います。私はあなたの答えのコードと説明に感謝します。私はこれが拡張を必要としないだろうと仮定しましたが、それはxsdの無知を示​​すようになります。私が "anElement"の中に要素を持っていれば、これはとても単純に思えました。奇妙な。 – bittramp

関連する問題