nexml schema 1.0 ~/nexml/xsd/abstract.xsd

Skip to: Site menu | Main content

The future data exchange standard is here!

nexml is an exchange standard for representing phylogenetic data — inspired by the commonly used NEXUS format, but more robust and easier to process.

Validate nexml data

Schema module documentation

~ / nexml / html / doc / schema-1 / abstract
rss | digg reddit del.icio.us facebook | Wed Aug 20 22:40:10 2008 —

Description

This module defines abstract superclasses. In xml schema, inheritance of complex types is either through extension or through restriction. Extensions in this context means that the child class can have more types of elements appended to the end of its children, and/or more attributes. Restriction means that the child class is more limited than the base class, in that it might have fewer child elements, fewer attributes, or more restricted child element types.

The nexml schema uses inheritance such that abstract superclasses - i.e. those defined in this module - extend each other to form a useful tree of superclasses, from which child classes then derive by restriction. This is done so that for any type there is always an exhaustive abstract superclass, to which parsers should be adapted, so that derived instances won't have surprising substructures.

Other views (open in new window):

Complex types

Annotated [abstract]

Description

The Annotated complexType is a super class for objects that optionally have key/value annotations of type Dict.

Inheritance

Annotated extends Base. In turn, this type is inherited from by AbstractFormat, AbstractObsMatrix, AbstractSeqMatrix, Labelled, Nexml,

Substructures
Definition source
  <xs:complexType abstract="true" name="Annotated">
    <xs:complexContent>
      <xs:extension base="Base">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="dict" type="Dict"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

Class

Description

Elements of the Class complexType are elements with an ID to which other elements refer using the "class" attribute. The purpose of this to allow creation of sets, but rather than having a set specify its members (such as character sets in nexus), in nexml the members specify which class(es) they belong to. This is more idiomatic for xml, consider for example the "class" attribute in (X)HTML which works the same way, and is used for example for cascading style sheets.

Inheritance

Class extends IDTagged.

Definition source
  <xs:complexType abstract="false" name="Class">
    <xs:complexContent>
      <xs:extension base="IDTagged"/>
    </xs:complexContent>
  </xs:complexType>

IDTagged [abstract]

Description

The IDTagged complexType is a super class for objects that require unique id attributes of type xs:NCName. IDTagged doesn't define scope for uniqueness, derivations are free to do so using xs:keyRef.

Inheritance

IDTagged extends Labelled. In turn, this type is inherited from by AbstractChar, AbstractEdge, AbstractNetwork, AbstractRootEdge, AbstractState, AbstractStates, AbstractTree, AbstractTrees, Class, OptionalTaxonLinked, Segmented, Taxa, TaxaLinked, Taxon, TaxonLinked,

Attributes
Name Type Usage
id xs:NCName required
Definition source
  <xs:complexType abstract="true" name="IDTagged">
    <xs:complexContent>
      <xs:extension base="Labelled">
        <xs:sequence/>
        <xs:attribute name="id" type="xs:NCName" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

Labelled [abstract]

Description

The Labelled complexType is a super class for objects that optionally have label attributes to use as a (non-unique) name of type xs:string.

Inheritance

Labelled extends Annotated. In turn, this type is inherited from by AbstractObs, IDTagged,

Attributes
Name Type Usage
label xs:string optional
Definition source
  <xs:complexType abstract="true" name="Labelled">
    <xs:complexContent>
      <xs:extension base="Annotated">
        <xs:attribute name="label" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

OptionalTaxonLinked [abstract]

Description

The OptionalOTULinked complexType is a super class for objects that that optionally have an otu id reference.

Inheritance

OptionalTaxonLinked extends IDTagged. In turn, this type is inherited from by AbstractNode,

Attributes
Name Type Usage
otu xs:NCName optional
Definition source
  <xs:complexType abstract="true" name="OptionalTaxonLinked">
    <xs:complexContent>
      <xs:extension base="IDTagged">
        <xs:attribute name="otu" type="xs:NCName" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

Segmented [abstract]

Description

The Segmented complexType is for elements that contain multiple child elements of the same type, e.g. multiple cells in a row, multiple nodes in a tree, etc. Segmented elements can hold one or more elements of type Class, such that the segments can refer to the ID of the class they belong to.

Inheritance

Segmented extends IDTagged.

Substructures
Definition source
  <xs:complexType abstract="true" name="Segmented">
    <xs:complexContent>
      <xs:extension base="IDTagged">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="class" type="Class"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

TaxaLinked [abstract]

Description

The TaxaLinked complexType is a super class for objects that that require an otus id reference.

Inheritance

TaxaLinked extends IDTagged. In turn, this type is inherited from by AbstractBlock, Trees,

Attributes
Name Type Usage
otus xs:NCName required
Definition source
  <xs:complexType abstract="true" name="TaxaLinked">
    <xs:complexContent>
      <xs:extension base="IDTagged">
        <xs:attribute name="otus" type="xs:NCName" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

TaxonLinked [abstract]

Description

The TaxonLinked complexType is a super class for objects that require a taxon id reference.

Inheritance

TaxonLinked extends IDTagged. In turn, this type is inherited from by AbstractObsRow, AbstractSeqRow,

Attributes
Name Type Usage
otu xs:NCName required
Definition source
  <xs:complexType abstract="true" name="TaxonLinked">
    <xs:complexContent>
      <xs:extension base="IDTagged">
        <xs:attribute name="otu" type="xs:NCName" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

See also

~/nexml/xsd/abstract.xsd includes the following other files:

~/nexml/xsd/abstract.xsd is included in:

This page summarizes the contents of schema file "~/nexml/xsd/abstract.xsd" as of revision 596. That schema file was last modified by rvos on 2008-05-20 14:48:49 -0400 (Tue, 20 May 2008), and this HTML summary page was generated on Wed Aug 20 22:40:10 2008.