Online Flora XML Schema 20081128
From Hiscom
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!-- edited by Aaron Wilton (Allan Herbarium), 28 Nov 2008 --><!--Should consider purpose of schema. It may be worth breaking into smaller schema that include major types (e.g., identification) -that can be used as templates that are included schema for a specific purpose.--><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"><xs:complexType name="taxonType"><xs:sequence><xs:element name="seq" type="xs:string" minOccurs="0"/><xs:element name="Nomenclature"><xs:annotation><xs:documentation>Requires discussion!</xs:documentation>
</xs:annotation><xs:complexType><xs:sequence><xs:element name="Parent" type="xs:string" minOccurs="0"/><xs:element name="Rank" type="xs:string"/><xs:element name="TaxonName" type="TaxonNameType"/><xs:element name="Synonyms" minOccurs="0"><xs:annotation><xs:documentation>Added as suggestion - will need to be refined.</xs:documentation>
</xs:annotation><xs:complexType><xs:sequence><xs:element name="Synonym" type="TaxonNameType" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Title" type="ParagraphType" minOccurs="0"/><xs:element name="Contributor" type="ParagraphType" minOccurs="0"/><xs:element name="TaxonDescription"><xs:complexType><xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="Description"><xs:complexType><xs:sequence><xs:element name="DescriptionFull" type="ParagraphsType"/><xs:element name="DescriptionElement"><xs:complexType><xs:complexContent><xs:extension base="ParagraphType"><xs:attribute name="type" use="required"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="bark"/><xs:enumeration value="flowers"/></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:complexContent></xs:complexType></xs:element><xs:element name="Diagnosis"><xs:complexType><xs:complexContent><xs:extension base="ParagraphsType"><xs:attribute name="language"/></xs:extension></xs:complexContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Habitat" type="ParagraphType"/><xs:element name="Distribution"><xs:complexType><xs:sequence><xs:element name="DistributionRegional" type="ParagraphType"/><xs:element name="DistributionNoTaxa" type="xs:string"/></xs:sequence></xs:complexType></xs:element><xs:element name="Note" type="ParagraphType"/><xs:element name="Identification"><xs:complexType><xs:sequence><xs:element name="KeyTitle" type="ParagraphType" minOccurs="0"/><xs:element name="KeyContributor" type="ParagraphType" minOccurs="0"/><xs:element name="KeyFrontNote" type="ParagraphsType" minOccurs="0"/><xs:element name="Key" type="KeyType"/><xs:element name="KeyEndNote" type="ParagraphsType" minOccurs="0"/></xs:sequence></xs:complexType></xs:element><xs:element name="Chromosome" type="ParagraphType"/><xs:element name="Conservation"><xs:annotation><xs:documentation>This requires more work... - what geographic region- is this restricted to the geography scope
- what if want to describe in other areas</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="StatusDescription"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="Very rare"/><xs:enumeration value="other descriptors"/></xs:restriction></xs:simpleType></xs:element><xs:element name="StatusCode"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="3W"/><xs:enumeration value="Other codes"/></xs:restriction></xs:simpleType></xs:element><xs:element name="ConservationLegislative"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="EPBC Act"/><xs:enumeration value="other acts"/></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Images"><xs:complexType><xs:sequence><xs:element name="Image" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="ImageIdentifier" type="xs:string"/><xs:element name="ImageUrl" type="xs:string"/><xs:element name="ImageCaption" type="ParagraphsType"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="Licence" type="ParagraphType"/><xs:element name="Phenology" type="ParagraphType"><xs:annotation><xs:documentation>Issue: Phenology/Lifestage and gender need to qaulify all descriptive elements- perhaps at the TaxonDescription level</xs:documentation></xs:annotation></xs:element><xs:element name="ScopeGeography" type="ParagraphType"/><xs:element name="Source" type="ParagraphType"/><xs:element name="SourceDate" type="xs:string"/><xs:element name="Specimens"><xs:complexType><xs:choice><xs:element name="SpecimenText" type="ParagraphType"/><xs:element name="SpecimenList"><xs:complexType><xs:sequence><xs:element name="Specimen" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="specimenID"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element><xs:element name="WeedStatus"><xs:complexType><xs:sequence><xs:element name="WeedStatusText" type="ParagraphType"/><xs:element name="WeedLegislativeCode"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="5H"/><xs:enumeration value="Other codes"/></xs:restriction></xs:simpleType></xs:element><xs:element name="WeedLegislative" type="xs:string"/></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element><xs:element name="Taxon" type="taxonType" minOccurs="0"/></xs:sequence><xs:attribute name="conceptID"><xs:annotation><xs:documentation>Id for concept held externally</xs:documentation>
</xs:annotation></xs:attribute><xs:attribute name="id"><xs:annotation><xs:documentation>The id that has been assigned to this taxon record</xs:documentation>
</xs:annotation></xs:attribute></xs:complexType><xs:complexType name="ParagraphType" mixed="1"><xs:annotation><xs:documentation>Would consider adding literature citation and specimen citation elements to the choice to allow linkages.May be worth adding a generalised linkage element that allows connecting to other resources (e.g., to figures etc)</xs:documentation></xs:annotation><xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="Font"><xs:annotation><xs:documentation>allows to handle various font combinations - super and sub script useful (e.g., chromosome valancy).Need to ensure that there are xslts with font template that can be used as a standard include higher level xslts - e.g., one to create html etc</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="italic" type="xs:boolean" use="optional"/><xs:attribute name="bold" type="xs:boolean" use="optional"/><xs:attribute name="underline" type="xs:boolean" use="optional"/><xs:attribute name="super" type="xs:boolean" use="optional"/><xs:attribute name="sub" type="xs:boolean" use="optional"/><xs:attribute name="size" type="xs:string" use="optional"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="Name" type="TaxonNameType"/></xs:choice><xs:attribute name="sourceID"><xs:annotation><xs:documentation>ID for external source which provides the information, or from which the data was derived</xs:documentation>
</xs:annotation></xs:attribute><xs:attribute name="id" type="xs:string" use="optional"/></xs:complexType><xs:complexType name="ParagraphsType"><xs:sequence maxOccurs="unbounded"><xs:element name="Paragraph" type="ParagraphType"/><xs:element name="Table"><xs:annotation><xs:documentation>Consider including table - this is start only - may want some of table header etc</xs:documentation>
</xs:annotation><xs:complexType><xs:sequence><xs:element name="tr" maxOccurs="unbounded"><xs:complexType><xs:choice maxOccurs="unbounded"><xs:element name="td"/><xs:element name="th"/></xs:choice></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence><xs:attribute name="id" type="xs:string" use="optional"/></xs:complexType><xs:complexType name="TaxonNameType"><xs:choice maxOccurs="unbounded"><xs:element name="Name" type="xs:string"/><xs:element name="Author" type="xs:string"/><xs:element name="Rank" type="xs:string"/><xs:element name="Protologue"/></xs:choice><xs:attribute name="nameFull"><xs:annotation><xs:documentation>added as attribute but may be better as element, however it not intended for display.</xs:documentation>
</xs:annotation></xs:attribute><xs:attribute name="taxonId"/><xs:attribute name="nameId"/></xs:complexType><xs:complexType name="KeyRowsType"><xs:sequence><xs:element name="KeyRowsNumber"><xs:annotation><xs:documentation>Maybe superfluous - always use KeyRowNumber instead?</xs:documentation>
</xs:annotation></xs:element><xs:element name="KeyRow" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="KeyRowNumber" type="xs:string" minOccurs="0"/><xs:element name="KeyRowDescription"><xs:annotation><xs:documentation>ParagraphType? Better name!</xs:documentation>
</xs:annotation></xs:element><xs:element name="KeyRowResult"><xs:complexType><xs:complexContent><xs:extension base="ParagraphType"><xs:attribute name="resultID" type="xs:string"><xs:annotation><xs:documentation>identifier for the result this may be another part of the same key, another key, a taxon entry</xs:documentation>
</xs:annotation></xs:attribute><xs:attribute name="resultType"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="KeyRow"/><xs:enumeration value="Taxon"/><xs:enumeration value="Key"/></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:complexContent></xs:complexType></xs:element><xs:element name="KeyRowNote" type="ParagraphType" minOccurs="0"/><xs:element name="NestedRows" type="KeyRowsType" minOccurs="0"/><xs:element name="NestedKey" type="KeyType" minOccurs="0"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType><xs:complexType name="KeyType"><xs:sequence><xs:element name="KeyRows" type="KeyRowsType" maxOccurs="unbounded"><xs:annotation><xs:documentation>Appropriate name?</xs:documentation>
</xs:annotation></xs:element></xs:sequence></xs:complexType></xs:schema>