Schema Brazil2002-SDD.xsd
targetNamespace:  http://www.tdwg.org/2002/SDD-Strawman
 
Elements  Complex types  Simple types  Attr. groups 
Document  CharacterDefinitionType  ExpertiseLevelType  ItemDefinition_AttributeGroup 
CharacterGroupDefinitionType  probability 
CharacterGroupItemType  string20r 
CharacterMeasureReferenceType  string255 
CharacterReferenceType  string255r 
CharacterReferenceType_NL  string_r 
CharacterStateDefinitionType 
CharacterStateReferenceType 
CharacterStateReferenceType_NL 
DescriptionMetadataType 
DescriptionMetadataType_OLD 
DescriptionsType 
FormattedBlockTextType 
FormattedExtendedTextType 
FormattedSimpleTextType 
ItemDefinitionType 
LinguisticSet.BasicLabelType 
LinguisticSet.BasicWordingType 
LinguisticSet.ComplexWordingType 
LinguisticSet.ExtendedLabelType 
LinguisticSet.ModifierWordingType 
LinguisticSets.BasicWordingType 
LinguisticSets.ComplexWordingType 
LinguisticSets.ExtendedLabelType 
LinguisticSets.ItemDescriptionType 
LinguisticSets.ModifierWordingType 
LinguisticSets.ProjectDefinitionType 
MarkupWordingType 
ProjectDefinitionType 
ResourceDefinitionsType 
ResourceReferencesType 
ResourceReferenceType 
TerminologyType 


element Document
diagram
identity constraints
  Name  Refer  Selector  Field(s)  
key  AudienceDefinitionKey   ./Terminology/AudienceDefinitions/AudienceDefinition  @key  
unique  AudienceDefinitionUniqueLabel   ./Terminology/AudienceDefinitions/AudienceDefinition  Label  
@lang  
key  FrequencyDefinitionKey   ./Terminology/FrequencyDefinitions/FrequencyDefinitionSet/FrequencyDefinition  @key  
unique  FrequencyDefinitionUniqueLabel   ./Terminology/FrequencyDefinitions/FrequencyDefinitionSet/FrequencyDefinition/LinguisticSets/LinguisticSet  Label  
@keyref  
key  ModifierDefinitionKey   ./Terminology/ModifierDefinitions/ModifierDefinitionSet/ModifierDefinition  @key  
unique  ModifierDefinitionUniqueLabel   ./Terminology/ModifierDefinitions/ModifierDefinitionSet/ModifierDefinition/LinguisticSets/LinguisticSet  Label  
@keyref  
key  CharacterDefinitionKey   ./Terminology/CharacterDefinitions/CharacterDefinition  @key  
unique  CharacterDefinitionUniqueLabel   ./Terminology/CharacterDefinitions/CharacterDefinition/LinguisticSets/LinguisticSet  Label  
@keyref  
key  CharacterGroupItemKey   .//CharacterGroupItem  @key  
key  CharacterGroupDefinitionKey   ./Terminology/CharacterGroupDefinitions/CharacterGroupDefinition  @key  
unique  CharacterGroupDefinitionUniqueLabel   ./Terminology/CharacterGroupDefinitions/CharacterGroupDefinition/LinguisticSets/LinguisticSet  Label  
@keyref  
key  CharacterStateDefinitionKey   ./Terminology/CharacterDefinitions/CharacterDefinition/StateDefinitions/LocalStateDefinition/StateDefinition  @key  
unique  CharacterStateUniqueLabel   ./Terminology/CharacterDefinitions/CharacterDefinition  Label  
StateDefinitions/LocalStateDefinition/StateDefinition/LinguisticSets/LinguisticSet/Label  
StateDefinitions/LocalStateDefinition/StateDefinition/LinguisticSets/LinguisticSet/@keyref  
source
<xs:element name="Document">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Provides root element as long as terminology and descriptions must be in the same document!

The version of the SDD standard used is defined in the namespace declaration and needs no separate data element.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Generator">
        <xs:annotation>
          <xs:documentation source="Gregor Hagedorn" xml:lang="en">This information refers to the last process that created this document, which does not imply that the data have been authored there. The information is intended for debugging purposes, and to improve import quality if certain generator versions produce abnormal code.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name="Application" type="string255r" use="required"/>
          <xs:attribute name="Version" type="string255r" use="required"/>
          <xs:attribute name="Routine" type="string255r" use="optional">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Optionally allows a generating application to identify which export routine created the document; some applications may have several alternative export routines.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="Authors" type="string255r" use="optional">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Identifies the authors of the generating application, not the authors of the terminology, descriptions, and resources!</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="Institution" type="string255r" use="optional"/>
          <xs:attribute name="Copyright" type="string255r" use="optional">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">This is the copyright string of the generating application, not the copyright of the terminology, descriptions, and resources!</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="LastUpdateDate" type="xs:date" use="required">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">The date on which the generating application actually updated (or, if no updates occurred, created) the current xml file.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="ProjectDefinition" type="ProjectDefinitionType">
        <xs:annotation>
          <xs:documentation source="Gregor Hagedorn" xml:lang="en">Required information defining the project itself. Covering the entire document, i. e. terminology, descriptions, and resource collection.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Descriptions" type="DescriptionsType" minOccurs="0">
        <xs:annotation>
          <xs:documentation source="Gregor Hagedorn" xml:lang="en">Item descriptions are defined as 
