<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:complexType name="rangeType">
<xs:annotation>
- <xs:documentation>Specify positions and/or regions on the principle dimension of some associated vamsas objects
+ <xs:documentation>Specify positions and/or regions on the principle dimension of some associated vamsas object
TODO: this is abstract. should provide context to scope the range of ids for each use</xs:documentation>
<xs:documentation>Keeping to jaxb-1.0 specification for the moment - this choice should become a substitution group when we use jaxb-2.0 capable bindings
</xs:documentation></xs:annotation>
<xs:attribute name="group" type="xs:string" use="optional">
<xs:annotation><xs:documentation>Annotation with the same non-empty group name are grouped together</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="seqRef" type="xs:IDREF" use="optional">
- <xs:annotation><xs:documentation>annotation may be associated with a particular sequence lying within the same reference frame as the rangeType's objRef</xs:documentation></xs:annotation>
- </xs:attribute>
+
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:annotation><xs:documentation>Annotate over positions and regions of dataset sequences</xs:documentation>
</xs:annotation>
<xs:complexContent>
- <xs:extension base="vamsas:rangeAnnotation"/>
+ <xs:extension base="vamsas:rangeAnnotation">
+ <xs:attribute name="seqRef" type="xs:IDREF" use="optional">
+ <xs:annotation><xs:documentation>annotation may be associated with a particular sequence lying within the same reference frame as the rangeType's objRef</xs:documentation></xs:annotation>
+ </xs:attribute>
+ </xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="AlignmentFeatures" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:annotation>
<xs:documentation>Annotate over positions and regions of the alignment</xs:documentation>
</xs:annotation><xs:complexContent>
- <xs:extension base="vamsas:rangeAnnotation"></xs:extension>
+ <xs:extension base="vamsas:rangeAnnotation">
+ <xs:attribute name="seqRef" type="xs:IDREF" use="optional">
+ <xs:annotation><xs:documentation>annotation may be associated with a particular sequence lying within the same reference frame as the rangeType's objRef</xs:documentation></xs:annotation>
+ </xs:attribute>
+ </xs:extension>
</xs:complexContent></xs:complexType></xs:element>
<xs:element name="AlignmentAnnotations" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ TODO: hard to distinguish this from the alignment features element. Do we merge them and leave the applications
+ </xs:documentation>
+ </xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="vamsas:annotationElement" maxOccurs="unbounded"/>
<xs:complexContent>
<xs:extension base="vamsas:SequenceType">
<xs:sequence>
- <xs:element name="AlignmentSequenceFeatures" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType><xs:annotation>
+ <xs:element name="AlignmentSequenceFeature" type="vamsas:rangeAnnotation" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
<xs:documentation>Annotate over positions and regions of the ungapped sequences in the alignment</xs:documentation>
<xs:documentation>TODO: have to remove id rangeSpec or require it to be the same as dataset sequence reference</xs:documentation>
- </xs:annotation><xs:complexContent>
- <xs:extension base="vamsas:rangeAnnotation"></xs:extension>
- </xs:complexContent></xs:complexType>
+ </xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional">
<xs:annotation><xs:documentation>Primary Key for vamsas object referencing</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 from which this alignment sequence is taken from</xs:documentation></xs:annotation></xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="SequenceType">
<xs:sequence>
- <xs:element name="sequence" type="xs:string"/>
- <xs:element name="name" type="xs:string"/>
- <xs:element name="description" type="xs:string"/>
+ <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:annotation><xs:documentation>additional typed properties</xs:documentation></xs:annotation></xs:element>
</xs:sequence>
<xs:attribute name="start" type="xs:integer" use="required"/>
<xs:extension base="vamsas:appData">
<xs:annotation>
<xs:documentation>Data available to just a specific instance of the application</xs:documentation>
+ <xs:documentation>VAMSAS/Pierre: Is this data volatile ? Application instances may not be accessible after the session has closed - the user may have to be presented with the option of picking up the data in that instance</xs:documentation>
</xs:annotation>
<xs:attribute name="urn" type="xs:string" use="required"/>
</xs:extension>