NAME

     xit - XML isosurface table format


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  xit  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