UBIF Schema Supplementary Report

(Version: SDD 1.0 beta 2 - with UBIF 1.0 beta 18 - !Simplified single file version!)

TDWG working group: Structure of Descriptive Data (SDD)

The standard schema reports generated by xml spy or the xs3p script document the structure of the schema organized by the element and type tree. As a supplement to this, this report documents the use of selected features throughout the entire schema.

This is a highly technical report aimed at xml schema experts. The purpose of the type and element listing is primarily to search for design problems or errors in the schema. The overview over default values and identity constraints is valuable for implementers.

Table of contents

  1. Table of elements (name/type synopsis)
  2. Table of defined default values
  3. Type usage
  4. Type inheritance
  5. Table of annotations containing the problem marker (= '@')

Table of elements (name/type synopsis)

The SDD schema uses element names with different types, depending on the context. To write xslt it is often useful to know which element names in a schema uniquely identify a type, and where the content type depends on the context. The following list shows all elements in alphabetical order together with their type name. Anonymous types, including anonymous type derivations, are annotated with "(anon.)". An advanced script may list the base type of a derivation, but in most cases we avoid anonymous derivation in the TDWG schemata so we did not implement this yet. In the context column the path to the element is given. Elements names are shown directly, and complex type and element/attribute group names are prefixed with "type:", "group:", and "attgroup:", respectively.

The use of an element name with several different types has two major sources: a) the alternative element types are themselves all derived from a base type (see e. g. Modifiers), or b) an object is defined in one place and a reference is made to it. This is very similar to the usage pattern in xml schema itself, where object names are used both for definition and reference (examples: element name="x" and element ref="x", or group name="y" and group ref="y").

Note: element names starting with underscore (= tentative elements placed for the purpose of discussion) are not shown.

