<!ELEMENT octave (scalar | complex | string | array | structure | list | cell)>

<!ELEMENT scalar (#PCDATA)>
<!ATTLIST scalar
	value (undefined | true | false | inf | neginf | na | nan) "undefined"
	name CDATA #IMPLIED>

<!ELEMENT complex (scalar, scalar)>
<!ATTLIST complex name CDATA #IMPLIED>

<!ELEMENT string (#PCDATA)>
<!ATTLIST string
	length CDATA #REQUIRED
	name CDATA #IMPLIED>

<!ELEMENT array (string, string+)>
<!ATTLIST array
	rows CDATA #REQUIRED
	name CDATA #IMPLIED>

<!ELEMENT matrix (scalar | complex)*>
<!ATTLIST matrix
	rows CDATA #REQUIRED
	columns  CDATA #REQUIRED
	name CDATA #IMPLIED>

<!ELEMENT structure ANY>
<!ATTLIST structure name CDATA #IMPLIED>

<!ELEMENT list ANY>
<!ATTLIST list
	length CDATA #REQUIRED
	name CDATA #IMPLIED>

<!ELEMENT cell ANY>
<!ATTLIST cell
	rows CDATA #REQUIRED
	columns CDATA #REQUIRED
	name CDATA #IMPLIED>
