0

「IDTree」という名前が定義されたルート ノードで構成される XML ファイルがあります。このノードには、名前が定義されていない正確に 3 レベルの子孫が含まれます。これは、アプリケーションで 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 などの 3 つの値に変換する必要があります。

この XML ファイルに格納されているデータは、何らかの形で「動的」です。つまり、これらの 3 つのレベル内で名前が指定されていないノードを追加、移動、削除することによって、おそらく拡張、編集、またはその他の方法で変更されます。

ただし、3 番目のレベルより下では、ノードには定義済みの名前が必要です。ルート ノードの下の 3 番目のレベルにあるすべてのノードには、"Description" という名前のゼロまたは 1 つの子ノードがあり、その子ノードには、"ShortDesc" および "Field" という名前のサブノードがあります。一方、「フィールド」には、「値」という名前のフィールドがゼロから多数あります。

ルート ノードのすべての子ノードには、定義された名前の属性があります。ルート ノードの下のレベル 1 ~ 3 にある、名前が指定されていないすべてのノードには、'id' 属性が必要です。レベル 3 未満の定義済みの名前を持つノードはすべて、そのタイプに応じて定義済みの属性を持ちます。

問題は、これらすべての要件とオプションを XML スキームで指定するにはどうすればよいかということです。

4

0 に答える 0