<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>如何为可以由多个ID值组成的Prerequisites属性编写ATTLIST规范,比如"CS106B CS105A"?下面的方法会起作用吗?
<!ATTLIST Course Number ID #REQUIRED>
<!ATTLIST Course Prerequisites IDREF #IMPLIED>发布于 2013-01-28 03:17:55
如果属性(Prerequisites)的值是ID值的列表,则可以使用IDREFS,该列表写成一个连接的字符串,其中包含一个空白字符作为分隔符,例如id1 id2
<ATTLIST Course Number ID #REQUIRED>
<ATTLIST Course Prerequisites IDREFS #IMPLIED>一个人可以validate a DTD against an XML online。
发布于 2013-01-28 05:09:43
就像孟路说的,你应该使用IDREFS (不同的链接)。
元素中的每个属性也不需要有单独的属性声明(ATTLIST)。
您的声明中还遗漏了一个非常重要的!。
示例:
<!ATTLIST Course
Number ID #REQUIRED
Prerequisites IDREFS #IMPLIED>发布于 2013-01-29 00:13:46
这是当前免费在线“DB入门”课程@ Stanford (http://class2go.stanford.edu/db/Winter2013/interactive_exercises/DTDExercises)的DTD练习之一。
正如所指出的,这很容易由您自己来运行。例如,我对xmllint运行它,如果我的DTD没有通过,xmllint就会告诉我。我遵循错误跟踪,直到它通过,然后提交它作为我对这个问题的答案(引用集中的#3)。
https://stackoverflow.com/questions/14549998
复制相似问题