Element Name Type Context
(anon.) (schema root) Datasets/ Dataset/
Abbreviation String50 type: LabelPlusAbbreviationRepr/
Abbreviation String50 type: LabelRepr/
Acknowledgement Statement type: IPRStatementsRepr/
Agent AgentProxy type: ExternalDataInterface/ Agents/
Agent ContributorRef type: ContributorRefs/
Agent CreatorRef type: CreatorRefs/
Agent OwnerRef type: OwnerRefs/
Agent RichAgentRef type: RichAgentRefs/
Agents (anon.) type: ExternalDataInterface/
Assumptions (anon.) type: CategoricalCharacter/
Assumptions (anon.) type: QuantitativeCharacter/
Assumptions (anon.) type: ColorRangeCharacter/
Availability Rating type: Ratings/
BasedOnSample SampleRef type: CharSummaryData/
BasicCodingStatus BasicCodingStatusEnum type: CodingStatusDef/ Specification/
Caption Label type: MediaResourceProxy/
Categorical CatSampleData type: Sample/ SamplingUnit/
Categorical CatSummaryData type: CodedDescription/ SummaryData/
CategoricalCharacter CategoricalCharacter type: DescriptiveData/ Terminology/ Characters/
Certainty Certainty type: CharSummaryData/ Modifiers/
CertaintyModifiers CertaintyModifiers type: ModifierSet/
CertaintyRange ProbabilityEstimateRange type: CertaintyModifier/ Specification/
Character CharacterRef type: Concept/
Characters (anon.) type: DescriptiveData/ Terminology/
CircularData ValueRange type: QuantitativeCharacter/ Assumptions/
Citation Citation type: DescriptionBase/ Header/
ClassHierarchies (anon.) type: ExternalDataInterface/
ClassHierarchy ClassHierarchyProxy type: ExternalDataInterface/ ClassHierarchies/
ClassName ClassNameProxy type: ExternalDataInterface/ ClassNames/
ClassName ClassRef type: DescriptionBase/ Header/
ClassName ClassRef type: ClassRefs/
ClassName ClassRef type: ClassHierarchyNode/
ClassName ClassRef type: UnitProxy/
ClassNames (anon.) type: ExternalDataInterface/
CodedDescription CodedDescription type: DescriptiveData/ CodedDescriptions/
CodedDescriptions (anon.) type: DescriptiveData/
CodingStatusValues (anon.) type: DescriptiveData/ Terminology/ General/
ColorPoint ColorRGB type: ColorPolygon/
ColorRange ColorPolygon type: ColorRangeCharData/
ColorRange ColorPolygon type: ColorRangeSampleData/
ColorRange ColorRangeCharData type: CodedDescription/ SummaryData/
ColorRange ColorRangeSampleData type: Sample/ SamplingUnit/
ColorRangeCharacter ColorRangeCharacter type: DescriptiveData/ Terminology/ Characters/
Concept Concept type: ConceptTreeDef/
Concept Concept type: Concept/ Nodes/
ConceptStates (anon.) type: Concept/ ReferableDefinitions/
ConceptTree ConceptTreeDef type: DescriptiveData/ Terminology/ ConceptTrees/
ConceptTrees (anon.) type: DescriptiveData/ Terminology/
Continuous xs:boolean type: QuantitativeCharacter/ Assumptions/
Contributors ContributorRefs type: RevisionData/
Convenience Rating type: Ratings/
Copyright Statement type: IPRStatementsRepr/
Coverage String type: MetadataDescriptionRepr/
Creators CreatorRefs type: RevisionData/
Dataset (anon.) (schema root) Datasets/
Datasets (anon.) (schema root)
Declaration Statement type: IPRStatementsRepr/
DependencyRules (anon.) type: Concept/ InheritableDefinitions/
Derivation DerivationMetadata (schema root) Datasets/ Dataset/
Description (anon.) type: ContentMetadata/
DescriptiveData DescriptiveData (schema root)
DesignedFor (anon.) type: ConceptTreeDef/ Specification/
Details String type: MetadataDescriptionRepr/
Details String type: LabelWithDetailsRepr/
Details String type: Statement/
Disclaimer Statement type: IPRStatementsRepr/
DOI DOI type: ExternalLink/
EncodedData xs:base64Binary type: MediaResourceProxy/
ExternalDataInterface ExternalDataInterface (schema root) Datasets/ Dataset/
Factor xs:double type: MeasurementUnitProxy/ Relations/ Relation/
FormatPattern NumericFormatPattern type: UnivarStatMeasureElaboration/ Specification/
Frequency Frequency type: StateData/
FrequencyModifiers FrequencyModifiers type: ModifierSet/
FrequencyRange ProbabilityEstimateRange type: FrequencyModifier/ Specification/
From (anon.) type: QuantitativeCharacter/ Mappings/ Mapping/
From CharacterStateRef type: CategoricalCharacter/ Mappings/ Mapping/
From ColorPolygon type: ColorRangeCharacter/ Mappings/ Mapping/
General (anon.) type: DescriptiveData/ Terminology/
Generator (anon.) type: DerivationMetadata/
GeographicalScope LocalityRefs type: DescriptionBase/ Header/
Geography (anon.) type: ExternalDataInterface/
Header (anon.) type: DescriptionBase/
Icon MediaResourceRef type: LabelPlusAbbreviationRepr/
Icon MediaResourceRef type: MetadataDescriptionRepr/
IdentificationCertainty IdentificationCertaintyEnum type: UnitProxy/
InapplicableIf CharacterStateRefs type: Concept/ InheritableDefinitions/ DependencyRules/
InheritableDefinitions (anon.) type: Concept/
InitiationDate xs:dateTime type: RevisionData/
InternationalAbbreviation String255 type: MeasurementUnitProxy/
InternationalAbbreviation String255 type: MicroMeasurementUnit/
InvalidSince xs:dateTime type: Citation/
IPRStatements (anon.) type: ContentMetadata/
IPRStatements (anon.) type: MediaResourceProxy/
IsPhylogenetic xs:boolean type: ClassHierarchyProxy/
IsPrefixUnit xs:boolean type: MeasurementUnitProxy/
IsPreservedInCollection xs:boolean type: UnitProxy/
IsScientificUnit xs:boolean type: MeasurementUnitProxy/
IsTrueByMisinterpretation xs:boolean type: CertaintyModifier/ Specification/
Label Label type: ProxyBase/
Label LabelPlusWording1 type: VocabularyW1Base/
Label LabelPlusWording2 type: VocabularyW2Base/
Label LabelPlusWording3 type: Concept/
Label LabelWithDetails type: ModifierSet/
Label LabelWithDetails type: ConceptTreeDef/
Label SimpleLabel type: AbstractCharacter/
LastRevisionDate xs:dateTime type: RevisionData/
LastVerified xs:dateTime type: Citation/
License Statement type: IPRStatementsRepr/
Link ExternalLink type: ProxyBase/
Locality (anon.) type: ExternalDataInterface/ Geography/
Locality LocalityRef type: LocalityRefs/
Location String255 type: Citation/
LSID LSIDBody type: ExternalLink/
Major xs:nonNegativeInteger type: ContentMetadata/ Version/
Mapping (anon.) type: CategoricalCharacter/ Mappings/
Mapping (anon.) type: QuantitativeCharacter/ Mappings/
Mapping (anon.) type: ColorRangeCharacter/ Mappings/
Mappings (anon.) type: CategoricalCharacter/
Mappings (anon.) type: QuantitativeCharacter/
Mappings (anon.) type: ColorRangeCharacter/
Measure UnivarStatMeasureData type: QuantSummaryData/
Measure UnivarStatMeasureRef type: UnivarStatMeasureElaboration/ Specification/
MeasurementScale CategoricalMeasurementScaleEnum type: CategoricalCharacter/ Assumptions/
MeasurementScale QuantitativeMeasurementScaleEnum type: QuantitativeCharacter/ Assumptions/
MeasurementUnit MeasurementUnitProxy type: ExternalDataInterface/ MeasurementUnits/
MeasurementUnit MicroMeasurementUnit type: QuantSummaryData/
MeasurementUnits (anon.) type: ExternalDataInterface/
MediaResource MediaResourceProxy type: ExternalDataInterface/ MediaResources/
MediaResource MediaResourceRef type: MediaResourceRefs/
MediaResources (anon.) type: ExternalDataInterface/
MediaResources MediaResourceRefs type: CharSummaryData/
MediaResources MediaResourceRefs type: DescriptionBase/
MediaResources MediaResourceRefs type: LabelPlusAbbreviationRepr/
Metadata ContentMetadata (schema root) Datasets/ Dataset/
Minor xs:nonNegativeInteger type: ContentMetadata/ Version/
Model StateCollectionModelEnum type: CatSummaryData/
Modifier CertaintyModifier type: CertaintyModifiers/
Modifier FrequencyModifier type: FrequencyModifiers/
Modifier ModifierDef type: ModifierDefs/
Modifier OtherModifier type: OtherModifiers/
Modifier SpatialModifier type: SpatialModifiers/
Modifier StateMod type: StateData/
Modifier StateModifier type: StateModifiers/
Modifier String255 type: ContentMetadata/ Version/
Modifier TemporalModifier type: TemporalModifiers/
Modifiers (anon.) type: DescriptiveData/ Terminology/
Modifiers (anon.) type: CharSummaryData/
ModifiersAreOrdered xs:boolean type: ModifierSet/
ModifierSet ModifierSet type: DescriptiveData/ Terminology/ Modifiers/
ModifierSet ModifierSetRef type: Concept/ InheritableDefinitions/ RecommendedModifiers/
NaturalLanguageDescriptions (anon.) type: DescriptiveData/
NaturallyContinuous xs:boolean type: CategoricalCharacter/ Assumptions/
Node ClassHierarchyNode type: ClassHierarchyProxy/
Node ClassHierarchyNode type: ClassHierarchyNodes/
Nodes (anon.) type: Concept/
Nodes ClassHierarchyNodes type: ClassHierarchyNode/
Nodes ClassHierarchyNodes type: ClassHierarchyNode/
Note ReportedNote type: CharSummaryData/
Note ReportedNote type: StateData/
Note ReportedNote type: CodingStatusData/
Note ReportedNote type: QuantSampleData/
Note ReportedNote type: Sample/
OnlyApplicableIf CharacterStateRefs type: Concept/ InheritableDefinitions/ DependencyRules/
OtherModifier OtherMod type: CharSummaryData/ Modifiers/
OtherModifiers OtherModifiers type: ModifierSet/
Owners OwnerRefs type: ContentMetadata/
Owners OwnerRefs type: MediaResourceProxy/
Parameter xs:double type: UnivarStatMeasureElaboration/ Specification/
PlausibilityRange ValueRange type: QuantitativeCharacter/ Assumptions/
PMeasure UnivarStatMeasureWithParamData type: QuantSummaryData/
PMeasure UnivarStatMeasureWithParamRef type: UnivarStatMeasureElaboration/ Specification/
PresenceOfInformation PresenceOfInformationEnum type: CodingStatusDef/ Specification/
Publication PublicationProxy type: ExternalDataInterface/ Publications/
Publication PublicationRef type: Citation/
Publications (anon.) type: ExternalDataInterface/
Quantitative QuantSampleData type: Sample/ SamplingUnit/
Quantitative QuantSummaryData type: CodedDescription/ SummaryData/
QuantitativeCharacter QuantitativeCharacter type: DescriptiveData/ Terminology/ Characters/
Ratings Ratings type: AbstractCharacter/
Ratings Ratings type: Concept/ InheritableDefinitions/
RecommendedMeasurementUnit MicroMeasurementUnit type: QuantitativeCharacter/
RecommendedMeasures (anon.) type: Concept/ InheritableDefinitions/
RecommendedModifiers (anon.) type: Concept/ InheritableDefinitions/
ReferableDefinitions (anon.) type: Concept/
RelatedUnit MeasurementUnitRef type: MeasurementUnitProxy/ Relations/ Relation/
Relation (anon.) type: MeasurementUnitProxy/ Relations/
Relations (anon.) type: MeasurementUnitProxy/
Reliability Rating type: Ratings/
Representation IPRStatementsRepr type: ContentMetadata/ IPRStatements/
Representation IPRStatementsRepr type: MediaResourceProxy/ IPRStatements/
Representation LabelPlusWording1Repr type: LabelPlusWording1/
Representation LabelPlusWording2Repr type: LabelPlusWording2/
Representation LabelPlusWording3Repr type: LabelPlusWording3/
Representation LabelRepr type: Label/
Representation LabelWithDetailsRepr type: LabelWithDetails/
Representation MetadataDescriptionRepr type: ContentMetadata/ Description/
Representation ReportedNoteRepr type: ReportedNote/
Representation SimpleLabelRepr type: SimpleLabel/
RequiredExpertise Rating type: Ratings/
RevisionData RevisionData type: AbstractCharacter/
RevisionData RevisionData type: ConceptTreeDef/
RevisionData RevisionData type: DescriptionBase/
RevisionData RevisionData type: ContentMetadata/
RevisionData RevisionData type: MediaResourceProxy/
Role ConceptTreeRoleEnum type: ConceptTreeDef/ Specification/ DesignedFor/
Sample Sample type: CodedDescription/ SampleData/
SampleData (anon.) type: CodedDescription/
SamplingEnd CompositeDateTime type: Sample/
SamplingStart CompositeDateTime type: Sample/
SamplingUnit (anon.) type: Sample/
ShouldContainAllCharacters xs:boolean type: ConceptTreeDef/ Specification/
SignificantFigures xs:positiveInteger type: QuantitativeCharacter/
Spatial Spatial type: CharSummaryData/ Modifiers/
SpatialModifiers SpatialModifiers type: ModifierSet/
Specification (anon.) type: CodingStatusDef/
Specification (anon.) type: CertaintyModifier/
Specification (anon.) type: SpatialModifier/
Specification (anon.) type: TemporalModifier/
Specification (anon.) type: FrequencyModifier/
Specification (anon.) type: UnivarStatMeasureElaboration/
Specification (anon.) type: ConceptTreeDef/
State CharacterStateRef type: CharacterStateRefs/
State StateData type: CatSummaryData/
State StateData type: CatSampleData/
StateDefinition CharacterConceptStateDef type: Concept/ ReferableDefinitions/ ConceptStates/
StateDefinition CharacterLocalStateDef type: CategoricalCharacter/ States/
StateModifiers StateModifiers type: ModifierSet/
StateReference (anon.) type: CategoricalCharacter/ States/
States (anon.) type: CategoricalCharacter/
StatisticalMeasure UnivarStatMeasureElaboration type: Concept/ InheritableDefinitions/ RecommendedMeasures/
Status CodingStatusData type: CharSummaryData/
Status CodingStatusDef type: DescriptiveData/ Terminology/ General/ CodingStatusValues/
SummaryData (anon.) type: CodedDescription/
Synonyms ClassRefs type: ClassHierarchyNode/
Temporal Temporal type: CharSummaryData/ Modifiers/
TemporalModifiers TemporalModifiers type: ModifierSet/
Terminology (anon.) type: DescriptiveData/
TermsOfUse Statement type: IPRStatementsRepr/
Text String type: NatLangWording1/
Text String type: SimpleLabelRepr/
Text String type: ReportedNoteRepr/
Text String type: Statement/
Text String255 type: LabelRepr/
TextAfter String type: NatLangWording2/
TextAfter String type: NatLangWording2/
TextBefore String type: NatLangWording2/
Title String255 type: MetadataDescriptionRepr/
To CharacterStateRef type: CategoricalCharacter/ Mappings/ Mapping/
To CharacterStateRef type: QuantitativeCharacter/ Mappings/ Mapping/
To CharacterStateRef type: ColorRangeCharacter/ Mappings/ Mapping/
Type ConceptTreeTypeEnum type: ConceptTreeDef/ Specification/
Type ResourceTypeEnum type: MediaResourceProxy/
TypeClass ClassRef type: ClassHierarchyNode/
TypeUnit TypeUnitRef type: ClassHierarchyNode/ TypeUnits/
TypeUnits (anon.) type: ClassHierarchyNode/
UnconstrainedText xs:boolean type: CharacterAbstractStateDef/
Unit UnitProxy type: ExternalDataInterface/ Units/
Unit UnitRef type: DescriptionBase/ Header/
Units (anon.) type: ExternalDataInterface/
URI xs:anyURI type: Statement/
URL xs:anyURI type: ExternalLink/
ValuesAreInteger xs:boolean type: QuantitativeCharacter/ Assumptions/
Version (anon.) type: ContentMetadata/
VersionReleaseDate xs:date type: ContentMetadata/ Version/
WebAddress xs:anyURI type: MetadataDescriptionRepr/
Wording NatLangWording1 type: LabelPlusWording1Repr/
Wording NatLangWording2 type: LabelPlusWording2Repr/
Wording NatLangWording3 type: LabelPlusWording3Repr/

