2

私はこれに比較的慣れていませんが、誰かが私がまとめたこのXML構造に対する良い批評を提供してくれることを望んでいました。私は詳細なことは何も探していませんが、構造に本質的に問題があることに誰かが気付いた場合(またはそれを改善するためのヒント)、私はそれを大いに感謝します。

私たちは大量の製品を卸売りしており、顧客は私たちの製品を自社のWebサイトに組み込むためのデータフィードを探していました。

<product modified="">
    <id></id>
    <title></title>
    <description></description>
    <upc></upc>
    <quantity></quantity>
    <images>
        <image width="" height=""></image>
        <image width="" height=""></image>
        <image width="" height=""></image>
    </images>
    <category>
        <name></name>
        <subcategory></subcategory>
    </category>     
    <sale expiration="">yes</sale>
    <msrp></msrp>               
    <cube></cube>
    <weight></weight>
    <pricing>
        <tier>
            <pack><pack>
            <price></price>
        </tier>
        <tier>
            <pack><pack>
            <price></price>
        </tier>         
        <tier>
            <pack><pack>
            <price></price>
        </tier>
    </pricing>
</product>

3つの異なるパックサイズで販売しているため、価格設定ノードです。

4

3 に答える 3

1
  1. 1 対多の関係を示すために一貫して子要素を使用していることは明らかではありません。商品が複数のカテゴリを持つことができる場合は問題ありませんが、カテゴリが 1 つしかない場合は、 と という名前categoryNameの単一の要素を使用したほうがよいでしょうcategorySubcategory。そうしないと、どこかで誰かが XML のセマンティクスを誤解し、一貫していれば問題が発生しなかった問題を修正する必要があります。

  2. そういえば、タグ名に複数の単語を使用する必要がある場合に何が起こるかを念頭に置いておく必要があります。

  3. 属性と要素を使用する一貫した理由があるかどうかはわかりません。要素と属性が HTML で表現されているため、image要素widthと属性を指定したのではないかと思います。heightデザイン全体で HTML 規則を使用している場合にのみ、HTML 規則を複製します。sale要素にexpiration属性がある理由がわかりません。

  4. その要素といえば、文字列とsaleを使用してブール値を表します。(とも使用できます。)より広い意味では、型付きデータに XML スキーマの表現を使用します。truefalse10

XML 設計の一貫性は、読みやすさよりも 100 倍価値があります。XML に一貫性がある場合は、それを簡単に読み取り可能な形式に変換できます。逆は当てはまりません。

于 2010-04-30T18:25:50.380 に答える
0

私は、の属性である可能性があると思います。<pack>または、 ;の属性として、単に削除して持つことが望ましいと思います。<price><tier><tier><pack><price><pricing>

<tier pack="some-pack" price="some-price" />

また

<pricing pack="big-pack" price="high-price" />

それがあなた(またはあなたのビジネス)にとって意味があるかどうかは完全にはわかりませんが、XMLを少しクリーンアップします。

于 2010-04-30T06:19:40.740 に答える
0

すべての属性 (つまり / modifiedwidthheightおよびexpiration) を要素に移動すると、顧客は製品仕様を 1:1 で JSON または内部オブジェクトに自動的にマッピングできます。実際、ある日、JSON またはプロトコル バッファをデータの代替フォーマットとして提供することを検討するかもしれません。プレーンな XML 構造により、自動的に変換を行うことができます。さまざまな XML 形式が多数ある場合は安心です (随時変更される可能性があります)。XML を読み取って手動で情報を抽出する人はほとんどいないため、XML の美しさを第一に考える必要はまったくありません。

于 2010-04-30T07:09:01.167 に答える