我对此比较陌生,但我希望有人可以对我放在一起的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种不同的包装尺寸销售,因此定价节点。
答案 0 :(得分:1)
我不清楚你是否一直使用子元素来表示一对多的关系。如果一个产品可以有多个类别,那么很好,但是如果它只有一个,那么使用名为categoryName
和categorySubcategory
的单个元素会更好。否则,某个地方的某个人会误解你的XML的语义,如果你保持一致,你就会有一个问题需要解决。
说到这一点,您应该考虑到当您需要在标记名称中使用多个单词时会发生什么。
我不清楚您是否有一致的理由使用属性与元素。我怀疑您已经提供了image
元素width
和height
属性,因为这就是它们在HTML中的表示方式。如果我在整个设计中使用它们,我只会复制HTML约定。我不知道为什么sale
元素具有expiration
属性。
说到sale
元素,使用字符串true
和false
表示布尔值。 (您也可以使用1
和0
。)更广泛的观点是:使用XML Schema对类型化数据的表示。
XML设计的一致性比可读性高100倍。如果您具有一致的XML,则可以将其简单地转换为可读形式;事实并非如此。
答案 1 :(得分:0)
我认为<pack>
和<price>
可以是<tier>
的属性,或者最好只删除<tier>
并将<pack>
和<price>
作为属性<pricing>
;
<tier pack="some-pack" price="some-price" />
或
<pricing pack="big-pack" price="high-price" />
不完全确定这对您(或您的公司)是否有意义,但会稍微清理XML。
答案 2 :(得分:0)
如果您将所有属性(即/ modified
,width
,height
和expiration
)移动到元素,那么客户可以自动将您的产品规格1:1映射到JSON或其内部对象。事实上,有一天您可能会考虑提供JSON或protocol buffers作为数据的替代格式,而纯XML结构将允许自动进行转换。如果你有几十种不同的XML格式(可能会不时改变),这是一种解脱。人们很少阅读XML并手动从中提取信息,因此绝对不需要首先使用XML美容。