0

DB 内の製品を表す XML スキーマがあり、製品イメージの参照を XML ノードとして格納する最良の方法を見つけようとしています。プライマリ イメージと代替イメージがあり、それぞれにシーケンス (表示順序) があります。これは適切な形式ですか、それともより良いアプローチがありますか:

<item>
    <id></id>
    <images>
        <image width="" height="" href="" alt="" sequence="1" />
        <image width="" height="" href="" alt="" sequence="2" />
        <image width="" height="" href="" alt="" sequence="3" />
        <image width="" height="" href="" alt="" sequence="4" />
    </images>
</item>

明らかにこれよりも多くのノードがありますが、すべてを示しているわけではありません。私は、プライマリ イメージが常にシーケンスの最初になると考えました。私が抱えている問題は、これらの各画像にサムネイル、中、大の画像があることです。そのため、これをさらに分解する必要があると考えています。

4

2 に答える 2

2

XML 要素には自然な順序 (つまり、XML ファイルに表示される順序) があるため、sequence属性を含めることはおそらく冗長です。要素の順序については引き続き話すことができ、主要な製品イメージの「最初の」要素がまだあります。

おそらく:

<images>
    <imageset>
        <image size="thumbnail" width="" height="" href="" alt="" />
        <image size="medium" width="" height="" href="" alt="" />
        <image size="large" width="" height="" href="" alt="" />
    </imageset>
    <imageset>
        <image size="thumbnail" width="" height="" href="" alt="" />
        <image size="medium" width="" height="" href="" alt="" />
        <image size="large" width="" height="" href="" alt="" />
    </imageset>
</images>
于 2008-11-10T18:37:09.717 に答える
1

sizeGreg の設計を少し拡張するには: 属性を作成するのではなく、画像サイズを要素名にするのが適切かもしれません。

<imageset>
   <thumbnail width=""... />
   <medium width="".../>
   <large width="".../>
</imageset>

これには 2 つの理由があります。

まず、名前imagesetはその子要素が画像になることをすでに示しているため、子要素に名前を付けるのimageは冗長です。の XPath パターンを使用するのは を使用するのと同じくらい簡単で、imageset/*を書くよりもimageset/image書くのがわずかに簡単です。imageset/mediumimageset/image[@size='medium']

さらに重要な理由は、この設計により、imageset要素に各タイプの画像を 1 つだけ含める必要があることをスキーマで指定できるようになることです。(または、1 つ以上のイメージ タイプがオプションであることを指定します。)

于 2008-11-10T20:20:45.657 に答える