optional to allow projects which
publish only terminology.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Terminology" type="TerminologyType"/>
      <xs:element name="ResourceDefinitions" type="ResourceDefinitionsType" minOccurs="0">
        <xs:annotation>
          <xs:documentation source="Gregor Hagedorn" xml:lang="en">Global resource definitions containing URIs or actually embedded resources (e. g. encoded images).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ApplicationData" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Application specific information is placed in Processing Instructions. @@@DISCUSS: is this ok? Can PIs be easily parsed out by an application? @@@ Recommendation: Each application may read out its own information. Any other target information present should be preserved and output when a new document is generated. This is designed to support itempotent round tripping data between two applications. This implies that no dependency between the settings and the items and the terminology setting should be relied upon.</xs:documentation>
        </xs:annotation>
        <xs:complexType/>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:key name="AudienceDefinitionKey">
    <xs:selector xpath="./Terminology/AudienceDefinitions/AudienceDefinition"/>
    <xs:field xpath="@key"/>
  </xs:key>
  <xs:unique name="AudienceDefinitionUniqueLabel">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The labels of audience definitions are required and must be unique for a given language ('lang' attribute).</xs:documentation>
    </xs:annotation>
    <xs:selector xpath="./Terminology/AudienceDefinitions/AudienceDefinition"/>
    <xs:field xpath="Label"/>
    <xs:field xpath="@lang"/>
  </xs:unique>
  <xs:key name="FrequencyDefinitionKey">
    <xs:selector xpath="./Terminology/FrequencyDefinitions/FrequencyDefinitionSet/FrequencyDefinition"/>
    <xs:field xpath="@key"/>
  </xs:key>
  <xs:unique name="FrequencyDefinitionUniqueLabel">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The labels of frequency definitions are required and must be unique for a given audience definition (as defined through "keyref" attribute on LinguisticSet).</xs:documentation>
    </xs:annotation>
    <xs:selector xpath="./Terminology/FrequencyDefinitions/FrequencyDefinitionSet/FrequencyDefinition/LinguisticSets/LinguisticSet"/>
    <xs:field xpath="Label"/>
    <xs:field xpath="@keyref"/>
  </xs:unique>
  <xs:key name="ModifierDefinitionKey">
    <xs:selector xpath="./Terminology/ModifierDefinitions/ModifierDefinitionSet/ModifierDefinition"/>
    <xs:field xpath="@key"/>
  </xs:key>
  <xs:unique name="ModifierDefinitionUniqueLabel">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The labels of modifier definitions are required and must be unique for a given audience definition (as defined through "keyref" attribute on LinguisticSet).</xs:documentation>
    </xs:annotation>
    <xs:selector xpath="./Terminology/ModifierDefinitions/ModifierDefinitionSet/ModifierDefinition/LinguisticSets/LinguisticSet"/>
    <xs:field xpath="Label"/>
    <xs:field xpath="@keyref"/>
  </xs:unique>
  <xs:key name="CharacterDefinitionKey">
    <xs:selector xpath="./Terminology/CharacterDefinitions/CharacterDefinition"/>
    <xs:field xpath="@key"/>
  </xs:key>
  <xs:unique name="CharacterDefinitionUniqueLabel">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The labels of character definitions are required and must be unique for a given audience definition (as defined through "keyref" attribute on LinguisticSet).</xs:documentation>
    </xs:annotation>
    <xs:selector xpath="./Terminology/CharacterDefinitions/CharacterDefinition/LinguisticSets/LinguisticSet"/>
    <xs:field xpath="Label"/>
    <xs:field xpath="@keyref"/>
  </xs:unique>
  <xs:key name="CharacterGroupItemKey">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The following xpath selects all CharacterGroupItem anywhere in the document. This is in fact more general and therefore computation intensive than necessary, a better xpath expression would be ./Terminology/CharacterGroupDefinitions/CharacterGroupDefinition//CharacterGroupItem. It should include all item nodes, regardless of their place in the tree structure. However, combining a defined path with an "all child" path seems to be not possible under the restrictions imposed on xpath expressions in xml-schema identity constraints. </xs:documentation>
    </xs:annotation>
    <xs:selector xpath=".//CharacterGroupItem"/>
    <xs:field xpath="@key"/>
  </xs:key>
  <xs:key name="CharacterGroupDefinitionKey">
    <xs:selector xpath="./Terminology/CharacterGroupDefinitions/CharacterGroupDefinition"/>
    <xs:field xpath="@key"/>
  </xs:key>
  <xs:unique name="CharacterGroupDefinitionUniqueLabel">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The labels of character group definitions are required and must be unique for a given audience definition (as defined through "keyref" attribute on LinguisticSet).</xs:documentation>
    </xs:annotation>
    <xs:selector xpath="./Terminology/CharacterGroupDefinitions/CharacterGroupDefinition/LinguisticSets/LinguisticSet"/>
    <xs:field xpath="Label"/>
    <xs:field xpath="@keyref"/>
  </xs:unique>
  <xs:key name="CharacterStateDefinitionKey">
    <xs:selector xpath="./Terminology/CharacterDefinitions/CharacterDefinition/StateDefinitions/LocalStateDefinition/StateDefinition"/>
    <xs:field xpath="@key"/>
  </xs:key>
  <xs:unique name="CharacterStateUniqueLabel">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The labels of character state definitions are required to be unique within each character and audience definition. This is tested by testing global uniqueness in combination with the unique character label. @@@NOTE: THIS DOES NOT WORK PROPERLY YET!@@@</xs:documentation>
    </xs:annotation>
    <xs:selector xpath="./Terminology/CharacterDefinitions/CharacterDefinition"/>
    <xs:field xpath="Label"/>
    <xs:field xpath="StateDefinitions/LocalStateDefinition/StateDefinition/LinguisticSets/LinguisticSet/Label"/>
    <xs:field xpath="StateDefinitions/LocalStateDefinition/StateDefinition/LinguisticSets/LinguisticSet/@keyref"/>
  </xs:unique>
  <!-- The place of key definition defines not only the starting point for the xpath, but also its scope/validity. While keyref can be defined with the element, keyrefs must be at the root to be visible by all keyrefs. The document root is the branching point for terminology and description. -->
</xs:element>

element Document/Generator
diagram
attributes
Name  Type  Use  Default  Fixed  
Application  string255r  required    
Version  string255r  required    
Routine  string255r  optional    
Authors  string255r  optional    
Institution  string255r  optional    
Copyright  string255r  optional    
LastUpdateDate  xs:date  required    
source
<xs:element name="Generator">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">This information refers to the last process that created this document, which does not imply that the data have been authored there. The information is intended for debugging purposes, and to improve import quality if certain generator versions produce abnormal code.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:attribute name="Application" type="string255r" use="required"/>
    <xs:attribute name="Version" type="string255r" use="required"/>
    <xs:attribute name="Routine" type="string255r" use="optional">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Optionally allows a generating application to identify which export routine created the document; some applications may have several alternative export routines.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Authors" type="string255r" use="optional">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Identifies the authors of the generating application, not the authors of the terminology, descriptions, and resources!</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Institution" type="string255r" use="optional"/>
    <xs:attribute name="Copyright" type="string255r" use="optional">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">This is the copyright string of the generating application, not the copyright of the terminology, descriptions, and resources!</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LastUpdateDate" type="xs:date" use="required">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">The date on which the generating application actually updated (or, if no updates occurred, created) the current xml file.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
</xs:element>

element Document/ProjectDefinition
diagram
source
<xs:element name="ProjectDefinition" type="ProjectDefinitionType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Required information defining the project itself. Covering the entire document, i. e. terminology, descriptions, and resource collection.</xs:documentation>
  </xs:annotation>
</xs:element>

element Document/Descriptions
diagram
source
<xs:element name="Descriptions" type="DescriptionsType" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Item descriptions are defined as 
optional to allow projects which
publish only terminology.</xs:documentation>
  </xs:annotation>
</xs:element>

element Document/Terminology
diagram
source
<xs:element name="Terminology" type="TerminologyType"/>

element Document/ResourceDefinitions
diagram
source
<xs:element name="ResourceDefinitions" type="ResourceDefinitionsType" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Global resource definitions containing URIs or actually embedded resources (e. g. encoded images).</xs:documentation>
  </xs:annotation>
</xs:element>

element Document/ApplicationData
diagram
source
<xs:element name="ApplicationData" minOccurs="0">
  <xs:annotation>
    <xs:documentation>Application specific information is placed in Processing Instructions. @@@DISCUSS: is this ok? Can PIs be easily parsed out by an application? @@@ Recommendation: Each application may read out its own information. Any other target information present should be preserved and output when a new document is generated. This is designed to support itempotent round tripping data between two applications. This implies that no dependency between the settings and the items and the terminology setting should be relied upon.</xs:documentation>
  </xs:annotation>
  <xs:complexType/>
</xs:element>

