NAME
ijktable - format of an isosurface table XML file
DESCRIPTION
An isosurface table file defines a table of isosurface or
interval volume patches of an arbitrary polyhedron in an
arbitrary dimension. The file consists of some header
information, followed by a description of the table
polyhedron, a list of isosurface (interval volume) vertices,
and then the table of isosurface (interval volume) patches.
The header information is the ijktable version, the creation
date, the polyhedron dimension and the simplex dimension.
For isosurfaces, the simplex dimension is one less than the
polyhedron dimension. For interval volumes, the simplex
dimension equals the polyhedron dimension.
The polyhedron is described by a list of vertex coordinates
followed by a list of edges followed by a list of facets.
Other polyhedron faces are not recorded.
The isosurface (interval volume) vertices have four dif-
ferent types: vertex, edge, facet and point. Isosurface
vertices of type vertex, edge or facet lie on a specified
vertex, edge, or facet, respectively, of the isosurface.
Isosurface vertices of type point can lie anywhere and are
specified by point coordinates. Each isosurface vertex has
an optional string label for encoding additional information
about the vertex.
The isosurface (interval volume) table has an encoding type,
followed by a list of table entries. Encodings of type
BINARY have two possible states of each vertex. Encodings
of type BASE3 have three possible states of each vertex.
Each isosurface table entry contains a list of isosurface
vertices. The i'th vertex of the j'th simplex is contained
in the (i+j*d)'th edge in this list where d is the
polyhedron dimension.
GRAMMAR
The ijktable grammar is given below. All strings of the form
"< xml-element-name >" are XML tags and terminal elements in
the grammar.
isosurfaceTable :=
<?xml version="1.0"?>
<isotable>
<version> versionNumber </version>
<creationDate> date </creationDate>
<dimension> polyDimension B simplexDimension </dimension>
<poly>
<vertices>
<numVertices> numPolyVertices </numVertices>
vertexList
</vertices>
<edges>
<numEdges> numPolyEdges </numEdges>
edgeList
</edges>
<facets>
<numFacets> numPolyFacets </numFacets>
facetList
</facets>
</poly>
<isoVertices>
<numVertices> numIsoVertices </numVertices>
isoVertexList
</isoVertices>
<table>
<encoding> encodingType </encoding>
<numEntries> numTableEntries </numEntries>
tableEntryList
</table>
</isotable>
versionNumber := D+ {'.' D+}*
date :=
year '-' month '-' day
year :=
DDDD
month :=
DD
day :=
DD
polyDimension :=
nonNegativeInteger
simplexDimension :=
nonNegativeInteger
numPolyVertices :=
nonNegativeInteger
vertexList :=
{<c> coordinateList </c>}*
coordinateList :=
float {B float}*
numPolyEdges :=
nonNegativeInteger
edgeList :=
{<v> vertexIndex B vertexIndex </v>}*
numPolyFacets :=
nonNegativeInteger
facetList :=
{<f> facet </f>}*
facet :=
'0' |
numFacetVertices B facetVertexList
facetVertexList :=
vertexIndex {B vertexIndex}*
numFacetVertices :=
nonNegativeInteger
numIsoVertices :=
nonNegativeInteger
isoVertexList :=
{<w> isoVertexLocation {isoVertexLabel}? </w>}*
isoVertexLocation :=
{<inV> vertexIndex </inV} | {<inE> edgeIndex </inE>} |
{<inF> facetIndex </inF} | {<c> coordinateList </c>}
isoVertexLabel :=
<L> string </L>
encodingType :=
string
numTableEntries :=
nonNegativeInteger
tableEntryList :=
<s> tableEntry </s>
tabelEntry :=
'0' |
numSimplices B fIsimplexVertexList
numSimplices :=
nonNegativeInteger
simplexVertexList :=
isoVertexIndex {B isoVertexIndex}*
vertexIndex :=
nonNegativeInteger
edgeIndex :=
nonNegativeInteger
facetIndex :=
nonNegativeInteger
isoVertexIndex :=
nonNegativeInteger
D :=
'0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
B :=
whiteSpace
NOTATION
-- nonNegativeInteger represents a non-negative integer.
-- float represents a floating point number.
-- string represents a character string. Leading and trail-
ing whitespaces are ignored, tabs and multiple spaces are
equivalent to a single space.
-- whiteSpace represents one or more whitespace characters,
i.e., spaces, tabs, or line feeds.
-- Additional whitespace can be inserted between any termi-
nals in the grammar.
CONSTRAINTS
-- Length of the coordinateList must equal the polyhedron
dimension.
-- Length of vertexList must equal numPolyVertices.
-- Length of edgeList must equal numPolyEdges.
-- Length of facetList must equal numPolyFacets.
-- Length of isoVertexList must equal numIsoVertices.
-- Length of tableEntryList must equal numTableEntries.
-- vertexIndex is an integer between 0 and numPolyVertices-
1, inclusive.
-- edgeIndex is an integer between 0 and numPolyEdges-1,
inclusive.
-- facetIndex is an integer between 0 and numPolyFacets-1,
inclusive.
-- isoVertexIndex is an integer between 0 and numIsoVer-
tices, inclusive.
-- Length of simplexVertexList must equal numSimplices *
simplexDimension.
-- Encoding types 'BINARY', 'BASE3' and 'UNKNOWN' are
currently defined. Users can define and use any other
encoding types.
COMMENTS
-- An isosurface table with 'BINARY' encoding typically has
2^numPolyVertices table entries although this is not a
requirement. Similarly, an isosurface table with 'BASE3'
encoding typically has 3^numPolyVertices table entries
although this is not a requirement.
-- In isosurface lookup tables, simplexDimension is one less
than polyDimension.
-- In interval volume lookup tables, simplexDimension equals
polyDimension.
-- isoVertexList represents a list of isosurface vertices or
interval volume vertices.
ISOSURFACE EXAMPLE
The following example represents the isosurface lookup table
for a tetrahedron in 3D.
<?xml version="1.0"?>
<isotable>
<!-- Isosurface lookup table -->
<version> 1.0 </version>
<creationDate> 2007-12-19 </creationDate>
<dimension> 3 2 </dimension>
<poly>
<vertices>
<numVertices> 4 </numVertices>
<c> 0 0 0 </c>
<c> 2 0 0 </c>
<c> 0 2 0 </c>
<c> 0 0 2 </c>
</vertices>
<edges>
<numEdges> 6 </numEdges>
<v> 0 1 </v>
<v> 0 2 </v>
<v> 0 3 </v>
<v> 1 2 </v>
<v> 1 3 </v>
<v> 2 3 </v>
</edges>
<facets>
<numFacets> 4 </numFacets>
<f> 3 0 1 2 </f>
<f> 3 1 2 3 </f>
<f> 3 0 2 3 </f>
<f> 3 0 1 3 </f>
</facets>
</poly>
<isoVertices>
<numVertices> 6 </numVertices>
<w> <inE> 0 </inE> </w>
<w> <inE> 1 </inE> </w>
<w> <inE> 2 </inE> </w>
<w> <inE> 3 </inE> </w>
<w> <inE> 4 </inE> </w>
<w> <inE> 5 </inE> </w>
</isoVertices>
<table>
<encoding> BINARY </encoding>
<numEntries> 16 </numEntries>
<s> 0 </s>
<s> 1 0 2 1 </s>
<s> 1 0 3 4 </s>
<s> 2 3 2 1 4 2 3 </s>
<s> 1 1 5 3 </s>
<s> 2 3 0 2 5 3 2 </s>
<s> 2 1 4 0 5 4 1 </s>
<s> 1 4 2 5 </s>
<s> 1 2 4 5 </s>
<s> 2 4 1 0 5 1 4 </s>
<s> 2 2 0 3 5 2 3 </s>
<s> 1 3 5 1 </s>
<s> 2 2 3 1 4 3 2 </s>
<s> 1 3 0 4 </s>
<s> 1 1 2 0 </s>
<s> 0 </s>
</table>
</isotable>
ISOSURFACE NEP EXAMPLE
The following example represents an isosurface lookup table
which distinguishes polyhedron vertices with scalar value
equal to the isovalue from polyhedron vertices with scalar
value less than or greater than the isovalue. Polyhedron
vertices can have three different labels, negative, equals
and positive, representing scalar values less than, equal
to, or greater than the isovalue, respectively. The
polyhedron is a tetrahedron in 3D.
The table encoding is BASE3 since each tetrahedron vertex
can have three different possible labels. The table has 3^4
or 81 entries.
<?xml version="1.0"?>
<isotable>
<!-- Isosurface lookup table -->
<version> 1.0 </version>
<creationDate> 2008-01-20 </creationDate>
<dimension> 3 2 </dimension>
<poly>
<vertices>
<numVertices> 4 </numVertices>
<c> 0 0 0 </c>
<c> 2 0 0 </c>
<c> 0 2 0 </c>
<c> 0 0 2 </c>
</vertices>
<edges>
<numEdges> 6 </numEdges>
<v> 0 1 </v>
<v> 0 2 </v>
<v> 0 3 </v>
<v> 1 2 </v>
<v> 1 3 </v>
<v> 2 3 </v>
</edges>
<facets>
<numFacets> 4 </numFacets>
<f> 3 0 1 2 </f>
<f> 3 1 2 3 </f>
<f> 3 0 2 3 </f>
<f> 3 0 1 3 </f>
</facets>
</poly>
<isoVertices>
<numVertices> 10 </numVertices>
<w> <inV> 0 </inV> </w>
<w> <inV> 1 </inV> </w>
<w> <inV> 2 </inV> </w>
<w> <inV> 3 </inV> </w>
<w> <inE> 0 </inE> </w>
<w> <inE> 1 </inE> </w>
<w> <inE> 2 </inE> </w>
<w> <inE> 3 </inE> </w>
<w> <inE> 4 </inE> </w>
<w> <inE> 5 </inE> </w>
</isoVertices>
<table>
<encoding> BASE3 </encoding>
<numEntries> 81 </numEntries>
<s> 0 </s>
<s> 0 </s>
<s> 1 4 6 5 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 1 6 5 </s>
<s> 1 4 7 8 </s>
<s> 1 0 7 8 </s>
<s> 2 7 6 5 8 6 7 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 2 4 6 </s>
<s> 0 </s>
<s> 1 1 0 2 </s>
<s> 1 1 6 2 </s>
<s> 1 2 8 4 </s>
<s> 1 0 2 8 </s>
<s> 1 8 6 2 </s>
<s> 1 5 9 7 </s>
<s> 1 0 9 7 </s>
<s> 2 7 4 6 9 7 6 </s>
<s> 1 1 5 9 </s>
<s> 1 1 0 9 </s>
<s> 1 1 6 9 </s>
<s> 2 5 8 4 9 8 5 </s>
<s> 1 0 9 8 </s>
<s> 1 8 6 9 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 3 5 4 </s>
<s> 0 </s>
<s> 1 1 3 0 </s>
<s> 1 1 3 5 </s>
<s> 1 3 4 7 </s>
<s> 1 0 7 3 </s>
<s> 1 7 3 5 </s>
<s> 0 </s>
<s> 1 2 0 3 </s>
<s> 1 2 4 3 </s>
<s> 1 2 3 1 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 2 3 4 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 3 7 5 </s>
<s> 1 0 3 7 </s>
<s> 1 7 4 3 </s>
<s> 1 1 5 3 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 5 3 4 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 6 8 9 </s>
<s> 1 0 8 9 </s>
<s> 2 8 5 4 9 5 8 </s>
<s> 1 1 9 6 </s>
<s> 1 1 9 0 </s>
<s> 1 1 9 5 </s>
<s> 2 6 4 7 9 6 7 </s>
<s> 1 0 7 9 </s>
<s> 1 7 9 5 </s>
<s> 1 2 6 8 </s>
<s> 1 2 0 8 </s>
<s> 1 2 4 8 </s>
<s> 1 2 6 1 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 2 6 4 </s>
<s> 0 </s>
<s> 0 </s>
<s> 2 6 7 5 8 7 6 </s>
<s> 1 0 8 7 </s>
<s> 1 7 4 8 </s>
<s> 1 1 5 6 </s>
<s> 0 </s>
<s> 0 </s>
<s> 1 5 6 4 </s>
<s> 0 </s>
<s> 0 </s>
</table>
</isotable>
INTERVAL VOLUME EXAMPLE
The following example represents the interval volume lookup
table for a tetrahedron in 3D. Interval volume vertices
(listed under <isoVertices>) with label '0' lie on the lower
isosurface bounding the interval volume while interval
volume vertices with label '1' lie on the upper isosurface.
<?xml version="1.0"?>
<isotable>
<!-- Isosurface lookup table -->
<version> 1.0 </version>
<creationDate> 2007-12-19 </creationDate>
<dimension> 3 3 </dimension>
<poly>
<vertices>
<numVertices> 4 </numVertices>
<c> 0 0 0 </c>
<c> 2 0 0 </c>
<c> 0 2 0 </c>
<c> 0 0 2 </c>
</vertices>
<edges>
<numEdges> 6 </numEdges>
<v> 0 1 </v>
<v> 0 2 </v>
<v> 0 3 </v>
<v> 1 2 </v>
<v> 1 3 </v>
<v> 2 3 </v>
</edges>
<facets>
<numFacets> 4 </numFacets>
<f> 3 0 1 2 </f>
<f> 3 1 2 3 </f>
<f> 3 0 2 3 </f>
<f> 3 0 1 3 </f>
</facets>
</poly>
<isoVertices>
<numVertices> 16 </numVertices>
<w> <inE> 0 </inE> <L> 0 </L> </w>
<w> <inE> 0 </inE> <L> 1 </L> </w>
<w> <inE> 1 </inE> <L> 0 </L> </w>
<w> <inE> 1 </inE> <L> 1 </L> </w>
<w> <inE> 2 </inE> <L> 0 </L> </w>
<w> <inE> 2 </inE> <L> 1 </L> </w>
<w> <inE> 3 </inE> <L> 0 </L> </w>
<w> <inE> 3 </inE> <L> 1 </L> </w>
<w> <inE> 4 </inE> <L> 0 </L> </w>
<w> <inE> 4 </inE> <L> 1 </L> </w>
<w> <inE> 5 </inE> <L> 0 </L> </w>
<w> <inE> 5 </inE> <L> 1 </L> </w>
<w> <inV> 0 </inV> </w>
<w> <inV> 1 </inV> </w>
<w> <inV> 2 </inV> </w>
<w> <inV> 3 </inV> </w>
</isoVertices>
<table>
<encoding> BASE3 </encoding>
<numEntries> 81 </numEntries>
<s> 0 </s>
<s> 1 0 2 12 4 </s>
<s> 3 5 1 3 4 3 1 2 4 1 0 2 4 </s>
<s> 1 0 6 8 13 </s>
<s> 3 13 6 12 8 8 6 12 4 6 2 12 4 </s>
<s> 6 1 5 13 3 13 3 8 6 13 5 8 3 8 5 4 3 6 3 4 2 8 3 4 6 </s>
<s> 3 9 1 8 7 7 1 8 6 1 0 8 6 </s>
<s> 6 8 7 4 6 8 9 4 7 12 9 7 4 1 9 7 12 12 7 2 4 6 7 4 2 </s>
<s> 6 8 3 4 6 8 7 3 6 8 5 4 3 8 7 5 3 8 9 5 7 6 3 4 2 </s>
<s> 1 2 6 14 10 </s>
<s> 3 14 6 10 12 10 6 4 12 6 0 4 12 </s>
<s> 6 3 5 1 14 10 5 1 4 14 5 1 10 14 1 6 10 10 1 6 4 6 1 0 4 </s>
<s> 3 14 2 13 10 10 2 13 8 2 0 13 8 </s>
<s> 3 8 13 12 10 8 10 12 4 13 14 12 10 </s>
<s> 5 8 10 5 4 8 13 5 10 1 3 5 13 13 3 5 14 13 14 5 10 </s>
<s> 6 7 9 14 1 10 9 8 1 14 9 10 1 14 1 10 2 10 1 8 2 2 1 8 0 </s>
<s> 5 8 10 9 4 10 12 9 4 10 14 9 12 12 7 9 1 14 7 9 12 </s>
<s> 5 8 10 5 4 8 10 9 5 9 14 5 10 9 7 5 14 7 3 5 14 </s>
<s> 3 11 3 7 10 7 3 6 10 3 2 6 10 </s>
<s> 6 10 7 6 4 10 11 7 4 12 11 4 7 3 11 12 7 12 7 4 0 6 7 0 4 </s>
<s> 6 10 1 6 4 10 7 6 1 10 5 1 4 10 7 1 5 10 11 7 5 6 1 0 4 </s>
<s> 6 10 3 8 2 10 11 8 3 13 11 3 8 7 11 3 13 13 3 0 8 2 3 8 0 </s>
<s> 5 12 8 11 4 13 8 11 12 7 12 11 3 7 13 11 12 8 10 11 4 </s>
<s> 5 1 7 5 13 8 10 5 4 8 10 11 5 7 11 5 13 13 11 5 8 </s>
<s> 6 10 1 8 2 10 3 1 2 10 9 8 1 10 9 1 3 10 11 9 3 2 1 8 0 </s>
<s> 5 3 11 12 9 3 9 12 1 12 11 4 9 11 10 4 9 9 10 4 8 </s>
<s> 3 8 10 5 4 8 10 9 5 9 10 11 5 </s>
<s> 1 4 8 10 15 </s>
<s> 3 15 8 12 10 10 8 12 2 8 0 12 2 </s>
<s> 6 15 3 10 1 15 5 3 1 10 3 2 1 10 1 2 8 15 1 10 8 8 1 2 0 </s>
<s> 3 15 4 10 13 10 4 6 13 4 0 6 13 </s>
<s> 3 6 13 10 12 6 10 2 12 13 15 10 12 </s>
<s> 5 6 10 2 3 6 13 10 3 1 13 3 5 13 15 3 5 13 15 10 3 </s>
<s> 6 15 7 1 10 15 9 1 7 10 7 1 6 10 1 4 6 15 1 4 10 4 1 0 6 </s>
<s> 5 6 10 2 7 10 12 2 7 10 15 12 7 7 15 12 9 7 12 1 9 </s>
<s> 5 6 10 2 3 6 10 3 7 7 15 10 3 7 15 3 5 9 15 7 5 </s>
<s> 3 15 4 14 8 8 4 14 6 4 2 14 6 </s>
<s> 3 6 14 12 8 6 8 12 0 14 15 12 8 </s>
<s> 5 6 14 1 8 6 8 1 0 3 14 5 1 14 15 5 1 14 15 1 8 </s>
<s> 3 2 14 4 13 2 4 0 13 14 15 4 13 </s>
<s> 1 13 14 12 15 </s>
<s> 3 1 3 5 13 13 3 5 14 13 14 5 15 </s>
<s> 5 2 14 4 1 2 4 0 1 7 14 1 9 14 15 1 9 14 15 4 1 </s>
<s> 3 1 7 12 9 12 7 14 9 12 14 15 9 </s>
<s> 3 9 7 5 14 9 14 5 15 7 3 5 14 </s>
<s> 6 15 7 8 3 15 11 7 3 8 7 6 3 8 3 6 4 15 3 8 4 4 3 6 2 </s>
<s> 5 6 8 7 0 8 12 7 0 8 15 7 12 7 15 11 12 7 12 11 3 </s>
<s> 5 6 8 1 0 6 8 7 1 7 15 1 8 7 15 5 1 11 15 5 7 </s>
<s> 5 2 4 0 3 4 13 0 3 4 15 13 3 7 13 11 3 13 15 11 3 </s>
<s> 3 7 12 13 11 7 3 12 11 13 12 15 11 </s>
<s> 3 1 7 5 13 7 11 5 13 13 11 5 15 </s>
<s> 5 2 4 0 1 2 4 1 3 3 15 4 1 9 15 3 1 11 15 3 9 </s>
<s> 3 3 9 12 1 3 11 12 9 12 11 15 9 </s>
<s> 1 9 11 5 15 </s>
<s> 3 11 5 10 9 9 5 10 8 5 4 10 8 </s>
<s> 6 10 9 2 8 10 11 2 9 12 11 9 2 5 11 9 12 12 9 0 2 8 9 2 0 </s>
<s> 6 10 1 2 8 10 9 1 8 10 3 2 1 10 9 3 1 10 11 3 9 8 1 2 0 </s>
<s> 6 10 5 4 6 10 11 5 6 13 11 6 5 9 11 13 5 13 5 6 0 4 5 0 6 </s>
<s> 5 12 6 2 11 13 6 12 11 9 12 5 11 9 13 12 11 6 10 2 11 </s>
<s> 5 1 9 13 3 6 10 2 3 6 10 3 11 9 11 13 3 13 11 6 3 </s>
<s> 6 10 1 4 6 10 5 4 1 10 7 1 6 10 7 5 1 10 11 5 7 4 1 0 6 </s>
<s> 5 5 11 7 12 5 7 1 12 12 11 7 2 11 10 7 2 7 10 6 2 </s>
<s> 3 6 10 2 3 6 10 3 7 7 10 3 11 </s>
<s> 6 8 5 6 4 8 9 6 5 14 9 5 6 14 11 5 9 14 5 2 6 4 5 6 2 </s>
<s> 5 12 6 9 0 14 6 9 12 14 9 11 12 12 9 11 5 6 8 9 0 </s>
<s> 5 14 9 1 6 14 9 3 1 14 11 3 9 6 8 1 0 6 8 9 1 </s>
<s> 5 14 13 11 5 14 2 13 5 13 2 0 5 13 9 11 5 2 4 0 5 </s>
<s> 3 9 13 12 11 9 12 5 11 13 14 12 11 </s>
<s> 3 1 13 3 9 9 13 3 11 13 14 3 11 </s>
<s> 5 14 5 2 1 14 7 5 1 14 11 5 7 2 4 0 1 2 4 1 5 </s>
<s> 3 5 12 7 1 5 12 11 7 12 14 11 7 </s>
<s> 1 7 14 3 11 </s>
<s> 6 8 3 6 4 8 5 3 4 8 7 6 3 8 7 3 5 8 9 7 5 4 3 6 2 </s>
<s> 5 5 9 12 7 5 7 12 3 12 9 0 7 9 8 0 7 7 8 0 6 </s>
<s> 3 6 8 1 0 6 8 7 1 7 8 9 1 </s>
<s> 5 13 5 3 0 13 7 3 5 13 9 7 5 5 4 3 0 3 4 2 0 </s>
<s> 3 12 5 9 7 12 5 7 3 13 12 9 7 </s>
<s> 1 13 7 1 9 </s>
<s> 3 2 4 0 1 2 4 1 3 3 4 1 5 </s>
<s> 1 12 3 5 1 </s>
<s> 0 </s>
</table>
</isotable>
XML SCHEMA DEFINITION (XSD)
The following is the XML schema definition of an isosurface
table XML file.
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- definition of isotable -->
<xsd:element name="isotable">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="version" type="versionNum" />
<xsd:element name="creationDate" type="xsd:date" />
<xsd:element name="dimension" type="dimensionList" />
<xsd:element ref="poly" />
<xsd:element ref="isoVertices" />
<xsd:element ref="table" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of poly -->
<xsd:element name="poly">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="vertices" />
<xsd:element ref="edges" />
<xsd:element ref="facets" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of isoVertices -->
<xsd:element name="isoVertices">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="numVertices" type="xsd:nonNegativeInteger" />
<xsd:element name="w" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element name="inV" type="xsd:nonNegativeInteger" />
<xsd:element name="inE" type="xsd:nonNegativeInteger" />
<xsd:element name="inF" type="xsd:nonNegativeInteger" />
<xsd:element name="c" type="coordType" />
</xsd:choice>
<xsd:element name="L" type="xsd:token" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of table -->
<xsd:element name="table">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="encoding" type="xsd:string" />
<xsd:element name="numEntries" type="xsd:nonNegativeInteger" />
<xsd:element name="s" type="simplexVertexList"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of vertices -->
<xsd:element name="vertices">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="numVertices" type="xsd:nonNegativeInteger" />
<xsd:element name="c" type="coordType"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of edges -->
<xsd:element name="edges">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="numEdges" type="xsd:nonNegativeInteger" />
<xsd:element name="v" type="edgeEndpoints"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of facets -->
<xsd:element name="facets">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="numFacets" type="xsd:nonNegativeInteger" />
<xsd:element name="f" type="facetVertexList"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- definition of types -->
<xsd:simpleType name="versionNum">
<xsd:restriction base="xsd:token">
<xsd:pattern value="([0-9]+)([.][0-9]+)+" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="dimensionList">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType="xsd:nonNegativeInteger" />
</xsd:simpleType>
<xsd:length value="2" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="coordType">
<xsd:list itemType="xsd:decimal" />
</xsd:simpleType>
<xsd:simpleType name="nonNegativeIntegerList">
<xsd:list itemType="xsd:nonNegativeInteger" />
</xsd:simpleType>
<xsd:simpleType name="vertexList">
<xsd:list itemType="xsd:nonNegativeInteger" />
</xsd:simpleType>
<xsd:simpleType name="facetVertexList">
<xsd:restriction base="nonNegativeIntegerList">
<xsd:minLength value="1" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="simplexVertexList">
<xsd:restriction base="nonNegativeIntegerList">
<xsd:minLength value="1" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="edgeEndpoints">
<xsd:restriction base="vertexList">
<xsd:length value="2" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="faceID" mixed="true">
<xsd:sequence>
<xsd:element name="L" type="xsd:token" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="isoVertPoint">
<xsd:sequence>
<xsd:element name="p">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="c" type="coordType" />
<xsd:element name="L" type="xsd:token" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
AUTHOR
Rephael Wenger
Man(1) output converted with
man2html