
<!ENTITY % id-type "(guid, new)">
<!ENTITY % default-id-type "guid">

<!ELEMENT cmdty:space (#PCDATA)>
<!ELEMENT cmdty:id (#PCDATA)>

<!ENTITY % commodity-type "(cmdty:space, cmdty:id)">

<!ENTITY % slot-types "(integer | double | numeric | string | guid | binary | glist | frame)">

<!ELEMENT ts:date (#PCDATA)>
<!ELEMENT ts:ns (#PCDATA)>

<!ENTITY % date-type "(ts:date, ts:ns?)">

<!-- this stuff isn't quite right -->
<!ELEMENT slot (slot:key, slot:value)>

<!ELEMENT slot:key (#PCDATA)>

<!ENTITY % slot-val-type "(slot+?, slot:value+?, #PCDATA?)">

<!ELEMENT slot:value %slot-val-type;>

<!ATTLIST slot:value type %slot-types; "string">

<!ENTITY % slot-type "(slot+)">

