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