<!DOCTYPE logiqx [
<!ELEMENT datafile (header?, game+, dir*)>
    <!ATTLIST datafile build CDATA #IMPLIED>
    <!ATTLIST datafile debug (yes|no) "no">
    <!ATTLIST datafile schemaLocation CDATA #IMPLIED>
    <!ELEMENT header (id?, name, description, rootdir?, category?, version, date?, author, email?, homepage?, url?, comment?, subset?, type?, romvault?, clrmamepro?, romcenter?)>
        <!ELEMENT id (#PCDATA)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT description (#PCDATA)>
        <!ELEMENT rootdir (#PCDATA)>
        <!ELEMENT category (#PCDATA)>
        <!ELEMENT version (#PCDATA)>
        <!ELEMENT date (#PCDATA)>
        <!ELEMENT author (#PCDATA)>
        <!ELEMENT email (#PCDATA)>
        <!ELEMENT homepage (#PCDATA)>
        <!ELEMENT url (#PCDATA)>
        <!ELEMENT comment (#PCDATA)>
        <!ELEMENT subset (#PCDATA)>
        <!ELEMENT type (#PCDATA)>
        <!ELEMENT romvault EMPTY>
            <!ATTLIST romvault header CDATA #IMPLIED>
            <!ATTLIST romvault forcemerging (none|split|merged|nonmerged|fullmerged|device|full) "split">
            <!ATTLIST romvault forcenodump (obsolete|required|ignore) "obsolete">
            <!ATTLIST romvault forcepacking (zip|unzip) "zip">
            <!ATTLIST romvault dir (noautodir|nogame)>
        <!ELEMENT clrmamepro EMPTY>
            <!ATTLIST clrmamepro header CDATA #IMPLIED>
            <!ATTLIST clrmamepro forcemerging (none|split|merged|nonmerged|fullmerged|device|full) "split">
            <!ATTLIST clrmamepro forcenodump (obsolete|required|ignore) "obsolete">
            <!ATTLIST clrmamepro forcepacking (zip|unzip) "zip">
        <!ELEMENT romcenter EMPTY>
            <!ATTLIST romcenter plugin CDATA #IMPLIED>
            <!ATTLIST romcenter rommode (none|split|merged|unmerged|fullmerged|device|full) "split">
            <!ATTLIST romcenter biosmode (none|split|merged|unmerged|fullmerged|device|full) "split">
            <!ATTLIST romcenter (none|split|merged|unmerged|fullmerged|device|full) "merged">
            <!ATTLIST romcenter lockrommode (yes|no) "no">
            <!ATTLIST romcenter lockbiosmode (yes|no) "no">
            <!ATTLIST romcenter locksamplemode (yes|no) "no">
    <!ELEMENT game (comment*, description, year?, manufacturer?, publisher?, serial?, version?, category*, trurip?, release*, biosset*, rom*, disk*, media*, device_ref*, sample*, archive*, driver?, softwarelist*, url?, hash?)>
        <!ATTLIST game name CDATA #REQUIRED>
        <!ATTLIST game sourcefile CDATA #IMPLIED>
        <!ATTLIST game isbios (yes|no) "no">
        <!ATTLIST game isdevice (yes|no) "no">
        <!ATTLIST game ismechanical (yes|no) "no">
        <!ATTLIST game cloneof CDATA #IMPLIED>
        <!ATTLIST game romof CDATA #IMPLIED>
        <!ATTLIST game sampleof CDATA #IMPLIED>
        <!ATTLIST game board CDATA #IMPLIED>
        <!ATTLIST game rebuildto CDATA #IMPLIED>
        <!ATTLIST game id CDATA #IMPLIED>
        <!ATTLIST game cloneofid CDATA #IMPLIED>
        <!ATTLIST game runnable (no|partial|yes) "no">
        <!ATTLIST game type (dir|zip|7z)>
        <!ELEMENT description (#PCDATA)>
        <!ELEMENT year (#PCDATA)>
        <!ELEMENT manufacturer (#PCDATA)>
        <!ELEMENT publisher (#PCDATA)>
        <!ELEMENT serial (#PCDATA)>
        <!ELEMENT version (#PCDATA)>
        <!ELEMENT category (#PCDATA)>
        <!ELEMENT trurip (titleid?, publisher?, developer?, year?, genre?, subgenre?, ratings?, score?, players?, enabled?, crc?, source?, cloneof?, relatedto?)>
            <!ELEMENT titleid (#PCDATA)>
            <!ELEMENT publisher (#PCDATA)>
            <!ELEMENT developer (#PCDATA)>
            <!ELEMENT year (#PCDATA)>
            <!ELEMENT genre (#PCDATA)>
            <!ELEMENT subgenre (#PCDATA)>
            <!ELEMENT ratings (#PCDATA)>
            <!ELEMENT score (#PCDATA)>
            <!ELEMENT players (#PCDATA)>
            <!ELEMENT enabled (#PCDATA)>
            <!ELEMENT crc (#PCDATA)>
            <!ELEMENT source (#PCDATA)>
            <!ELEMENT cloneof (#PCDATA)>
            <!ELEMENT relatedto (#PCDATA)>
        <!ELEMENT release EMPTY>
            <!ATTLIST release name CDATA #REQUIRED>
            <!ATTLIST release region CDATA #REQUIRED>
            <!ATTLIST release language CDATA #IMPLIED>
            <!ATTLIST release date CDATA #IMPLIED>
            <!ATTLIST release default (yes|no) "no">
        <!ELEMENT biosset EMPTY>
            <!ATTLIST biosset name CDATA #REQUIRED>
            <!ATTLIST biosset description CDATA #REQUIRED>
            <!ATTLIST biosset default (yes|no) "no">
        <!ELEMENT rom EMPTY>
            <!ATTLIST rom name CDATA #REQUIRED>
            <!ATTLIST rom size CDATA #REQUIRED>
            <!ATTLIST rom crc CDATA #IMPLIED>
            <!ATTLIST rom md2 CDATA #IMPLIED>
            <!ATTLIST rom md4 CDATA #IMPLIED>
            <!ATTLIST rom md5 CDATA #IMPLIED>
            <!ATTLIST rom ripemd128 CDATA #IMPLIED>
            <!ATTLIST rom ripemd160 CDATA #IMPLIED>
            <!ATTLIST rom sha1 CDATA #IMPLIED>
            <!ATTLIST rom sha256 CDATA #IMPLIED>
            <!ATTLIST rom sha384 CDATA #IMPLIED>
            <!ATTLIST rom sha512 CDATA #IMPLIED>
            <!ATTLIST rom spamsum CDATA #IMPLIED>
            <!ATTLIST rom blake3 CDATA #IMPLIED>
            <!ATTLIST rom xxh3_64 CDATA #IMPLIED>
            <!ATTLIST rom xxh3_128 CDATA #IMPLIED>
            <!ATTLIST rom merge CDATA #IMPLIED>
            <!ATTLIST rom status (baddump|nodump|good|verified) "good">
            <!ATTLIST rom serial CDATA #IMPLIED>
            <!ATTLIST rom header CDATA #IMPLIED>
            <!ATTLIST rom date CDATA #IMPLIED>
            <!ATTLIST rom inverted (yes|no) "no">
            <!ATTLIST rom mia (yes|no) "no">
        <!ELEMENT disk EMPTY>
            <!ATTLIST disk name CDATA #REQUIRED>
            <!ATTLIST disk md5 CDATA #IMPLIED>
            <!ATTLIST disk sha1 CDATA #IMPLIED>
            <!ATTLIST disk merge CDATA #IMPLIED>
            <!ATTLIST disk status (baddump|nodump|good|verified) "good">
            <!ATTLIST disk region CDATA #IMPLIED>
        <!ELEMENT media EMPTY>
            <!ATTLIST media name CDATA #REQUIRED>
            <!ATTLIST media md5 CDATA #IMPLIED>
            <!ATTLIST media sha1 CDATA #IMPLIED>
            <!ATTLIST media sha256 CDATA #IMPLIED>
            <!ATTLIST media spamsum CDATA #IMPLIED>
        <!ELEMENT device_ref EMPTY>
            <!ATTLIST device_ref name CDATA #REQUIRED>
        <!ELEMENT sample EMPTY>
            <!ATTLIST sample name CDATA #REQUIRED>
        <!ELEMENT archive EMPTY>
            <!ATTLIST archive name CDATA #REQUIRED>
        <!ELEMENT driver EMPTY>
            <!ATTLIST driver status (good|imperfect|preliminary) #REQUIRED>
            <!ATTLIST driver emulation (good|imperfect|preliminary) #REQUIRED>
            <!ATTLIST driver cocktail (good|imperfect|preliminary) #REQUIRED>
            <!ATTLIST driver savestate (supported|unsupported) #REQUIRED>
            <!ATTLIST driver requiresartwork (yes|no) "no">
            <!ATTLIST driver unofficial (yes|no) "no">
            <!ATTLIST driver nosoundhardware (yes|no) "no">
            <!ATTLIST driver incomplete (yes|no) "no">
        <!ELEMENT softwarelist EMPTY>
            <!ATTLIST softwarelist tag CDATA #REQUIRED>
            <!ATTLIST softwarelist name CDATA #REQUIRED>
            <!ATTLIST softwarelist status (original|compatible) #REQUIRED>
            <!ATTLIST softwarelist filter CDATA #IMPLIED>
        <!ELEMENT url (#PCDATA)>
        <!ELEMENT hash (#PCDATA)>
    <!ELEMENT dir (dir*, game*)>
        <!ATTLIST dir name CDATA #REQUIRED>
]>