<!ELEMENT office      (library | error)>
<!ELEMENT library     (field-list, record-list)>
<!ELEMENT field-list  (field+)>
<!ELEMENT field       (#PCDATA)>
<!ELEMENT record-list (record+)>
<!ELEMENT record      (create-time, creator?, modify-time, modifier?, value*)>
<!ELEMENT create-time (#PCDATA)>
<!ELEMENT creator     (#PCDATA)>
<!ELEMENT modify-time (#PCDATA)>
<!ELEMENT modifier    (#PCDATA)>
<!ELEMENT value       (#PCDATA | url | date | time | datetime | timespan | file | reference)*>
<!ELEMENT url         (#PCDATA)>
<!ELEMENT file        (name, url?)>
<!ELEMENT name        (#PCDATA)>
<!ELEMENT date        (#PCDATA)>
<!ELEMENT time        (#PCDATA)>
<!ELEMENT datetime    (#PCDATA)>
<!ELEMENT timespan    (#PCDATA)>
<!ELEMENT reference   (value?)>
<!ELEMENT error       (#PCDATA)>

<!ATTLIST office    version    CDATA #REQUIRED>
<!ATTLIST library   id         CDATA #REQUIRED>
<!ATTLIST library   name       CDATA #REQUIRED>
<!ATTLIST field     id         CDATA #REQUIRED>
<!ATTLIST field     type       (String|Text|Number|URL|Boolean|Radio|Select|User|Date|Time|DateTime|File|Image|Calc|Numbering|TimeSpan|TimeCalc|Relation|CountButton|AppFile|AppAddress|CurTimeCalc|CheckBoxList) #REQUIRED>
<!ATTLIST record    id         CDATA #REQUIRED>
<!ATTLIST creator   id         CDATA #REQUIRED>
<!ATTLIST modifier  id         CDATA #REQUIRED>
<!ATTLIST value     id         CDATA #REQUIRED>
<!ATTLIST value     type       (String|Text|Number|URL|Boolean|Radio|Select|User|Date|Time|DateTime|File|Image|Calc|Numbering|TimeSpan|TimeCalc|Relation|CountButton|AppFile|AppAddress|CurTimeCalc|CheckBoxList) #REQUIRED>
<!ATTLIST url       alias      CDATA #IMPLIED>
<!ATTLIST file      id         CDATA #REQUIRED>
<!ATTLIST file      mime       CDATA #IMPLIED>
<!ATTLIST file      size       CDATA #IMPLIED>
<!ATTLIST reference library-id CDATA #REQUIRED>
<!ATTLIST reference record-id  CDATA #REQUIRED>
