当Element可以包含PCDATA和其他ELEMENT时,DTD的正确格式是什么

时间:2014-01-11 15:14:25

标签: xml dtd xml-dtd

我提供了一个XML文件,我想为数据集编写DTD。

这是我正在努力解决的部分的片段。

<Course Number="CS124" Prerequisites="CS107 CS109" Instructors="DJ" Enrollment="60">
  <Title>From Languages to Information</Title>
  <Description>
    Natural language processing. Cross-listed as
    <Courseref Number="LING180"/>
    . 
    </Description>
</Course>
<Course Number="CS143" Prerequisites="CS107" Instructors="AA" Enrollment="90">
  <Title>Compilers</Title>
  <Description>
    Principles and practices for design and implementation of compilers and interpreters.
  </Description>
</Course>

当元素中有PCDATA时,使DTD适合XML的正确方法是什么,还可选择其他ELEMENT? (见元素描述)

我认为这样的事情会起作用:

<!ELEMENT Description ((#PCDATA | Courseref)*)>

但后来我得到一个解析错误:

  

ContentDecl:名称或'('预期

为此XML写出有效的DTD的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

你的括号太多了:

<!ELEMENT Description (#PCDATA | Courseref)*>

答案 1 :(得分:0)

<!ELEMENT Courseref EMPTY>
<!ATTLIST Courseref Number CDATA #IMPLIED>