Mapping element added
authoramwaterhouse <amwaterhouse@issues.jalview.org>
Wed, 13 Dec 2006 16:32:21 +0000 (16:32 +0000)
committeramwaterhouse <amwaterhouse@issues.jalview.org>
Wed, 13 Dec 2006 16:32:21 +0000 (16:32 +0000)
git-svn-id: https://svn.lifesci.dundee.ac.uk/svn/repository/trunk@251 be28352e-c001-0410-b1a7-c7978e42abec

schemas/vamsas.xsd

index 996c187..5a74d58 100644 (file)
@@ -1,10 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by MSD (EMBL OUTSTATION THE EBI WELLCOME TRUST GENOME CAMPUS) -->
-<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by lj (jl) -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-       xmlns:vamsas="http://www.vamsas.org"
-       targetNamespace="http://www.vamsas.org" elementFormDefault="qualified"
-       attributeFormDefault="unqualified">
+<!-- edited with XMLSpy v2006 sp1 U (http://www.altova.com) by ioh[ (o[ih[oh) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="http://www.vamsas.org" targetNamespace="http://www.vamsas.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:annotation>
                <xs:documentation>
                        Vorba ID - Vamsas Object Request Broker Address ID (name
                </xs:annotation>
                <xs:complexType>
                        <xs:sequence>
-                               <xs:element ref="vamsas:Tree" minOccurs="0"
-                                       maxOccurs="unbounded" />
-                               <xs:element ref="vamsas:DataSet" minOccurs="0"
-                                       maxOccurs="unbounded" />
+                               <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
+                               <xs:element ref="vamsas:DataSet" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:ID" use="optional">
                                <xs:annotation>
@@ -37,8 +32,7 @@
                                        </xs:documentation>
                                </xs:annotation>
                        </xs:attribute>
-                       <xs:attribute name="modifiable" type="xs:boolean"
-                               default="true" use="optional">
+                       <xs:attribute name="modifiable" type="xs:boolean" use="optional" default="true">
                                <xs:annotation>
                                        <xs:documentation>
                                                objects with modifiable=false will not be
                                </xs:documentation>
                        </xs:annotation>
                        <xs:sequence>
-                               <xs:element name="title" type="xs:string" minOccurs="0" />
+                               <xs:element name="title" type="xs:string" minOccurs="0"/>
                                <xs:element name="newick" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:simpleContent>
                                                        <xs:extension base="xs:string">
-                                                               <xs:attribute name="title"
-                                                                       type="xs:string" use="optional" />
-                                                               <xs:attribute name="id" type="xs:ID"
-                                                                       use="optional">
+                                                               <xs:attribute name="title" type="xs:string" use="optional"/>
+                                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
                                                                                        Primary Key for vamsas
@@ -86,8 +78,7 @@
                                                                                </xs:documentation>
                                                                        </xs:annotation>
                                                                </xs:attribute>
-                                                               <xs:attribute name="modifiable"
-                                                                       type="xs:boolean" default="true" use="optional">
+                                                               <xs:attribute name="modifiable" type="xs:boolean" use="optional" default="true">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
                                                                                        objects with
                                                </xs:simpleContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element ref="vamsas:property" maxOccurs="unbounded"
-                                       minOccurs="0" />
-                               <xs:element ref="vamsas:Provenance" />
+                               <xs:element ref="vamsas:property" minOccurs="0" maxOccurs="unbounded"/>
+                               <xs:element ref="vamsas:Provenance"/>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:ID" use="optional">
                                <xs:annotation>
                                        </xs:documentation>
                                </xs:annotation>
                        </xs:attribute>
-                       <xs:attribute name="modifiable" type="xs:boolean"
-                               default="true" use="optional">
+                       <xs:attribute name="modifiable" type="xs:boolean" use="optional" default="true">
                                <xs:annotation>
                                        <xs:documentation>
                                                objects with modifiable=false will not be
                                        </xs:documentation>
                                </xs:annotation>
                                <xs:extension base="xs:string">
-                                       <xs:attribute name="name" type="xs:string"
-                                               use="required" />
-                                       <xs:attribute name="type" type="xs:string"
-                                               use="required">
+                                       <xs:attribute name="name" type="xs:string" use="required"/>
+                                       <xs:attribute name="type" type="xs:string" use="required">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                The type specifies how the property will
                </xs:complexType>
        </xs:element>
        <xs:element name="link">
-       <xs:complexType>
-               <xs:annotation>
-                       <xs:documentation>
+               <xs:complexType>
+                       <xs:annotation>
+                               <xs:documentation>
                                Primitive labelled URI object
                        </xs:documentation>
-               </xs:annotation>
-               <xs:simpleContent>
-                       <xs:extension base="xs:string">
-                               <xs:attribute name="href" type="xs:anyURI">
-                                       <xs:annotation>
-                                               <xs:documentation>The URI</xs:documentation>
-                                       </xs:annotation>
-                               </xs:attribute>
-                       </xs:extension>
-               </xs:simpleContent>
-       </xs:complexType>
+                       </xs:annotation>
+                       <xs:simpleContent>
+                               <xs:extension base="xs:string">
+                                       <xs:attribute name="href" type="xs:anyURI">
+                                               <xs:annotation>
+                                                       <xs:documentation>The URI</xs:documentation>
+                                               </xs:annotation>
+                                       </xs:attribute>
+                               </xs:extension>
+                       </xs:simpleContent>
+               </xs:complexType>
        </xs:element>
        <xs:complexType name="rangeType" abstract="true">
                <xs:annotation>
                                jaxb-2.0 capable bindings
                        </xs:documentation>
                </xs:annotation>
-               <!--  Do we really need this - a position could be just a seg with start=end and inclusive=true -->
                <xs:choice>
-                       <xs:element name="pos" maxOccurs="unbounded"
-                               minOccurs="1">
+                       <xs:element name="pos" maxOccurs="unbounded">
                                <xs:annotation>
                                        <xs:documentation>
                                                a position within the associated object's
                                        </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
-                                       <xs:attribute name="i" type="xs:int" use="required" />
+                                       <xs:attribute name="i" type="xs:int" use="required"/>
                                </xs:complexType>
                        </xs:element>
-                       <xs:element name="seg" maxOccurs="unbounded"
-                               minOccurs="1">
+                       <xs:element name="seg" maxOccurs="unbounded">
                                <xs:annotation>
                                        <xs:documentation>
                                                a region from start to end, with flag for
                                        </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
-                                       <xs:attribute name="start" type="xs:int"
-                                               use="required" />
-                                       <xs:attribute name="end" type="xs:int"
-                                               use="required" />
-                                       <xs:attribute name="inclusive" type="xs:boolean"
-                                               use="required">
+                                       <xs:attribute name="start" type="xs:int" use="required"/>
+                                       <xs:attribute name="end" type="xs:int" use="required"/>
+                                       <xs:attribute name="inclusive" type="xs:boolean" use="required">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                when false, a consecutive range like
                                </xs:complexType>
                        </xs:element>
                </xs:choice>
+               <!--  Do we really need this - a position could be just a seg with start=end and inclusive=true -->
        </xs:complexType>
        <xs:complexType name="rangeAnnotation">
                <xs:annotation>
                <xs:complexContent>
                        <xs:extension base="vamsas:rangeType">
                                <xs:sequence>
-                                       <xs:element name="label" type="xs:string"
-                                               minOccurs="0" >
+                                       <xs:element name="label" type="xs:string" minOccurs="0">
                                                <xs:annotation>
-                                               <xs:documentation>
+                                                       <xs:documentation>
                                                        Short, meaningful name for the annotation - if this is absent, then the type string should be used in its place.
                                                </xs:documentation>
                                                </xs:annotation>
-                                               </xs:element>
-                                       <xs:element name="description" type="xs:string"
-                                               minOccurs="0" >
+                                       </xs:element>
+                                       <xs:element name="description" type="xs:string" minOccurs="0">
                                                <xs:annotation>
-                                               <xs:documentation>
+                                                       <xs:documentation>
                                                        Human readable description of the annotation
                                                </xs:documentation>
                                                </xs:annotation>
-                                               </xs:element>
-                                       <xs:element name="status" type="xs:string"
-                                               minOccurs="0" >
-                                               <xs:annotation><xs:documentation>
+                                       </xs:element>
+                                       <xs:element name="status" type="xs:string" minOccurs="0">
+                                               <xs:annotation>
+                                                       <xs:documentation>
                                                        TODO: specify this - we have considered taking the GO evidence codes as a model for assessing a measure of quality to an annotation.
-                                               </xs:documentation></xs:annotation>
-                                               </xs:element>
-                                       <xs:element ref="vamsas:annotationElement"
-                                               minOccurs="0" maxOccurs="unbounded">
+                                               </xs:documentation>
+                                               </xs:annotation>
+                                       </xs:element>
+                                       <xs:element ref="vamsas:annotationElement" minOccurs="0" maxOccurs="unbounded">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Annotation Element position maps to
                                                        </xs:documentation>
                                                </xs:annotation>
                                        </xs:element>
-                                       <xs:element name="score" minOccurs="0"
-                                               maxOccurs="unbounded">
+                                       <xs:element name="score" minOccurs="0" maxOccurs="unbounded">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Ordered set of optionally named float
                                                <xs:complexType>
                                                        <xs:simpleContent>
                                                                <xs:extension base="xs:float">
-                                                                       <xs:attribute name="name"
-                                                                               type="xs:string" use="optional" default="score">
-                                                                       </xs:attribute>
+                                                                       <xs:attribute name="name" type="xs:string" use="optional" default="score"/>
                                                                </xs:extension>
                                                        </xs:simpleContent>
                                                </xs:complexType>
                                        </xs:element>
-                                       <xs:element ref="vamsas:link" minOccurs="0" maxOccurs="unbounded" />
-                                       <xs:element ref="vamsas:property" minOccurs="0"
-                                               maxOccurs="unbounded">
+                                       <xs:element ref="vamsas:link" minOccurs="0" maxOccurs="unbounded"/>
+                                       <xs:element ref="vamsas:property" minOccurs="0" maxOccurs="unbounded">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Note:These are mutable so an application
                                                </xs:documentation>
                                        </xs:annotation>
                                </xs:attribute>
-                               <xs:attribute name="modifiable" type="xs:boolean"
-                                       default="true" use="optional">
+                               <xs:attribute name="modifiable" type="xs:boolean" use="optional" default="true">
                                        <xs:annotation>
                                                <xs:documentation>
                                                        objects with modifiable=false will not be
                                                </xs:documentation>
                                        </xs:annotation>
                                </xs:attribute>
-                               <xs:attribute name="group" type="xs:string"
-                                       use="optional" default="">
+                               <xs:attribute name="group" type="xs:string" use="optional" default="">
                                        <xs:annotation>
                                                <xs:documentation>
                                                        Annotation with the same non-empty group
                                                </xs:documentation>
                                        </xs:annotation>
                                </xs:attribute>
-                               <xs:attribute name="type" type="xs:string"
-                                       use="required">
+                               <xs:attribute name="type" type="xs:string" use="required">
                                        <xs:annotation>
                                                <xs:documentation>
                                                        A Das Feature has both a type and a Type ID.
                                        </xs:documentation>
                                </xs:annotation>
                                <xs:extension base="xs:string">
-                                       <xs:attribute name="name" type="xs:string"
-                                               use="required" />
-                                       <xs:attribute name="type" type="xs:string"
-                                               use="required">
+                                       <xs:attribute name="name" type="xs:string" use="required"/>
+                                       <xs:attribute name="type" type="xs:string" use="required">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                The type specifies how the property will
                                </xs:documentation>
                        </xs:annotation>
                        <xs:complexContent>
-
                                <xs:extension base="vamsas:rangeType">
-                                       <xs:attribute name="name" type="xs:string"
-                                               use="required">
-                                       </xs:attribute>
-                                       <xs:attribute name="objRef" type="xs:IDREF"
-                                               use="optional">
+                                       <xs:attribute name="name" type="xs:string" use="required"/>
+                                       <xs:attribute name="objRef" type="xs:IDREF" use="optional">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Reference Frame for rangeType
                        </xs:complexContent>
                </xs:complexType>
        </xs:element>
-
        <xs:element name="Provenance">
                <xs:complexType>
                        <xs:annotation>
                                                                        </xs:documentation>
                                                                </xs:annotation>
                                                        </xs:element>
-                                                       <xs:element name="Action"
-                                                               type="xs:string">
+                                                       <xs:element name="Action" type="xs:string">
                                                                <xs:annotation>
                                                                        <xs:documentation>
                                                                                Did what
                                                                        </xs:documentation>
                                                                </xs:annotation>
                                                        </xs:element>
-                                                       <xs:element ref="vamsas:property"
-                                                               minOccurs="0" maxOccurs="unbounded">
+                                                       <xs:element ref="vamsas:property" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:annotation>
                                                                        <xs:documentation>
                                                                                additional information
                                                                        </xs:documentation>
                                                                </xs:annotation>
                                                        </xs:element>
-                                                       <xs:element ref="vamsas:param" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element ref="vamsas:param" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:annotation>
                                                                        <xs:documentation>
                                                                                parameter for the action
                                                                        </xs:documentation>
                                                                </xs:annotation>
                                                        </xs:element>
-                                                       <xs:element ref="vamsas:input" minOccurs="0"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element ref="vamsas:input" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:annotation>
                                                                        <xs:documentation>
                                                                                bioinformatic objects input to
                                                                </xs:annotation>
                                                        </xs:element>
                                                </xs:sequence>
-                                               <xs:attribute name="id" type="xs:ID"
-                                                       use="optional">
+                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        Primary Key for vamsas object
                                                <xs:complexContent>
                                                        <xs:extension base="vamsas:SequenceType">
                                                                <xs:sequence>
-                                                                       <xs:element name="dbRef"
-                                                                               minOccurs="0" maxOccurs="unbounded">
+                                                                       <xs:element name="dbRef" minOccurs="0" maxOccurs="unbounded">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                Store a list of database
                                                                                                database sequence to the
                                                                                                given sequence record
                                                                                        </xs:documentation>
-                                                                                       <xs:documentation></xs:documentation>
-                                                                                       <xs:documentation></xs:documentation>
+                                                                                       <xs:documentation/>
+                                                                                       <xs:documentation/>
                                                                                </xs:annotation>
                                                                                <xs:complexType>
                                                                                        <xs:sequence>
-                                                                                               <xs:element name="map"
-                                                                                                       minOccurs="0" maxOccurs="unbounded">
+                                                                                               <xs:element name="map" minOccurs="0" maxOccurs="unbounded">
                                                                                                        <xs:complexType>
-                                                                                                               <xs:attribute
-                                                                                                                       name="from" type="xs:integer" default="0"
-                                                                                                                       use="optional">
+                                                                                                               <xs:attribute name="from" type="xs:integer" use="optional" default="0">
                                                                                                                        <xs:annotation>
                                                                                                                                <xs:documentation>
                                                                                                                                        Offset
                                                                                                                                </xs:documentation>
                                                                                                                        </xs:annotation>
                                                                                                                </xs:attribute>
-                                                                                                               <xs:attribute
-                                                                                                                       name="to" type="xs:integer" default="0" use="optional">
+                                                                                                               <xs:attribute name="to" type="xs:integer" use="optional" default="0">
                                                                                                                        <xs:annotation>
                                                                                                                                <xs:documentation>
                                                                                                                                        Offset
                                                                                                                                </xs:documentation>
                                                                                                                        </xs:annotation>
                                                                                                                </xs:attribute>
-                                                                                                               <xs:attribute
-                                                                                                                       name="start" type="xs:integer" use="required">
-                                                                                                               <xs:annotation>
-                                                                                                                       <xs:documentation>
+                                                                                                               <xs:attribute name="start" type="xs:integer" use="required">
+                                                                                                                       <xs:annotation>
+                                                                                                                               <xs:documentation>
                                                                                                                                Offset
                                                                                                                                to first
                                                                                                                                last
                                                                                                                                sequence
                                                                                                                                maps to
                                                                                                                        </xs:documentation>
-                                                                                                               </xs:annotation>
+                                                                                                                       </xs:annotation>
                                                                                                                </xs:attribute>
-                                                                                                               <xs:attribute
-                                                                                                                       name="end" type="xs:integer" use="required">
-                                                                                                               <xs:annotation>
-                                                                                                                       <xs:documentation>
+                                                                                                               <xs:attribute name="end" type="xs:integer" use="required">
+                                                                                                                       <xs:annotation>
+                                                                                                                               <xs:documentation>
                                                                                                                                Offset
                                                                                                                                to last
                                                                                                                                position
                                                                                                                                sequence
                                                                                                                                maps to
                                                                                                                        </xs:documentation>
-                                                                                                               </xs:annotation>
+                                                                                                                       </xs:annotation>
                                                                                                                </xs:attribute>
                                                                                                        </xs:complexType>
                                                                                                </xs:element>
                                                                                                <xs:element ref="vamsas:link" minOccurs="0" maxOccurs="unbounded"/>
-                                                                                               <xs:element
-                                                                                                       ref="vamsas:property" minOccurs="0" maxOccurs="unbounded" />
+                                                                                               <xs:element ref="vamsas:property" minOccurs="0" maxOccurs="unbounded"/>
                                                                                        </xs:sequence>
-                                                                                       <xs:attribute name="source"
-                                                                                               type="xs:string" use="required">
+                                                                                       <xs:attribute name="source" type="xs:string" use="required">
                                                                                                <xs:annotation>
                                                                                                        <xs:documentation>
                                                                                                                TODO Database
                                                                                                        </xs:documentation>
                                                                                                </xs:annotation>
                                                                                        </xs:attribute>
-                                                                                       <xs:attribute name="version"
-                                                                                               type="xs:string" use="required">
+                                                                                       <xs:attribute name="version" type="xs:string" use="required">
                                                                                                <xs:annotation>
                                                                                                        <xs:documentation>
                                                                                                                Version must be
                                                                                                        </xs:documentation>
                                                                                                </xs:annotation>
                                                                                        </xs:attribute>
-                                                                                       <xs:attribute
-                                                                                               name="accessionId" type="xs:string" use="required">
+                                                                                       <xs:attribute name="accessionId" type="xs:string" use="required">
                                                                                                <xs:annotation>
                                                                                                        <xs:documentation>
                                                                                                                TODO: make some
                                                                                                        </xs:documentation>
                                                                                                </xs:annotation>
                                                                                        </xs:attribute>
-                                                                                       <xs:attribute name="id"
-                                                                                               type="xs:ID" use="optional">
+                                                                                       <xs:attribute name="id" type="xs:ID" use="optional">
                                                                                                <xs:annotation>
                                                                                                        <xs:documentation>
                                                                                                                Primary Key for
                                                                                </xs:complexType>
                                                                        </xs:element>
                                                                </xs:sequence>
-                                                               <xs:attribute name="id" type="xs:ID"
-                                                                       use="optional">
+                                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
                                                                                        Primary Key for vamsas
                                                                                </xs:documentation>
                                                                        </xs:annotation>
                                                                </xs:attribute>
-                                                               <xs:attribute name="dictionary"
-                                                                       type="xs:string" use="required">
+                                                               <xs:attribute name="dictionary" type="xs:string" use="required">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
                                                                                        symbol class for sequence
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="DataSetAnnotations" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="DataSetAnnotations" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:annotation>
                                                        <xs:documentation>
                                                        </xs:documentation>
                                                </xs:annotation>
                                                <xs:complexContent>
-                                                       <xs:extension
-                                                               base="vamsas:rangeAnnotation">
+                                                       <xs:extension base="vamsas:rangeAnnotation">
                                                                <xs:sequence>
-                                                                       <xs:element ref="vamsas:Provenance"
-                                                                               maxOccurs="1" minOccurs="1" />
+                                                                       <xs:element ref="vamsas:Provenance"/>
                                                                </xs:sequence>
-                                                               <xs:attribute name="seqRef"
-                                                                       type="xs:IDREF" use="required">
+                                                               <xs:attribute name="seqRef" type="xs:IDREF" use="required">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
                                                                                        annotation is associated
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="Alignment" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="Alignment" minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element name="AlignmentAnnotation"
-                                                               minOccurs="0" maxOccurs="unbounded">
+                                                       <xs:element name="AlignmentAnnotation" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:annotation>
                                                                        <xs:documentation>
                                                                                This is annotation over the
                                                                </xs:annotation>
                                                                <xs:complexType>
                                                                        <xs:complexContent>
-                                                                               <xs:extension
-                                                                                       base="vamsas:rangeAnnotation">
+                                                                               <xs:extension base="vamsas:rangeAnnotation">
                                                                                        <xs:sequence>
-                                                                                               <xs:element
-                                                                                                       ref="vamsas:Provenance" minOccurs="1" maxOccurs="1" />
+                                                                                               <xs:element ref="vamsas:Provenance"/>
                                                                                        </xs:sequence>
-                                                                                       <xs:attribute name="graph"
-                                                                                               type="xs:boolean" use="required">
+                                                                                       <xs:attribute name="graph" type="xs:boolean" use="required">
                                                                                                <xs:annotation>
                                                                                                        <xs:documentation>
                                                                                                                TODO: decide if
                                                                        </xs:complexContent>
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element ref="vamsas:Tree" minOccurs="0"
-                                                               maxOccurs="unbounded" />
-                                                       <xs:element name="alignmentSequence"
-                                                               maxOccurs="unbounded">
+                                                       <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
+                                                       <xs:element name="alignmentSequence" maxOccurs="unbounded">
                                                                <xs:complexType>
                                                                        <xs:complexContent>
-                                                                               <xs:extension
-                                                                                       base="vamsas:SequenceType">
+                                                                               <xs:extension base="vamsas:SequenceType">
                                                                                        <xs:sequence>
-                                                                                               <xs:element
-                                                                                                       name="AlignmentSequenceAnnotation" minOccurs="0"
-                                                                                                       maxOccurs="unbounded">
+                                                                                               <xs:element name="AlignmentSequenceAnnotation" minOccurs="0" maxOccurs="unbounded">
                                                                                                        <xs:complexType>
                                                                                                                <xs:annotation>
                                                                                                                        <xs:documentation>
                                                                                                                                of the
                                                                                                                                alignment
                                                                                                                        </xs:documentation>
-                                                                                                                       <xs:documentation></xs:documentation>
+                                                                                                                       <xs:documentation/>
                                                                                                                </xs:annotation>
                                                                                                                <xs:complexContent>
-                                                                                                                       <xs:extension
-                                                                                                                               base="vamsas:rangeAnnotation">
+                                                                                                                       <xs:extension base="vamsas:rangeAnnotation">
                                                                                                                                <xs:sequence>
-                                                                                                                                       <xs:element
-                                                                                                                                               ref="vamsas:Provenance" minOccurs="1" maxOccurs="1" />
+                                                                                                                                       <xs:element ref="vamsas:Provenance"/>
                                                                                                                                </xs:sequence>
-                                                                                                                               <xs:attribute
-                                                                                                                                       name="graph" type="xs:boolean" use="required">
+                                                                                                                               <xs:attribute name="graph" type="xs:boolean" use="required">
                                                                                                                                        <xs:annotation>
                                                                                                                                                <xs:documentation>
                                                                                                                                                        TODO:
                                                                                                                                </xs:attribute>
                                                                                                                        </xs:extension>
                                                                                                                </xs:complexContent>
-
                                                                                                                <!--                                                            
                                                                                                                        This replaces the flat list of sequenceFeatures.
                                                                                                                        <xs:element name="AlignmentFeatures" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:annotation>
                                                                                                        </xs:complexType>
                                                                                                </xs:element>
                                                                                        </xs:sequence>
-                                                                                       <xs:attribute name="id"
-                                                                                               type="xs:ID" use="optional">
+                                                                                       <xs:attribute name="id" type="xs:ID" use="optional">
                                                                                                <xs:annotation>
                                                                                                        <xs:documentation>
                                                                                                                Primary Key for
                                                                                                        </xs:documentation>
                                                                                                </xs:annotation>
                                                                                        </xs:attribute>
-                                                                                       <xs:attribute name="refid"
-                                                                                               type="xs:IDREF" use="required">
+                                                                                       <xs:attribute name="refid" type="xs:IDREF" use="required">
                                                                                                <xs:annotation>
                                                                                                        <xs:documentation>
                                                                                                                Dataset Sequence
                                                                        </xs:complexContent>
                                                                </xs:complexType>
                                                        </xs:element>
-                                                       <xs:element ref="vamsas:property"
-                                                               minOccurs="0" maxOccurs="unbounded">
+                                                       <xs:element ref="vamsas:property" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:annotation>
                                                                        <xs:documentation>
                                                                                typical properties may be
                                                                        </xs:documentation>
                                                                </xs:annotation>
                                                        </xs:element>
-                                                       <xs:element ref="vamsas:Provenance" />
+                                                       <xs:element ref="vamsas:Provenance"/>
                                                </xs:sequence>
-                                               <xs:attribute name="gapChar" type="xs:string"
-                                                       use="required" />
-                                               <xs:attribute name="aligned" type="xs:boolean"
-                                                       use="optional" />
-                                               <xs:attribute name="id" type="xs:ID"
-                                                       use="optional">
+                                               <xs:attribute name="gapChar" type="xs:string" use="required"/>
+                                               <xs:attribute name="aligned" type="xs:boolean" use="optional"/>
+                                               <xs:attribute name="id" type="xs:ID" use="optional">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        Primary Key for vamsas object
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                </xs:attribute>
-                                               <xs:attribute name="modifiable"
-                                                       type="xs:boolean" default="true" use="optional">
+                                               <xs:attribute name="modifiable" type="xs:boolean" use="optional" default="true">
                                                        <xs:annotation>
                                                                <xs:documentation>
                                                                        objects with modifiable=false will
                                                </xs:attribute>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element ref="vamsas:Tree" minOccurs="0"
-                                       maxOccurs="unbounded" />
-                               <xs:element ref="vamsas:Provenance" />
+                               <xs:element ref="vamsas:Tree" minOccurs="0" maxOccurs="unbounded"/>
+                               <xs:element ref="vamsas:Provenance"/>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:ID" use="optional">
                                <xs:annotation>
                                </xs:documentation>
                        </xs:annotation>
                        <xs:sequence>
-
-                               <xs:element name="description" type="xs:string"
-                                       minOccurs="0">
+                               <xs:element name="description" type="xs:string" minOccurs="0">
                                        <xs:annotation>
                                                <xs:documentation>
                                                        Free text at this position
                                                </xs:documentation>
                                        </xs:annotation>
                                </xs:element>
-                               <xs:element name="glyph" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="glyph" minOccurs="0" maxOccurs="unbounded">
                                        <xs:annotation>
                                                <xs:documentation>
                                                        Discrete symbol - possibly graphically
                                        <xs:complexType>
                                                <xs:simpleContent>
                                                        <xs:extension base="xs:string">
-                                                               <xs:attribute name="dict"
-                                                                       type="xs:string" default="utf8" use="optional">
+                                                               <xs:attribute name="dict" type="xs:string" use="optional" default="utf8">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
                                                                                        specifies the symbol
                                                </xs:simpleContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="value" type="xs:float" minOccurs="0"
-                                       maxOccurs="unbounded">
+                               <xs:element name="value" type="xs:float" minOccurs="0" maxOccurs="unbounded">
                                        <xs:annotation>
                                                <xs:documentation>
                                                        Ordered set of float values - an application
                                        </xs:annotation>
                                </xs:element>
                        </xs:sequence>
-                       <xs:attribute name="position" type="xs:integer"
-                               use="required">
+                       <xs:attribute name="position" type="xs:integer" use="required">
                                <xs:annotation>
                                        <xs:documentation>
                                                position with respect to the coordinate frame
                                        </xs:documentation>
                                </xs:annotation>
                        </xs:attribute>
-                       <xs:attribute name="after" type="xs:boolean" use="optional"
-                               default="false">
+                       <xs:attribute name="after" type="xs:boolean" use="optional" default="false">
                                <xs:annotation>
                                        <xs:documentation>
                                                true means the annotation element appears
        </xs:element>
        <xs:complexType name="SequenceType">
                <xs:sequence>
-                       <xs:element name="sequence" type="xs:string" minOccurs="1"
-                               maxOccurs="1" />
-                       <xs:element name="name" type="xs:string" minOccurs="1"
-                               maxOccurs="1" />
-                       <xs:element name="description" type="xs:string"
-                               minOccurs="0" maxOccurs="1" />
-                       <xs:element ref="vamsas:property" minOccurs="0"
-                               maxOccurs="unbounded">
+                       <xs:element name="sequence" type="xs:string"/>
+                       <xs:element name="name" type="xs:string"/>
+                       <xs:element name="description" type="xs:string" minOccurs="0"/>
+                       <xs:element ref="vamsas:property" minOccurs="0" maxOccurs="unbounded">
                                <xs:annotation>
                                        <xs:documentation>
                                                additional typed properties
                                        </xs:documentation>
                                </xs:annotation>
                        </xs:element>
+                       <xs:element ref="vamsas:mapping" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
-               <xs:attribute name="start" type="xs:integer" use="required" />
-               <xs:attribute name="end" type="xs:integer" use="required" />
+               <xs:attribute name="start" type="xs:integer" use="required"/>
+               <xs:attribute name="end" type="xs:integer" use="required"/>
        </xs:complexType>
        <xs:element name="ApplicationData">
                <xs:complexType>
                        <xs:complexContent>
                                <xs:extension base="vamsas:appData">
                                        <xs:sequence>
-                                               <xs:element name="User" maxOccurs="unbounded"
-                                                       minOccurs="0">
+                                               <xs:element name="User" minOccurs="0" maxOccurs="unbounded">
                                                        <xs:complexType>
                                                                <xs:complexContent>
-                                                                       <xs:extension
-                                                                               base="vamsas:appData">
+                                                                       <xs:extension base="vamsas:appData">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                Data available to just a
                                                                                                particular user
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
-                                                                               <xs:attribute name="fullname"
-                                                                                       type="xs:string" use="required" />
-                                                                               <xs:attribute
-                                                                                       name="organization" type="xs:string" use="required" />
+                                                                               <xs:attribute name="fullname" type="xs:string" use="required"/>
+                                                                               <xs:attribute name="organization" type="xs:string" use="required"/>
                                                                        </xs:extension>
                                                                </xs:complexContent>
                                                        </xs:complexType>
                                                </xs:element>
-                                               <xs:element name="Common" maxOccurs="1"
-                                                       minOccurs="0">
+                                               <xs:element name="Common" minOccurs="0">
                                                        <xs:complexType>
                                                                <xs:complexContent>
-                                                                       <xs:extension
-                                                                               base="vamsas:appData">
-                                                                       </xs:extension>
+                                                                       <xs:extension base="vamsas:appData"/>
                                                                </xs:complexContent>
                                                        </xs:complexType>
                                                </xs:element>
-                                               <xs:element name="Instance"
-                                                       maxOccurs="unbounded" minOccurs="0">
+                                               <xs:element name="Instance" minOccurs="0" maxOccurs="unbounded">
                                                        <xs:complexType>
                                                                <xs:complexContent>
-                                                                       <xs:extension
-                                                                               base="vamsas:appData">
+                                                                       <xs:extension base="vamsas:appData">
                                                                                <xs:annotation>
                                                                                        <xs:documentation>
                                                                                                Data available to just a
                                                                                                that instance
                                                                                        </xs:documentation>
                                                                                </xs:annotation>
-                                                                               <xs:attribute name="urn"
-                                                                                       type="xs:string" use="required" />
+                                                                               <xs:attribute name="urn" type="xs:string" use="required"/>
                                                                        </xs:extension>
                                                                </xs:complexContent>
                                                        </xs:complexType>
                                                </xs:element>
                                        </xs:sequence>
-                                       <xs:attribute name="version" type="xs:string"
-                                               use="required" ><xs:annotation><xs:documentation>
-                                                       Version string describing the application specific data storage version used</xs:documentation></xs:annotation></xs:attribute>
-                                       <xs:attribute name="name" type="xs:string"
-                                               use="required" >
-                                               <xs:annotation><xs:documentation>
+                                       <xs:attribute name="version" type="xs:string" use="required">
+                                               <xs:annotation>
+                                                       <xs:documentation>
+                                                       Version string describing the application specific data storage version used</xs:documentation>
+                                               </xs:annotation>
+                                       </xs:attribute>
+                                       <xs:attribute name="name" type="xs:string" use="required">
+                                               <xs:annotation>
+                                                       <xs:documentation>
                                                        Canonical name of application
                                                </xs:documentation>
                                                </xs:annotation>
-                                               </xs:attribute>
+                                       </xs:attribute>
                                </xs:extension>
                        </xs:complexContent>
                </xs:complexType>
                                                        data object to any vamsas object
                                                </xs:documentation>
                                        </xs:annotation>
-                                       <xs:attribute name="compressed" type="xs:boolean"
-                                               use="optional" default="false">
+                                       <xs:attribute name="compressed" type="xs:boolean" use="optional" default="false">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                true implies data will be decompresses
                                                        </xs:documentation>
                                                </xs:annotation>
                                        </xs:attribute>
-                                       <xs:attribute name="type" type="xs:string"
-                                               use="required">
+                                       <xs:attribute name="type" type="xs:string" use="required">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Type of arbitrary data - TODO: decide
                                                        </xs:documentation>
                                                </xs:annotation>
                                        </xs:attribute>
-                                       <xs:attribute name="objectref" type="xs:IDREF"
-                                               use="required">
+                                       <xs:attribute name="objectref" type="xs:IDREF" use="required">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Object the arbitrary data is associated
                                                        </xs:documentation>
                                                </xs:annotation>
                                        </xs:attribute>
-                                       <xs:attribute name="id" type="xs:ID"
-                                               use="optional">
+                                       <xs:attribute name="id" type="xs:ID" use="optional">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Primary Key for vamsas object
        </xs:element>
        <xs:complexType name="appData">
                <xs:choice>
-                       <xs:element name="data" type="xs:base64Binary" />
-                       <xs:element name="dataReference" type="xs:string" />
+                       <xs:element name="data" type="xs:base64Binary"/>
+                       <xs:element name="dataReference" type="xs:string"/>
                </xs:choice>
        </xs:complexType>
+       <xs:element name="mapping">
+               <xs:complexType>
+                       <xs:sequence>
+                               <xs:element name="objectA">
+                                       <xs:complexType>
+                                               <xs:complexContent>
+                                                       <xs:extension base="vamsas:rangeType">
+                                                               <xs:attribute name="objRefA" type="xs:IDREF" use="required"/>
+                                                       </xs:extension>
+                                               </xs:complexContent>
+                                       </xs:complexType>
+                               </xs:element>
+                               <xs:element name="objectB">
+                                       <xs:complexType>
+                                               <xs:complexContent>
+                                                       <xs:extension base="vamsas:rangeType">
+                                                               <xs:attribute name="objRefB" type="xs:IDREF" use="required"/>
+                                                       </xs:extension>
+                                               </xs:complexContent>
+                                       </xs:complexType>
+                               </xs:element>
+                       </xs:sequence>
+               </xs:complexType>
+       </xs:element>
 </xs:schema>