<graph> encodes a graph, which is a collection of nodes, and arcs which connect the nodes. [19.1 Graphs and Digraphs ]Module nets — Graphs, Networks, and Trees Attributes att.global (@xml:id , @n , @xml:lang , @xml:base , @xml:space ) (att.global.rendition (@rend , @style , @rendition )) (att.global.linking (@corresp , @synch , @sameAs , @copyOf , @next , @prev , @exclude , @select )) (att.global.analytic (@ana )) (att.global.facs (@facs )) (att.global.change (@change )) (att.global.responsibility (@cert , @resp )) (att.global.source (@source )) type type ¶ describes the type of graph.Status Recommended Datatype teidata.enumerated Suggested values include: undirected undirected graph directed directed graph transitionNetwork a directed graph with distinguished initial and final nodes transducer a transition network with up to two labels on each arc Note If type is specified as undirected , then the distinction between the to and from attributes of the arc tag is neutralized. Also, the adj attribute, rather than the adjFrom and adjTo attributes, should be used to encode pointers to the ends of the arcs. If type is specified as directed (or any other value which implies directionality), then the adjFrom and adjTo attributes should be used, instead of the adj attribute.
order order ¶ states the order of the graph, i.e., the number of its nodes. size size ¶ states the size of the graph, i.e., the number of its arcs.
Member of Contained by May contain Note One or more nodes and zero or more arcs in any order.
Example <graph xml:id ="cug1 " type ="undirected " order ="5 " size ="4 " rend ="LABEL-PLACE bottom center NODE-FRAME none ARC solid line "> <label> Airline Connections in Southwestern USA
</label> <node xml:id ="lax " degree ="2 "> <label> LAX
</label> </node> <node xml:id ="lvg " degree ="2 "> <label> LVG
</label> </node> <node xml:id ="phx " degree ="3 "> <label> PHX
</label> </node> <node xml:id ="tus " degree ="1 "> <label> TUS
</label> </node> <node xml:id ="cib " degree ="0 "> <label> CIB
</label> </node> <arc from ="#lax " to ="#lvg "/> <arc from ="#lax " to ="#phx "/> <arc from ="#lvg " to ="#phx "/> <arc from ="#phx " to ="#tus "/> </graph> Content model <content> <sequence> <sequence minOccurs ="0 "> <elementRef key ="label "/> <classRef key ="model.global " minOccurs ="0 " maxOccurs ="unbounded "/> </sequence> <alternate> <sequence> <sequence minOccurs ="1 " maxOccurs ="unbounded "> <elementRef key ="node "/> <classRef key ="model.global " minOccurs ="0 " maxOccurs ="unbounded "/> </sequence> <sequence minOccurs ="0 " maxOccurs ="unbounded "> <elementRef key ="arc "/> <classRef key ="model.global " minOccurs ="0 " maxOccurs ="unbounded "/> </sequence> </sequence> <sequence> <sequence minOccurs ="1 " maxOccurs ="unbounded "> <elementRef key ="arc "/> <classRef key ="model.global " minOccurs ="0 " maxOccurs ="unbounded "/> </sequence> <sequence minOccurs ="1 " maxOccurs ="unbounded "> <elementRef key ="node "/> <classRef key ="model.global " minOccurs ="0 " maxOccurs ="unbounded "/> </sequence> </sequence> </alternate> </sequence> </content> Schema Declaration XML syntax Compact syntax <rng:element name ="graph "> <rng:ref name ="att.global.attributes "/> <rng:ref name ="att.global.rendition.attributes "/> <rng:ref name ="att.global.linking.attributes "/> <rng:ref name ="att.global.analytic.attributes "/> <rng:ref name ="att.global.facs.attributes "/> <rng:ref name ="att.global.change.attributes "/> <rng:ref name ="att.global.responsibility.attributes "/> <rng:ref name ="att.global.source.attributes "/> <rng:optional> <rng:attribute name ="type "> <rng:choice> <rng:value> undirected</rng:value> <rng:value> directed</rng:value> <rng:value> transitionNetwork</rng:value> <rng:value> transducer</rng:value> <rng:ref name ="teidata.enumerated "/> </rng:choice> </rng:attribute> </rng:optional> <rng:optional> <rng:attribute name ="order "> <rng:ref name ="teidata.count "/> </rng:attribute> </rng:optional> <rng:optional> <rng:attribute name ="size "> <rng:ref name ="teidata.count "/> </rng:attribute> </rng:optional> <rng:group> <rng:optional> <rng:group> <rng:ref name ="label "/> <rng:zeroOrMore> <rng:ref name ="model.global "/> </rng:zeroOrMore> </rng:group> </rng:optional> <rng:choice> <rng:group> <rng:oneOrMore> <rng:group> <rng:ref name ="node "/> <rng:zeroOrMore> <rng:ref name ="model.global "/> </rng:zeroOrMore> </rng:group> </rng:oneOrMore> <rng:zeroOrMore> <rng:group> <rng:ref name ="arc "/> <rng:zeroOrMore> <rng:ref name ="model.global "/> </rng:zeroOrMore> </rng:group> </rng:zeroOrMore> </rng:group> <rng:group> <rng:oneOrMore> <rng:group> <rng:ref name ="arc "/> <rng:zeroOrMore> <rng:ref name ="model.global "/> </rng:zeroOrMore> </rng:group> </rng:oneOrMore> <rng:oneOrMore> <rng:group> <rng:ref name ="node "/> <rng:zeroOrMore> <rng:ref name ="model.global "/> </rng:zeroOrMore> </rng:group> </rng:oneOrMore> </rng:group> </rng:choice> </rng:group> </rng:element>
element graph
{
att.global.attributes ,
att.global.rendition.attributes ,
att.global.linking.attributes ,
att.global.analytic.attributes ,
att.global.facs.attributes ,
att.global.change.attributes ,
att.global.responsibility.attributes ,
att.global.source.attributes ,
attribute type
{
"undirected"
| "directed"
| "transitionNetwork"
| "transducer"
| teidata.enumerated
}?,
attribute order { teidata.count }?,
attribute size { teidata.count }?,
(
( label , model.global * )?,
(
( ( node , model.global * )+, ( arc , model.global * )* )
| ( ( arc , model.global * )+, ( node , model.global * )+ )
)
)
}