<graph>

<graph> グラフを示す.ノードと矢(無向の場合は辺)の集合. [19.1 Graphs and Digraphs]
モジュールnets — Graphs, Networks, and Trees
属性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当該グラフの種類を示す. 提案する値は以下の通り: 1] undirected; 2] directed; 3] transitionNetwork; 4] transducer
状態 推薦される
データ型 teidata.enumerated
提案する値は以下の通り:
undirected
無向グラフ.
directed
有向グラフ.
transitionNetwork
遷移ネットワーク.初期ノードと最終ノードを分けた有向グラフ.
transducer
トランスデューサ.各矢に高々2つのラベルを持つ遷移ネットワーク.
解説

属性typeが値undirectedをとる場合, 要素arcにある属性tofromとの違 いはなくなる.また,属性adjFromadjToで はなく,属性adjが使われる場合,これは矢の終点を示す ために使われるべきである. 属性typeが値directedをとる場合(または他 の値が有向性を含む場合),属性adjではなく,属性 adjFromadjToが使われるべきである.

order当該グラフのオーダー.グラフに含まれるノード数を示す.
状態 任意
データ型 teidata.count
size当該グラフのサイズ.グラフに含まれる辺数を示す.
状態 任意
データ型 teidata.count
クラブのメンバー
上位
下位
解説

ひとつ以上のノードと,ゼロ以上の矢(辺).

<graph xml:id="cug1type="undirected"
 order="5size="4"
 rend="LABEL-PLACE bottom center NODE-FRAME none ARC solid line">

 <label>Airline Connections in Southwestern USA</label>
 <node xml:id="laxdegree="2">
  <label>LAX</label>
 </node>
 <node xml:id="lvgdegree="2">
  <label>LVG</label>
 </node>
 <node xml:id="phxdegree="3">
  <label>PHX</label>
 </node>
 <node xml:id="tusdegree="1">
  <label>TUS</label>
 </node>
 <node xml:id="cibdegree="0">
  <label>CIB</label>
 </node>
 <arc from="#laxto="#lvg"/>
 <arc from="#laxto="#phx"/>
 <arc from="#lvgto="#phx"/>
 <arc from="#phxto="#tus"/>
</graph>
Content model
<content>
 <sequence>
  <sequence minOccurs="0">
   <elementRef key="label"/>
   <classRef key="model.global"
    minOccurs="0maxOccurs="unbounded"/>

  </sequence>
  <alternate>
   <sequence>
    <sequence minOccurs="1"
     maxOccurs="unbounded">

     <elementRef key="node"/>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

    </sequence>
    <sequence minOccurs="0"
     maxOccurs="unbounded">

     <elementRef key="arc"/>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

    </sequence>
   </sequence>
   <sequence>
    <sequence minOccurs="1"
     maxOccurs="unbounded">

     <elementRef key="arc"/>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

    </sequence>
    <sequence minOccurs="1"
     maxOccurs="unbounded">

     <elementRef key="node"/>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

    </sequence>
   </sequence>
  </alternate>
 </sequence>
</content>
宣言
<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* )+ )
      )
   )
}