Table of defined default values

Elements or attributes for which default values have been defined in the schema need special attention insofar as the processing of an instance document depends on whether it has been validated against the schema (validation will add default values in the infoset). A script or application processing instance documents may thus either validate the document, or it may handle the following attributes itself.

Object Name Default value Parent
attribute comparewith CentralMeasure type: QuantitativeCharacter/ Mappings/ Mapping/ From/
attribute lower 0 type: StateModificationPlusProbabilities/
attribute lower 0 attgroup: ProbRangeAttributeGroup/
attribute lowerestimate 0 type: ProbabilityEstimateRange/
attribute origin OriginalData type: Rating/
attribute preferred false attgroup: preferredOptionalAttribute/
attribute random false type: Sample/
attribute upper 1 type: StateModificationPlusProbabilities/
attribute upper 1 attgroup: ProbRangeAttributeGroup/
attribute upperestimate 1 type: ProbabilityEstimateRange/
element IdentificationCertainty Certain type: UnitProxy/
element IsPrefixUnit false type: MeasurementUnitProxy/
element IsPreservedInCollection true type: UnitProxy/
element IsTrueByMisinterpretation false type: CertaintyModifier/ Specification/
element Model OrSet type: CatSummaryData/
element ModifiersAreOrdered false type: ModifierSet/
element ShouldContainAllCharacters false type: ConceptTreeDef/ Specification/
element UnconstrainedText false type: CharacterAbstractStateDef/

