2011-06-26 9 views
1

私の最初の複雑なXMLスキーマを書く私はおそらくオブジェクト指向とベストプラクティスが何であるかを考えていないでしょう。これは主に、XMLファイルからコードを読み込むのに多くの時間を費やさなかったためです。XMLスキーマ:特定のタグ内または特異要素に沿ったコレクション?

私がする傾向のあることは、すべてのコレクションをその内部に置くことです。シナリオを考えましょう。私は人のタイプのためのスキーマをやっているし、私は他のものの中で人の車についての情報を保持するwan't。

<xs:element name="Person"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Name" type="xs:string"/> 
      <xs:element name="Address" type="xs:string"/> 
      <xs:element name="Cars"> 
       <xs:complexType> 
        <xs:sequence> 
         <xs:element name="Car" type="CarType" maxOccurs="unbounded" /> 
        </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

をしかし、おそらくこれは、おそらくより良い可能です::

私はいつもこれを行う

<xs:element name="Person"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Name" type="xs:string"/> 
      <xs:element name="Address" type="xs:string"/> 
      <xs:element name="Cars" type="CarType" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

私はC#と/またはLINQのツーXMLを使用してXMLファイルから読み込まれたときどの方法が良いですか?

私はコレクションが名前と住所のような独特のプロパティではなく、自分のタグの内部に座るように感じるので、自分のことをやる傾向があります。

答えて

1

LINQ to XMLを使用している場合、Personノードの直下の要素を持つ方が良いと言えるでしょう。

person.Element("Cars").Elements() 

person.Elements("Car") 

比較しかし、私は個人的にはあまりにも特別なコレクション要素を好むだろう、私はそれはきれいだと思います。なぜあなたは他の方法がおそらくより良いと思いますか?誰が言った?

+0

私はいくつかのサンプルを見てきましたが、それらはすべてその方法で行いますが、私はそれ以外の方法でXMLを見てきました。 –

関連する問題