1 README:
   2 
   3 This directory contains a program to read a DTD, and produce a compressed
   4 representation of it.  It's intended that this program be run at build
   5 time, and the resultant .bdtd binary DTD file be read at program startup.
   6 
   7 
   8                             .dtdb FILE FORMAT
   9 
  10 file ::= version_no:int num_names:short name[]:string num_entities entity[]
  11          num_elements element[]
  12 
  13 entity ::= name_id:short type:byte data:string
  14 
  15 element ::= name_id:short type:byte 
  16             flags:byte (&0x01 = omit start, &0x02 = omit end)
  17             content_model
  18             num_exclusions:byte name_id[]
  19             num_inclusions:byte name_id[]
  20             num_attributes:byte attribute[]
  21 
  22 attribute ::= name_id:short type:byte modifier:byte 
  23               value:name_id (or -1 for null)
  24               num_values:short name_id[]
  25 
  26 content_model ::= content_c | content_e | content_null
  27 
  28 content_null ::= flag:byte=0
  29 
  30 content_c ::= flag:byte=1 type:int content:content_model next:content_model
  31 
  32 content_e ::= flag:byte=2 type:int element_name_id next:content_model
  33 
  34 string ::= modified UTF-8 encoding of a string
  35 
  36 See the java.io.InputStream class description for the specification of modified
  37 UTF-8.