JAL-4124 Dataset holds list of MatrixType instances, MapOnAMatrixType allows multiple...
[jalview.git] / schemas / vamsas.xsd
index c4a5d3e..38152fd 100755 (executable)
        Note this also generates code for included schemas
 -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" targetNamespace="www.vamsas.ac.uk/jalview/version2" elementFormDefault="qualified" attributeFormDefault="unqualified">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+       xmlns:vamsas="www.vamsas.ac.uk/jalview/version2"
+       targetNamespace="www.vamsas.ac.uk/jalview/version2"
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:complexType name="VAMSAS">
                <xs:sequence>
-                       <xs:element name="Tree" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element ref="vamsas:SequenceSet" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="Tree" type="xs:string" minOccurs="0"
+                               maxOccurs="unbounded" />
+                       <xs:element ref="vamsas:SequenceSet" minOccurs="0"
+                               maxOccurs="unbounded" />
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="mapListType">
                <xs:annotation>
-                       <xs:documentation> 
-                               developed after mapRangeType from http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes
+                       <xs:documentation>
+                               developed after mapRangeType from
+                               http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes
                        </xs:documentation>
                        <xs:documentation>
-                               This effectively represents a java.util.MapList object
+                               This effectively represents a java.util.MapList
+                               object
                        </xs:documentation>
                </xs:annotation>
                <xs:sequence>
-                       <xs:element name="mapListFrom" minOccurs="0" maxOccurs="unbounded">
+                       <xs:element name="mapListFrom" minOccurs="0"
+                               maxOccurs="unbounded">
                                <xs:annotation>
-                                       <xs:documentation> a region from start to end inclusive</xs:documentation>
+                                       <xs:documentation> a region from start to end inclusive
+                                       </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="start" type="xs:int"
+                                               use="required" />
+                                       <xs:attribute name="end" type="xs:int" use="required" />
                                </xs:complexType>
-                       </xs:element>                                   
-                       <xs:element name="mapListTo" minOccurs="0" maxOccurs="unbounded">
+                       </xs:element>
+                       <xs:element name="mapListTo" minOccurs="0"
+                               maxOccurs="unbounded">
                                <xs:annotation>
-                                       <xs:documentation> a region from start to end inclusive</xs:documentation>
+                                       <xs:documentation> a region from start to end inclusive
+                                       </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="start" type="xs:int"
+                                               use="required" />
+                                       <xs:attribute name="end" type="xs:int" use="required" />
                                </xs:complexType>
-                       </xs:element>                                   
+                       </xs:element>
                </xs:sequence>
-               <xs:attribute name="mapFromUnit" type="xs:positiveInteger" use="required">
+               <xs:attribute name="mapFromUnit"
+                       type="xs:positiveInteger" use="required">
                        <xs:annotation>
-                               <xs:documentation>number of dictionary symbol widths involved in each
-                                       mapped position on this sequence (for example, 3 for a dna sequence exon
-                                       region that is being mapped to a protein sequence). This is optional,
-                                       since the unit can be usually be inferred from the dictionary type of
-                                       each sequence involved in the mapping. </xs:documentation>
+                               <xs:documentation>number of dictionary symbol widths involved in
+                                       each
+                                       mapped position on this sequence (for example, 3 for a dna
+                                       sequence exon
+                                       region that is being mapped to a protein sequence).
+                                       This is optional,
+                                       since the unit can be usually be inferred from the
+                                       dictionary type of
+                                       each sequence involved in the mapping.
+                               </xs:documentation>
                        </xs:annotation>
                </xs:attribute>
-               <xs:attribute name="mapToUnit" type="xs:positiveInteger" use="required">
+               <xs:attribute name="mapToUnit" type="xs:positiveInteger"
+                       use="required">
                        <xs:annotation>
-                               <xs:documentation>number of dictionary symbol widths involved in each
-                                       mapped position on this sequence (for example, 3 for a dna sequence exon
-                                       region that is being mapped to a protein sequence). This is optional,
-                                       since the unit can be usually be inferred from the dictionary type of
-                                       each sequence involved in the mapping. </xs:documentation>
+                               <xs:documentation>number of dictionary symbol widths involved in
+                                       each
+                                       mapped position on this sequence (for example, 3 for a dna
+                                       sequence exon
+                                       region that is being mapped to a protein sequence).
+                                       This is optional,
+                                       since the unit can be usually be inferred from the
+                                       dictionary type of
+                                       each sequence involved in the mapping.
+                               </xs:documentation>
                        </xs:annotation>
                </xs:attribute>
        </xs:complexType>
                <xs:complexType>
                        <xs:annotation>
                                <xs:documentation>