Type usage

The following tables provide an overview of the number of times complex and simple types are used in the schema. Only schema-specific types are reported, not the w3c defined base types (xs:string, xs:boolean, etc.). Type usage is interesting to detect orphan (unused) types, or to argue whether types used only a single time should rather be anonymous.

Usage of complex types

Usage count:
Type name Total Elements Extensions Restrictions
AbstractCharacter 3 = 0 + 3 + 0
AgentProxy 1 = 1 + 0 + 0
AgentRef 1 = 0 + 1 + 0
AgentRefBase 1 = 0 + 0 + 1
CategoricalCharacter 1 = 1 + 0 + 0
CatSampleData 1 = 1 + 0 + 0
CatSummaryData 1 = 1 + 0 + 0
Certainty 1 = 1 + 0 + 0
CertaintyModifier 1 = 1 + 0 + 0
CertaintyModifiers 1 = 1 + 0 + 0
CharacterAbstractStateDef 2 = 0 + 2 + 0
CharacterConceptStateDef 1 = 1 + 0 + 0
CharacterLocalStateDef 1 = 1 + 0 + 0
CharacterModification 4 = 0 + 0 + 4
CharacterModifierDef 4 = 0 + 4 + 0
CharacterRef 3 = 1 + 2 + 0
CharacterStateRef 6 = 5 + 1 + 0
CharacterStateRefs 2 = 2 + 0 + 0
CharSampleData 3 = 0 + 3 + 0
CharSummaryData 3 = 0 + 3 + 0
Citation 1 = 1 + 0 + 0
ClassHierarchyNode 2 = 2 + 0 + 0
ClassHierarchyNodes 2 = 2 + 0 + 0
ClassHierarchyProxy 1 = 1 + 0 + 0
ClassNameProxy 1 = 1 + 0 + 0
ClassRef 5 = 5 + 0 + 0
ClassRefs 1 = 1 + 0 + 0
CodedDescription 1 = 1 + 0 + 0
CodingStatusData 1 = 1 + 0 + 0
CodingStatusDef 1 = 1 + 0 + 0
CodingStatusRef 1 = 0 + 1 + 0
ColorPolygon 3 = 3 + 0 + 0
ColorRangeCharacter 1 = 1 + 0 + 0
ColorRangeCharData 1 = 1 + 0 + 0
ColorRangeSampleData 1 = 1 + 0 + 0
CompositeDate 1 = 0 + 1 + 0
CompositeDateTime 2 = 2 + 0 + 0
Concept 2 = 2 + 0 + 0
ConceptStateRef 1 = 0 + 1 + 0
ConceptTreeDef 1 = 1 + 0 + 0
ContentMetadata 1 = 1 + 0 + 0
ContributorRef 1 = 1 + 0 + 0
ContributorRefs 1 = 1 + 0 + 0
CreatorRef 1 = 1 + 0 + 0
CreatorRefs 1 = 1 + 0 + 0
DerivationMetadata 1 = 1 + 0 + 0
DescriptionBase 1 = 0 + 1 + 0
DescriptiveData 1 = 1 + 0 + 0
ExternalDataInterface 1 = 1 + 0 + 0
ExternalLink 1 = 1 + 0 + 0
Frequency 1 = 1 + 0 + 0
FrequencyModifier 1 = 1 + 0 + 0
FrequencyModifiers 1 = 1 + 0 + 0
IPRStatementsRepr 2 = 2 + 0 + 0
Label 2 = 2 + 0 + 0
LabelPlusAbbreviationRepr 3 = 0 + 3 + 0
LabelPlusWording1 1 = 1 + 0 + 0
LabelPlusWording1Repr 1 = 1 + 0 + 0
LabelPlusWording2 1 = 1 + 0 + 0
LabelPlusWording2Repr 1 = 1 + 0 + 0
LabelPlusWording3 1 = 1 + 0 + 0
LabelPlusWording3Repr 1 = 1 + 0 + 0
LabelRepr 2 = 1 + 1 + 0
LabelWithDetails 2 = 2 + 0 + 0
LabelWithDetailsRepr 1 = 1 + 0 + 0
LanguageRef 5 = 0 + 5 + 0
LocalityProxy 1 = 0 + 1 + 0
LocalityRef 1 = 1 + 0 + 0
LocalityRefs 1 = 1 + 0 + 0
MeasurementUnitProxy 1 = 1 + 0 + 0
MeasurementUnitRef 1 = 1 + 0 + 0
MeasurementUnitRefBase 2 = 0 + 1 + 1
MediaResourceProxy 1 = 1 + 0 + 0
MediaResourceRef 3 = 3 + 0 + 0
MediaResourceRefs 3 = 3 + 0 + 0
MetadataDescriptionRepr 1 = 1 + 0 + 0
MicroMeasurementUnit 2 = 2 + 0 + 0
ModifierDef 3 = 1 + 2 + 0
ModifierDefs 6 = 0 + 0 + 6
ModifierSet 1 = 1 + 0 + 0
ModifierSetRef 1 = 1 + 0 + 0
NatLangWording1 1 = 1 + 0 + 0
NatLangWording2 2 = 1 + 1 + 0
NatLangWording3 1 = 1 + 0 + 0
OtherMod 1 = 1 + 0 + 0
OtherModifier 1 = 1 + 0 + 0
OtherModifiers 1 = 1 + 0 + 0
OwnerRef 1 = 1 + 0 + 0
OwnerRefs 2 = 2 + 0 + 0
ProbabilityEstimateRange 2 = 2 + 0 + 0
ProxyBase 8 = 0 + 8 + 0
PublicationProxy 1 = 1 + 0 + 0
PublicationRef 1 = 1 + 0 + 0
QuantitativeCharacter 1 = 1 + 0 + 0
QuantSampleData 1 = 1 + 0 + 0
QuantSummaryData 1 = 1 + 0 + 0
Rating 4 = 4 + 0 + 0
Ratings 2 = 2 + 0 + 0
ReportedNote 5 = 5 + 0 + 0
ReportedNoteRepr 1 = 1 + 0 + 0
RevisionData 5 = 5 + 0 + 0
RichAgentRef 4 = 1 + 0 + 3
RichAgentRefs 3 = 0 + 0 + 3
Sample 1 = 1 + 0 + 0
SampleRef 1 = 1 + 0 + 0
SimpleLabel 1 = 1 + 0 + 0
SimpleLabelRepr 2 = 1 + 1 + 0
Spatial 1 = 1 + 0 + 0
SpatialModifier 1 = 1 + 0 + 0
SpatialModifiers 1 = 1 + 0 + 0
StateData 2 = 2 + 0 + 0
Statement 6 = 6 + 0 + 0
StatementModification 3 = 0 + 3 + 0
StateMod 1 = 1 + 0 + 0
StateModification 1 = 0 + 0 + 1
StateModificationPlusProbabilities 1 = 0 + 0 + 1
StateModifier 1 = 1 + 0 + 0
StateModifierDef 2 = 0 + 2 + 0
StateModifiers 1 = 1 + 0 + 0
Temporal 1 = 1 + 0 + 0
TemporalModifier 1 = 1 + 0 + 0
TemporalModifiers 1 = 1 + 0 + 0
TypeUnitRef 1 = 1 + 0 + 0
UnitProxy 1 = 1 + 0 + 0
UnitRef 2 = 1 + 1 + 0
UnivarStatMeasureData 1 = 1 + 0 + 0
UnivarStatMeasureElaboration 1 = 1 + 0 + 0
UnivarStatMeasureRef 2 = 1 + 1 + 0
UnivarStatMeasureWithParamData 1 = 1 + 0 + 0
UnivarStatMeasureWithParamRef 2 = 1 + 1 + 0
ValueRange 3 = 2 + 1 + 0
VocabularyW1Base 2 = 0 + 2 + 0
VocabularyW2Base 2 = 0 + 2 + 0