complexType CharacterDefinitionType
diagram
used by
element TerminologyType/CharacterDefinitions/CharacterDefinition
attributes
Name  Type  Use  Default  Fixed  
key  string255r  required    
type  xs:NMTOKEN  optional  nominal   
source
<xs:complexType name="CharacterDefinitionType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Defines a character in the terminology</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="LinguisticSets" type="LinguisticSets.ExtendedLabelType">
      <xs:annotation>
        <xs:documentation>Note on LinguisticSet contents: Character labels should be unique within the entire CharacterDefinitions collection (separately for each audience definition).</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="DescriptorDefinitions">
      <xs:annotation>
        <xs:documentation>At least a single descriptor must be present (@@@ currently not implemented in the schema! @@@)</xs:documentation>
      </xs:annotation>
      <xs:complexType>
        <xs:sequence>
          <xs:element name="GlobalStateSetReference" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Optionally globally defined state sets may be referenced and thus defined for a character. In general at least the special states should be referenced here.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Selections" minOccurs="0">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">If Selections is missing, all descriptor states will be included, else only the selected ones.</xs:documentation>
                  </xs:annotation>
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="DescriptorSelection" maxOccurs="unbounded">
                        <xs:complexType>
                          <xs:attribute name="keyref" use="required"/>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
              <xs:attribute name="keyref" use="required"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="LocalStateDefinitions" minOccurs="0">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="StateDefinition" type="CharacterStateDefinitionType" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="MeasureDefinitions" minOccurs="0">
            <xs:annotation>
              <xs:documentation>These definitions constrain which global measure definitions can appear in items of this character.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="MeasurementUnit" minOccurs="0">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Unit like mm, µm, °C. Attributes allow to output before value (e.g. pH 7.0) or without blank. The content allows some xhtml formatting to support "mm <sup>2</sup>".</xs:documentation>
                  </xs:annotation>
                  <xs:complexType>
                    <xs:complexContent>
                      <xs:extension base="FormattedSimpleTextType">
                        <xs:attribute name="Postfix" type="xs:boolean" use="optional" default="true"/>
                        <xs:attribute name="AddBlank" type="xs:boolean" use="optional" default="true"/>
                      </xs:extension>
                    </xs:complexContent>
                  </xs:complexType>
                </xs:element>
                <xs:element name="MeasureDefinition" maxOccurs="unbounded">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">The key attribute must be unique and is referred to in the item descriptions. The keyref refers to the measure semantics defined in the global measure definitions.</xs:documentation>
                  </xs:annotation>
                  <xs:complexType>
                    <xs:attribute name="key" type="string255r" use="required"/>
                    <xs:attribute name="keyref" use="required"/>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="FrequencyModifierSelections" minOccurs="0">
      <xs:annotation>
        <xs:documentation>(@@@PLACEHOLDER!@@@) Enabling of 0-n single frequency modifiers or 0-n frequency modifier sets for all states in a character.</xs:documentation>
      </xs:annotation>
      <xs:complexType/>
    </xs:element>
    <xs:element name="ModifierSelections" minOccurs="0">
      <xs:annotation>
        <xs:documentation>(@@@PLACEHOLDER!@@@) Enabling of 0-n single modifiers or 0-n modifier sets for all states in a character.</xs:documentation>
      </xs:annotation>
      <xs:complexType/>
    </xs:element>
    <xs:element name="Resources" type="ResourceReferencesType" minOccurs="0"/>
  </xs:sequence>
  <xs:attribute name="key" type="string255r" use="required"/>
  <xs:attribute name="type" use="optional" default="nominal">
    <xs:simpleType>
      <xs:restriction base="xs:NMTOKEN">
        <xs:enumeration value="nominal"/>
        <xs:enumeration value="ordinal-discrete"/>
        <xs:enumeration value="ordinal-interval"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
</xs:complexType>

element CharacterDefinitionType/LinguisticSets
diagram
source
<xs:element name="LinguisticSets" type="LinguisticSets.ExtendedLabelType">
  <xs:annotation>
    <xs:documentation>Note on LinguisticSet contents: Character labels should be unique within the entire CharacterDefinitions collection (separately for each audience definition).</xs:documentation>
  </xs:annotation>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions
diagram
source
<xs:element name="DescriptorDefinitions">
  <xs:annotation>
    <xs:documentation>At least a single descriptor must be present (@@@ currently not implemented in the schema! @@@)</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="GlobalStateSetReference" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Optionally globally defined state sets may be referenced and thus defined for a character. In general at least the special states should be referenced here.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Selections" minOccurs="0">
              <xs:annotation>
                <xs:documentation source="Gregor Hagedorn" xml:lang="en">If Selections is missing, all descriptor states will be included, else only the selected ones.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="DescriptorSelection" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:attribute name="keyref" use="required"/>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="keyref" use="required"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="LocalStateDefinitions" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="StateDefinition" type="CharacterStateDefinitionType" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MeasureDefinitions" minOccurs="0">
        <xs:annotation>
          <xs:documentation>These definitions constrain which global measure definitions can appear in items of this character.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MeasurementUnit" minOccurs="0">
              <xs:annotation>
                <xs:documentation source="Gregor Hagedorn" xml:lang="en">Unit like mm, µm, °C. Attributes allow to output before value (e.g. pH 7.0) or without blank. The content allows some xhtml formatting to support "mm <sup>2</sup>".</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:complexContent>
                  <xs:extension base="FormattedSimpleTextType">
                    <xs:attribute name="Postfix" type="xs:boolean" use="optional" default="true"/>
                    <xs:attribute name="AddBlank" type="xs:boolean" use="optional" default="true"/>
                  </xs:extension>
                </xs:complexContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="MeasureDefinition" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation source="Gregor Hagedorn" xml:lang="en">The key attribute must be unique and is referred to in the item descriptions. The keyref refers to the measure semantics defined in the global measure definitions.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="key" type="string255r" use="required"/>
                <xs:attribute name="keyref" use="required"/>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions/GlobalStateSetReference
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref   required    
source
<xs:element name="GlobalStateSetReference" minOccurs="0" maxOccurs="unbounded">
  <xs:annotation>
    <xs:documentation>Optionally globally defined state sets may be referenced and thus defined for a character. In general at least the special states should be referenced here.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Selections" minOccurs="0">
        <xs:annotation>
          <xs:documentation source="Gregor Hagedorn" xml:lang="en">If Selections is missing, all descriptor states will be included, else only the selected ones.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="DescriptorSelection" maxOccurs="unbounded">
              <xs:complexType>
                <xs:attribute name="keyref" use="required"/>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="keyref" use="required"/>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions/GlobalStateSetReference/Selections
diagram
source
<xs:element name="Selections" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">If Selections is missing, all descriptor states will be included, else only the selected ones.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="DescriptorSelection" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="keyref" use="required"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions/GlobalStateSetReference/Selections/DescriptorSelection
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref   required    
source
<xs:element name="DescriptorSelection" maxOccurs="unbounded">
  <xs:complexType>
    <xs:attribute name="keyref" use="required"/>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions/LocalStateDefinitions
