DTD for Description
Barringer, Kerry
kerrybarringer at BBG.ORG
Tue Nov 27 11:18:56 CET 2001
Attached is an attempt at a usuable DTD for taxonomic descriptions.
It is modified from a Taxonomic Document Markup based largely on DELTA
format data. I modified the original based on the mailing list
contributions of Steve Shattuck, L. Dodds, and G. Rousse.
The most visible difference is use of attributes to hold information
without real-world meaning. This is based on current modelling techniques
and is explained by Rouse in his posting of Nov. 23 much more clearly than I
could explain it. There are also many attributes derived from the DELTA
format which may not be applicable.
I would like to omit the attribute for order from the standard. If
each taxon/specimen, character, and state is uniquely identified, then
ordering is more flexibly handled in XSL. This would allow those who want
to order based on alphabet, a character state (as in field guides), inferred
relationships, etc. to do as they please without changing the data. Because
of the nature of XML, each description will be part of a higher element,
usually either a specimen or a taxon. It is these entities that are
ordered, not the descriptions themselves. Within a description, the
ordering and selection of characters is easiest with XSL or other
processing. This allow the author (or compiler) of the document to arrange
characters in a way that makes sense for the treatment.
The summary outline is also included in the DTD.
Description
Heading
Character
CharName
codedCharName
textCharName
State
Connector
Qualifier
codedStateName
textStateName
Comment
Comment
Character
For those still looking for XML/XSL tools, I recommend XML Cooktop
for Windows http://www.xmleverywhere.com as a good general editor, it
handles DTD's and Schema' as text files for editing, but otherwise is good
and the XSL editing and testing is excellent.
I apologize for using DTDs instead of Schemas. It is the language I
know and have been using for a while now. For me, they are a little clearer
and easier to understand, even if they are not quite as flexible. If the
group wants only Schemas, I will learn that next. There is a good utility
for converting DTDs to Schemas at
http://puvogel.informatik.med.uni-giessen.de/dtd2xs/
In the next few days, I will send in some markup of challenge cases
and XSL routines.
Kerry
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Kerry Barringer (Curator of the Herbarium)
Herbarium 718-623-7318 (office)
Brooklyn Botanic Garden 718-941-4774 (fax)
1000 Washington Avenue 718-623-7312 (herbarium)
Brooklyn, NY 11225-1099 U.S.A.
kbarringer at bbg.org http://www.bbg.org/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
------_=_NextPart_000_01C1775F.367A0790
Content-Type: application/octet-stream;
name="DescrKB112701.dtd"
Content-Disposition: attachment;
filename="DescrKB112701.dtd"
<!--
DTD for Descriptive data
modified from Taxonomic Document Markup, 27 Nov 2001
modifications based on:
L. Dodds, SDD maillist 23 Nov 2001
G. Rouse, SDD maillist 23 Nov 2001
Description
Heading
Character
CharName
codedCharName
textCharName
State
Connector
Qualifier
codedStateName
textStateName
Comment
Comment
Character
-->
<!ELEMENT Example (Taxon/Specimen+, Description+)>
<!ELEMENT Taxon/Specimen (#PCDATA)>
<-- The two elements above should not be part of the standard. They are only here to allow the testing of real world examles -->
<!ELEMENT Description (Heading?, character+)>
<!ATTLIST Description
Type CDATA #IMPLIED
itemNumberCDATA #IMPLIED
>
<!ELEMENT Character (CharName+, State+, Comment*, Character*)
<!ATTLIST character
characterType CDATA #IMPLIED
characterNumber CDATA #IMPLIED
numberOfStates CDATA #IMPLIED
<!--order CDATA #IMPLIED would this be better handled with XSL stylesheet? is it always of the document not of the character? -->
reliability CDATA #IMPLIED
weight CDATA #IMPLIED
<!-- excluded CDATA #IMPLIED exclude? -->
dependentOn CDATA #IMPLIED
keyStates CDATA #IMPLIED
linkTo CDATA #IMPLIED
applicable CDATA #IMPLIED
>
<!ELEMENT CharName (codedCharName?, textCharName?)>
<!ELEMENT codedCharName (#PCDATA)>
<!ELEMENT textCharName (#PCDATA)>
<!ELEMENT State (Connector?, Qualifier?, codedCharState?, textCharState?, Comment*)>
<!ATTLIST characterState
stateType CDATA #IMPLIED <!-- discrete, continuous, etc. -->
numericType CDATA #IMPLIED <!-- integer, real -->
defaultValue CDATA #IMPLIED
allowedValues CDATA #IMPLIED
<!-- order CDATA #IMPLIED exclude? -->
source CDATA #IMPLIED
measurementSystem CDATA #IMPLIED
>
<!ELEMENT codedCharState (#PCDATA)>
<!ELEMENT textCharState (#PCDATA)>
<!ELEMENT Connector (#PCDATA)>
<!ELEMENT Qualifier (#PCDATA)>
<!ELEMENT Comment (#PCDATA)>
<!ELEMENT Heading (#PCDATA)>
More information about the tdwg-content
mailing list