1

だから - .dtd ファイルに次の宣言があります。

<!ELEMENT some_node1 (some_node2?, 
                      some_node3, 
                      (some_node4 | some_node5)*)+> 

ここでとはどういう+意味ですか?

a) そのsome_node2?, some_node3, (some_node4 | some_node5)*シーケンスを 1 回以上繰り返すことができますか?

b) 括弧内の個々の要素は 1 回以上繰り返すことができますか?

4

1 に答える 1

2

「a」とラベル付けした解釈は正しい解釈です。シーケンスは 1 回以上発生する可能性があります。

ただし、「b」で示した例は引き続き有効です。シーケンス < some_node3, some_node3, some_node3, some_node3, some_node5, some_node5 > は、コンテンツ モデルで指定されたシーケンスの 4 つの発生を連結することによって構築できます。

  1. some_node3(some_node2 が 0 回発生し、その後に some_node3 が 1 回発生し、その後に some_node4 と some_node5 の間の選択肢が 0 回発生します)。
  2. some_node3(上記を参照)
  3. some_node3, some_node5, some_node5(some_node2 が 0 回発生し、その後に some_node3 が 1 回だけ発生し、その後に some_node4 と some_node5 の間の選択肢が 2 回発生します)。

あなたの解釈 'b' (私が正しく理解している場合) では許可されるが、'a' では許可されない (XML 仕様では許可されない) シーケンスの例は、some_node2、some_node2、some_node3 です。

于 2013-07-24T18:18:47.377 に答える