| README: |
| |
| This directory contains a program to read a DTD, and produce a compressed |
| representation of it. It's intended that this program be run at build |
| time, and the resultant .bdtd binary DTD file be read at program startup. |
| |
| |
| .dtdb FILE FORMAT |
| |
| file ::= version_no:int num_names:short name[]:string num_entities entity[] |
| num_elements element[] |
| |
| entity ::= name_id:short type:byte data:string |
| |
| element ::= name_id:short type:byte |
| flags:byte (&0x01 = omit start, &0x02 = omit end) |
| content_model |
| num_exclusions:byte name_id[] |
| num_inclusions:byte name_id[] |
| num_attributes:byte attribute[] |
| |
| attribute ::= name_id:short type:byte modifier:byte |
| value:name_id (or -1 for null) |
| num_values:short name_id[] |
| |
| content_model ::= content_c | content_e | content_null |
| |
| content_null ::= flag:byte=0 |
| |
| content_c ::= flag:byte=1 type:int content:content_model next:content_model |
| |
| content_e ::= flag:byte=2 type:int element_name_id next:content_model |
| |
| string ::= modified UTF-8 encoding of a string |
| |
| See the java.io.InputStream class description for the specification of modified |
| UTF-8. |