Usage of simple types

Usage count:
Type name Total Attributes Elements Restrictions
AgentContributorRoleEnum 1 = 1 + 0 + 0
AgentCreatorRoleEnum 1 = 1 + 0 + 0
AgentOwnerRoleEnum 1 = 1 + 0 + 0
AgentRoleEnum 1 = 1 + 0 + 0
BasicCodingStatusEnum 1 = 0 + 1 + 0
CategoricalMeasurementScaleEnum 1 = 0 + 1 + 0
CharacterRelationID 2 = 2 + 0 + 0
CharacterStateRelationID 3 = 3 + 0 + 0
CodingStatusRelationID 2 = 2 + 0 + 0
ColorRGB 1 = 0 + 1 + 0
ConceptRelationID 1 = 1 + 0 + 0
ConceptStateRelationID 2 = 2 + 0 + 0
ConceptTreeRelationID 1 = 1 + 0 + 0
ConceptTreeRoleEnum 1 = 0 + 1 + 0
ConceptTreeTypeEnum 1 = 0 + 1 + 0
DataOriginEnum 1 = 1 + 0 + 0
DescriptionRelationID 1 = 1 + 0 + 0
DOI 1 = 0 + 1 + 0
IdentificationCertaintyEnum 1 = 0 + 1 + 0
Language 3 = 3 + 0 + 0
LSIDBody 1 = 0 + 1 + 0
ModifierRelationID 8 = 8 + 0 + 0
ModifierSetRelationID 2 = 2 + 0 + 0
NomenclaturalTypeStatusOfUnitsEnum 1 = 1 + 0 + 0
NumericFormatPattern 1 = 0 + 1 + 0
PresenceOfInformationEnum 1 = 0 + 1 + 0
Probability 6 = 6 + 0 + 0
QuantitativeMeasurementScaleEnum 1 = 0 + 1 + 0
Rating1to5Enum 1 = 1 + 0 + 0
RatingOriginEnum 1 = 1 + 0 + 0
RelationID 19 = 9 + 0 + 10
ResourceTypeEnum 1 = 0 + 1 + 0
SampleRelationID 2 = 2 + 0 + 0
StateCollectionModelEnum 1 = 0 + 1 + 0
String 12 = 1 + 11 + 0
String255 11 = 5 + 6 + 0
String50 2 = 0 + 2 + 0
UnivarStatMeasureCompareWithEnum 1 = 1 + 0 + 0
UnivarStatMeasureEnum 1 = 1 + 0 + 0
UnivarStatMeasureWithParamEnum 1 = 1 + 0 + 0

