The informative Topic Maps website maintained by Michel Biezunski (InfoLoom) and Steven R. Newcomb (Coolheads Consulting) |
|
|
An API to a Topic Maps Graph, in XML
Michel Biezunski and Steven R. Newcomb
June 27, 2001.
Text version of this DTD: http://www.topicmaps.net/TMGraphAPI3.dtd
Yet Another DTD for renditions-as-XML of Topic Maps Graphs. ("Topic Maps Graphs" a la http://www.topicmaps.net/pmtm4.htm)
CLAIMER: This TMGraphAPI3.dtd DTD is designed to express
topic maps in such a way as to permit the information that
they contain to be directly and comprehensively accessible
via even the simplest DOM applications. This appears to be
a possible way to publish topic maps, for use by DOM
applications that can't or shouldn't be required to create
or maintain an entire topic maps graph within themselves.
The authors request that all copies and translations of
Topicmaps.net's "API to a Topic Maps Graph Document Type Definition" be
complete and correct, including this and all other notices, and
including attribution to the authors by names and e-mail addresses,
please. The authors also request that any claims of conformance to
Topicmaps.net's Processing Model be accurate. Either a processing
system conforms to the model exactly and comprehensively in every
detail, or it does not conform, and no claim of conformance is
justified.
|
Root element type: <topicMapGraph>
Each <topicMapGraph>
element fully and consistently
represents a single topic maps graph that has been fully
rationalized and normalized. <topicMapGraph>
elements
conform to all of the constraints on topic maps graphs
that have been produced in accordance with all of the
rules governing the processing of topic maps. This DTD
is designed to allow the fully normalized topic maps to
be interchanged and used in contexts where topic map
engines are not available, while preserving some of the
formatting and querying flexibility provided by topic
map graphs.
<topicMapGraph>
elements contain many redundant
references. Wherever a topic maps graph provides an arc
that can be traversed in either direction,
<topicMapGraph>
elements provide referencing
information at the elements that correspond to both
ends of the arc, so that the same bidirectional
traversal capability is fully preserved even when only
the simplest XML hyperlinking technology is used to
render or browse the <topicMapGraph>
.
Some information in <topicMapGraph>
elements is
provided redundantly in order to make it convenient to
use the DOM API, for example, just as if it were a
simple API designed for topic maps graphs.
It is strongly recommended that all <topicMapGraph>
elements be automatically rendered from fully-processed
topic maps graphs. It is inadvisable to attempt to create a
<topicMapGraph>
element by any other method, or to edit a
<topicMapGraph>
by hand. If any method other than the
recommended method is used, the result is very likely to be
self-inconsistent, and it may cause applications to behave
inconsistently.
<topicMapGraph>
<!ELEMENT topicMapGraph (
aNode |
membership |
templateRoleRPR |
tNode |
sNode
)*
>
<!ATTLIST topicMapGraph
id ID #IMPLIED
xmlns CDATA #FIXED
'http://www.topicmaps.net/temporary/topicMapGraph/1.0/'
xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
xml:base CDATA #IMPLIED
>
|
<aNode> |
Each <aNode> represents a topic association. |
<membership> |
Each <membership> represents the fact
that a topic is a member of an association, and it
characterizes the topic's membership by referring to a
<templateRoleRPR> element that provides
information about the role being played, and the association
template, if any. |
<templateRoleRPR> |
Each <templateRoleRPR> characterizes an
association member role. If the role is specified by one or
more association templates, there is a
<templateRoleRPR> for each such
template/role combination. In addition, if the role appears in
one or more associations that do not have templates, there is
exactly one <templateRoleRPR> -- that
specifies no template -- that is used by all such template-less
associations to characterize the role. |
<tNode> |
Each <tNode> represents a topic. |
<sNode> |
Each <sNode> represents a scope. |
Primary Element Types
<tNode>
Each <tNode>
element represents a topic. -->
<!ELEMENT tNode (
constitutedBy?,
indicatedBy*,
isMember*,
componentOfScope*,
isRoleOf*,
isTemplateHasRole*,
isRPROf*,
isTemplateOf*
)
>
<!ATTLIST tNode
id ID #REQUIRED
>
|
<constitutedBy> |
References a subject constituter.
Used only if the subject of this
<tNode> is an addressable subject,
i.e., an information resource
considered as an information
resource, rather than in terms of
what it means or indicates. |
<indicatedBy> |
' Each references a subject indicator. There really should be at
least one of these. It is OK for the
<tNode> to reference itself, i.e., to use
itself as a binding point, but it must be done explicitly;
processing systems will not assume that the
<tNode> is one of its own binding points
automatically. |
<isMember> |
Each references a <membership> that
contains a <memberRef> that references
this <tNode> . Used only if this
<tNode> is a member of an
association. |
<componentOfScope> |
Each references an <sNode> that contains
a <hasComponent> that references this
<tNode> . Used only if this
<tNode> is a component of a scope.
|
<isRoleOf> |
Each references a <templateRoleRPR>
whose <roleRef> references this
<tNode> . Used only if this
<tNode> 's subject is an association role
in any association. |
<isTemplateHasRole> |
Each references a <templateRoleRPR>
whose <templateRef> references this
<tNode> . Used only if this
<tNode> 's subject is an association
template. |
<isRPROf> |
Each references a <templateRoleRPR>
whose <RPRRef> references this
<tNode> . Used only if this
<tNode> 's subject is the class of which
all players of a given role must be instances. |
<isTemplateOf> |
Each references an <aNode> that contains
a <templateRef> that references this
<tNode> . Used only if this
<tNode> 's subject is an association
template. |
<aNode>
Each <aNode>
represents a topic association.
<!ELEMENT aNode (
templateRef?,
indicatedBy*,
hasMember*,
isMember*,
componentOfScope*,
hasScope+
)
>
<!ATTLIST aNode
id ID #REQUIRED
>
|
<templateRef> |
References a <tNode> whose subject is
the template of the class of associations of which the
association represented by this <aNode>
is an instance. Used only if this
<aNode> has a template. |
<indicatedBy> |
Each references a subject indicator. There really should
be at least one of these. It is OK for the
<aNode> to reference itself, i.e., to
use itself as a binding point, but it must be done
explicitly; processing systems will not assume that the
<aNode> is one of its own binding points
automatically. Note: the subject of an
<aNode> is *always* the relationship
(the "association") that it represents. |
<hasMember*,> |
Each references a <membership> that
contains an <associationRef> that refers
back to the <aNode> . Used only if the
association represented by the <aNode>
has one or more members. |
<isMember> |
Each references a <membership> that
contains a <memberRef> that references
this <aNode> . Used only if this
<aNode> is a member of an
association. |
<componentOfScope> |
Each references an <sNode> that contains
a <hasComponent> that references this
<aNode> . Used only if this
<aNode> is a component of a scope.
|
<hasScope> |
Each references an <sNode> that contains
an <isScopeOf> that references this
<aNode> . Every
<aNode> always has at least one scope,
so there is always at least one
<hasScope> element in each
<aNode> . |
<sNode>
Each <sNode>
represents a scope.
<!ELEMENT sNode (
hasComponent*,
isScopeOf+
)
>
<!ATTLIST sNode
id ID #REQUIRED
>
|
<hasComponent> |
Each references a <tNode> or
<aNode> that contains an
<componentOfScope> element that
references this <sNode> . The scope
represented by an <sNode> is the set of
topics that are referenced by the
<hasComponent> elements contained in the
<sNode> . Note: In any given
<topicMapGraph> , it is possible/likely
that there will be an <sNode> that
contains no <hasComponent> elements; the
null set of topics is a valid scope. |
<isScopeOf> |
Each references an <aNode> that contains
a <hasScope> element that references
this <sNode> . The
<aNode> s that are referenced by the
<isScopeOf> element have as one of their
scopes the scope represented by this
<sNode> . |
<membership>
<!ELEMENT membership (
memberRef,
associationRef,
templateRoleRPRRef,
scopeRef+
)
>
<!ATTLIST membership
id ID #REQUIRED
>
|
Each <membership>
element characterizes the
membership of an association member in an association.
<memberRef> |
References a <tNode> or
<aNode> that contains an
<isMember> element that references this
<membership> . The referenced
<tNode> or <aNode> is
a member of the association represented by the
<aNode> referenced by the sibling
<associationRef> element, playing the
role that is the subject of the <tNode>
referenced by the <roleRef> element
contained in the <templateRoleRPR>
element referenced by the sibling
<templateRoleRPRRef> element. |
<associationRef> |
References an <aNode> that contains a
<hasMember> element that references this
<membership> . The referenced
<aNode> represents the association of
which the <tNode> or
<aNode> referenced by the sibling
<memberRef> is the member; the
relationship between the association and the member is what
is being characterized by the
<membership> element. |
<templateRoleRPRRef> |
References a <templateRoleRPR> element
that contains a <membershipRef> element
that references this <membership>
element. The referenced
<templateRoleRPR> element characterizes
the role that the <tNode> or
<aNode> referenced by the sibling
<memberRef> element plays in the
association represented by the <aNode>
referenced by the sibling
<associationRef> element. |
<scopeRef> |
Each references an <sNode> element that
represents a scope that governs the association represented
by the <aNode> referenced by the sibling
<associationRef> element. The set of
<scopeRef> s that appears in a
<membership> is always the same as the
set of <scopeRef> s that appears in the
<aNode> referenced by the
<associationRef> element; this
information is duplicated here purely for convenience.
|
Each <templateRoleRPR>
element characterizes a
role played in a class of associations (an association template),
or, in the case of associations that do not have templates, it
characterizes a unique role played in one or more associations that
do not have templates.
In the case of associations that have templates, there is exactly
one <templateRoleRPR>
element for each unique
combination of role topic (referenced by the contained
<roleRef>
) and template topic (referenced by the
contained <templateRef>
).
<templateRoleRPR>
<!ELEMENT templateRoleRPR (
roleRef,
templateRef?,
RPRRef?,
membershipRef*
)
>
<!ATTLIST templateRoleRPR
id ID #REQUIRED
>
|
<roleRef> |
References a <tNode> that contains an
<isRoleOf> that references this
<templateRoleRPR> . The subject of the
referenced <tNode> is an association
role. |
<templateRef> |
References a <tNode> whose subject is an
association template, and that contains a
<isTemplateHasRole> element that
references the containing
<templateRoleRPR> element. Used only if
there is an association template that specifies the role
that is the subject of the <tNode>
referenced by the sibling <roleRef> .
|
<RPRRef> |
References a <tNode> whose subject (the
"Recognized Player of Role (RPR)" subject) is the class of
subjects of which the subjects that play the role are
required to be instances. Used only when the association
template constrains the subjects that are permitted to play
the role that is the subject of the
<tNode> referenced by the sibling
<roleRef> element. |
<membershipRef> |
Each references a <membership>
element that contains a
<templateRoleRPRRef> element that
references the containing
<templateRoleRPR> . In other words, the
list of association memberships that are governed by the
role/template combination characterized by a given
<templateRoleRPR> element is the list of
<membershipRef> elements that are
contained in that <templateRoleRPR>
element.
If there is no <templateRef> , then
all of the memberships governed by the role topic
(referenced by the <roleRef> element)
are listed. In other words, the lack of a template is
itself regarded as a template (that can perhaps be called
"the null template"), for purposes of establishing the
uniqueness of the combination of role topic and template
topic. Thus, there is only one
<templateRoleRPR> element for any given
role topic in all of the template-less associations in
which it is used as a role. |
Referencing Element Types
References to subject identity points ("binding points").
<constitutedBy>
Exactly one <constitutedBy>
element may or may
not appear in the content of a <tNode>
.
If specified, the <constitutedBy>
element
references the one-and-only information resource that
constitutes the subject of the <tNode>
that contains the <constitutedBy>
.
<!ELEMENT constitutedBy EMPTY>
<!ATTLIST constitutedBy
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<indicatedBy>
Any number of <indicatedBy> elements
may appear in the content of a <tNode> or an
<aNode> . Each <indicatedBy> element
references an information resource that
indicates the subject of the <tNode> that
contains the <indicatedBy> . If the
source of the topic or association
represented by the <tNode> or <aNode> was one
or more topic map interchange documents (such
as documents that conform to the ISO 13250
"HyTime" DTD, or to the XTM DTD), then there
is always at least one <indicatedBy>
element that refers to the corresponding
"node demander" in that interchangeable
topic map.
|
<!ELEMENT indicatedBy EMPTY>
<!ATTLIST indicatedBy
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
References to <membership>
elements.
<isMember>
<isMember>
elements may appear in
<tNode>
s and <aNode>
s.
Each indicates that the subject of the containing
<tNode>
or <aNode>
is
a member of the association referenced by the
<associationRef>
element contained in the
<membership>
element referenced by the
<isMember>
element.
<!ELEMENT isMember EMPTY>
<!ATTLIST isMember
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<hasMember>
<hasMember> elements may appear in <aNode> s.
Each specifies a member of the association
that is the subject of the containing
<aNode> . The member itself is the subject of
the <tNode> or <aNode> referenced by the
<memberRef> element contained in the
<membership> referenced by the <hasMember>
element. The role played by the member is
the subject of the <tNode> referenced by the
<roleRef> element contained in the
<membership> referenced by the <hasMember>
element.
|
<!ELEMENT hasMember EMPTY>
<!ATTLIST hasMember
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<membershipRef>
<membershipRef> elements may appear in
<templateRoleRPR> elements. Each specifies a
membership in some association that is
governed by the association role
characterized and elaborated by the
containing <templateRoleRPR> element.
|
<!ELEMENT membershipRef EMPTY>
<!ATTLIST membershipRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
References to <sNodes>
.
<componentOfScope>
<componentOfScope>
elements may appear in <tNode>
s
and <aNode>
s. Each indicates that the
subject of the containing <tNode>
or <aNode>
is a component of the scope represented by
the referenced <sNode>
.
<!ELEMENT componentOfScope EMPTY>
<!ATTLIST componentOfScope
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<hasScope>
<hasScope> elements may appear in <aNode> s.
Each indicates that the association that is
the subject of the containing <aNode> is
governed by the scope represented by the
referenced <sNode> .
|
<!ELEMENT hasScope EMPTY>
<!ATTLIST hasScope
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<scopeRef>
One or more <scopeRef> elements may appear in
every <membership> element. Each indicates
that the association that is the subject of
the <aNode> referenced by the sibling
<associationRef> element is governed by the
scope represented by the <sNode> referenced
by the <scopeRef> .
|
<!ELEMENT scopeRef EMPTY>
<!ATTLIST scopeRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
References to <templateRoleRPR>
elements.
<isRoleOf>
<isRoleOf>
elements may appear in <tNode>
s.
Each indicates that the subject of the
containing <tNode>
is an association role.
<!ELEMENT isRoleOf EMPTY>
<!ATTLIST isRoleOf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<isTemplateHasRole>
<isTemplateHasRole> elements may appear in
<tNode> s. The presence of an
<isTemplateHasRole> in a <tNode> indicates
that the subject of the containing <tNode> is
an association template. Each
<isTemplateHasRole> refers to a
<templateRoleRPR> element that characterizes
one of the association roles templated by the
containing <tNode> .
|
<!ELEMENT isTemplateHasRole EMPTY>
<!ATTLIST isTemplateHasRole
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<isRPROf>
<isRPROf> elements may appear in
<tNode> s. The presence of an
<isRPROf> in a <tNode> indicates
that the subject of the containing <tNode> is
a recognized player of role. Each
<isRPROf> refers to a
<templateRoleRPR> element that characterizes
the recognized player of role templated by the
containing <tNode> .
|
<!ELEMENT isRPROf EMPTY>
<!ATTLIST isRPROf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<templateRoleRPRRef>
In <membership> elements, the
<templateRoleRPRRef> element refers to the
<templateRoleRPR> element that characterizes
the role being played by the subject of the
<tNode> or <aNode> referenced by the sibling
<memberRef> element.
|
<!ELEMENT templateRoleRPRRef EMPTY>
<!ATTLIST templateRoleRPRRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
References to <aNode>
elements.
<isTemplateOf>
<isTemplateOf>
elements may appear in
<tNode>
s whose subjects are association
templates (classes of associations). Each
<isTemplateOf>
refers to an <aNode>
element
that is governed by the template that is the
subject of the <tNode>
that contains the
<isTemplateOf>
.
<!ELEMENT isTemplateOf EMPTY>
<!ATTLIST isTemplateOf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<isScopeOf>
One or more <isScopeOf> elements may appear
in <sNode> s. Each <isScopeOf> refers to an
<aNode> element that is governed by the scope
represented by the containing <sNode> .
|
<!ELEMENT isScopeOf EMPTY>
<!ATTLIST isScopeOf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<associationRef>
In <membership> elements, the
<associationRef> element refers to the
<aNode> that represents the association in
which the membership characterized by the
<membership> exists.
|
<!ELEMENT associationRef EMPTY>
<!ATTLIST associationRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
References to <tNode>
elements.
<templateRef>
A <templateRef>
element may appear in an
<aNode>
, in which case it refers to
the <tNode>
element whose subject is the
association template that governs the
association that is the subject of the
<aNode>
that contains the <templateRef>
.
A <templateRef>
element may also appear in a
<templateRoleRPR>
element, in which case it
refers to the <tNode>
element whose subject
is an association template that has, as one
of its member roles, the subject of the
<tNode>
referenced by the sibling <roleRef>
element.
<!ELEMENT templateRef EMPTY>
<!ATTLIST templateRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<roleRef>
A <roleRef> appears in every
<templateRoleRPR> element. It refers to
the <tNode> element whose subject is the
association role that is specified and elaborated
by the containing <templateRoleRPR> element.
|
<!ELEMENT roleRef EMPTY>
<!ATTLIST roleRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<RPRRef>
An <RPRRef> may appear in a <templateRoleRPR>
element. It refers to the <tNode> element
whose subject (the "Recognized Player of Role
(RPR)" subject) is the class of subjects of
which the subjects that play the role (the
role being characterized and elaborated by
the containing <templateRoleRPR> element) are
required to be instances.
|
<!ELEMENT RPRRef EMPTY>
<!ATTLIST RPRRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
References to <tNode>
and/or <aNode>
elements.
<hasComponent>
<hasComponent>
elements may appear in
<sNode>
s. The scope represented by an
<sNode>
is the set of topics that are
referenced by the <hasComponent>
elements
contained in the <sNode>
.
<!ELEMENT hasComponent EMPTY>
<!ATTLIST hasComponent
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
<memberRef>
A <memberRef> element appears in every
<membership> element. The <aNode> or <tNode>
referenced by a <memberRef> has the
association membership characterized by the
containing <membership> element.
|
<!ELEMENT memberRef EMPTY>
<!ATTLIST memberRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|
XML Topic Maps Graph API DTD
<!ELEMENT topicMapGraph (
aNode |
membership |
templateRoleRPR |
tNode |
sNode
)*
>
<!ATTLIST topicMapGraph
id ID #IMPLIED
xmlns CDATA #FIXED
'http://www.topicmaps.net/temporary/topicMapGraph/1.0/'
xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
xml:base CDATA #IMPLIED
>
<!-- Namespace will be fixed when this DTD will be standardized. -->
<!--
#########################################
######## PRIMARY ELEMENT TYPES ##########
#########################################
-->
<!-- Each element represents a topic. -->
<!ELEMENT tNode (
constitutedBy?,
indicatedBy*,
isMember*,
componentOfScope*,
isRoleOf*,
isTemplateHasRole*,
isRPROf*,
isTemplateOf*
)
>
<!ATTLIST tNode
id ID #REQUIRED
>
<!-- Each represents a topic association. -->
<!ELEMENT aNode (
templateRef?,
indicatedBy*,
hasMember*,
isMember*,
componentOfScope*,
hasScope+
)
>
<!ATTLIST aNode
id ID #REQUIRED
>
<!-- Each represents a scope. -->
<!ELEMENT sNode (
hasComponent*,
isScopeOf+
)
>
<!ATTLIST sNode
id ID #REQUIRED
>
<!-- Each element characterizes the
membership of an association member in an
association. -->
<!ELEMENT membership (
memberRef,
associationRef,
templateRoleRPRRef,
scopeRef+
)
>
<!ATTLIST membership
id ID #REQUIRED
>
<!ELEMENT templateRoleRPR (
roleRef,
templateRef?,
RPRRef?,
membershipRef*
)
>
<!ATTLIST templateRoleRPR
id ID #REQUIRED
>
<!--
#########################################
######## REFERENCING ELEMENT TYPES ######
#########################################
-->
<!-- References to subject identity points ("binding
points"). -->
<!ELEMENT constitutedBy EMPTY>
<!ATTLIST constitutedBy
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT indicatedBy EMPTY>
<!ATTLIST indicatedBy
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- References to elements. -->
<!ELEMENT isMember EMPTY>
<!ATTLIST isMember
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT hasMember EMPTY>
<!ATTLIST hasMember
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT membershipRef EMPTY>
<!ATTLIST membershipRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- References to . -->
<!ELEMENT componentOfScope EMPTY>
<!ATTLIST componentOfScope
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT hasScope EMPTY>
<!ATTLIST hasScope
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT scopeRef EMPTY>
<!ATTLIST scopeRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- References to elements. -->
<!ELEMENT isRoleOf EMPTY>
<!ATTLIST isRoleOf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT isTemplateHasRole EMPTY>
<!ATTLIST isTemplateHasRole
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT isRPROf EMPTY>
<!ATTLIST isRPROf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT templateRoleRPRRef EMPTY>
<!ATTLIST templateRoleRPRRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- References to elements. -->
<!ELEMENT isTemplateOf EMPTY>
<!ATTLIST isTemplateOf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT isScopeOf EMPTY>
<!ATTLIST isScopeOf
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT associationRef EMPTY>
<!ATTLIST associationRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- References to elements. -->
<!ELEMENT templateRef EMPTY>
<!ATTLIST templateRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT roleRef EMPTY>
<!ATTLIST roleRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT RPRRef EMPTY>
<!ATTLIST RPRRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- References to and/or elements. -->
<!ELEMENT hasComponent EMPTY>
<!ATTLIST hasComponent
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!ELEMENT memberRef EMPTY>
<!ATTLIST memberRef
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
|