XML Schema将自定义命名节点定义到特定级别

时间:2013-02-25 14:36:49

标签: xml xsd

我有一个XML文件,它由一个定义名称为“IDTree”的根节点组成。此节点应包含具有未定义名称的三个级别的后代,因为我需要在应用程序中使用XPath来精美地处理此XML文件中的特定值。

示例:

<IDTree>
  <Foofoo id="0x00">
    <Foobar id="0x00">
      <Boofar id="0x00" />
      <Fasfoo id="0x01" />
      <Farfoo id="0x02" />
    </Foobar>
    <Foobas id="0x01">
      <Bas id="0x00" />
      <Bar id="0x01" />
      <Foo id="0x02" />
    </Foobas>
  </Foofoo>
</IDTree>

我需要使用类似“/ IDTree / Foofoo / Foobas / Bar”的XPath来解决这些节点,将它们转换为三个值,如0x00 0x01 0x01。

存储在此XML文件中的数据以某种方式“动态”。也就是说,它可能会通过在这三个级别中添加,移动,删除具有未指定名称的节点来进行扩展,编辑或以其他方式更改。

在第三级以下,节点应具有已定义的名称。根节点下面的第三层上的每个节点应具有零个或一个具有名称“描述”的子节点,该子节点又具有名称为“ShortDesc”和“Field”的子节点。另一方面,“Field”应具有零到多个名为“Value”的字段。

根节点的所有子节点都应具有已定义名称的属性。具有未指定名称的根节点下的级别1 - 3上的所有节点必须具有“id”属性。定义名称低于3级的节点都应具有已定义的属性,具体取决于其类型。

问题是,如何在XML Scheme中指定所有这些要求和选项?

0 个答案:

没有答案