gpt4 book ai didi

xml - 使用父 XML 元素作为重复出现的子元素的容器?

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:55 26 4
gpt4 key购买 nike

假设您希望允许某个特定的 XML 元素出现 0 次以上。例如,<record>元素可以出现多次:

<repository>
<record>Record 1</record>
<record>Record 2</record>
<record>Record 3</record>
</repository>

是否有任何令人信服的理由将父元素包含为这些元素的容器?例如,以下使用 <recordSet>元素包含 <record>元素:

<repository>
<recordSet>
<record>Record 1</record>
<record>Record 2</record>
<record>Record 3</record>
</recordSet>
</repository>

在提出这个问题之前,我试图找到任何相关的问题,如果已经有人问过,我深表歉意。在此先感谢您的所有输入!


编辑 - 2009 年 7 月 22 日:

感谢大家的精彩反馈! (我会评论/投票给人们,但我还没有足够的声望点数。)我可能会继续这条路线,我也想感谢@16bytes 的建议,包括简单地命名 parent 通过使用重复出现的子元素的复数形式。

最佳答案

您无意中发现了我的 XML 设计指南规则中的第二条(第一条是仅对 ID 和真实元数据使用属性,第三条是不要使用命名空间,除非您知道您要做什么're doing) 是我在设计 xml 文档时尝试使用的。除了作为一个好的经验法则之外,它还使您的文档:

  • 更容易在 XML 架构或其他验证语言中建模
    • 也更容易重用复杂类型
  • 更易于阅读(恕我直言)
  • 用户在浏览您的文档时更容易理解
  • (上述)更容易绑定(bind)到您选择的 OOP 对象

一个建议,我会尝试:

<Root>
<Items>
<Item>a</Item>
<Item>b</Item>
<Item>c</Item>
</Items>
</Root>

更简单的“s”后缀更简洁,更容易内存和应用。如果您使用通用集合名词,您或您的同事最终会忘记是哪一个,因此您会看到 Sets 与 Lists 与 Container 的混合。但这更多的是风格而不是良好的做法,我不想开始一场宗教 war ;)

(UpperCamel 用于元素!,lowerCamel 用于属性!--抱歉)

关于xml - 使用父 XML 元素作为重复出现的子元素的容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1156051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com