diagram
source
<xs:element name="LocalStateDefinitions" minOccurs="0">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="StateDefinition" type="CharacterStateDefinitionType" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions/LocalStateDefinitions/StateDefinition
diagram
attributes
Name  Type  Use  Default  Fixed  
type  xs:NMTOKEN  optional    
key  string255r  required    
source
<xs:element name="StateDefinition" type="CharacterStateDefinitionType" maxOccurs="unbounded"/>

element CharacterDefinitionType/DescriptorDefinitions/MeasureDefinitions
diagram
source
<xs:element name="MeasureDefinitions" minOccurs="0">
  <xs:annotation>
    <xs:documentation>These definitions constrain which global measure definitions can appear in items of this character.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="MeasurementUnit" minOccurs="0">
        <xs:annotation>
          <xs:documentation source="Gregor Hagedorn" xml:lang="en">Unit like mm, µm, °C. Attributes allow to output before value (e.g. pH 7.0) or without blank. The content allows some xhtml formatting to support "mm <sup>2</sup>".</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="FormattedSimpleTextType">
              <xs:attribute name="Postfix" type="xs:boolean" use="optional" default="true"/>
              <xs:attribute name="AddBlank" type="xs:boolean" use="optional" default="true"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="MeasureDefinition" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation source="Gregor Hagedorn" xml:lang="en">The key attribute must be unique and is referred to in the item descriptions. The keyref refers to the measure semantics defined in the global measure definitions.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name="key" type="string255r" use="required"/>
          <xs:attribute name="keyref" use="required"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions/MeasureDefinitions/MeasurementUnit
diagram
attributes
Name  Type  Use  Default  Fixed  
Postfix  xs:boolean  optional  true   
AddBlank  xs:boolean  optional  true   
source
<xs:element name="MeasurementUnit" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Unit like mm, µm, °C. Attributes allow to output before value (e.g. pH 7.0) or without blank. The content allows some xhtml formatting to support "mm <sup>2</sup>".</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="FormattedSimpleTextType">
        <xs:attribute name="Postfix" type="xs:boolean" use="optional" default="true"/>
        <xs:attribute name="AddBlank" type="xs:boolean" use="optional" default="true"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/DescriptorDefinitions/MeasureDefinitions/MeasureDefinition
diagram
attributes
Name  Type  Use  Default  Fixed  
key  string255r  required    
keyref   required    
source
<xs:element name="MeasureDefinition" maxOccurs="unbounded">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">The key attribute must be unique and is referred to in the item descriptions. The keyref refers to the measure semantics defined in the global measure definitions.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:attribute name="key" type="string255r" use="required"/>
    <xs:attribute name="keyref" use="required"/>
  </xs:complexType>
</xs:element>

element CharacterDefinitionType/FrequencyModifierSelections
diagram
source
<xs:element name="FrequencyModifierSelections" minOccurs="0">
  <xs:annotation>
    <xs:documentation>(@@@PLACEHOLDER!@@@) Enabling of 0-n single frequency modifiers or 0-n frequency modifier sets for all states in a character.</xs:documentation>
  </xs:annotation>
  <xs:complexType/>
</xs:element>

element CharacterDefinitionType/ModifierSelections
diagram
source
<xs:element name="ModifierSelections" minOccurs="0">
  <xs:annotation>
    <xs:documentation>(@@@PLACEHOLDER!@@@) Enabling of 0-n single modifiers or 0-n modifier sets for all states in a character.</xs:documentation>
  </xs:annotation>
  <xs:complexType/>
</xs:element>

element CharacterDefinitionType/Resources
diagram
source
<xs:element name="Resources" type="ResourceReferencesType" minOccurs="0"/>

