Разница между двумя простыми объявлениями DTD

Может ли кто-нибудь объяснить разницу между следующими операторами DTD?

<!ELEMENT all (book+, dvd+)>

а также

<!ELEMENT all (book, dvd)+>

person David    schedule 19.08.2013    source источник


Ответы (2)


Модель контента (книга+, dvd+) соответствует последовательности элементов: сначала один или несколько элементов книги (это book+), затем (это ,) один или несколько элементов dvd (это dvd+). Таким образом, этой модели контента соответствует следующее:

  1. <book/><dvd/>
  2. <book/><book/><book/><dvd/>
  3. <book/><dvd/><dvd/><dvd/><dvd/><dvd/>
  4. <book/><book/><book/><book/><dvd/><dvd/>

и т.п.

Модель контента (книга, dvd)+ соответствует одному или нескольким вхождениям последовательности, состоящей из одной книги, за которой следует один dvd. Таким образом, следующее соответствует этому:

  1. <book/><dvd/>
  2. <book/><dvd/><book/><dvd/>
  3. <book/><dvd/><book/><dvd/><book/><dvd/>
  4. <book/><dvd/><book/><dvd/><book/><dvd/><book/><dvd/>

и т.п.

Разница в том, что в первом выражении два оператора + применяются к именам отдельных элементов book и dvd; во втором + относится к последовательности (книге, DVD) в целом.

Обратите внимание, что первый пример в каждом списке является допустимым для обеих моделей контента, а остальные — нет.

person C. M. Sperberg-McQueen    schedule 19.08.2013

С 0 знанием dtd:

Я бы сказал, что первый должен содержать как минимум 1 книгу И 1 DVD. Но может содержать много книг и/или DVD.

Второй должен содержать как минимум 1 книгу ИЛИ 1 DVD. Но может содержать много книг и/или DVD.

person nl-x    schedule 19.08.2013
comment
Извините, неправильный ответ. Оба должны содержать по крайней мере одну книгу и по крайней мере один DVD. - person C. M. Sperberg-McQueen; 19.08.2013
comment
@C.M.Sperberg-McQueen Вы уверены? Хм. Хорошо, если ты так говоришь. Как насчет этой теории: первый должен содержать как минимум 1 книгу и 1 DVD. Второй тоже, но должен иметь такое же количество DVD, как и книг? - person nl-x; 20.08.2013