<?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">
- <xs:complexType name="rangeType">
- <xs:annotation>
- <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>
- <!-- 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:annotation><xs:documentation>a position within the associated object's coordinate system</xs:documentation></xs:annotation>
- <xs:complexType>
- <xs:attribute name="i" type="xs:int" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="seg" maxOccurs="unbounded" minOccurs="1">
- <xs:annotation><xs:documentation>a region from start to end, with flag for inclusivity of terminii</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:annotation><xs:documentation>when false, a consecutive range like 'start=1, end=2' means the region lying after position 1 and before position 2</xs:documentation></xs:annotation></xs:attribute>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- </xs:complexType>
+<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
+ needs to be worked on): Suggest it could be of the form
+ documentRoot/datasetName/SequenceUID for a dataset sequence.
+ Alignment sequence:
+ documentRoot/datasetName/AlignmentId/SequenceUID for an
+ aligned form of a dataset sequence
+
+ </xs:documentation>
+ </xs:annotation>
<xs:element name="VAMSAS">
- <xs:annotation><xs:documentation>contains unassociated trees and a number of analysis sets</xs:documentation></xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ contains unassociated trees and a number of analysis
+ sets
+ </xs:documentation>
+ </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><xs:documentation>Primary Key for vamsas object referencing</xs:documentation></xs:annotation>
+ <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 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:annotation>
- <xs:documentation> Properties. Generally, these are mutable so an application should check them each time. This may change depending on the context of the property</xs:documentation>
- </xs:annotation>
+ <xs:documentation>
+ Properties. Generally, these are mutable so an application
+ should check them each time. This may change depending on
+ the context of the property
+ </xs:documentation>
+ </xs:annotation>
<xs:element name="Tree">
<xs:complexType>
- <xs:annotation><xs:documentation>Contains a named collection of trees TODO: define way of referencing leaves of global tree for any sequence/alignment object</xs:documentation></xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ Contains a named collection of trees
+ </xs:documentation>
+ <xs:documentation>
+ TODO: define
+ way of referencing leaves of global tree for any
+ sequence/alignment object.
+ SUggestion 1: Each named tree leafnode has a unique id (which may be unique in combination with trees own vorba ID).
+ Dataset sequences can be tagged with a property "vamsas:tree_leaf"
+ </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:annotation><xs:documentation>Primary Key for vamsas object referencing</xs:documentation></xs:annotation>
+ <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
+ 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 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:extension>
</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" maxOccurs="unbounded"
+ minOccurs="0" />
+ <xs:element ref="vamsas:Provenance" />
</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 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 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: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: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="uri">
+ <xs:annotation>
+ <xs:documentation>
+ Primitive labelled URI object
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
<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: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:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="rangeType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>
+ Specify an ordered set of positions and/or regions on the principle
+ dimension of some associated vamsas object
+ </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>
+ <!-- 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:annotation>
+ <xs:documentation>
+ a position within the associated object's
+ coordinate system
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="i" type="xs:int" use="required" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="seg" maxOccurs="unbounded"
+ minOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ a region from start to end, with flag for
+ inclusivity of terminii
+ </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:annotation>
+ <xs:documentation>
+ when false, a consecutive range like
+ 'start=1, end=2' means the region lying
+ after position 1 and before position 2
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
<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: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="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: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:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="url" type="vamsas:uri"
+ 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: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="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 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: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:extension>
</xs:complexContent>
</xs:complexType>
- <xs:element name="param"><xs:complexType>
+ <xs:element name="param">
+ <xs:complexType>
<xs:annotation>
<xs:documentation>
- Specifies a named and typed value used to perform some data transformation.
+ 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>
+ 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: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: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: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.
+ 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>
- <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: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>
</xs:complexType>
</xs:element>
-
+
<xs:element name="Provenance">
<xs:complexType>
<xs:annotation>
<xs:documentation>
- Defines the origin and series of operations applied directly to the object that references it.
+ Defines the origin and series of operations applied
+ directly to the object that references it.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="entry" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
- <xs:element name="User" type="xs:string"><xs:annotation><xs:documentation>Who</xs:documentation></xs:annotation></xs:element>
- <xs:element name="App" type="xs:string"><xs:annotation><xs:documentation>With which application</xs:documentation></xs:annotation></xs:element>
- <xs:element name="Action" type="xs:string"><xs:annotation><xs:documentation>Did what</xs:documentation></xs:annotation></xs:element>
- <xs:element name="Date" type="xs:date"><xs:annotation><xs:documentation>When</xs:documentation></xs:annotation></xs:element>
- <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:annotation><xs:documentation>parameter for the action</xs:documentation></xs:annotation></xs:element>
- <xs:element ref="vamsas:input" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>bioinformatic objects input to action</xs:documentation></xs:annotation></xs:element>
+ <xs:element name="User" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Who
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="App" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ With which application
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Action"
+ type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Did what
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Date" type="xs:date">
+ <xs:annotation>
+ <xs:documentation>
+ When
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <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:annotation>
+ <xs:documentation>
+ parameter for the action
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="vamsas:input" minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ bioinformatic objects input to
+ action
+ </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 name="id" type="xs:ID"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Primary Key for vamsas object
+ referencing
+ </xs:documentation>
+ </xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:element>
<xs:element name="DataSet">
<xs:complexType>
- <xs:annotation><xs:documentation>A collection of sequences, alignments, trees and other things.</xs:documentation></xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ A collection of sequences, alignments, trees and
+ other things.
+ </xs:documentation>
+ </xs:annotation>
<xs:sequence>
<xs:element name="Sequence" maxOccurs="unbounded">
<xs:complexType>
- <xs:annotation><xs:documentation>a primary or secondary sequence record from which all other sequences may be derived</xs:documentation></xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ a primary or secondary sequence record
+ from which all other sequences may be
+ derived
+ </xs:documentation>
+ </xs:annotation>
<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
+ references for this
+ sequence record - with
+ optional mapping from
+ database sequence to the
+ given sequence record
+ </xs:documentation>
+ <xs:documentation></xs:documentation>
+ <xs:documentation></xs:documentation>
+ </xs:annotation>
<xs:complexType>
<xs:sequence>
- <xs:element ref="vamsas:property" 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:annotation>
+ <xs:documentation>
+ Offset
+ to
+ first
+ position
+ in
+ dataset
+ sequence
+ record
+ that
+ this
+ database
+ entry
+ maps
+ to
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="to" type="xs:integer" default="0" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ Offset
+ to
+ last
+ position
+ in
+ dataset
+ sequence
+ record
+ that
+ this
+ database
+ entry
+ maps
+ to
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="start" type="xs:integer" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Offset
+ to first
+ last
+ position
+ in
+ database
+ entry
+ that
+ first
+ (or
+ offset)
+ position
+ in
+ sequence
+ maps to
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="end" type="xs:integer" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Offset
+ to last
+ position
+ in
+ database
+ entry
+ that
+ last
+ (offset)
+ position
+ in
+ sequence
+ maps to
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="link" type="vamsas:uri" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element
+ ref="vamsas:property" minOccurs="0" maxOccurs="unbounded" />
</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="id" type="xs:ID" use="optional"> <xs:annotation><xs:documentation>Primary Key for vamsas object referencing</xs:documentation></xs:annotation>
+ <xs:attribute name="source"
+ type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ TODO Database
+ Naming
+ Convention:
+ either start
+ using LSID (so
+ change type to
+ URI) or leave
+ this as an
+ uncontrolled/unspecified
+ string ID
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="version"
+ type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Version must be
+ specified -
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
+ name="accessionId" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ TODO: make some
+ specification of
+ the database
+ field from which
+ this accessionId
+ is taken from -
+ should that be a
+ special property
+ of the dbRef
+ object ?
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <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:complexType>
</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 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="dictionary"
+ type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ symbol class for sequence
+ </xs:documentation>
+ </xs:annotation>
</xs:attribute>
- <xs:attribute name="dictionary" type="xs:string" use="required"><xs:annotation><xs:documentation>symbol class for sequence</xs:documentation></xs:annotation></xs:attribute>
</xs:extension>
</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>Annotate over positions and regions of dataset sequences</xs:documentation>
+ <xs:annotation>
+ <xs:documentation>
+ Annotate over positions and regions of a
+ dataset sequence
+ </xs:documentation>
</xs:annotation>
<xs:complexContent>
- <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:extension
+ base="vamsas:rangeAnnotation">
+ <xs:sequence>
+ <xs:element ref="vamsas:Provenance"
+ maxOccurs="1" minOccurs="1" />
+ </xs:sequence>
+ <xs:attribute name="seqRef"
+ type="xs:IDREF" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ annotation is associated
+ with a particular dataset
+ sequence
+ </xs:documentation>
+ </xs:annotation>
</xs:attribute>
</xs:extension>
</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="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: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:element name="AlignmentAnnotation"
+ 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
+ This is annotation over the
+ coordinate frame defined by all
+ the columns in the alignment.
</xs:documentation>
</xs:annotation>
<xs:complexType>
- <xs:sequence>
- <xs:element ref="vamsas:annotationElement" maxOccurs="unbounded"/>
- <xs:element name="label" type="xs:string"/>
- <xs:element name="description" type="xs:string"/>
- <xs:element ref="vamsas:Provenance"/>
- </xs:sequence>
- <xs:attribute name="graph" type="xs:boolean" use="required"/>
- <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:complexContent>
+ <xs:extension
+ base="vamsas:rangeAnnotation">
+ <xs:sequence>
+ <xs:element
+ ref="vamsas:Provenance" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ <xs:attribute name="graph"
+ type="xs:boolean" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ TODO: decide if
+ this flag is
+ redundant - when
+ true it would
+ suggest that the
+ annotationElement
+ values together
+ form a graph
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </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="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:element>
+ <xs:element
+ name="AlignmentSequenceAnnotation" minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation>
+ Annotate
+ over
+ positions
+ and
+ regions
+ of the
+ ungapped
+ sequence
+ in the
+ context
+ of the
+ alignment
+ </xs:documentation>
+ <xs:documentation></xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension
+ base="vamsas:rangeAnnotation">
+ <xs:sequence>
+ <xs:element
+ ref="vamsas:Provenance" minOccurs="1" maxOccurs="1" />
+ </xs:sequence>
+ <xs:attribute
+ name="graph" type="xs:boolean" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ TODO:
+ decide
+ if
+ this
+ flag
+ is
+ redundant
+ -
+ when
+ true
+ it
+ would
+ suggest
+ that
+ the
+ annotationElement
+ values
+ together
+ form
+ a
+ graph
+ </xs:documentation>
+ </xs:annotation>
+ </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:documentation>Annotate over positions and regions of the alignment</xs:documentation>
+ </xs:annotation><xs:complexContent>
+ <xs:extension base="vamsas:rangeFeature">
+ <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:complexType>
+ </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 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:annotation>
+ <xs:documentation>
+ Dataset Sequence
+ from which this
+ alignment
+ sequence is
+ taken from
+ </xs:documentation>
+ </xs:annotation>
</xs:attribute>
- <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:element ref="vamsas:property" minOccurs="0" maxOccurs="unbounded"><xs:annotation>
- <xs:documentation>typical properties may be alignment score objects </xs:documentation>
- </xs:annotation></xs:element>
- <xs:element ref="vamsas:Provenance"/>
+ <xs:element ref="vamsas:property"
+ minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ typical properties may be
+ additional alignment score
+ objects
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <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:annotation><xs:documentation>Primary Key for vamsas object referencing</xs:documentation></xs:annotation>
+ <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
+ 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 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 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>Primary Key for vamsas object referencing</xs:documentation></xs:annotation>
+ <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:complexType>
</xs:element>
<xs:element name="annotationElement">
<xs:complexType>
- <xs:annotation><xs:documentation>per-site symbolic and/or quantitative annotation</xs:documentation>
- <xs:documentation>SecondaryStructure and display character (from Jalview) have been subsumed into the glyph element</xs:documentation></xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ per-site symbolic and/or quantitative annotation
+ </xs:documentation>
+ <xs:documentation>
+ SecondaryStructure and display character (from
+ Jalview) have been subsumed into the glyph element
+ </xs:documentation>
+ </xs:annotation>
<xs:sequence>
-
- <xs:element name="description" type="xs:string" minOccurs="0">
- <xs:annotation><xs:documentation>Free text at this position</xs:documentation></xs:annotation>
+
+ <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:annotation><xs:documentation>Discrete symbol - possibly graphically represented</xs:documentation></xs:annotation>
+ <xs:element name="glyph" minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ Discrete symbol - possibly graphically
+ represented
+ </xs:documentation>
+ </xs:annotation>
<xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="dict" type="xs:string" default="utf8" use="optional">
- <xs:annotation><xs:documentation>specifies the symbol dictionary for this glyph - eg utf8 (the default), aasecstr_3 or kd_hydrophobicity - the content is not validated so applications must ensure they gracefully deal with invalid entries here</xs:documentation>
- <xs:documentation>TODO: specify a minimum list of glyph dictionaries to get us started and provide a way for the vamsasClient to validate their content if regexes are specified</xs:documentation></xs:annotation></xs:attribute>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="dict"
+ type="xs:string" default="utf8" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ specifies the symbol
+ dictionary for this glyph -
+ eg utf8 (the default),
+ aasecstr_3 or
+ kd_hydrophobicity - the
+ content is not validated so
+ applications must ensure
+ they gracefully deal with
+ invalid entries here
+ </xs:documentation>
+ <xs:documentation>
+ TODO: specify a minimum list
+ of glyph dictionaries to get
+ us started and provide a way
+ for the vamsasClient to
+ validate their content if
+ regexes are specified
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="value" type="xs:float" minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ Ordered set of float values - an application
+ may treat the values together as a vector
+ with common support for a set of annotation
+ elements - but this is, again, not validated
+ so applications should deal gracefully with
+ varying numbers of dimensions
+ </xs:documentation>
+ </xs:annotation>
</xs:element>
- <xs:element name="value" type="xs:float" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation><xs:documentation>Ordered set of float values - an application may treat the values together as a vector with common support for a set of annotation elements - but this is, again, not validated so applications should deal gracefully with varying numbers of dimensions
- </xs:documentation></xs:annotation></xs:element>
</xs:sequence>
- <xs:attribute name="position" type="xs:integer" use="required"><xs:annotation><xs:documentation>position with respect to the coordinate frame defined by a rangeType specification</xs:documentation></xs:annotation></xs:attribute>
- <xs:attribute name="after" type="xs:boolean" use="optional" default="false"><xs:annotation><xs:documentation>true means the annotation element appears between the specified position and the next</xs:documentation></xs:annotation></xs:attribute>
- <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 name="position" type="xs:integer"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ position with respect to the coordinate frame
+ defined by a rangeType specification
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="after" type="xs:boolean" use="optional"
+ default="false">
+ <xs:annotation>
+ <xs:documentation>
+ true means the annotation element appears
+ between the specified position and the next
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <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:complexType>
</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:annotation><xs:documentation>additional typed properties</xs:documentation></xs:annotation></xs:element>
+ <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: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:annotation>
- <xs:documentation>Data specific to a particular type and version of vamsas application</xs:documentation>
+ <xs:documentation>
+ Data specific to a particular type and version of
+ vamsas application
+ </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="vamsas:appData">
<xs:sequence>
- <xs:element name="User" maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="User" maxOccurs="unbounded"
+ minOccurs="0">
<xs:complexType>
<xs:complexContent>
- <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: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:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
- <xs:element name="Common" maxOccurs="1" minOccurs="0">
+ <xs:element name="Common" maxOccurs="1"
+ minOccurs="0">
<xs:complexType>
<xs:complexContent>
- <xs:extension base="vamsas:appData"> </xs:extension>
+ <xs:extension
+ base="vamsas:appData">
+ </xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
- <xs:element name="Instance" maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="Instance"
+ maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:complexContent>
- <xs:extension base="vamsas:appData">
+ <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: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: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:attribute name="name" type="xs:string" use="required"/>
+ <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:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Attachment">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="vamsas:appData">
- <xs:annotation>
- <xs:documentation>General data container to attach a typed data object to any vamsas object</xs:documentation>
- </xs:annotation>
- <xs:attribute name="compressed" type="xs:boolean" use="optional" default="false"><xs:annotation><xs:documentation>true implies data will be decompresses with Zip before presenting to application</xs:documentation></xs:annotation></xs:attribute>
- <xs:attribute name="type" type="xs:string" use="required"><xs:annotation><xs:documentation>Type of arbitrary data - TODO: decide format - use (extended) MIME types ?</xs:documentation></xs:annotation></xs:attribute>
- <xs:attribute name="objectref" type="xs:IDREF" use="required"><xs:annotation><xs:documentation>Object the arbitrary data is associated with</xs:documentation></xs:annotation></xs:attribute>
- <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:extension>
- </xs:complexContent>
- </xs:complexType>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="vamsas:appData">
+ <xs:annotation>
+ <xs:documentation>
+ General data container to attach a typed
+ data object to any vamsas object
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="compressed" type="xs:boolean"
+ use="optional" default="false">
+ <xs:annotation>
+ <xs:documentation>
+ true implies data will be decompresses
+ with Zip before presenting to
+ application
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="type" type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Type of arbitrary data - TODO: decide
+ format - use (extended) MIME types ?
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="objectref" type="xs:IDREF"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>
+ Object the arbitrary data is associated
+ with
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <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:extension>
+ </xs:complexContent>
+ </xs:complexType>
</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:schema>