complexType CharacterGroupDefinitionType
diagram
used by
element TerminologyType/CharacterGroupDefinitions/CharacterGroupDefinition
attributes
Name  Type  Use  Default  Fixed  
key  string255r  required    
MinimumExpertiseLevel  ExpertiseLevelType  optional  1   
complete  xs:boolean  optional  false   
type  xs:NMTOKEN  required    
source
<xs:complexType name="CharacterGroupDefinitionType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Defines an entire character group (flat list or tree hierarchy)</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="LinguisticSets" type="LinguisticSets.ExtendedLabelType">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Defines label displayed when a grouping is selected in the user interface</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="Purposes" minOccurs="0">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Purposes are standardized to simplify application interoperability.</xs:documentation>
      </xs:annotation>
      <xs:complexType>
        <xs:sequence>
          <xs:element name="Purpose" maxOccurs="unbounded">
            <xs:complexType>
              <xs:attribute name="name" use="required">
                <xs:simpleType>
                  <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="DefaultGeneral">
                      <xs:annotation>
                        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for any editing or reporting purpose. The application may, however, enable the user to select any character grouping.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="DefaultDescriptionEditorView">
                      <xs:annotation>
                        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for editing the item description data set. The application may, however, enable the user to select any character grouping.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="DefaultTerminologyEditorView">
                      <xs:annotation>
                        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for editing the terminology. The application may, however, enable the user to select any character grouping.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="GuidedKeyBuilder">
                      <xs:annotation>
                        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for building guided keys (e. g. dichotomous keys).</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="InteractiveIdentification">
                      <xs:annotation>
                        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for interactive identification.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="NaturalLanguageReporting">
                      <xs:annotation>
                        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for natural language reporting.</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="CharacterGroupItem" type="CharacterGroupItemType" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="key" type="string255r" use="required"/>
  <xs:attribute name="MinimumExpertiseLevel" type="ExpertiseLevelType" use="optional" default="1">
    <xs:annotation>
      <xs:documentation>MinimumExpertiseLevel: the designer of the subset expects the user to have a  certain minimum expertise level. @@@ Needs discussion! @@@</xs:documentation>
    </xs:annotation>
  </xs:attribute>
  <xs:attribute name="complete" type="xs:boolean" use="optional" default="false">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The designer of a character grouping defines it as 'complete' to declare that it is intended to include all characters of the terminology. A terminology editing application can use this information e. g. to warn the designer about missing characters, to display special dialog boxes after the creation of a new character, etc.</xs:documentation>
    </xs:annotation>
  </xs:attribute>
  <xs:attribute name="type" use="required">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">This attribute is currently not used, instead the key of the StateSet has been fixed for special states to SpecialStates. Needs discussion!</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:NMTOKEN">
        <xs:enumeration value="BasicPropertyTypes">
          <xs:annotation>
            <xs:documentation source="Gregor Hagedorn" xml:lang="en">Categorizing characters into basic property types (e. g. color, 2-dim. shape, 3-dim. shape, surface texture, taste, smell, behaviour, physiology, measurements, etc.) greatly improves the analysis and management of larger character sets and is therefore recommended. Note: Only a single character grouping should have this hierarchy type. (not enforced in schema, how can it be enforced? Other types occur multiple, i. e. one cannot make a UNIQUE statement on attribute!</xs:documentation>
          </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value="ObservationMethodHierarchy">
          <xs:annotation>
            <xs:documentation source="Gregor Hagedorn" xml:lang="en">A hierarchy that organizes characters by method, e.g. field observation, light microscopy, electron microscopy, molecular methods, culture techniques, etc.</xs:documentation>
          </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value="PartHierarchy">
          <xs:annotation>
            <xs:documentation source="Gregor Hagedorn" xml:lang="en">A hierarchy that organizes characters by a morphological "contains" hierarchy: plant = root/stem/leaf, leaf = base/stipules/petiole/lamina, etc.</xs:documentation>
          </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value="FlatSubsets">
          <xs:annotation>
            <xs:documentation source="Gregor Hagedorn" xml:lang="en">Defining a grouping as flat subset marks it as being intended only for filtering purposes and prevents it from being displayed as a choice for a hierarchy in a user interface. Note that conversely, the filter selection dialog should not be restricted to these groupings. Any character grouping, including part, method or basic property type hierarchies are valuable filters defining character subsets.</xs:documentation>
          </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value="UserDefinedHierarchy">
          <xs:annotation>
            <xs:documentation source="Gregor Hagedorn" xml:lang="en">used for character groupings that fall into none of the categories above.</xs:documentation>
          </xs:annotation>
        </xs:enumeration>
        <xs:enumeration value="CharacterArray"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
</xs:complexType>

element CharacterGroupDefinitionType/LinguisticSets
diagram
source
<xs:element name="LinguisticSets" type="LinguisticSets.ExtendedLabelType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Defines label displayed when a grouping is selected in the user interface</xs:documentation>
  </xs:annotation>
</xs:element>

element CharacterGroupDefinitionType/Purposes
diagram
source
<xs:element name="Purposes" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Purposes are standardized to simplify application interoperability.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Purpose" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="name" use="required">
            <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                <xs:enumeration value="DefaultGeneral">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for any editing or reporting purpose. The application may, however, enable the user to select any character grouping.</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="DefaultDescriptionEditorView">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for editing the item description data set. The application may, however, enable the user to select any character grouping.</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="DefaultTerminologyEditorView">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for editing the terminology. The application may, however, enable the user to select any character grouping.</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="GuidedKeyBuilder">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for building guided keys (e. g. dichotomous keys).</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="InteractiveIdentification">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for interactive identification.</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="NaturalLanguageReporting">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for natural language reporting.</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element CharacterGroupDefinitionType/Purposes/Purpose
diagram
attributes
Name  Type  Use  Default  Fixed  
name  xs:NMTOKEN  required    
source
<xs:element name="Purpose" maxOccurs="unbounded">
  <xs:complexType>
    <xs:attribute name="name" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="DefaultGeneral">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for any editing or reporting purpose. The application may, however, enable the user to select any character grouping.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="DefaultDescriptionEditorView">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for editing the item description data set. The application may, however, enable the user to select any character grouping.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="DefaultTerminologyEditorView">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications with a user interface to use this as the default hierarchy for editing the terminology. The application may, however, enable the user to select any character grouping.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="GuidedKeyBuilder">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for building guided keys (e. g. dichotomous keys).</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="InteractiveIdentification">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for interactive identification.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="NaturalLanguageReporting">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Setting this purpose in a character grouping is a recommendation to applications to use this as the default hierarchy for natural language reporting.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

element CharacterGroupDefinitionType/CharacterGroupItem
diagram
attributes
Name  Type  Use  Default  Fixed  
key  string255r  required    
source
<xs:element name="CharacterGroupItem" type="CharacterGroupItemType" maxOccurs="unbounded"/>

complexType CharacterGroupItemType
diagram
used by
elements CharacterGroupDefinitionType/CharacterGroupItem CharacterGroupItemType/CharacterGroupItem
attributes
Name  Type  Use  Default  Fixed  
key  string255r  required    
source
<xs:complexType name="CharacterGroupItemType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">A node in a character group</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="LinguisticSets" type="LinguisticSets.ComplexWordingType" minOccurs="0"/>
    <xs:element name="InternalNotes" type="string_r" minOccurs="0">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Enable designer to annotate nodes in the grouping and add management comments</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="Character" minOccurs="0" maxOccurs="unbounded">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="LinguisticSets" type="LinguisticSets.ComplexWordingType" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Natural language wording for character node needs to be here. The relevant or possible wording is constrained by the path in the tree, so it needs to be defined in the tree, not in the flat character list. In a methodological tree the wording may have to add part hierarchy information, in a part hierarchy methodological information.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="keyref" type="string255r" use="required"/>
      </xs:complexType>
    </xs:element>
    <xs:element name="CharacterGroupItem" type="CharacterGroupItemType" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute name="key" type="string255r" use="required">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">The key for the character group item has been defined as required to document that an xs:key constraint exists on this attribute. It seems impossible to make existence of key optional and require keyrefs to only point to these existing keys.</xs:documentation>
    </xs:annotation>
  </xs:attribute>
</xs:complexType>

element CharacterGroupItemType/LinguisticSets
diagram
source
<xs:element name="LinguisticSets" type="LinguisticSets.ComplexWordingType" minOccurs="0"/>

element CharacterGroupItemType/InternalNotes
diagram
facets
minLength 1
source
<xs:element name="InternalNotes" type="string_r" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Enable designer to annotate nodes in the grouping and add management comments</xs:documentation>
  </xs:annotation>
</xs:element>

element CharacterGroupItemType/Character
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
source
<xs:element name="Character" minOccurs="0" maxOccurs="unbounded">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="LinguisticSets" type="LinguisticSets.ComplexWordingType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Natural language wording for character node needs to be here. The relevant or possible wording is constrained by the path in the tree, so it needs to be defined in the tree, not in the flat character list. In a methodological tree the wording may have to add part hierarchy information, in a part hierarchy methodological information.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="keyref" type="string255r" use="required"/>
  </xs:complexType>
</xs:element>

element CharacterGroupItemType/Character/LinguisticSets
diagram
source
<xs:element name="LinguisticSets" type="LinguisticSets.ComplexWordingType" minOccurs="0">
  <xs:annotation>
    <xs:documentation>Natural language wording for character node needs to be here. The relevant or possible wording is constrained by the path in the tree, so it needs to be defined in the tree, not in the flat character list. In a methodological tree the wording may have to add part hierarchy information, in a part hierarchy methodological information.</xs:documentation>
  </xs:annotation>
</xs:element>

element CharacterGroupItemType/CharacterGroupItem
diagram
attributes
Name  Type  Use  Default  Fixed  
key  string255r  required    
source
<xs:element name="CharacterGroupItem" type="CharacterGroupItemType" minOccurs="0" maxOccurs="unbounded"/>

complexType CharacterMeasureReferenceType
diagram
used by
elements CharacterReferenceType/Measure CharacterReferenceType_NL/Measure
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
Value  xs:double  required    
source
<xs:complexType name="CharacterMeasureReferenceType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Analog to the CharacterStateReferenceType, for measures</xs:documentation>
  </xs:annotation>
  <xs:simpleContent>
    <xs:extension base="xs:double">
      <xs:attribute name="keyref" type="string255r" use="required"/>
      <xs:attribute name="Value" type="xs:double" use="required"/>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

complexType CharacterReferenceType
diagram
used by
element DescriptionsType/Item/CodedDescription/Character
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
source
<xs:complexType name="CharacterReferenceType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Refers in coded item descriptions to a Character. MAY LATER NOT BE NEEDED!</xs:documentation>
  </xs:annotation>
  <xs:choice maxOccurs="unbounded">
    <xs:element name="State" type="CharacterStateReferenceType"/>
    <xs:element name="Measure" type="CharacterMeasureReferenceType"/>
  </xs:choice>
  <xs:attribute name="keyref" type="string255r" use="required"/>
</xs:complexType>

element CharacterReferenceType/State
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
Origin  string255r  optional    
AutoOrdered  xs:boolean  optional  true   
source
<xs:element name="State" type="CharacterStateReferenceType"/>

element CharacterReferenceType/Measure
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
Value  xs:double  required    
source
<xs:element name="Measure" type="CharacterMeasureReferenceType"/>

complexType CharacterReferenceType_NL
diagram
used by
elements DescriptionsType/Item/NaturalLanguageDescription/Wordings/Charactergroup/Character DescriptionsType/Item/NaturalLanguageDescription/Wordings/Character
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
source
<xs:complexType name="CharacterReferenceType_NL">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Like CharacterReferenceType, but for usage in the NaturalLanguageDescription markup container (including Wording elements)</xs:documentation>
    <xs:appinfo source="internal note">CharacterReferenceType_NL is similar to CharacterReferenceType, but not derived by extension, since not only the Wording element has to be added, but also state element changed to a different type allowing Wording inside.</xs:appinfo>
  </xs:annotation>
  <xs:choice maxOccurs="unbounded">
    <xs:element name="State" type="CharacterStateReferenceType_NL" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="Measure" type="CharacterMeasureReferenceType" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="Wording" type="MarkupWordingType" minOccurs="0"/>
  </xs:choice>
  <xs:attribute name="keyref" type="string255r" use="required"/>
</xs:complexType>

element CharacterReferenceType_NL/State
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
Origin  string255r  optional    
AutoOrdered  xs:boolean  optional  true   
source
<xs:element name="State" type="CharacterStateReferenceType_NL" minOccurs="0" maxOccurs="unbounded"/>

element CharacterReferenceType_NL/Measure
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
Value  xs:double  required    
source
<xs:element name="Measure" type="CharacterMeasureReferenceType" minOccurs="0" maxOccurs="unbounded"/>

element CharacterReferenceType_NL/Wording
diagram
attributes
Name  Type  Use  Default  Fixed  
parsed  xs:boolean  optional    
source
<xs:element name="Wording" type="MarkupWordingType" minOccurs="0"/>

complexType CharacterStateDefinitionType
diagram
used by
elements TerminologyType/GlobalStateDefinitions/GlobalStateDefinitionSet/StateDefinition TerminologyType/GlobalStateDefinitions/GlobalStateDefinitionSet/StateDefinition TerminologyType/GlobalStateDefinitions/GlobalStateDefinitionSet/StateDefinition CharacterDefinitionType/DescriptorDefinitions/LocalStateDefinitions/StateDefinition
attributes
Name  Type  Use  Default  Fixed  
type  xs:NMTOKEN  optional    
key  string255r  required    
source
<xs:complexType name="CharacterStateDefinitionType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Used in global and local character state definitions</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="LinguisticSets" type="LinguisticSets.BasicWordingType"/>
    <xs:element name="InternalNotes" type="string_r" minOccurs="0">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Internal notes of the designer, 
not multilingual.</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="Resources" type="ResourceReferencesType" minOccurs="0">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Resources linked to a state definition, e. g. images illustrating expression of the state.</xs:documentation>
      </xs:annotation>
    </xs:element>
  </xs:sequence>
  <xs:attribute name="type" use="optional">
    <xs:annotation>
      <xs:documentation source="Gregor Hagedorn" xml:lang="en">This attribute is currently not used, instead the key of the StateSet has been fixed for special states to SpecialStates. Needs discussion!</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:NMTOKEN">
        <xs:enumeration value="SpecialState"/>
        <xs:enumeration value="GlobalState"/>
        <xs:enumeration value="LocalState"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="key" type="string255r" use="required"/>
</xs:complexType>

element CharacterStateDefinitionType/LinguisticSets
diagram
source
<xs:element name="LinguisticSets" type="LinguisticSets.BasicWordingType"/>

element CharacterStateDefinitionType/InternalNotes
diagram
facets
minLength 1
source
<xs:element name="InternalNotes" type="string_r" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Internal notes of the designer, 
not multilingual.</xs:documentation>
  </xs:annotation>
</xs:element>

element CharacterStateDefinitionType/Resources
diagram
source
<xs:element name="Resources" type="ResourceReferencesType" minOccurs="0">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Resources linked to a state definition, e. g. images illustrating expression of the state.</xs:documentation>
  </xs:annotation>
</xs:element>

complexType CharacterStateReferenceType
diagram
used by
element CharacterReferenceType/State
complexType CharacterStateReferenceType_NL
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
Origin  string255r  optional    
AutoOrdered  xs:boolean  optional  true   
source
<xs:complexType name="CharacterStateReferenceType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Observation of a character state in an item description (compare also StateDefinitionType!)</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:choice minOccurs="0">
      <xs:annotation>
        <xs:documentation>The three frequency 
element variants are 
distinguished 
by their attributes!</xs:documentation>
      </xs:annotation>
      <xs:sequence>
        <xs:element name="Frequency">
          <xs:annotation>
            <xs:documentation>direct single frequency value</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:attribute name="Value" type="probability" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:sequence>
        <xs:element name="Frequency">
          <xs:annotation>
            <xs:documentation>direct frequency range</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:attribute name="LowerLimit" type="probability" use="required"/>
            <xs:attribute name="UpperLimit" type="probability" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:sequence>
        <xs:element name="Frequency">
          <xs:annotation>
            <xs:documentation>reference to globally defined 
frequency modifier.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:attribute name="keyref" type="string255r" use="required"/>
          </xs:complexType>
          <xs:keyref name="FrequencyDefinitionKeyref2" refer="FrequencyDefinitionKey">
            <xs:selector xpath="."/>
            <xs:field xpath="@keyref"/>
          </xs:keyref>
        </xs:element>
      </xs:sequence>
    </xs:choice>
    <xs:element name="Modifier" minOccurs="0" maxOccurs="unbounded">
      <xs:complexType>
        <xs:attribute name="keyref" type="string255r" use="required"/>
        <xs:attribute name="PropagateOnCollation" type="xs:boolean"/>
      </xs:complexType>
      <xs:keyref name="ModifierDefinitionKeyref" refer="ModifierDefinitionKey">
        <xs:selector xpath="."/>
        <xs:field xpath="@keyref"/>
      </xs:keyref>
    </xs:element>
    <xs:element name="LinguisticSets" type="LinguisticSets.ItemDescriptionType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>Contains ReportedNotes</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="InternalNotes" type="string_r" minOccurs="0">
      <xs:annotation>
        <xs:documentation>Internal notes are present 
only once, not multilingual!</xs:documentation>
      </xs:annotation>
    </xs:element>
  </xs:sequence>
  <xs:attribute name="keyref" type="string255r" use="required"/>
  <xs:attribute name="Origin" type="string255r" use="optional"/>
  <xs:attribute name="AutoOrdered" type="xs:boolean" use="optional" default="true"/>
</xs:complexType>

element CharacterStateReferenceType/Frequency
diagram
attributes
Name  Type  Use  Default  Fixed  
Value  probability  required    
source
<xs:element name="Frequency">
  <xs:annotation>
    <xs:documentation>direct single frequency value</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:attribute name="Value" type="probability" use="required"/>
  </xs:complexType>
</xs:element>

element CharacterStateReferenceType/Frequency
diagram
attributes
Name  Type  Use  Default  Fixed  
LowerLimit  probability  required    
UpperLimit  probability  required    
source
<xs:element name="Frequency">
  <xs:annotation>
    <xs:documentation>direct frequency range</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:attribute name="LowerLimit" type="probability" use="required"/>
    <xs:attribute name="UpperLimit" type="probability" use="required"/>
  </xs:complexType>
</xs:element>

element CharacterStateReferenceType/Frequency
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
identity constraints
  Name  Refer  Selector  Field(s)  
keyref  FrequencyDefinitionKeyref2  FrequencyDefinitionKey  .  @keyref  
source
<xs:element name="Frequency">
  <xs:annotation>
    <xs:documentation>reference to globally defined 
frequency modifier.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:attribute name="keyref" type="string255r" use="required"/>
  </xs:complexType>
  <xs:keyref name="FrequencyDefinitionKeyref2" refer="FrequencyDefinitionKey">
    <xs:selector xpath="."/>
    <xs:field xpath="@keyref"/>
  </xs:keyref>
</xs:element>

element CharacterStateReferenceType/Modifier
diagram
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
PropagateOnCollation  xs:boolean     
identity constraints
  Name  Refer  Selector  Field(s)  
keyref  ModifierDefinitionKeyref  ModifierDefinitionKey  .  @keyref  
source
<xs:element name="Modifier" minOccurs="0" maxOccurs="unbounded">
  <xs:complexType>
    <xs:attribute name="keyref" type="string255r" use="required"/>
    <xs:attribute name="PropagateOnCollation" type="xs:boolean"/>
  </xs:complexType>
  <xs:keyref name="ModifierDefinitionKeyref" refer="ModifierDefinitionKey">
    <xs:selector xpath="."/>
    <xs:field xpath="@keyref"/>
  </xs:keyref>
</xs:element>

element CharacterStateReferenceType/LinguisticSets
diagram
source
<xs:element name="LinguisticSets" type="LinguisticSets.ItemDescriptionType" minOccurs="0">
  <xs:annotation>
    <xs:documentation>Contains ReportedNotes</xs:documentation>
  </xs:annotation>
</xs:element>

element CharacterStateReferenceType/InternalNotes
diagram
facets
minLength 1
source
<xs:element name="InternalNotes" type="string_r" minOccurs="0">
  <xs:annotation>
    <xs:documentation>Internal notes are present 
only once, not multilingual!</xs:documentation>
  </xs:annotation>
</xs:element>

complexType CharacterStateReferenceType_NL
diagram
used by
element CharacterReferenceType_NL/State
attributes
Name  Type  Use  Default  Fixed  
keyref  string255r  required    
Origin  string255r  optional    
AutoOrdered  xs:boolean  optional  true   
source
<xs:complexType name="CharacterStateReferenceType_NL">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Like CharacterStateType, but for usage in the NaturalLanguageDescription markup container</xs:documentation>
  </xs:annotation>
  <xs:complexContent>
    <xs:extension base="CharacterStateReferenceType">
      <xs:all>
        <xs:element name="Wording" type="MarkupWordingType" minOccurs="0"/>
      </xs:all>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

element CharacterStateReferenceType_NL/Wording
diagram
attributes
Name  Type  Use  Default  Fixed  
parsed  xs:boolean  optional    
source
<xs:element name="Wording" type="MarkupWordingType" minOccurs="0"/>

complexType DescriptionMetadataType
diagram
used by
elements DescriptionsType/Item/NaturalLanguageDescription/MetaData DescriptionsType/Item/Resources/MetaData DescriptionsType/Item/CodedDescription/MetaData
source
<xs:complexType name="DescriptionMetadataType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">NEEDS DISCUSSION!</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="Creator" type="string255r">
      <xs:annotation>
        <xs:documentation>A single person or an author team.</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="Contributor" type="string255r" minOccurs="0">
      <xs:annotation>
        <xs:documentation>A single person or an author team.</xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="InternalNotes" type="string255r" minOccurs="0"/>
    <xs:choice minOccurs="0">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Either a full date or a year 
(1970-2100) are required</xs:documentation>
      </xs:annotation>
      <xs:sequence>
        <xs:element name="CreationDate">
          <xs:simpleType>
            <xs:restriction base="xs:integer">
              <xs:minInclusive value="1970"/>
              <xs:maxInclusive value="2100"/>
              <xs:fractionDigits value="0"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
      <xs:sequence>
        <xs:element name="CreationDate" type="xs:date"/>
      </xs:sequence>
    </xs:choice>
    <xs:choice minOccurs="0">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">Either a full date or a year 
(1970-2100) are required</xs:documentation>
      </xs:annotation>
      <xs:sequence>
        <xs:element name="LastUpdateDate">
          <xs:simpleType>
            <xs:restriction base="xs:integer">
              <xs:minInclusive value="1970"/>
              <xs:maxInclusive value="2100"/>
              <xs:fractionDigits value="0"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
      <xs:sequence>
        <xs:element name="LastUpdateDate" type="xs:date"/>
      </xs:sequence>
    </xs:choice>
    <xs:element name="Source" type="string255r" minOccurs="0"/>
    <xs:element name="Rights" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="CopyrightStatement" type="string255r" minOccurs="0"/>
          <xs:element name="UsageConditions" type="string_r" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>

element DescriptionMetadataType/Creator
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Creator" type="string255r">
  <xs:annotation>
    <xs:documentation>A single person or an author team.</xs:documentation>
  </xs:annotation>
</xs:element>

element DescriptionMetadataType/Contributor
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Contributor" type="string255r" minOccurs="0">
  <xs:annotation>
    <xs:documentation>A single person or an author team.</xs:documentation>
  </xs:annotation>
</xs:element>

element DescriptionMetadataType/InternalNotes
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="InternalNotes" type="string255r" minOccurs="0"/>

element DescriptionMetadataType/CreationDate
diagram
facets
minInclusive 1970
maxInclusive 2100
fractionDigits 0
source
<xs:element name="CreationDate">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1970"/>
      <xs:maxInclusive value="2100"/>
      <xs:fractionDigits value="0"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

element DescriptionMetadataType/CreationDate
diagram
source
<xs:element name="CreationDate" type="xs:date"/>

element DescriptionMetadataType/LastUpdateDate
diagram
facets
minInclusive 1970
maxInclusive 2100
fractionDigits 0
source
<xs:element name="LastUpdateDate">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="1970"/>
      <xs:maxInclusive value="2100"/>
      <xs:fractionDigits value="0"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

element DescriptionMetadataType/LastUpdateDate
diagram
source
<xs:element name="LastUpdateDate" type="xs:date"/>

element DescriptionMetadataType/Source
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Source" type="string255r" minOccurs="0"/>

element DescriptionMetadataType/Rights
diagram
source
<xs:element name="Rights" minOccurs="0">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="CopyrightStatement" type="string255r" minOccurs="0"/>
      <xs:element name="UsageConditions" type="string_r" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element DescriptionMetadataType/Rights/CopyrightStatement
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="CopyrightStatement" type="string255r" minOccurs="0"/>

element DescriptionMetadataType/Rights/UsageConditions
diagram
facets
minLength 1
source
<xs:element name="UsageConditions" type="string_r" minOccurs="0"/>

complexType DescriptionMetadataType_OLD
diagram
source
<xs:complexType name="DescriptionMetadataType_OLD">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">@@@ NEEDS DISCUSSION! Originally we proposed to use a set close to DublinCoreMetadata. This is still documented here, although it seems to be not fully appropriate!</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="Title" type="string255r" minOccurs="0"/>
    <xs:element name="Creator" type="string255r"/>
    <xs:element name="Subject" type="string255r" minOccurs="0"/>
    <xs:element name="Description" type="string255r" minOccurs="0"/>
    <xs:element name="Publisher" type="string255r" minOccurs="0"/>
    <xs:element name="Contributor" type="string255r" minOccurs="0"/>
    <xs:element name="Date" type="string255r" minOccurs="0"/>
    <xs:element name="Type" type="string255r" minOccurs="0"/>
    <xs:element name="Format" type="string255r" minOccurs="0"/>
    <xs:element name="Identifier" type="string255r" minOccurs="0"/>
    <xs:element name="Source" type="string255r" minOccurs="0"/>
    <xs:element name="Language" type="xs:language" minOccurs="0"/>
    <xs:element name="Relation" type="string255r" minOccurs="0"/>
    <xs:element name="Coverage" type="string255r" minOccurs="0"/>
    <xs:element name="Rights" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="CopyrightStatement" type="string255r" minOccurs="0"/>
          <xs:element name="UsageConditions" type="string_r" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>

element DescriptionMetadataType_OLD/Title
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Title" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Creator
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Creator" type="string255r"/>

element DescriptionMetadataType_OLD/Subject
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Subject" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Description
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Description" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Publisher
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Publisher" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Contributor
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Contributor" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Date
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Date" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Type
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Type" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Format
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Format" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Identifier
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Identifier" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Source
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Source" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Language
diagram
source
<xs:element name="Language" type="xs:language" minOccurs="0"/>

element DescriptionMetadataType_OLD/Relation
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Relation" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Coverage
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="Coverage" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Rights
diagram
source
<xs:element name="Rights" minOccurs="0">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="CopyrightStatement" type="string255r" minOccurs="0"/>
      <xs:element name="UsageConditions" type="string_r" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element DescriptionMetadataType_OLD/Rights/CopyrightStatement
diagram
facets
minLength 1
maxLength 255
source
<xs:element name="CopyrightStatement" type="string255r" minOccurs="0"/>

element DescriptionMetadataType_OLD/Rights/UsageConditions
diagram
facets
minLength 1
source
<xs:element name="UsageConditions" type="string_r" minOccurs="0"/>

complexType DescriptionsType
diagram
used by
element Document/Descriptions
source
<xs:complexType name="DescriptionsType">
  <xs:annotation>
    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Item descriptions may 
contain multiple items</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="Item" maxOccurs="unbounded">
      <xs:annotation>
        <xs:documentation source="Gregor Hagedorn" xml:lang="en">The item is a defined object that is described. This may be an abstract taxonomic concept (taxon, disease, etc.) or a physical object (individual specimen, part of individual, etc.).

The item may be defined by its taxonomic name, by the published source of the description, and by a specimen identifier.
 These definitions may be free-form text or links to other database components.</xs:documentation>
      </xs:annotation>
      <xs:complexType>
        <xs:sequence>
          <xs:element name="ItemDefinition" type="ItemDefinitionType">
            <xs:annotation>
              <xs:documentation>@@@ Needs discussion! currently both as attributes on Item and as Elements within. Compare the use of metadata as elements, should this be rather elements or attributes?</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="NaturalLanguageDescription" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">This element contains an authored or autogenerated free-form item description ('natural language description'). It may be completely or partially marked up with elements similar to those in the coded description. If all markup except the wording content is removed, the original description can be losslessly recovered.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="MetaData" type="DescriptionMetadataType" minOccurs="0"/>
                <xs:element name="Wordings">
                  <xs:annotation>
                    <xs:documentation source="Gregor Hagedorn" xml:lang="en">Retains the full, unchanged original wording of the natural language description. Character group, character, or state markup may be added (partial or complete), but these may not change the original wording sequence.</xs:documentation>
                  </xs:annotation>
                  <xs:complexType>
                    <xs:choice maxOccurs="unbounded">
                      <xs:element name="Charactergroup" minOccurs="0">
                        <xs:annotation>
                          <xs:documentation>Character group markup is used to mark organism parts, methodological sections, etc.</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                          <xs:choice maxOccurs="unbounded">
                            <xs:element name="Character" type="CharacterReferenceType_NL" minOccurs="0" maxOccurs="unbounded">
                              <xs:annotation>
                                <xs:documentation>In most cases initially the states 
are recognized, but character 
markup can be deduced from the 
associations between char. and 
states defined in the terminology.</xs:documentation>
                              </xs:annotation>
                            </xs:element>
                            <xs:element name="Wording" type="MarkupWordingType" minOccurs="0">
                              <xs:annotation>
                                <xs:documentation>Wording between characters groups or characters is necessary if markup is incomplete</xs:documentation>
                              </xs:annotation>
                            </xs:element>
                          </xs:choice>
                          <xs:attribute name="keyref" type="string255r" use="required"/>
                        </xs:complexType>
                        <xs:keyref name="CharacterGroupItemKeyref" refer="CharacterGroupItemKey">
                          <xs:selector xpath="."/>
                          <xs:field xpath="@keyref"/>
                        </xs:keyref>
                      </xs:element>
                      <xs:element name="Character" type="CharacterReferenceType_NL" minOccurs="0">
                        <xs:annotation>
                          <xs:documentation>In most cases states are initially recognized, but character markup
can be deduced from the 
associations between char. and 
states defined in the terminology.</xs:documentation>
                        </xs:annotation>
                      </xs:element>
                      <xs:element name="Wording" type="MarkupWordingType" minOccurs="0">
                        <xs:annotation>
                          <xs:documentation>Wording between characters groups or characters is necessary if markup is incomplete</xs:documentation>
                        </xs:annotation>
                      </xs:element>
                    </xs:choice>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
              <xs:attribute name="Origin" type="string255r" use="required">
                <xs:annotation>
                  <xs:documentation source="Gregor Hagedorn" xml:lang="en">"authored" descriptions may never be overwritten by a natural language reporting process, whereas "generated" descriptions may be updated. Both "authored" and "generated" descriptions may have markup, but do not need to.</xs:documentation>
                </xs:annotation>
              </xs:attribute>
              <xs:attribute name="AudienceKeyRef" type="string255r" use="required"/>
            </xs:complexType>
          </xs:element>
          <xs:element name="Resources" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation source="Gregor Hagedorn" xml:lang="en">Contains multiple resources (e. g. images) described by a single set of DC metadata. A description may consist of resources alone!</xs:documentation>
            </xs:annotation>
            <