<!ELEMENT FIELD EMPTY >
<!ATTLIST FIELD DECIMALS NMTOKEN #IMPLIED >
<!ATTLIST FIELD DEFAULT NMTOKEN #IMPLIED >
<!ATTLIST FIELD ENUM ( false | true ) #REQUIRED >
<!ATTLIST FIELD ENUMVALUES CDATA #IMPLIED >
<!ATTLIST FIELD LENGTH NMTOKEN #REQUIRED >
<!ATTLIST FIELD NAME NMTOKEN #REQUIRED >
<!ATTLIST FIELD NEXT NMTOKEN #IMPLIED >
<!ATTLIST FIELD NOTNULL ( false | true ) #REQUIRED >
<!ATTLIST FIELD PREVIOUS NMTOKEN #IMPLIED >
<!ATTLIST FIELD SEQUENCE ( false | true ) #REQUIRED >
<!ATTLIST FIELD TYPE ( binary | char | float | int | number | text ) #REQUIRED >
<!ATTLIST FIELD UNSIGNED ( false | true ) #IMPLIED >

<!ELEMENT FIELDS ( FIELD+ ) >

<!ELEMENT INDEX EMPTY >
<!ATTLIST INDEX COMMENT CDATA #IMPLIED >
<!ATTLIST INDEX FIELDS CDATA #REQUIRED >
<!ATTLIST INDEX NAME NMTOKEN #REQUIRED >
<!ATTLIST INDEX NEXT NMTOKEN #IMPLIED >
<!ATTLIST INDEX PREVIOUS NMTOKEN #IMPLIED >
<!ATTLIST INDEX UNIQUE ( false | true ) #REQUIRED >

<!ELEMENT INDEXES ( INDEX+ ) >

<!ELEMENT KEY EMPTY >
<!ATTLIST KEY COMMENT CDATA #IMPLIED >
<!ATTLIST KEY FIELDS CDATA #REQUIRED >
<!ATTLIST KEY NAME NMTOKEN #REQUIRED >
<!ATTLIST KEY NEXT NMTOKEN #IMPLIED >
<!ATTLIST KEY PREVIOUS NMTOKEN #IMPLIED >
<!ATTLIST KEY TYPE ( primary | unique | foreign ) #REQUIRED >

<!ELEMENT KEYS ( KEY+ ) >

<!ELEMENT SENTENCE EMPTY >
<!ATTLIST SENTENCE TEXT CDATA #REQUIRED >

<!ELEMENT SENTENCES ( SENTENCE+ ) >

<!ELEMENT STATEMENT ( SENTENCES ) >
<!ATTLIST STATEMENT COMMENT CDATA #REQUIRED >
<!ATTLIST STATEMENT NAME CDATA #REQUIRED >
<!ATTLIST STATEMENT TABLE NMTOKEN #REQUIRED >
<!ATTLIST STATEMENT TYPE NMTOKEN #REQUIRED >

<!ELEMENT STATEMENTS ( STATEMENT ) >

<!ELEMENT TABLE ( FIELDS, KEYS, INDEXES? ) >
<!ATTLIST TABLE COMMENT CDATA #REQUIRED >
<!ATTLIST TABLE NAME ID #REQUIRED >
<!ATTLIST TABLE NEXT NMTOKEN #IMPLIED >
<!ATTLIST TABLE PREVIOUS NMTOKEN #IMPLIED >

<!ELEMENT TABLES ( TABLE+ ) >

<!ELEMENT XMLDB ( TABLES, STATEMENTS ) >
<!ATTLIST XMLDB COMMENT CDATA #REQUIRED >
<!ATTLIST XMLDB PATH CDATA #REQUIRED >
<!ATTLIST XMLDB VERSION NMTOKEN #REQUIRED >