-                                       Represent the jalview.datamodel.Mapping object - it also provides
-                                       a way of storing sequences that are mapped 'to' without adding them
-                                       to the sequence set (which will mean they are then added to the alignment too).
+                                       Represent the jalview.datamodel.Mapping object -
+                                       it also provides
+                                       a way of storing sequences that are mapped 'to'
+                                       without adding them
+                                       to the sequence set (which will mean they are
+                                       then added to the alignment too).
                                </xs:documentation>
                        </xs:annotation>
                        <xs:complexContent>
                                <xs:extension base="vamsas:mapListType">
                                        <xs:sequence>
                                                <xs:choice minOccurs="0" maxOccurs="1">
-                                                       <xs:element ref="vamsas:Sequence"/>
+                                                       <xs:element ref="vamsas:Sequence" />
                                                        <xs:element name="dseqFor">
                                                                <xs:simpleType>
                                                                        <xs:restriction base="xs:string">
                                                                                <xs:annotation>
-                                                                                       <xs:documentation>The sequence whose dataset sequence is to be referenced here</xs:documentation>
+                                                                                       <xs:documentation>The sequence whose dataset sequence is to
+                                                                                               be referenced here
+                                                                                       </xs:documentation>
                                                                                </xs:annotation>
                                                                        </xs:restriction>
                                                                </xs:simpleType>
                                                        </xs:element>
                                                </xs:choice>
                                        </xs:sequence>
-                                       <xs:attribute name="mappingType" type="xs:string" use="optional">
+                                       <xs:attribute name="mappingType" type="xs:string"
+                                               use="optional">
                                                <xs:annotation>
-                                                       <xs:documentation>Biotype of the mapping e.g. CdsToPeptide</xs:documentation>
+                                                       <xs:documentation>Biotype of the mapping e.g. CdsToPeptide
+                                                       </xs:documentation>
                                                </xs:annotation>
                                        </xs:attribute>
                                </xs:extension>
-                       </xs:complexContent>    
+                       </xs:complexContent>
                </xs:complexType>
        </xs:element>
        <xs:element name="AlcodonFrame">
                <xs:complexType>
                        <xs:sequence>
-                               <xs:element name="alcodon" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="alcodon" minOccurs="0"
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:annotation>
                                                        <xs:documentation>
-                                                               specifies a series of aligned codons from an associated DNA sequence alignment that when translated correspond to columns of a peptide alignment.
-                                                               Element may have either all pos1,2,3 attributes specified, or none at all (indicating a gapped column with no translated peptide).
+                                                               specifies a series of aligned codons from an
+                                                               associated DNA sequence alignment that when translated
+                                                               correspond to columns of a peptide alignment.
+                                                               Element may have
+                                                               either all pos1,2,3 attributes specified, or none at all
+                                                               (indicating a gapped column with no translated peptide).
                                                        </xs:documentation>
                                                </xs:annotation>
-                                               <xs:attribute name="pos1" type="xs:integer" use="optional"/>
-                                               <xs:attribute name="pos2" type="xs:integer" use="optional"/>
-                                               <xs:attribute name="pos3" type="xs:integer" use="optional"/>
+                                               <xs:attribute name="pos1" type="xs:integer"
+                                                       use="optional" />
+                                               <xs:attribute name="pos2" type="xs:integer"
+                                                       use="optional" />
+                                               <xs:attribute name="pos3" type="xs:integer"
+                                                       use="optional" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="alcodMap" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="alcodMap" minOccurs="0"
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:sequence>
-                                                       <xs:element ref="vamsas:Mapping" maxOccurs="1" minOccurs="1">
+                                                       <xs:element ref="vamsas:Mapping" maxOccurs="1"
+                                                               minOccurs="1">
                                                                <xs:annotation>
                                                                        <xs:documentation>
-                                                                               a Mapping entry and an associated protein sequence
+                                                                               a Mapping entry and an associated protein
+                                                                               sequence
                                                                        </xs:documentation>
                                                                </xs:annotation>
                                                        </xs:element>
                                                </xs:sequence>
-                                               <xs:attribute name="dnasq" type="xs:string" use="required">
+                                               <xs:attribute name="dnasq" type="xs:string"
+                                                       use="required">
                                                        <xs:annotation>
                                                                <xs:documentation>
