加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 07:47:25 所属栏目:百科 来源:网络整理
导读:假设您希望允许某些特定的 XML元素出现0次.例如, record元素可以多次出现: repository recordRecord 1/record recordRecord 2/record recordRecord 3/record/repository 是否有任何令人信服的理由将父元素作为容器包含在内?例如,以下使用 recordSet包含 re
假设您希望允许某些特定的 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的建议,包括简单命名父母通过使用复数的重复子元素.

拥有父元素可以更简单地识别XML的各个部分,并使处理程序更容易将子元素映射到集合.
如果你有一个系统禁止使用属性(有些人这样做,那很烦人),你还需要使用包装元素来区分属于特定子元素的属性(如id).

除此之外,省略父元素是有效的,并且可以使文件明显减少冗长.

在您的第一个示例中,用户元素可能与记录混在一起,这是有效的,但可能很难发现:

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

而对于周围的元素,您可以分离集合,并具有该集合的多个实例:

<repositories>
  <users>
    <user>Bill</user>
  </users>
  <repository>
    <id>id1</id>
    <recordSet>
      <id>recordSet1</id>
      <record>Record 1</record>
      <record>Record 2</record>
      <record>Record 3</record>
    </recordSet>
    <recordSet>
      <id>recordSet2</id>
      <record>Record 1</record>
      <record>Record 2</record>
      <record>Record 3</record>
    </recordSet>
  </repository>
  <repository>
    <id>id2</id>
    <recordSet>
      <record>Record 1</record>
      <record>Record 2</record>
      <record>Record 3</record>
    </recordSet>
  </repository>
</repositories>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读