Hi,
Given the schema below, is there a way to fix the 'limitations' outlined in the schema as a comment?
If you have any questions, please verify with me.
Thanks.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="
http://www.w3.org/2001/XMLSchema" xmlns:moby="
http://www.biomoby.org/moby" elementFormDefault="qualif
ied" attributeFormDefault="qual
ified" targetNamespace="
http://www.biomoby.org/moby">
<xs:element name="BasicGFFSequenceFeat
ure" type="moby:BasicGFFSequenc
eFeatureTy
pe"/>
<xs:complexType name="BasicGFFSequenceFeat
ureType">
<xs:sequence>
<xs:element name="String" type="moby:stringType0" minOccurs="1" maxOccurs="1"/>
<xs:element name="String" type="moby:stringType1" minOccurs="1" maxOccurs="1"/>
<xs:element name="String" type="moby:stringType2" minOccurs="1" maxOccurs="1"/>
<xs:element name="String" type="moby:stringType3" minOccurs="1" maxOccurs="1"/>
<xs:element name="String" type="moby:stringType4" minOccurs="1" maxOccurs="1"/>
<xs:element name="String" type="moby:stringType5" minOccurs="1" maxOccurs="1"/>
<xs:element name="Integer" type="moby:integerType1" minOccurs="1" maxOccurs="1"/>
<xs:element name="Integer" type="moby:integerType2" minOccurs="1" maxOccurs="1"/>
<xs:element name="Float" type="moby:floatType2" minOccurs="1" maxOccurs="1"/>
<!-- key/value pair object for key/value pairs with a 1:many relationship-->
<xs:element name="multi_key_value_pair
" type="moby:multi_key_value
_pairType3
" minOccurs="1" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
<xs:attribute name="namespace" use="required" form="qualified" type="xs:string"/>
<xs:attribute name="id" use="required" form="qualified" type="xs:string"/>
<xs:attribute name="articleName" use="required" form="qualified"/>
</xs:complexType>
<xs:complexType name="stringType0">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="reference"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="stringType1">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="frame"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="stringType2">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="phase"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="stringType3">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="method"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="stringType4">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="strand"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="stringType5">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="source"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="integerType1">
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="articleName" use="required" form="qualified" fixed="start"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="integerType2">
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="articleName" use="required" form="qualified" fixed="stop"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="floatType2">
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attribute name="articleName" use="required" form="qualified" fixed="score"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--
Limitations:
1. Order matters - can this be fixed?
2. bounded elements must be placed before unbounded elements. Can this be fixed?
3. > 1 unbounded element causes an error. Can this be fixed?
-->
<xs:complexType name="stringType7">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="key"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="stringType6">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="articleName" use="required" form="qualified" fixed="value"/>
<xs:attribute name="id" use="required" form="qualified"/>
<xs:attribute name="namespace" use="required" form="qualified"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="multi_key_value_pair
Type3">
<xs:sequence>
<xs:element name="String" type="moby:stringType7" minOccurs="1" maxOccurs="1"/>
<xs:element name="String" type="moby:stringType6" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="namespace" use="required" form="qualified" type="xs:string"/>
<xs:attribute name="id" use="required" form="qualified" type="xs:string"/>
<xs:attribute name="articleName" use="required" form="qualified" fixed="column9_tag_value" type="xs:string"/>
</xs:complexType>
</xs:schema>
Start Free Trial