1
<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 値で構成できる属性のATTLIST仕様をどのように記述しますか? 以下は機能しますか?Prerequisites"CS106B CS105A"

<!ATTLIST Course Number ID #REQUIRED>
<!ATTLIST Course Prerequisites IDREF #IMPLIED>
4

3 に答える 3

2

IDREFS属性()の値が、区切り文字として空白文字を使用した結合文字列として記述された値Prerequisitesのリストである場合に使用できます。IDid1 id2

<ATTLIST Course Number ID #REQUIRED>
<ATTLIST Course Prerequisites IDREFS #IMPLIED>

オンラインでXMLに対してDTDを検証できます。

于 2013-01-27T19:17:55.467 に答える
2

Meng Lu が言ったように、IDREFS (別のリンク) を使用する必要があります。

ATTLISTまた、要素内の属性ごとに個別の属性宣言 ( ) を用意する必要もありません。

!また、宣言に非常に重要なものがありません。

例:

<!ATTLIST Course 
          Number        ID     #REQUIRED
          Prerequisites IDREFS #IMPLIED>
于 2013-01-27T21:09:43.400 に答える
0

これは、スタンフォード大学 ( http://class2go.stanford.edu/db/Winter2013/interactive_exercises/DTDExercises )で行われている現在無料のオンライン「DB 入門」コースの DTD 演習の 1 つです。

指摘したように、これを自分で実行するのは簡単です。たとえば、それを xmllint に対して実行すると、xmllint は私の DTD が通らないかどうかを教えてくれます。合格するまでエラーの軌跡をたどり、それをこの質問に対する回答として提出します (参照セットの #3)。

于 2013-01-28T16:13:45.937 に答える