Gerry's Home Page CILT XML Proposal & Report XML Document Type Definitions XML Data Export Functions Translation Functions Printing Application XML Client-Server Application

Recursive DTD

<?xml version="1.0" ?>

<!-- threaded notes XML data structure : recursive version-->

<!DOCTYPE DATASET [

<!--  DATASET is an acyclical directed graph of NOTEs -->

<!ELEMENT         DATASET           (NOTE*) >

<!ATTLIST         DATASET

XML_VERSION       CDATA             "1.0"    

SOFTWARE          CDATA             #REQUIRED 

CREATOR           CDATA             #IMPLIED  

CREATE_DATE       CDATA             #REQUIRED

DESCRIPTION       CDATA             #IMPLIED  

COMMENT           CDATA             #IMPLIED >

<!ELEMENT         NOTE              (CONTENT, FIELD*, NOTE*) >

<!ATTLIST         NOTE

NOTE_ID           ID                #REQUIRED

NOTE_KIND         CDATA             #IMPLIED

LINK_TYPE         CDATA             #IMPLIED

SEQUENCE          CDATA             #IMPLIED

CREATE_DATE       CDATA             #REQUIRED

TITLE             CDATA             #REQUIRED

AUTHOR            CDATA             #REQUIRED >

<!ELEMENT         CONTENT           (#PCDATA) >

<!ELEMENT         FIELD             EMPTY >

<!ATTLIST         FIELD            

NAME              CDATA             #REQUIRED

VALUE             CDATA             #REQUIRED >

]>

==========================================================

Design Rationale:

A DATASET consists of a NOTE, which includes its sub-tree of NOTEs.

A NOTE consists of 7 attributes, some textual content (possibly including tags referencing multimedia, html links, etc.), possibly some special additional fields, and its sub-tree of NOTEs.

A FIELD consists of a name and a value. This allows fields that are particular to a specific application to be preserved. E.g., in the WebGuide system, NOTEs have a "perspective" field.

Go to top of this page

Return to Gerry Stahl's Home Page

Send email to Gerry.Stahl@drexel.edu

This page last modified on August 01, 2003