-                                                                       internal jalview id for the dnasq for this mapping.
+                                                                       internal jalview id for the dnasq for this
+                                                                       mapping.
                                                                </xs:documentation>
                                                        </xs:annotation>
                                                </xs:attribute>
                                        </xs:complexType>
-                                       
+
                                </xs:element>
-                               
+
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
                        <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:complexType>
                                                                <xs:sequence>
-                                                                       <xs:element ref="vamsas:Mapping" minOccurs="0" maxOccurs="1"/>
-                                                               </xs:sequence>                                                                                                  
-                                                               <xs:attribute name="source" type="xs:string"/>
-                                                               <xs:attribute name="version" type="xs:string"/>
-                                                               <xs:attribute name="accessionId" type="xs:string"/>
-                                                               <xs:attribute name="locus" type="xs:boolean" default="false">
+                                                                       <xs:element ref="vamsas:Mapping" minOccurs="0"
+                                                                               maxOccurs="1" />
+                                                               </xs:sequence>
+                                                               <xs:attribute name="source" type="xs:string" />
+                                                               <xs:attribute name="version" type="xs:string" />
+                                                               <xs:attribute name="accessionId" type="xs:string" />
+                                                               <xs:attribute name="locus" type="xs:boolean"
+                                                                       default="false">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
-                                                                                       true for gene locus mapping, source=species, version=assembly, accession=chromosome
+                                                                                       true for gene locus mapping, source=species,
+                                                                                       version=assembly, accession=chromosome
                                                                                </xs:documentation>
                                                                        </xs:annotation>
                                                                </xs:attribute>
-                                                               <xs:attribute name="canonical" type="xs:boolean" default="false">
+                                                               <xs:attribute name="canonical" type="xs:boolean"
+                                                                       default="false">
                                                                        <xs:annotation>
                                                                                <xs:documentation>
-                                                                                       true for the representative accession for databases where multiple accessions map to the same entry (eg. Uniprot)
+                                                                                       true for the representative accession for
+                                                                                       databases where multiple accessions map to the same entry
+                                                                                       (eg. Uniprot)
                                                                                </xs:documentation>
                                                                        </xs:annotation>
                                                                </xs:attribute>
                                                        </xs:complexType>
                                                </xs:element>
                                        </xs:sequence>
-                                       <xs:attribute name="dsseqid" type="xs:string" use="optional">
+                                       <xs:attribute name="dsseqid" type="xs:string"
+                                               use="optional">
                                                <xs:annotation>
                                                        <xs:documentation>
-                                                               dataset sequence id for this sequence. Will be created as union of sequences.
+                                                               dataset sequence id for this sequence. Will be
+                                                               created as union of sequences.
                                                        </xs:documentation>
                                                </xs:annotation>
                                        </xs:attribute>
-                                       <xs:attribute name="biotype" type="xs:string" use="optional">
+                                       <xs:attribute name="biotype" type="xs:string"
+                                               use="optional">
                                                <xs:annotation>
                                                        <xs:documentation>
                                                                Biotype of the sequence (if known)
                                                <xs:attribute name="colour" type="xs:int" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="contactmatrix" type="vamsas:MatrixType"
-                                       maxOccurs="unbounded" minOccurs="0">
+                               <xs:element name="contactmatrix"
+                                       type="vamsas:MapOnAMatrixType" maxOccurs="unbounded" minOccurs="0">
                                </xs:element>
-                               <xs:element name="property" type="vamsas:property" minOccurs="0" maxOccurs="unbounded"/>
+                               <xs:element name="property" type="vamsas:property"
+                                       minOccurs="0" maxOccurs="unbounded" />
                        </xs:sequence>
-                       <xs:attribute name="graph" type="xs:boolean" use="required" />
-                       <xs:attribute name="graphType" type="xs:int" use="optional" />
+                       <xs:attribute name="graph" type="xs:boolean"
+                               use="required" />
+                       <xs:attribute name="graphType" type="xs:int"
+                               use="optional" />
                        <xs:attribute name="sequenceRef" type="xs:string"
                                use="optional" />
                        <xs:attribute name="groupRef" type="xs:string"
                                use="optional" />
                        <xs:attribute name="graphGroup" type="xs:int"
                                use="optional" />
-                       <xs:attribute name="graphHeight" type="xs:int" use="optional">
-                       <xs:annotation><xs:documentation>height in pixels for the graph if this is a graph-type annotation.</xs:documentation></xs:annotation></xs:attribute>
+                       <xs:attribute name="graphHeight" type="xs:int"
+                               use="optional">
+                               <xs:annotation>
+                                       <xs:documentation>height in pixels for the graph if this is a
+                                               graph-type annotation.
+                                       </xs:documentation>
+                               </xs:annotation>
+                       </xs:attribute>
                        <xs:attribute name="id" type="xs:string" use="optional" />
                        <xs:attribute name="scoreOnly" type="xs:boolean"
                                use="optional" default="false" />
