<Course Number="CS105A" Prerequisites="CS101A" Instructors="JC XX" Enrollment="610">
<Title>Programming XXX</Title>
<Description>Abstraction and its relation to programming.</Description>
</Course>
<Course Number="CS106B" Prerequisites="CS106A" Instructors="JC ER" Enrollment="620">
<Title>Programming Abstractions</Title>
<Description>Abstraction and its relation to programming.</Description>
</Course>
<Course Number="CS107" Prerequisites="CS106B CS105A" Instructors="JZ" Enrollment="500">
<Title>Computer Organization and Systems</Title>
<Description>Introduction to the fundamental concepts of computer systems.</Description>
</Course>
如何为ATTLIST
属性编写Prerequisites
规范,该属性可以由多个ID值组成,例如"CS106B CS105A"
?以下是否有效?
<!ATTLIST Course Number ID #REQUIRED>
<!ATTLIST Course Prerequisites IDREF #IMPLIED>
答案 0 :(得分:2)
如果属性(Prerequisites
)的值是ID
值的列表,则可以使用IDREFS
作为连接字符串写入,并将空白字符作为分隔符,即{ {1}}:
id1 id2
答案 1 :(得分:2)
您也不需要为元素中的每个属性分别设置属性声明(ATTLIST
)。
您的声明中也遗漏了一个非常重要的!
。
示例:
<!ATTLIST Course
Number ID #REQUIRED
Prerequisites IDREFS #IMPLIED>
答案 2 :(得分:0)
这是当前免费在线“数据库简介”的DTD练习之一。当然@斯坦福(http://class2go.stanford.edu/db/Winter2013/interactive_exercises/DTDExercises)。
正如所指出的那样,您可以轻松自行运行。例如,我对xmllint运行它,xmllint告诉我DTD是否通过。我按照错误路径直到它通过,然后将其作为我对此问题的答案(参考集中的#3)。