Home | Previous | Next New Technologies and the Future of the Web

XML Document Type Definition

The DTD can define the allowed syntax for all documents. For example, the following is the Open Software Description (OSD) DTD -- this is a proposed standard for "... describing software packages and their dependencies for heterogeneous clients."

<!ELEMENT ABSTRACT (#PCDATA)>

<!ELEMENT CODEBASE EMPTY>
  <!ATTLIST CODEBASE FILENAME CDATA #IMPLIED>
  <!ATTLIST CODEBASE HREF CDATA #REQUIRED>
  <!ATTLIST CODEBASE SIZE CDATA #IMPLIED>

<!ELEMENT DEPENDENCY (CODEBASE|SOFTPKG)* > 
  <!ATTLIST DEPENDENCY ACTION (Assert|Install) "Assert">

<!ELEMENT DISKSIZE EMPTY>
  <!ATTLIST DISKSIZE VALUE CDATA #REQUIRED>

<!ELEMENT IMPLEMENTATION (CODEBASE | DEPENDENCY | DISKSIZE | 
  IMPLTYPE | LANGUAGE | OS | PROCESSOR | VM)*>

<!ELEMENT IMPLTYPE EMPTY>
  <!ATTLIST IMPLTYPE VALUE CDATA #REQUIRED>

<!ELEMENT LANGUAGE EMPTY>
  <!ATTLIST LANGUAGE VALUE CDATA #REQUIRED>

<!ELEMENT LICENSE EMPTY>
  <!ATTLIST LICENSE HREF CDATA #REQUIRED>

<!ELEMENT MEMSIZE EMPTY>
  <!ATTLIST MEMSIZE VALUE CDATA #REQUIRED>

<!ELEMENT OS (OSVERSION)*> 
  <!ATTLIST OS VALUE CDATA #REQUIRED>

<!ELEMENT OSVERSION EMPTY> 
  <!ATTLIST OSVERSION VALUE CDATA #REQUIRED>

<!ELEMENT PROCESSOR EMPTY> 
  <!ATTLIST PROCESSOR VALUE CDATA #REQUIRED>

<!ELEMENT SOFTPKG (ABSTRACT | IMPLEMENTATION | DEPENDENCY | LICENSE | 
  TITLE)*>
  <!ATTLIST SOFTPKG NAME CDATA #REQUIRED>
  <!ATTLIST SOFTPKG VERSION CDATA #IMPLIED>

<!ELEMENT TITLE (#PCDATA) >

<!ELEMENT VM EMPTY>
  <!ATTLIST VM VALUE CDATA #REQUIRED>

Home | Previous | Next New Technologies and the Future of the Web