Question

I downloaded yesterday TestLink source code and I try to buil it in eclipse. I resolved most errors which I had, but still I have one, which is really nervous:

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

This error shows in two dtd files. Here is code from one of them:

    <?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) >

The problem is with this line:

<!ELEMENT f (#CDATA)>

And can't find anything similar on google. Thanks in advance for any suggestion.

Was it helpful?

Solution

Anywhere you use #CDATA in an element declaration, you need to change it to #PCDATA

So <!ELEMENT f (#CDATA)> becomes <!ELEMENT f (#PCDATA)>.

Also, your ATTLIST for sql is not correct. You need to remove the commas and add either #IMPLIED or #REQUIRED to key. You also need to do this for prefixmethod or give it a default value.

Example:

<!ATTLIST sql 
          name         CDATA               #IMPLIED 
          platform     CDATA               #IMPLIED
          key          CDATA               #IMPLIED
          prefixmethod (AUTO|MANUAL|NONE)  "NONE"   >
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top