Summary of types present but not used

The following types have been defined in the schema, but are not used in elements, attributes, extension, or restriction:
Complex types:
(none)
Simple types:
(none)

Recursive use of types

Direct recursion: The following complex types contain elements of their own type:
Concept

Indirect recursion (1 step): The following complex types contain elements of a type, that contains elements of their own type. Both types involved will be listed:
ClassHierarchyNode / ClassHierarchyNodes
ClassHierarchyNodes / ClassHierarchyNode

Note: some other types of recursion, e.g. involving cycles of three complex types, recursion of type extension, alternations of complex types and element groups, or element groups alone are not yet reported!


Type inheritance

The SDD schema is used object-oriented inheritance mechanisms for complex types. The following tables give an overview of type derivations present in the schema.

Complex types derived by extension

(In a future version of this report it is desirable to list indirect type derivation as well!)

Base type Abstract   Derived type Abstract
AbstractCharacter true type: CategoricalCharacter/ false
AbstractCharacter true type: ColorRangeCharacter/ false
AbstractCharacter true type: QuantitativeCharacter/ false
AgentRef false type: RichAgentRef/ false
CharacterAbstractStateDef true type: CharacterConceptStateDef/ false
CharacterAbstractStateDef true type: CharacterLocalStateDef/ false
CharacterModifierDef true type: CertaintyModifier/ false
CharacterModifierDef true type: OtherModifier/ false
CharacterModifierDef true type: SpatialModifier/ false
CharacterModifierDef true type: TemporalModifier/ false
CharacterRef false type: CharSampleData/ true
CharacterRef false type: CharSummaryData/ true
CharacterStateRef false type: StateData/ false
CharSampleData true type: CatSampleData/ false
CharSampleData true type: ColorRangeSampleData/ false
CharSampleData true type: QuantSampleData/ false
CharSummaryData true type: CatSummaryData/ false
CharSummaryData true type: ColorRangeCharData/ false
CharSummaryData true type: QuantSummaryData/ false
CodingStatusRef false type: CodingStatusData/ false
CompositeDate false type: CompositeDateTime/ false
ConceptStateRef false type: CategoricalCharacter/ States/ StateReference/ false
DescriptionBase true type: CodedDescription/ false
LabelPlusAbbreviationRepr false type: LabelPlusWording1Repr/ false
LabelPlusAbbreviationRepr false type: LabelPlusWording2Repr/ false
LabelPlusAbbreviationRepr false type: LabelPlusWording3Repr/ false
LabelRepr false type: LabelWithDetailsRepr/ false
LanguageRef false type: IPRStatementsRepr/ false
LanguageRef false type: LabelRepr/ false
LanguageRef false type: MetadataDescriptionRepr/ false
LanguageRef false type: ReportedNoteRepr/ false
LanguageRef false type: SimpleLabelRepr/ false
LocalityProxy false type: ExternalDataInterface/ Geography/ Locality/ false
MeasurementUnitRefBase true type: MicroMeasurementUnit/ false
ModifierDef true type: CharacterModifierDef/ true
ModifierDef true type: StateModifierDef/ true
NatLangWording2 false type: NatLangWording3/ false
ProxyBase true type: AgentProxy/ false
ProxyBase true type: ClassHierarchyProxy/ false
ProxyBase true type: ClassNameProxy/ false
ProxyBase true type: LocalityProxy/ false
ProxyBase true type: MeasurementUnitProxy/ false
ProxyBase true type: MediaResourceProxy/ false
ProxyBase true type: PublicationProxy/ false
ProxyBase true type: UnitProxy/ false
SimpleLabelRepr false type: LabelPlusAbbreviationRepr/ false
StatementModification true type: CharacterModification/ true
StatementModification true type: StateModification/ true
StatementModification true type: StateModificationPlusProbabilities/ true
StateModifierDef true type: FrequencyModifier/ false
StateModifierDef true type: StateModifier/ false
UnitRef false type: TypeUnitRef/ false
UnivarStatMeasureRef false type: UnivarStatMeasureData/ false
UnivarStatMeasureWithParamRef false type: UnivarStatMeasureWithParamData/ false
ValueRange false type: QuantitativeCharacter/ Mappings/ Mapping/ From/ false
VocabularyW1Base true type: CharacterAbstractStateDef/ true
VocabularyW1Base true type: CodingStatusDef/ false
VocabularyW2Base true type: ModifierDef/ true
VocabularyW2Base true type: UnivarStatMeasureElaboration/ false