-                       <xs:attribute name="score" type="xs:double" use="optional" />
+                       <xs:attribute name="score" type="xs:double"
+                               use="optional" />
                        <xs:attribute name="visible" type="xs:boolean"
                                use="optional" />
                        <xs:attribute name="centreColLabels" type="xs:boolean"
                                use="optional" />
 
 
-                       <xs:attribute name="autoCalculated" type="xs:boolean" use="optional" default="false">
-                       <xs:annotation><xs:documentation>is an autocalculated annotation row</xs:documentation>
-                       </xs:annotation></xs:attribute>
-                       <xs:attribute name="belowAlignment" type="xs:boolean" use="optional" default="true">
-                       <xs:annotation><xs:documentation>is to be shown below the alignment - introduced in Jalview 2.8 for visualizing T-COFFEE alignment scores</xs:documentation></xs:annotation></xs:attribute>
-                       <xs:attribute name="calcId" type="xs:string" use="optional">
-                       <xs:annotation><xs:documentation>Optional string identifier used to group sets of annotation produced by a particular calculation. Values are opaque strings but have semantic meaning to Jalview's renderer, data importer and calculation system.</xs:documentation></xs:annotation>
+                       <xs:attribute name="autoCalculated" type="xs:boolean"
+                               use="optional" default="false">
+                               <xs:annotation>
+                                       <xs:documentation>is an autocalculated annotation row
+                                       </xs:documentation>
+                               </xs:annotation>
+                       </xs:attribute>
+                       <xs:attribute name="belowAlignment" type="xs:boolean"
+                               use="optional" default="true">
+                               <xs:annotation>
+                                       <xs:documentation>is to be shown below the alignment - introduced
+                                               in Jalview 2.8 for visualizing T-COFFEE alignment scores
+                                       </xs:documentation>
+                               </xs:annotation>
+                       </xs:attribute>
+                       <xs:attribute name="calcId" type="xs:string"
+                               use="optional">
+                               <xs:annotation>
+                                       <xs:documentation>Optional string identifier used to group sets of
+                                               annotation produced by a particular calculation. Values are opaque
+                                               strings but have semantic meaning to Jalview's renderer, data
+                                               importer and calculation system.
+                                       </xs:documentation>
+                               </xs:annotation>
                        </xs:attribute>
                </xs:complexType>
-       </xs:element>   
+       </xs:element>
        <xs:element name="SequenceSet">
                <xs:complexType>
                        <xs:sequence>
-                               <xs:element ref="vamsas:Sequence" minOccurs="0" maxOccurs="unbounded"/>
-                               <xs:element ref="vamsas:Annotation" minOccurs="0" maxOccurs="unbounded"/>
-                               <xs:element name="sequenceSetProperties" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element ref="vamsas:Sequence" minOccurs="0"
+                                       maxOccurs="unbounded" />
+                               <xs:element ref="vamsas:Annotation" minOccurs="0"
+                                       maxOccurs="unbounded" />
+                               <xs:element name="sequenceSetProperties" minOccurs="0"
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
-                                               <xs:attribute name="key" type="xs:string"/>
-                                               <xs:attribute name="value" type="xs:string"/>
+                                               <xs:attribute name="key" type="xs:string" />
+                                               <xs:attribute name="value" type="xs:string" />
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element ref="vamsas:AlcodonFrame" minOccurs="0" maxOccurs="unbounded"/>
-                               <xs:element name="Matrices" type="vamsas:MatrixType" minOccurs="0" maxOccurs="unbounded"/>
+                               <xs:element ref="vamsas:AlcodonFrame" minOccurs="0"
+                                       maxOccurs="unbounded" />
+                               <xs:element name="Matrices" type="vamsas:MatrixType"
+                                       minOccurs="0" maxOccurs="unbounded">
+                                       <xs:annotation>
+                                               <xs:documentation>Matrices referred to by this set of sequences.
+                                               </xs:documentation>
+                                       </xs:annotation>
+                               </xs:element>
                        </xs:sequence>
-                       <xs:attribute name="gapChar" type="xs:string" use="required"/>
-                       <xs:attribute name="datasetId" type="xs:string" use="optional">
+                       <xs:attribute name="gapChar" type="xs:string"
+                               use="required" />
+                       <xs:attribute name="datasetId" type="xs:string"
+                               use="optional">
                                <xs:annotation>
                                        <xs:documentation>
