2012-02-25 7 views
0

可能性の重複:
XML attribute vs XML elementXML、属性、またはノードの構造化?

私は映画館を保持しているXMLドキュメントを作成しています。ある映画館の設備を表現する方法が必要ですが、それをどのように構築するのかは不明です。

ノードとして各施設を用意する必要がありますか?そして、そのノード内のテキストは、1または0(falseの真)のいずれかになりますか?あるいは、各施設を属性または「施設」ノードとして持つ方がよいでしょうか?

属性:

<cinema id="1"> 
    ... 
    <facilities advance_screenings="1" concessions="0" ... >1<facilities> 
</cinema> 

ノード:

<facilities> 
    <advance_screenings>1</advance_screenings> 
    <audio_description>1</audio_description> 
    <bar>1</bar> 
    <concessions>1</concessions> 
    ... 
</facilities> 

感謝。

+0

@DarinDimitrov:それは役に立ちません。 XML設計は、コード設計と同じくらい柔軟で、同じくらい重要です。 – skaffman

+0

@skaffman、もちろん、私はあなたに完全に同意します。誰かが彼がデザインしていることについての文脈を提供するのは意味があります。私にとってのこの質問は、「使用属性」と「使用要素」の両方の回答で答えることができ、この地球上にはどちらか一方の答えを正当化できるものは何もないので、全く意味がありません。 –

+1

@Nick:用語の脚本:属性は*ノードです。属性と要素を意味します。 – skaffman

答えて

2

これは主に好み/スタイルの問題です。 (あなたは用語「ノード」を使用している)

  • 非プリミティブ型の要素でなければなりません: -

    しかし、親指の一部ルールがあります。複合型を表す属性を持つことはできませんが、いくつかのパターンマッチングを行うことはできます。

  • 1000個の要素の属性は、おそらく人間の可読性に尽きるように設計されていません。

  • 上記の結果として、単一の要素の直接の子孫として1000要素を避けてください。 (論理構造内のネスト/グループ要素)。そのようなデータがされている中で、業界/コンテキストとして - 「素敵構造」「悪い構造」対である何のため若干の使用感は、アカウントに多くの要因を取る複雑な判断である持っ

使用され、そしてそれが表すもの。これはクラス設計と似ていますが、おそらくデータベース設計に近いものです。時には、ハック・ジョブが1つのiotaを異ならせない場合もあります。他の時は意味精度が重要です。

あなたは経験を通してそれをよく理解するでしょう。

+0

建設的なフィードバックをありがとう。感謝します。 – Nick

1

XMLの美しさや苦痛の一部は、このような決定は完全にあなた次第です。

通常、属性は自明です。通常、属性は要素のいくつかのプロパティを表します。サブノードは、親ノードによって囲まれたより多くのサブデータ型である。

しかし、これはすべて主観的なものであり、正しい答えはありません。ドキュメントをどのように構造化したいのですか。

0

この場合、サブ要素である必要があります。 MVC という用語では、属性はビューに関する情報を保持し、サブ要素はモデルに関する情報を保持する必要があります。

関連する問題