+ <xs:complexType name="rangeAnnotation">
+ <xs:annotation>
+ <xs:documentation> Annotation for a rangeSpec - values can be attached for the whole
+ specification, and to each position within the spec. following the orientation
+ specified by the ordered set of rangeSpec (pos, seg) elements. </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="vamsas:rangeType">
+ <xs:sequence>
+ <xs:element name="label" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <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:annotation>
+ <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> 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:annotation>
+ <xs:documentation> Annotation Element position maps to ordered positions
+ defined by the sequence of rangeType pos positions or concatenated
+ seg start/end segments. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="score" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation> Ordered set of optionally named float values for the
+ whole annotation </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:float">
+ <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:annotation>
+ <xs:documentation> Note:These are mutable so an application should check
+ them each time. </xs:documentation>
+ </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="modifiable" type="vamsas:locks" use="optional">
+ </xs:attribute>
+ <xs:attribute name="group" type="xs:string" use="optional" default="">
+ <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:annotation>
+ <xs:documentation> A Das Feature has both a type and a Type ID. We go the
+ route of requiring the type string to be taken from a controlled
+ vocabulary if an application expects others to make sense of it. The
+ type may qualified - so uniprot:CHAIN is a valid type name, and
+ considered distinct from someotherDB:CHAIN </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="param">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation> Specifies a named and typed value used to perform some data
+ transformation. </xs:documentation>
+ <xs:documentation> LATER: experiment with xml validation of property set prototypes
+ for services </xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:annotation>
+ <xs:documentation> Named and typed property string </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:annotation>
+ <xs:documentation> The type specifies how the property will be parsed.
+ Empty property strings are allowed, and can be used to prototype the
+ input to a document. TODO: specify allowed types </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="input">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation> Selects all or part of a collection of vamsas objects as a named
+ input to some transformation process. Many inputs with the same name imply a
+ group input (such as a collection of sequences) </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="vamsas:rangeType">
+ <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 specfication
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>