<!--
 SIXX root element.
-->
<!ELEMENT sixx (sixx.object+)>

<!--
 SIXX version string.
-->
<!ATTLIST sixx
 sixx.version CDATA "1.0"
>

<!--
 Actual object data. 
If it represents a genuine object, it must have an object-id (sixx.id) and a type (sixx.type).
If it represents a reference to another object, it must have an object-ref-id (sixx.idref).

It can have children objects (for composite) or literal string (for primitive value). 

-->
<!ELEMENT sixx.object (#PCDATA|sixx.object)*>

<!--
 Object class name.
-->
<!ATTLIST sixx.object
 sixx.type CDATA #IMPLIED
>

<!--
 Object name.
If it is used in a fixed object, it is an instance variable name. 
-->
<!ATTLIST sixx.object
 sixx.name CDATA #IMPLIED
>

<!--
 Object id (SIXX system automatically generates it).
The value is unique in one SIXX file.
-->
<!ATTLIST sixx.object
 sixx.id CDATA #IMPLIED
>

<!--
 Object reference id. It indicates the reference to other object.
The value is the object-id to that object.
-->
<!ATTLIST sixx.object
 sixx.idref CDATA #IMPLIED
>

<!--
 Object namespace. The value is currently implementation specific.
If the value is empty, the system supposes the namespace is 'Smalltalk'.
-->
<!ATTLIST sixx.object
 sixx.env CDATA #IMPLIED
>

<!--
 Object formatter name. This optional value specifies the formatter in the image.
The system will use the formatter in deserialization, if it is available.
-->
<!ATTLIST sixx.object
 sixx.formatter CDATA #IMPLIED
>