Complex types derived by restriction

Base type Abstract   Derived type Abstract
AgentRefBase true type: AgentRef/ false
CharacterModification true type: Certainty/ false
CharacterModification true type: Spatial/ false
CharacterModification true type: Temporal/ false
CharacterModification true type: OtherMod/ false
MeasurementUnitRefBase true type: MeasurementUnitRef/ false
ModifierDefs true type: CertaintyModifiers/ false
ModifierDefs true type: SpatialModifiers/ false
ModifierDefs true type: TemporalModifiers/ false
ModifierDefs true type: OtherModifiers/ false
ModifierDefs true type: FrequencyModifiers/ false
ModifierDefs true type: StateModifiers/ false
RichAgentRef false type: CreatorRef/ false
RichAgentRef false type: ContributorRef/ false
RichAgentRef false type: OwnerRef/ false
RichAgentRefs false type: CreatorRefs/ false
RichAgentRefs false type: ContributorRefs/ false
RichAgentRefs false type: OwnerRefs/ false
StateModification true type: StateMod/ false
StateModificationPlusProbabilities true type: Frequency/ false

Simple types derived by restriction

Base type Derived type
RelationID (schema root) simpleType: CodingStatusRelationID
RelationID (schema root) simpleType: ModifierRelationID
RelationID (schema root) simpleType: ModifierSetRelationID
RelationID (schema root) simpleType: CharacterRelationID
RelationID (schema root) simpleType: CharacterStateRelationID
RelationID (schema root) simpleType: ConceptStateRelationID
RelationID (schema root) simpleType: ConceptTreeRelationID
RelationID (schema root) simpleType: ConceptRelationID
RelationID (schema root) simpleType: DescriptionRelationID
RelationID (schema root) simpleType: SampleRelationID
xs:byte (schema root) simpleType: Rating1to5Enum
xs:double (schema root) simpleType: Probability
xs:double type: CompositeDateTime/ attribute: secondsimpleType
xs:integer type: CompositeDate/ attribute: monthsimpleType
xs:integer type: CompositeDate/ attribute: daysimpleType
xs:integer type: CompositeDate/ attribute: timezonesimpleType
xs:integer type: CompositeDateTime/ attribute: hoursimpleType
xs:integer type: CompositeDateTime/ attribute: minutesimpleType
xs:Name (schema root) simpleType: BasicCodingStatusEnum
xs:Name (schema root) simpleType: PresenceOfInformationEnum
xs:Name (schema root) simpleType: UnivarStatMeasureCompareWithEnum
xs:Name (schema root) simpleType: StateCollectionModelEnum
xs:Name (schema root) simpleType: ConceptTreeTypeEnum
xs:Name (schema root) simpleType: ConceptTreeRoleEnum
xs:Name (schema root) simpleType: DataOriginEnum
xs:Name (schema root) simpleType: RatingOriginEnum
xs:Name (schema root) simpleType: ResourceTypeEnum
xs:Name (schema root) simpleType: QuantitativeMeasurementScaleEnum
xs:Name (schema root) simpleType: CategoricalMeasurementScaleEnum
xs:Name (schema root) simpleType: UnivarStatMeasureEnum
xs:Name (schema root) simpleType: UnivarStatMeasureWithParamEnum
xs:Name (schema root) simpleType: AgentCreatorRoleEnum
xs:Name (schema root) simpleType: AgentContributorRoleEnum
xs:Name (schema root) simpleType: AgentOwnerRoleEnum
xs:Name (schema root) simpleType: IdentificationCertaintyEnum
xs:Name (schema root) simpleType: NomenclaturalTypeStatusOfUnitsEnum
xs:nonNegativeInteger (schema root) simpleType: RelationID
xs:normalizedString (schema root) simpleType: String
xs:normalizedString (schema root) simpleType: String50
xs:normalizedString (schema root) simpleType: String255
xs:string (schema root) simpleType: ColorRGB
xs:string (schema root) simpleType: LSIDBody
xs:string (schema root) simpleType: DOI
xs:string (schema root) simpleType: NumericFormatPattern
xs:string (schema root) simpleType: LanguagesimpleType