-                                               reference to set where jalview will gather the dataset sequences for all sequences in the set. 
+                                               reference to set where jalview will gather the
+                                               dataset sequences for all sequences in the set.
                                        </xs:documentation>
                                </xs:annotation>
                        </xs:attribute>
        <xs:element name="annotationElement">
                <xs:complexType>
                        <xs:sequence>
-                               <xs:element name="displayCharacter" type="xs:string" minOccurs="0"/>
-                               <xs:element name="description" type="xs:string" minOccurs="0"/>
+                               <xs:element name="displayCharacter" type="xs:string"
+                                       minOccurs="0" />
+                               <xs:element name="description" type="xs:string"
+                                       minOccurs="0" />
                                <xs:element name="secondaryStructure" minOccurs="0">
                                        <xs:simpleType>
                                                <xs:restriction base="xs:string">
-                                                       <xs:length value="1"/>
+                                                       <xs:length value="1" />
                                                </xs:restriction>
                                        </xs:simpleType>
                                </xs:element>
-                               <xs:element name="value" type="xs:float" minOccurs="0"/>
+                               <xs:element name="value" type="xs:float" minOccurs="0" />
                        </xs:sequence>
-                       <xs:attribute name="position" type="xs:int" use="required"/>
-                       <xs:attribute name="colour" type="xs:int" use="optional"/>
+                       <xs:attribute name="position" type="xs:int"
+                               use="required" />
+                       <xs:attribute name="colour" type="xs:int" use="optional" />
                </xs:complexType>
        </xs:element>
        <xs:complexType name="SequenceType">
                <xs:sequence>
-                       <xs:element name="sequence" type="xs:string" minOccurs="0"/>
-                       <xs:element name="name" type="xs:string" minOccurs="0"/>
+                       <xs:element name="sequence" type="xs:string" minOccurs="0" />
+                       <xs:element name="name" type="xs:string" minOccurs="0" />
                </xs:sequence>
-               <xs:attribute name="id" type="xs:string"/>
-               <xs:attribute name="description" type="xs:string"/>
+               <xs:attribute name="id" type="xs:string" />
+               <xs:attribute name="description" type="xs:string" />
        </xs:complexType>
        <xs:complexType name="MatrixType">
+               <xs:annotation>
+                       <xs:documentation>Represents matrix data imported to Jalview, and the
+                               results of any derived calculations (independent of a particular
+                               view
+                               on the matrix).
+                       </xs:documentation>
+               </xs:annotation>
                <xs:sequence>
                        <xs:element name="elements" type="xs:string" minOccurs="1"
                                maxOccurs="1">
                                <xs:annotation>
                                        <xs:documentation>serialised representation of matrix as one or
-                                               more sets of comma separated values</xs:documentation>
+                                               more sets of comma separated values
+                                       </xs:documentation>
                                </xs:annotation>
                        </xs:element>
                        <xs:element name="groups" type="xs:string" minOccurs="0"
                        </xs:element>
                        <xs:element name="property" type="vamsas:property"
                                minOccurs="0" maxOccurs="unbounded" />
-                       <xs:element name="mapping" type="vamsas:mapListType"
-                               minOccurs="0" maxOccurs="1">
-                       <xs:annotation>
-                               <xs:documentation>mapping from the matrix row and column positions to
-                                       associated reference frame</xs:documentation>
-                               </xs:annotation>
-                       </xs:element>
                </xs:sequence>
 
                <xs:attribute name="type" type="xs:string" use="required" />
 
        </xs:complexType>
        <xs:complexType name="MapOnAMatrixType">
+               <xs:annotation>
+                       <xs:documentation>Defines a mapping from the local frame to a matrix
+                               and its associated data specified by MatrixType
+                       </xs:documentation>
+               </xs:annotation>
                <xs:sequence>
                        <xs:element name="property" type="vamsas:property"
                                minOccurs="0" maxOccurs="unbounded" />
                                </xs:annotation>
                        </xs:element>
                </xs:sequence>
-       
+
                <xs:attribute name="matrix" type="xs:string"
                        use="required">
-       
+
                        <xs:annotation>
                                <xs:documentation>reference to the matrix type this Map refers to
                                </xs:documentation>
                <xs:attribute name="name" type="xs:string" />
                <xs:attribute name="value" type="xs:string" />
        </xs:complexType>
-                               
-       
+
+
 </xs:schema>