2013-07-24 3 views
1

Так что - у меня это заявление в моем .dtd файле:xml dtd - что делает + квантификатор в этом элементе?

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

Что + средства здесь?

a) что some_node2?, some_node3, (some_node4 | some_node5)* последовательность может повторяться 1 или более раз?

b) что отдельные элементы в скобках могут повторяться 1 или более раз ?, то есть some_node3, some_node3, some_node3, some_node3, some_node5, some_node5?

ответ

2

Условное обозначение «a» является правильным: последовательность может возникать один или несколько раз.

примера вы даете под «Ъ», однако, остается законным: последовательность < some_node3, some_node3, some_node3, some_node3, some_node5, some_node5> может быть построен путем конкатенации четыре вхождения последовательности, указанной в модели содержимого:

  1. some_node3 (нулевые вхождения some_node2, за которым следует одно появление some_node3, за которым следует нулевой выбор между some_node4 и some_node5).
  2. some_node3 (смотри выше)
  3. some_node3, some_node5, some_node5 (ноль вхождения some_node2, после чего точно одно вхождение some_node3, а затем два вхождений выбора между some_node4 и some_node5).

Пример такой последовательности, которая будет разрешена в соответствии с вашей интерпретацией «б» (если я правильно понял), но не под «а» (а не по XML спецификации) является some_node2, some_node2, some_node3.

 Смежные вопросы

  • Нет связанных вопросов^_^