1

多くのドキュメントが見つからないように見えるエラーが発生します。

これはXMLのスニペットです。

<Department Code="LING" Chair="BL">
  <Title>Linguistics</Title>
  <Course Number="LING180" Prerequisites="CS107 CS109" Instructors="DJ" Enrollment="60">
    <Title>From Languages to Information</Title>
    <Description>
      Natural language processing. Cross-listed as
      <Courseref Number="CS124"/>
    </Description>
  </Course>
  <Lecturer InstrID="DJ">
    <First_Name>Dan</First_Name>
    <Middle_Init>D.</Middle_Init>
    <Last_Name>Jurafsky</Last_Name>
  </Lecturer>
  <Professor InstrID="BL">
    <First_Name>Beth</First_Name>
    <Last_Name>Levin</Last_Name>
  </Professor>
  <Lecturer InstrID="FZ">
    <First_Name>Frank</First_Name>
    <Last_Name>Zoidberg</Last_Name>
  </Lecturer>
</Department>

これが私のDTDです

<!ELEMENT Course_Catalog (Department*)>
<!ELEMENT Department (Title, Course+, Professor+, Lecturer?)>
<!ATTLIST Department Code CDATA #REQUIRED
  Chair IDREFS #REQUIRED>
<!ELEMENT Course (Title, Description)>
<!ATTLIST Course Number ID #REQUIRED
  Prerequisites IDREFS #IMPLIED
  Instructors IDREFS #REQUIRED
  Enrollment CDATA #IMPLIED>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Description (#PCDATA | Courseref)*>
<!ELEMENT Courseref EMPTY>
<!ELEMENT Courseref Course IDREF #REQUIRED>
<!ELEMENT Professor (First_Name, Middle_Initial?, Last_Name)>
<!ATTLIST Professor InstrID ID #REQUIRED>
<!ELEMENT Lecturer (First_Name, Middle_Initial?, Last_Name)>
<!ATTLIST Lecturer InstrID ID #REQUIRED>
<!ELEMENT First_Name (#PCDATA)>
<!ELEMENT Middle_Initial (#PCDATA)>
<!ELEMENT Last_Name (#PCDATA)>

私がお互いに関係している2つのエラーを最初に受けているというエラーは

 parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected

そして次

 parser error : Content error in the external subset

これは少し曖昧ですが、IDとIDREFSに関係していると思います。ご覧のとおり、講師と教授の両方が同じIDポインタ参照を持っています。Department属性のChairとCourse属性のInstructorは、どちらもInstrIDを指します。およびCourseELEMENTは、両方とも前提条件を通じて他のコースを参照し、説明の中でCourserefを介して参照されます。ご覧のとおり、多くのことが渡されています。私はDTDを通じて知っていますが、そこに何かがある限り、参照されるIDを実際に制限することはできません。

しかし、私はこのエラーを理解することができません私はそれらを間違った順序で配置していますか、それとも私のID-IDREFSは間違っていますか?どんな助けでも素晴らしいでしょう

4

2 に答える 2

5
<!ELEMENT Courseref Course IDREF #REQUIRED> 

これは ELEMENT ではなく ATTLIST である必要があります

于 2013-01-22T06:28:01.507 に答える
2

私は同じ演習を行っており、最終的に終了する必要があります..単一のビューで間違いを見ることができます。これは次のとおりです。

 Department (Title, Course+, Professor+, Lecturer?)

私はこのようにしました:

Department (Title,Course*,(Professor|Lecturer)*)

タイトル(1)、コース(0..n)、教授または講師(交互に0..n)

于 2013-01-28T01:09:53.643 に答える