<!-- topicMap: root element --> <!ELEMENT topicMap ( topic | association | mergeMap )* > <!ATTLIST topicMap id ID #IMPLIED xmlns CDATA #FIXED 'http://www.isotopicmaps.org/TMMM/STM-%%VERSIONNUMBER%%/' > <!-- topic: referenceable syntactic surrogate of a subject --> <!ELEMENT topic ( instanceOf*, subjectIdentity?, ( name | occurrence )* ) > <!ATTLIST topic id ID #REQUIRED > <!-- instanceOf: points to a <topic> representing a class --> <!ELEMENT instanceOf (a) > <!-- subjectIdentity: pointers to subject indicators --> <!ELEMENT subjectIdentity ( a* ) > <!-- a: wrapper for an -href- attribute --> <!ELEMENT a EMPTY > <!ATTLIST a href CDATA #REQUIRED id ID #IMPLIED > <!-- name: a name of the subject of the containing <topic> --> <!ELEMENT name ( text, space?, scope?) > <!-- NOTE: The default topic name space is the empty set (of topics). (Every topic-name relationship exists within at least one namespace.) --> <!-- NOTE: The default scope in which topics have their names is the empty set (of topics). --> <!-- text: the name in #PCDATA form --> <!ELEMENT text ( #PCDATA ) > <!-- space: pointer to a <topic> or subject indicator whose subject is the name space within which the topic has the name --> <!ELEMENT space (a) > <!-- scope: pointers to <topic>s or other indicators of subjects that comprise the scope --> <!ELEMENT scope (a)+ > <!-- occurrence: relationship between a subject and relevant information --> <!ELEMENT occurrence ( instanceOf?, scope?, a ) > <!-- NOTE: <instanceOf> points at an assertion type that is either the topic-occurrence assertion type (the default), or one of its subclasses. --> <!-- association: relationship between 2 or more subjects, each playing one or more distinct roles --> <!ELEMENT association ( instanceOf, scope?, member, member+ ) > <!ATTLIST association id ID #IMPLIED > <!-- member: a casting of a role player in a role in a relationship --> <!ELEMENT member ( roleSpec, ( a )* ) > <!-- roleSpec: pointer to a topic whose subject is the role --> <!ELEMENT roleSpec (a) <!-- mergeMap: Include (merge with) other topic maps --> <!ELEMENT mergeMap ( a )+ >