Taxonomies in XML
W. Eliot Kimber
eliot at isogen.com
Thu Apr 16 15:40:26 BST 1998
At 10:31 PM 4/15/98 -0800, John Totten wrote:
>The 30 or so XML files that represent the El Limon Weeds Collection
>(one separate file for each weed) will impress a Web Master but not a
>botanist because you cannot produce a taxonomy from them.
> How can you add nodes and unlimited nesting to XML documents?
By editing them?
XML documents have no inherent nesting limit (although there will always be
a practical limit imposed by your processing software).
If a document does not have an explicit DTD, then, by definition, you are
free to change it at will, because it defines its rules by its own content.
If a document does have an explicit DTD, they, by definition, you are free
to change it at will because the DTD is a property of the document--the
document defines its own rules by declaring them in *its* DTD. If the DTD
is an external DTD subset that you don't have write access to, just copy it
into the internal subset and go on your way. [Hint to ADEPT*Editor users:
try the command 'dtgen' from the ADEPT command line if someone has tried to
impose a "standard" DTD on you.]
You can also create taxonomies using references or hyperlinks, e.g.,:
<?XML version="1.0" ?>
<!-- kimberpets.xml -->
<!DOCTYPE Pets [
<!NOTATION XPointer
PUBLIC "+//IDN w3.org//NOTATION XML eXtended Pointer Language//EN" >
<!ATTLIST housecat
is-a
CDATA
#FIXED "./taxonomy.xml#id(feline)"
loctype
CDATA
#FIXED "is-a queryloc XPointer"
>
<!ATTLIST dog
is-a
CDATA
#FIXED "./taxonomy.xml#id(canine)"
loctype
CDATA
#FIXED "is-a queryloc XPointer"
>
<!-- NOTE: loctype is defined by the HyTime "reference location
address" facility, clause 7.9 of ISO/IEC 10744:1997,
http://www.ornl.gov/sgml/wg4/docs/n1920/html/clause-7.8.html
-->
]>
<Pets>
<housecat>
<name>Seigfried Woods</name>
</housecat>
<housecat>
<name>Bete Noir Woods</name>
</housecat>
<dog>
<name>Forrest Woods</name>
</Pets>
<!-- taxonomy.xml -->
<?XML version="1.0" ?>
<!DOCTYPE taxonomy [
<!ATTLIST family
ID
ID
#REQUIRED
>
]>
<taxonomy><!-- NOTE: I don't know the right terms here, please forgive
my ignorance in this matter.-WEK -->
<family id="feline">A catish thing</genus>
<family id="canine">A dogish thing</genus>
</taxonomy>
This could also be done with extended links:
<?XML version="1.0" ?>
<taxonmic-web>
<extended role="is-a">
<locator
role="pet"
href="./kimberpets.xml#child(1,housecat)"/>
<locator
role="family"
href="./taxonomy.xml#id(feline)"
/>
</extended>
<extended role="is-a">
<locator
role="pet"
href="./kimberpets.xml#child(2,housecat)"/>
<locator
role="family"
href="./taxonomy.xml#id(feline)"
/>
</extended>
<extended role="is-a">
<locator
role="pet"
href="./kimberpets.xml#child(1,dog)"/>
<locator
role="family"
href="./taxonomy.xml#id(canine)"
/>
</extended>
Cheers,
Eliot
--
<Address HyTime=bibloc>
W. Eliot Kimber, Senior Consulting SGML Engineer
Highland Consulting, a division of ISOGEN International Corp.
2200 N. Lamar St., Suite 230, Dallas, TX 95202. 214.953.0004
www.isogen.com
</Address>
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list