2

我昨天下载了TestLink源代码,并尝试在eclipse中构建它。我解决了我遇到的大多数错误,但我仍然有一个,这真的很紧张:

A '(' character or an element type is required in the declaration of element type "f".

此错误显示在两个 dtd 文件中。以下是其中之一的代码:

    <?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT schema (table*, sql*)>
<!ATTLIST schema version CDATA #REQUIRED>
<!ELEMENT table ((field+|DROP), CONSTRAINT*, descr?, index*, data*)>
<!ELEMENT field ((NOTNULL|KEY|PRIMARY)?, (AUTO|AUTOINCREMENT)?, (DEFAULT|DEFDATE|DEFTIMESTAMP)?, 
NOQUOTE?, CONSTRAINT*, descr?)>
<!ELEMENT data (row+)>
<!ELEMENT row (f+)>
<!ELEMENT f (#CDATA)>
<!ELEMENT descr (#CDATA)>
<!ELEMENT NOTNULL EMPTY>
<!ELEMENT KEY EMPTY>
<!ELEMENT PRIMARY EMPTY>
<!ELEMENT AUTO EMPTY>
<!ELEMENT AUTOINCREMENT EMPTY>
<!ELEMENT DEFAULT EMPTY>
<!ELEMENT DEFDATE EMPTY>
<!ELEMENT DEFTIMESTAMP EMPTY>
<!ELEMENT NOQUOTE EMPTY>
<!ELEMENT DROP EMPTY>
<!ELEMENT CONSTRAINT (#CDATA)>
<!ATTLIST table name CDATA #REQUIRED platform CDATA #IMPLIED version CDATA #IMPLIED>
<!ATTLIST field name CDATA #REQUIRED type (C|C2|X|X2|B|D|T|L|I|F|N) #REQUIRED size CDATA #IMPLIED>
<!ATTLIST data platform CDATA #IMPLIED>
<!ATTLIST f name CDATA #IMPLIED>
<!ATTLIST DEFAULT VALUE CDATA #REQUIRED>
<!ELEMENT index ((col+|DROP), CLUSTERED?, BITMAP?, UNIQUE?, FULLTEXT?, HASH?, descr?)>
<!ELEMENT col (#CDATA)>
<!ELEMENT CLUSTERED EMPTY>
<!ELEMENT BITMAP EMPTY>
<!ELEMENT UNIQUE EMPTY>
<!ELEMENT FULLTEXT EMPTY>
<!ELEMENT HASH EMPTY>
<!ATTLIST index name CDATA #REQUIRED platform CDATA #IMPLIED>
<!ELEMENT sql (query+, descr?)>
<!ELEMENT query (#CDATA)>
<!ATTLIST sql name CDATA #IMPLIED platform CDATA #IMPLIED, key CDATA, prefixmethod (AUTO|MANUAL|NONE) >

问题在于这一行:

<!ELEMENT f (#CDATA)>

并且在谷歌上找不到类似的东西。提前感谢您的任何建议。

4

1 回答 1

1

在元素声明中使用的任何地方#CDATA,都需要将其更改为#PCDATA

就这样<!ELEMENT f (#CDATA)>变成了<!ELEMENT f (#PCDATA)>

此外,您的 ATTLISTsql不正确。您需要删除逗号并将其中一个#IMPLIED或添加#REQUIREDkey. 您还需要为它执行此操作prefixmethod或为其提供默认值。

例子:

<!ATTLIST sql 
          name         CDATA               #IMPLIED 
          platform     CDATA               #IMPLIED
          key          CDATA               #IMPLIED
          prefixmethod (AUTO|MANUAL|NONE)  "NONE"   >
于 2013-01-31T15:25:04.863 回答