+ <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="xs:boolean" default="true" use="optional"><xs:annotation><xs:documentation>objects with modifiable=false will not be modified by a vamsas client update</xs:documentation></xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="property">
+ <xs:complexType><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:complexType name="rangeAnnotation">
+ <xs:annotation>
+ <xs:documentation>provenance contains source of annotation</xs:documentation>
+ <xs:documentation>polymorphism for having collection of single points,
+ or ordered set of regions with polarity (start.lt.end or end.lt.start)</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="vamsas:rangeType">
+ <xs:sequence>
+ <xs:element name="description" type="xs:string" minOccurs="0"/>
+ <xs:element name="status" type="xs:string" minOccurs="0"/>
+ <xs:element ref="vamsas:annotationElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="vamsas:Provenance" maxOccurs="1" minOccurs="1"/>
+ <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="xs:boolean" default="true" use="optional">
+ <xs:annotation><xs:documentation>objects with modifiable=false will not be modified by a vamsas client update</xs:documentation></xs:annotation>
+ </xs:attribute>
+ <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: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.
+ </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:annotation><xs:documentation>Reference Frame for rangeType specfication</xs:documentation></xs:annotation></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>