
Background
Graph Model
Examples

DTD

Metaschema

Tools
Publications
Links

Change Requests
Future
|
GXL 1.1
Attribute Module
(alpha release, December 6, 2002)
[gxl-1.1] [graph-module]
uncommented document type definition:
gxl-1.1.dtd,
gxl-1.1_attribute.dtd,
gxl-1.1_graph.dtd
copyright by
Andy
Schuerr
Real-Time Systems Lab
Darmstadt University of Technology
Merckstr. 25, D-64283 Darmstadt, Germany
andy.schuerr@es.tu-darmstadt.de
Susan
Elliott Sim
School of Information and Computer Science
444 Computer Science Bldg.
University of California, Irvine
ses@ics.uci.edu
Ric
Holt
Department of Computer
Science
University of Waterloo
Waterloo N2L 3G1, Canada
holt@plg.uwaterloo.ca
Andreas
Winter
Institute for Software
Technology
University of Koblenz-Landau
Universitaetsstrasse 1, D-56070 Koblenz, Germany
winter@uni-koblenz.de
GXL has been developed to be an open standard. No licensing
or other legal arrangements are required for its use, whether commercial
and non-commercial. The specification of GXL is copyright by its
authors, to allow control of its evolution. The specification can be reproduced
and used without charge, but with explicit acknowledgement of its authors.
-->
<!ENTITY % value-extension "" >
<!-- Attribute values -->
<!--
The val entity groups together attribute
types available in GXL, which are the OCL standard data types bool,
int,
float,
string,
seq,
set,
and bag. The composite data types tuples (tup)
and enumeration values (enum) are also available.
The locator data type is used to to link
to arbitrary hyper documents and identifiable XML elements. With GXL 1.1, the types struct and
graph have been added to the val-entity.
Additional data types can be adding by redefining %value-extension;.
-->
<!-- attr -->
<!ATTLIST attr
id ID
#IMPLIED
type CDATA #IMPLIED
name NMTOKEN #REQUIRED
kind NMTOKEN #IMPLIED
|
validity (valid | unknown) "valid"
<!--
The validity attribute is used to specify whether the attribute is valid (that is the case when it is normal) or it's validity is unknown (that is the case when it is derived). This attribute overwrites the default
validity defined in the defaultAttrValidity attribute of the graph element.
-->
|
<!--
An attribute has a name and a value
part. GXL provides values from the OCL standard types (bool,
int,
float,
string,
seq,
set,
and
bag), as well as tuple
and enum, and values which define references
to other documents or elements (locator).
The kind attribute is provided to distinguish between different
varieties of attributes, for example, to mark attributes as derived.
GXL also optionally supports direct access to attributes by unique attribute
identifiers.
-->
<!-- struct -->
<!ELEMENT struct (attr)* >
<!ATTLIST struct
%defined;
>
<!--
According to CR #5 (Structs), there is now the possibility to store attribute-structs. A struct is an attribute itself and can contain an unlimited amount of
other attributes.
-->
|
<!-- locator -->
<!ELEMENT locator EMPTY >
<!ATTLIST locator
xlink:type (simple)
#FIXED "simple"
xlink:href CDATA
#REQUIRED
%defined;
>
<!--
Locators provide XLinks (the URI attribute defined in the
conceptual
model as implemented by XLink) to additional documents or document
elements. Those values are used for referencing arbitrary web documents.
-->
<!-- atomic
values -->
<!ELEMENT bool (#PCDATA) >
<!ATTLIST bool
%defined;
>
<!ELEMENT int (#PCDATA) >
<!ATTLIST int
%defined;
>
<!ELEMENT float (#PCDATA) >
<!ATTLIST float
%defined;
>
<!ELEMENT string (#PCDATA) >
<!ATTLIST string
%defined;
>
<!ELEMENT enum (#PCDATA) >
<!ATTLIST enum
%defined;
>
<!--
All atomic values now have the defined-attribute (defined in %defined;). This indicates wether or not the value is actually defined. Thus, there are now the following possibilities:
string, enum, bool:
- empty value: <string\>
- undefined value: <string defined="false" \>
- normal value: <string>abc</string>
int, float, freeType:
- empty value: <int\>
- undefined value: <int defined="false" \>
- normal value: <int>42</int>
- infinity: <int>infinity</int> or <int>+infinity</int> or <int>-infinity</int>
- not a number (float): <float>nan</float>
The default value for defined is 'true'. An undefined value must be empty.
-->
|
<!ELEMENT freeType (#PCDATA) >
<!ATTLIST freeType
%defined;
>
<!--
According to CR #4 (Free Type attribute), GXL 1.1 contains a new attribute called 'freeType'. This attribute contains values
of types that are undefined at store-time.
-->
|
<!--
Atomic values describe boolean, integer, real, string and enumeration values. GXL uses the grammar rules from Java for the basic types.
-
Legal values for bool are true and false (lower
case).
-
Legal ints (INT) and floats (FLOAT) are decimal numbers
and are represented using the following regular expression.
DIGIT ::= "0" | ... | "9"
NONZERODIGIT ::= "1" | ... | "9"
DIGITS ::= DIGIT+
INT ::= ["+"|"-"]("infinity" | "0" | NONZERODIGIT DIGIT*)
FLOATNUMBER ::= ["+"|"-"] (( DIGITS [ "." DIGITS ] ) | ("." DIGITS) [("E"
| "e") ["+"|"-"] DIGITS]
FLOAT ::= FLOATNUMBER | ["+"|"-"]"infinity" | "nan"
|
-
Strings are encoded using Unicode and inherit further restrictions
are from XML.
-->
<!-- composite
values -->
<!ELEMENT seq (%val;)* >
<!ATTLIST seq
%defined;
>
<!ELEMENT set (%val;)* >
<!ATTLIST set
%defined;
>
<!ELEMENT bag (%val;)* >
<!ATTLIST bag
%defined;
>
<!ELEMENT tup (%val;)* >
<!ATTLIST tup
%defined;
>
<!--
All composite values have the attribute defined, which is used similar to the atomic values. Please note that in this soultion, the type of empty or undefined composite types is unclear. It has to be defined in the according graph-schema.
-->
|
<!--
GXL supports sequence, set, bag, and tuple
container
values. Sequences, sets and bags contain further values.
All components within a container must have the same type (values).
-->
<!-- (O. Heinen - December 6, 2002) -->. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|