2

我对此比较陌生,但我希望有人可以对我整理的这种 XML 结构提出很好的批评。我不是在寻找任何深入的东西,而是如果有人注意到结构本身存在任何问题(或任何使其变得更好的提示),我将不胜感激。

我们批发了大量产品,我们的客户正在寻找数据馈送以将我们的产品整合到他们的网站中。

<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. 我不清楚您是否一直使用子元素来表示一对多关系。如果一个产品可以有多个类别,那很好,但如果它只能有一个,那么最好使用名为categoryNameand的单个元素categorySubcategory。否则,某个地方的某个人会误解您的 XML 的语义,并且您将遇到需要解决的问题,如果您保持一致,就不会出现这种问题。

  2. 说到这一点,当您需要在标签名称中使用多个单词时,您应该计划好会发生什么。

  3. 我不清楚您是否有一致的理由使用属性与元素。我怀疑您已经给出了image元素widthheight属性,因为这就是它们在 HTML 中的表示方式。如果我在整个设计中使用它们,我只会复制 HTML 约定。我不知道为什么sale元素有一个expiration属性。

  4. 说到那个元素,使用字符串和sale表示布尔值。(您也可以使用and 。)更广泛的观点是:使用 XML Schema 的表示类型的数据。truefalse10

XML 设计中的一致性比可读性更有价值 100 倍。如果您有一致的 XML,您可以轻松地将其转换为可读的形式;反之则不然。

于 2010-04-30T18:25:50.380 回答
0

我认为<pack>and<price>可以是 ; 的属性<tier>,或者更可取的是简单地删除<tier>并具有<pack>and<price>作为 ; 的属性<pricing>

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

或者

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

不完全确定这对您(或您的业务)是否有意义,但会稍微清理一下 XML。

于 2010-04-30T06:19:40.740 回答
0

如果您将所有属性(即 / modifiedwidth和)移动heightexpiration元素,那么客户可以自动将您的产品规范 1:1 映射到 JSON 或其内部对象。事实上,有一天您可能会考虑提供 JSON 或协议缓冲区作为数据的替代格式,而纯 XML 结构将允许自动进行转换。如果您有几十种不同的 XML 格式(可能会不时更改),那将是一种解脱。人们很少会手动读取 XML 并从中提取信息,因此绝对没有必要将 XML 美放在首位。

于 2010-04-30T07:09:01.167 回答