(no commit message)
[cdmlib.git] / cdmlib-io / src / main / resources / schema / cdm / name.xsd
index ed2185a32006d2acbfe04a9ff78e1b7842e04a4d..878ff779b6792be6c3548e82769207f7299d91b4 100644 (file)
@@ -8,6 +8,7 @@
   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
   xmlns:reference="http://etaxonomy.eu/cdm/model/reference/1.0" 
   xmlns:agent="http://etaxonomy.eu/cdm/model/agent/1.0"
+  xmlns:taxon="http://etaxonomy.eu/cdm/model/taxon/1.0"
   xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
   xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
   jxb:extensionBindingPrefixes="xjc"
@@ -22,6 +23,7 @@
   <xs:import namespace="http://etaxonomy.eu/cdm/model/description/1.0" schemaLocation="description.xsd"/>
   <xs:import namespace="http://etaxonomy.eu/cdm/model/occurrence/1.0" schemaLocation="occurrence.xsd"/>
   <xs:import namespace="http://etaxonomy.eu/cdm/model/agent/1.0" schemaLocation="agent.xsd"/>
+  <xs:import namespace="http://etaxonomy.eu/cdm/model/taxon/1.0" schemaLocation="taxon.xsd"/>
   <xs:annotation>
     <xs:appinfo>
       <jxb:schemaBindings>
@@ -63,6 +65,8 @@
   <xs:element name="NameRelationshipType" type="name:NameRelationshipType"/>
 
   <xs:element name="NameTypeDesignation" type="name:NameTypeDesignation"/>
+  
+  <xs:element name="NameTypeDesignationStatus" type="name:NameTypeDesignationStatus"/>
 
   <xs:element name="NomenclaturalCode" type="name:NomenclaturalCode"/>
 
@@ -73,7 +77,7 @@
   <xs:element name="Rank" type="name:Rank"/>
 
   <xs:element name="SpecimenTypeDesignation" type="name:SpecimenTypeDesignation"/>
-
+       
   <xs:element name="TaxonNameBase" type="name:TaxonNameBase"/>
 
   <xs:element name="TypeDesignationBase" type="name:TypeDesignationBase"/>
 
   <xs:complexType name="SpecimenTypeDesignationStatus">
     <xs:complexContent>
-      <xs:extension base="common:OrderedTermBase">
+      <xs:extension base="name:TypeDesignationStatusBase">
         <xs:sequence/>
       </xs:extension>
     </xs:complexContent>
               </xs:sequence>
             </xs:complexType>
           </xs:element>
-          <xs:element name="TaxonBases" minOccurs="0">
+          <xs:element name="Descriptions" minOccurs="0">
             <xs:complexType>
               <xs:sequence>
-                <xs:element name="TaxonBase" type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element name="Description" type="description:TaxonNameDescription" minOccurs="0" maxOccurs="unbounded"/>
               </xs:sequence>
             </xs:complexType>
           </xs:element>
-          <xs:element name="Descriptions" minOccurs="0">
+          <xs:element name="TaxonBases" minOccurs="0">
             <xs:complexType>
               <xs:sequence>
-                <xs:element name="Description" type="description:TaxonNameDescription" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element name="TaxonBase" type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
               </xs:sequence>
             </xs:complexType>
           </xs:element>
         </xs:sequence>
-        <xs:attribute name="hasProblem" type="xs:boolean" use="required"/>
+        <xs:attribute name="parsingProblem" type="xs:int" use="required"/>
         <xs:attribute name="problemStarts" type="xs:int" use="required"/>
         <xs:attribute name="problemEnds" type="xs:int" use="required"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-
+  
+  
   <xs:complexType name="HomotypicalGroup">
     <xs:complexContent>
       <xs:extension base="common:AnnotatableEntity">
           </xs:element>
           <xs:element name="HomotypicalGroup" type="xs:IDREF" minOccurs="0"/>
           <xs:element name="IsNotDesignated" type="xs:boolean"/>
+          <xs:element name="TypeStatus" type="xs:IDREF" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
+  <xs:complexType name="TypeDesignationStatusBase" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="common:OrderedTermBase">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  <xs:complexType name="NameTypeDesignationStatus">
+    <xs:complexContent>
+      <xs:extension base="name:TypeDesignationStatusBase">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="SpecimenTypeDesignation">
     <xs:complexContent>
       <xs:extension base="name:TypeDesignationBase">
         <xs:sequence>
           <xs:element name="TypeSpecimen" type="xs:IDREF" minOccurs="0"/>
-          <xs:element name="TypeStatus" type="xs:IDREF" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-
+  
   <xs:complexType name="NonViralName">
     <xs:complexContent>
       <xs:extension base="name:TaxonNameBase">
           <xs:element name="AuthorshipCache" type="xs:string" minOccurs="0"/>
           <xs:element name="ProtectedAuthorshipCache" type="xs:boolean"/>
           <xs:element name="ProtectedNameCache" type="xs:boolean"/>
+          <xs:element name="HybridRelationsFromThisName" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="HybridRelationsFromThisName" type="name:HybridRelationship" minOccurs="0" maxOccurs="unbounded"/>
+              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+          <xs:element name="HybridRelationsToThisName" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="HybridRelationsToThisName" type="name:HybridRelationship" minOccurs="0" maxOccurs="unbounded"/>
+              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+          <xs:element name="IsHybridFormula" type="xs:boolean"/>
+          <xs:element name="IsMonomHybrid" type="xs:boolean"/>
+          <xs:element name="IsBinomHybrid" type="xs:boolean"/>
+          <xs:element name="IsTrinomHybrid" type="xs:boolean"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
     <xs:complexContent>
       <xs:extension base="name:NonViralName">
         <xs:sequence>
-          <xs:element name="IsHybridFormula" type="xs:boolean"/>
           <xs:element name="IsMonomHybrid" type="xs:boolean"/>
           <xs:element name="IsBinomHybrid" type="xs:boolean"/>
           <xs:element name="IsTrinomHybrid" type="xs:boolean"/>
           <xs:element name="IsAnamorphic" type="xs:boolean"/>
-          <xs:element name="HybridRelationships" minOccurs="0">
-            <xs:complexType>
-              <xs:sequence>
-                <xs:element name="HybridRelationship" type="name:HybridRelationship" minOccurs="0" maxOccurs="unbounded"/>
-              </xs:sequence>
-            </xs:complexType>
-          </xs:element>
-        </xs:sequence>
+         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>