<!ELEMENT topicmap (topics, relations, locators)>
<!ELEMENT topics (topic+)>
<!ELEMENT topic (derived-from*, name, alias?, desc?, status?)>
<!ATTLIST topic
	domain NMTOKENS #IMPLIED
	TID ID #REQUIRED
	crdate CDATA #REQUIRED
	modate CDATA #IMPLIED
>
<!ELEMENT derived-from EMPTY>
<!ATTLIST derived-from
	template IDREF #REQUIRED
>
<!ELEMENT name (#PCDATA)>
<!ELEMENT alias (#PCDATA)>
<!ELEMENT desc (#PCDATA | topicref | text)*>
<!ELEMENT status (#PCDATA | topicref | text)*>
<!ELEMENT relations (relation+)>
<!ELEMENT relation (roleref+)>
<!ATTLIST relation
	RelID NMTOKEN #REQUIRED
	crdate CDATA #REQUIRED
	modate CDATA #IMPLIED
>
<!ELEMENT locators (locator+)>
<!ELEMENT locator (uri)>
<!ATTLIST locator
	LID ID #REQUIRED
	crdate CDATA #REQUIRED
	modate CDATA #IMPLIED
>
<!ELEMENT uri (#PCDATA)>
<!ATTLIST uri
	href CDATA #REQUIRED
>
<!ELEMENT roleref ((topicref | locref)+)>
<!ATTLIST roleref
	RolID NMTOKEN #REQUIRED
>
<!ELEMENT topicref EMPTY>
<!ATTLIST topicref
	TID IDREF #REQUIRED
>
<!ELEMENT locref EMPTY>
<!ATTLIST locref
	LID IDREF #REQUIRED
>
<!ELEMENT text EMPTY>
<!ATTLIST text
	date CDATA #IMPLIED
>