Table of annotations containing the problem marker (= '@@')

The character '@' is used inside schema annotations to mark problem or places that need further discussion. The table is sorted by order of occurrence in the schema.

Annotation Parent
1. @@DISCUSS: should concept tree hierarchies be recursively definable, as long as the resulting tree is acyclical?@@ Importantly, this would allow to define generalization and part-of relations between parts/structures! [ATTR: id] type: DescriptiveData/ Terminology/ ConceptTrees/ ConceptTree/
2. @@ Both proposals need elaboration and discussion! type: CodingStatusDef/ Specification/
3. [ATTR in CharSummaryData base type:] ref (= to char. definition) origin (= enumeration; data may be original data or derived from other sources like calculation, mapping, aggregation/ generalization, inheritance @@Is there a better name for 'origin'? type: CharSummaryData/
4. Refers to a class name (= in biology a taxon name) [ATTR: ref, @@check classifier design: add. attributes?] type: DescriptionBase/ Header/ ClassName/
5. Categorizing characters into basic property types (e. g., color, 2-dim. shape, 3-dim. shape, surface texture, taste, smell, behavior, physiology, measurements, etc.) greatly improves the analysis and management of larger character sets and is therefore recommended. [@@Note: Only a single concept tree 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! @@] (schema root) simpleType: ConceptTreeTypeEnumenumeration
6. @@ The specific elements are only a preliminary sketch, this should be synchronized with TDWG ABCD! [ATTR: id] type: ExternalDataInterface/ Agents/ Agent/
7. Human readable representation. This may be the only data item if no machine readable ObjectLink exists. Example for a publication: "Smith 1998. Flora of Erehwon, XY Publishers." Even if an external ID exist, the Label is required. It preserves the semantics of the proxy object (= keep interpretable by humans) even if the machine-readable object links are broken. Label should be updated automatically (without human control) only after a human decided that the semantic management of an external object provider can be fully trusted. Some Labels like scientific taxon names or publication references can be expressed more or less language-independent, others like geographic names are always language dependent. @@Discussion neccessary: language type is currently extended with neutral and unknown codes ('-', '?'), is this necessary?@@ The Abbreviation element provided is not necessary for all proxies, but especially useful for class names (e. g., for tabular reports) and publication abbreviations (author/year style). type: ProxyBase/ Label/
8. @@ SomeElementsAnalyzedBySDD: These are just the preliminary elements identified by SDD to be necessary as local extensions. A decision needs to be made, compare the DWC-based present in an alternative interface group! @@ type: UnitProxy/
9. General contributors, or translators. (= DC.Contributors) @@Request for discussion: Translator-Contributors are currently not listed on individual Representation elements. Only a general statement about all translations together can be made. Should this be changed? Also: should one Representation be marked as 'Original/ SourceForTranslation'? @@ type: RevisionData/ Contributors/
10. An optional caption for a resource, esp. if it will be presented embedded in another document. Captions can be provided in multiple languages. Differs from the resource Label, wihich is closer related to a 'title'. @@ Issue: captions, even in multiple languages, may be obtained from the service provider. Even then it may be desirable to override them! Do we need two collections: InheritedCaption and CaptionOverride? This seems to be awkward whenever there is no ServiceProvider! Also, Label can contain a "title" only in a single language! @@ type: MediaResourceProxy/ Caption/
11. @@ Do we really need multiple relations or is a single relation to the base unit sufficient? @@ type: MeasurementUnitProxy/ Relations/ Relation/

(Generated by DiversitySchemaTools Version 0.4. Copyright (c) G. Hagedorn 2004.)