我正在创建一个包含电影院的XML文档。我需要一种方法来表示某个电影院的设施,但不确定如何构建它。
我应该将每个设施作为节点吗?并且该节点内的文本可以是1或0(true为false)?或者将每个设施作为属性或“设施”节点更好?
属性:
<cinema id="1">
...
<facilities advance_screenings="1" concessions="0" ... >1<facilities>
</cinema>
节点:
<facilities>
<advance_screenings>1</advance_screenings>
<audio_description>1</audio_description>
<bar>1</bar>
<concessions>1</concessions>
...
</facilities>
感谢。
答案 0 :(得分:2)
这在很大程度上取决于偏好/风格。
然而 - 有一些经验法则
非基本类型必须是元素(您使用的是术语“节点”)。您不能拥有表示复杂类型的属性 - 尽管您可以进行一些模式匹配。
单个元素上的1000个属性可能不是一个很好的设计 - 力求人类的可读性。
作为上述观点的必然结果,避免将1000个元素作为单个元素的直接后代。 (在逻辑结构中嵌套/分组元素)。
对于“好结构”与“坏结构”的某种感觉是一种复杂的判断,它考虑了很多因素 - 例如使用数据的行业/背景,以及它代表了。它类似于类设计,或者可能更接近数据库设计。有时,黑客工作不会产生任何差异 - 其他时候语义精确度至关重要。
你只能通过经验很好地掌握它。
答案 1 :(得分:1)
XML的美丽/痛苦的一部分是这些决定完全取决于你。
属性通常是不言自明的 - 它们通常描述元素的某些属性。子节点更多是父节点包含的子数据类型。
但所有这些都是主观的,而且确实没有正确答案 - 这完全是你想要如何构建文档。
答案 2 :(得分:0)
在这种情况下,它们应该是子元素。把它放在MVC 术语,属性应保存有关视图的信息,子元素应保存有关模型的信息。