GXL Ric Holt , Andy Schürr, Susan Elliott Sim, Andreas Winter
Graph eXchange Language


    Background
    Introduction
    FAQ
    Examples
    Publications




    DTD
    XML Schema




    Graph Model
    Metaschema




    Tool Catalogue
    Downloads




    Change Requests
    Future
    GXL 1.1

GXL 1.0 - XML Schema Definition

plain-text version: [gxl-1.0.xsd]
Detailed description of all non-abstract elements can be found in the documented dtd - just use the links

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.gupro.de/GXL/gxl-1.0.dtd" xmlns="http://www.gupro.de/GXL/gxl-1.0.dtd" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" elementFormDefault="qualified" xmlns:xlink="http://www.w3.org/1999/xlink">
        <!--graph structure -->
        <xsd:element name="attributedElement" type="AttributedElementType" abstract="true"/>
        <xsd:complexType name="AttributedElementType">
                <xsd:attribute name="id" type="xsd:ID"/>
        </xsd:complexType>
        <xsd:element name="typedElement" type="TypedElementType" abstract="true"/>
        <xsd:complexType name="TypedElementType">
                <xsd:complexContent>
                        <xsd:extension base="AttributedElementType">
                                <xsd:sequence>
                                        <xsd:element ref="type" minOccurs="0" maxOccurs="1"/>
                                        <xsd:element ref="attr" minOccurs="0" maxOccurs="unbounded"/>
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <!-- gxl -->
        <xsd:element name="gxl" type="GxlType"/>
        <xsd:complexType name="GxlType">
                <xsd:sequence>
                        <xsd:element ref="graph" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
        </xsd:complexType>
        <!-- type -->
        <xsd:element name="type" type="TypeType"/>
        <xsd:complexType name="TypeType">
             <xsd:anyAttribute namespace="http://www.w3.org/1999/xlink"/>
        </xsd:complexType>
        <!-- graph -->
        <xsd:element name="graph" type="graphType"/>
        <xsd:complexType name="graphType">
                <xsd:complexContent>
                        <xsd:extension base="TypedElementType">
                                <xsd:choice minOccurs="0" maxOccurs="unbounded">
                                        <xsd:element ref="node"/>
                                        <xsd:element ref="edge"/>
                                        <xsd:element ref="rel"/>
                                </xsd:choice>
                                <xsd:attribute name="role" type="xsd:nmtoken" use="optional"/>
                                <xsd:attribute name="edgeids" type="xsd:boolean" use="default" value="false"/>
                                <xsd:attribute name="hypergraph" type="xsd:boolean" use="default" value="false"/>
                                <xsd:attribute name="edgemode" type="edgemodeType" use="default" value="directed"/>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:simpleType name="edgemodeType">
                <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="directed"/>
                        <xsd:enumeration value="undirected"/>
                        <xsd:enumeration value="defaultdirected"/>
                        <xsd:enumeration value="defaultundirected"/>
                </xsd:restriction>
        </xsd:simpleType>
        <!-- graph elements -->
        <xsd:element name="graphElement" type="GraphElementType" abstract="true"/>
        <xsd:complexType name="GraphElementType">
                <xsd:complexContent>
                        <xsd:extension base="TypedElementType">
                                <xsd:sequence>
                                        <xsd:element ref="graph" minOccurs="0" maxOccurs="unbounded"/>
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <!-- node -->
        <xsd:element name="node" type="NodeType"/>
        <xsd:complexType name="NodeType">
                <xsd:complexContent>
                        <xsd:extension base="GraphElementType"/>
                </xsd:complexContent>
        </xsd:complexType>
        <!-- local connections -->
        <xsd:element name="localConnection" type="LocalConnectionType" abstract="true"/>
        <xsd:complexType name="LocalConnectionType">
                <xsd:complexContent>
                        <xsd:extension base="GraphElementType">
                                <xsd:attribute name="isDirected" type="xsd:boolean" use="optional"/>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:element name="edge" type="EdgeType"/>
        <xsd:complexType name="EdgeType">
                <xsd:complexContent>
                        <xsd:extension base="LocalConnectionType">
                                <xsd:attribute name="from" type="xsd:IDREF" use="required"/>
                                <xsd:attribute name="to" type="xsd:IDREF" use="required"/>
                                <xsd:attribute name="fromorder" type="xsd:integer" use="optional"/>
                                <xsd:attribute name="toorder" type="xsd:integer" use="optional"/>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:element name="rel" type="RelType"/>
        <xsd:complexType name="RelType">
                <xsd:complexContent>
                        <xsd:extension base="LocalConnectionType">
                                <xsd:sequence>
                                        <xsd:element ref="relend" minOccurs="0" maxOccurs="unbounded"/>
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <!-- relend -->
        <xsd:element name="relend" type="RelendType"/>
        <xsd:complexType name="RelendType">
                <xsd:complexContent>
                        <xsd:extension base="AttributedElementType">
                                <xsd:attribute name="target" type="xsd:IDREF" use="required"/>
                                <xsd:attribute name="role" type="xsd:nmtoken" use="optional"/>
                                <xsd:attribute name="direction" type="directionType" use="optional"/>
                                <xsd:attribute name="startorder" type="xsd:integer" use="optional"/>
                                <xsd:attribute name="endorder" type="xsd:integer" use="optional"/>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:simpleType name="directionType">
                <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="in"/>
                        <xsd:enumeration value="out"/>
                        <xsd:enumeration value="none"/>
                </xsd:restriction>
        </xsd:simpleType>
        <!-- attribute -->
        <xsd:element name="attr" type="AttrType"/>
        <xsd:complexType name="AttrType">
                <xsd:complexContent>
                        <xsd:extension base="AttributedElementType">
                                <xsd:group ref="value"/>
                                          <xsd:attribute name="name" type="xsd:string" use="required"/>
                                     <xsd:attribute name="kind" type="xsd:string" use="optional"/>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
        <!-- value -->
        <xsd:group name="value">
                <xsd:choice>
                        <xsd:element ref="bag"/>
                        <xsd:element ref="set"/>
                        <xsd:element ref="seq"/>
                        <xsd:element ref="tup"/>
                        <xsd:element ref="bool"/>
                        <xsd:element ref="int"/>
                        <xsd:element ref="float"/>
                        <xsd:element ref="string"/>
                        <xsd:element ref="locator"/>
                        <xsd:element ref="enum"/>
                </xsd:choice>
        </xsd:group>
        <!-- locator -->
        <xsd:element name="locator" type="LocatorType"/>
        <xsd:complexType name="LocatorType">
                <xsd:anyAttribute namespace="http://www.w3.org/1999/xlink"/>
        </xsd:complexType>
        <!-- atomic values -->
        <xsd:element name="bool" type="xsd:boolean"/>
        <xsd:element name="int" type="xsd:integer"/>
        <xsd:element name="float" type="xsd:float"/>
        <xsd:element name="string" type="xsd:string"/>
        <xsd:element name="freeType" type="xsd:string"/>
        <!-- enumeration -->
        <xsd:element name="enum" type="xsd:string"/>
        <!-- composite values -->
        <xsd:element name="compositeValue" type="CompositeValueType" abstract="true"/>
        <xsd:complexType name="CompositeValueType">
                <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:group ref="value"/>
                </xsd:sequence>
        </xsd:complexType>
        <xsd:element name="bag" type="BagType"/>
        <xsd:complexType name="BagType">
                <xsd:complexContent>
                        <xsd:extension base="CompositeValueType"/>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:element name="set" type="SetType"/>
        <xsd:complexType name="SetType">
                <xsd:complexContent>
                        <xsd:extension base="CompositeValueType"/>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:element name="seq" type="SeqType"/>
        <xsd:complexType name="SeqType">
                <xsd:complexContent>
                        <xsd:extension base="CompositeValueType"/>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:element name="tup" type="TupType"/>
        <xsd:complexType name="TupType">
                <xsd:complexContent>
                        <xsd:extension base="CompositeValueType"/>
                </xsd:complexContent>
        </xsd:complexType>
</xsd:schema>
top
July 17, 2002

[change log]
[printable version of this page]