0

私は現在、2つのレベルしかないXML階層用に作成されたXMLドキュメントに取り組んでいます。今のところ、そのファイルで機能するコードのほとんどを壊してしまう1対多の分類を追加したいと思います。

その分類を新しいレベルとして追加することも、同じレベルの属性として実装することもできます(ほとんどタグ付けのように)。

現在:

<category>
    <subcategory></subcategory>
<category>

提案:

<supercategory>
    <category>
        <subcategory></subcategory>
    </category>
</supercategory>

また:

<category supercategory="">
    <subcategory></subcategory>
</category>

どちらの方法がより保守可能ですか?

4

2 に答える 2

0

私にとって、XMLの強みの1つは、XML要素の階層的な性質が、あなたの場合のように、オブジェクトの階層的な配置を記述するのに理想的に適していることです。そのため、XML構造はデータの構造により似ているため、最初のオプションを好む傾向があります。これにより、IMHOの読み、管理、理解がはるかに簡単になります。

とは言うものの、既存のコードベースで機能させるために必要な追加の努力がそれだけの価値があるかどうかを本当に言えるのはあなただけです。必要な変更が難しすぎて時間がかかると思われる場合は、2番目の方法でそれをやめることは確かにありません。私は、それがエレガントなソリューションだとは思いません。

于 2011-03-02T20:32:23.720 に答える
0

新しいレベルを作成することがより良い解決策だと思います。これは、現在のアプローチ(ネストされた要素)に従います。これは優れています。最初の例には、元のカテゴリ要素自体が変更されないという利点もあります。

再帰的定義を検討することもできます。これは、今検討するより大きなリファクタリングかもしれませんが、将来の影響を回避する可能性があります。カテゴリは2レベルでしたが、現在は3です。4に移動して、SuperDuperCategoryを追加する必要がある場合はどうなりますか?

この表記は別の方法になる可能性があります。

<category>
    <category>
        <category></category>
    </category>
</category>
于 2014-03-06T15:34:05.660 に答える