XML-DTD:这个修正是错误的吗?

时间:2015-10-24 17:12:31

标签: xml dtd

我正在学习XML课程并正在进行DTD练习。我的答案与网站的答案不符。

EXERCISE

  
      
  • 图书馆必须至少有一本书
  •   
  • 每本书都有一个强制属性:流派。
  •   
  • 该类型必须是以下之一:小说,戏剧,冒险。
  •   
  • 每本书都必须有一本书和作者。
  •   

我的更正

<!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 个答案:

答案 0 :(得分:1)

嗯,你是对的,网站是错的。

<!ELEMENT livre (titre, auteur)+ >

意味着序列滴定&#39;然后&#39; auteur是可重复的,这是没有道理的。顺便说一句,将写一个标题和几个作者:

<!ELEMENT livre (titre, auteur+) > 

并且属性上的枚举肯定是:

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

逗号在这里毫无意义。