2012-01-14 24 views
1

名前/価値paisのリストを返すためにXMLタグを構築することを推奨するバージョンは何ですか?XMLファイルを作成するには?

<variables> 
    <item>ok</item> 
    <another>123</another> 
    <catch>me</catch> 
</variables> 

または

<variables> 
    <variable name="item" value="ok"/> 
    <variable name="another" value="123"/> 
    <variable name="catch" value="me"/> 
</variables> 

私は2番目のフォームが優れていると思いますが、公式のW3C勧告や「最新デザインパターン」がありますか?

答えて

1

私はこれを行うための "公式の"方法はないと思います。しかし、個人的には、これらの要素/変数の意味がのに依存します。彼らはお互いに根本的に違うふるまいをしていますか?または、それらの機能は同じで、パラメータのみが異なりますか?

あなたの例では、それらの関数が同じであるように見えます - それらは単なる変数です。それらのパラメータは、名前と値が異なります。したがって、同じ方法でそれらをすべて処理したいので、2番目の形式が優れていると言えます。おそらく、それらをある種のマップなどにロードするのでしょうか?

一方、ファンクションが異なっていると思われる場合は、別のタグ名を使用することをお勧めします。たとえば:コンテンツやコメントは基本的に、あなたはおそらく違った扱いにしたい異なるエンティティですので

<post> 
    <content>Abc</content> 
    <comment>Xyz</comment> 
</post> 

は間違い

<post> 
    <text type="content">Abc</text> 
    <text type="comment">Xyz</text> 
</post> 

よりも優れています。

したがって、OOPプログラミングとほぼ同じです。変数ごとに別々のクラスを作成しますか?私はそうは思わない、あなたは単に "変数"という名前の単一のクラスを作成し、異なるコンストラクタの引数でそれをインスタンス化するだろう。一方、2番目の例のようにロジックが異なる場合は、コンテンツとコメントを格納するために別々のクラス(おそらく異なるフィールド)を作成する方がよいでしょう。

+0

私は...名前/値変数(名前を予測することさえできない)のようなエンティティでは、構文を優先する必要があります。しかし、のようなエンティティがオブジェクト/要素の共通/必須部分である場合、それをタグとして使用する方が良いかもしれません。私はOKですか? – ManieQ

+0

私はそう言うでしょう。エンティティを同じか異なる方法で解釈/処理したいかどうかを尋ねるだけです。たとえば、コメントと投稿の両方をまったく同じ方法で処理し、それらが異なるマークを付けるアイコン(シナリオは考えられません)が異なる場合など、コンテンツ/コメントの例でも変数アプローチを使用できる妥当なケースがあります、しかし可能です)。 – Seramme

関連する問題