2015-10-24 3 views
1

Я следую курсу по XML и выполняю упражнение на DTD. Мои ответы не совпадают с данными сайта.XML-DTD: Является ли эта коррекция ложной?

УПРАЖНЕНИЕ

  • библиотека должна иметь по крайней мере одна книга
  • Каждая книга имеет обязательный атрибут: жанр.
  • Жанр должен быть одним из следующих: художественная, драматическая, приключенческая.
  • Каждая книга должна иметь книгу и автора.

Моя коррекция

<!DOCTYPE bibliotheque[ 
    <!ELEMENT bibliotheque (livre)+> 

    <!ELEMENT livre (titre, auteur)> 
    <!ATTLIST livre (fiction|drame|aventure) #REQUIRED> 

    <!ELEMENT titre (#PCDATA) #REQUIRED> 
    <!ELEMENT auteur (#PCDATA) #REQUIRED> 
]> 

коррекции сайта

<!ELEMENT racine (livre)+ > 

<!ELEMENT livre (titre, auteur)+ > 
<!ATTLIST livre genre (fiction,drame,aventure) #REQUIRED> 

<!ELEMENT auteur (#PCDATA) > 
<!ELEMENT titre (#PCDATA) > 

на вопросы следующие:

  • Я не считал, что в одной книге может быть более одного автора, поэтому зачем стоит помещать на нее знак +.
  • Я считал, что жанр должен быть одним из перечисленных жанров, поэтому я использовал | и не могу понять решение сайта использовать запятую.
  • Название и автор логически required.

Благодарим за помощь.

ответ

1

Ну, вы правы, и сайт не прав.

<!ELEMENT livre (titre, auteur)+ > 

означает, что последовательность титр 'then' auteur повторяема, что не имеет смысла. Кстати, один заголовок и несколько авторов было бы написано:

<!ELEMENT livre (titre, auteur+) > 

и перечисление на атрибут определенно:

<!ATTLIST livre (fiction|drame|aventure) #REQUIRED> 

запятые не имеет смысла здесь.

+0

Спасибо. Ты прав :) –

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