BIOML Proposal, 19990220
The Biopolymer Markup Language—BIOML
Working Draft Proposal
Appendix C. Document Type Definitions
TOC
This appendix contains the Document Type Definitions required for BIOML.

<?xml encoding=
"UTF-8"?> <!--

Content model for content and presentation -->   <!--
and browser interface tags in bioml based -->    <!--
on the bioml.dtd draft. syntax = XML -->         <!--

date = March 24, 1999 -->                      <!--
Author: Ronald Beavis -->                        <!--
source: bioml@proteometrics.com -->              <!--
Official version: -->                            <!--
http://www.proteometrics.com/BIOML/bioml.dtd --> <!--
Additions: -->                                   <!--
1 --> <!--
January 6, 1999 -->                              <!--
name, organism, and species elements added. -->  <!--
David J. States, Washington University -->       <!--
2 --> <!--
January 20, 1999 -->                             <!--
group element added -->                          <!--
Ronald Beavis -->                                <!--
3 --> <!--
February 20, 1999 -->                            <!--
1) xml:space attribute added to some -->         <!--
elements, as suggested by Paul Gordon, IMB, -->  <!--
NRCC, Halifax (keep_space entity); -->           <!--
2) local.xx.yy entities added for easy -->       <!--
extension of selected elements; -->              <!--
3) id entity removed and id placed in global;--> <!--
4) element contents have been rationalized; -->  <!--
5) group extended to contain ANY element; and--> <!--
6) query and alt_common_name elements removed--> <!--
as redundant. -->                                <!--
4 --> <!--
February 26, 1999 -->                            <!--
1) xml:space attribute added to some -->         <!--
additional elements -->                          <!--
2) an error in the "organism" content list -->   <!--
was corrected. -->                               <!--
5 --> <!--
March 6, 1999 - responding to comments from -->  <!--
Paul Gordon. -->                                 <!--
1) an error in the rvariant attribute list -->   <!--
was corrected -->                                <!--
2) the definition of the "comp" entity was -->   <!--
added. -->                                       <!--
3) *'s were added to dna-related element -->     <!--
content descriptions to bring them into line --> <!--
with the rna & protein elements. -->             <!--
4) The content description of the form -->       <!--
element was expanded to include input and -->    <!--
text elements. -->                               <!--
6 --> <!--
March 24, 1999 -->                               <!--
Changes by Ronald Beavis -->                     <!--
1) "name" removed from the data model for -->    <!--
"peptide" and "domain"; -->                      <!--
2) "rend" replaced with "rstop" in the data -->  <!--
model for "rna" and "rdomain"; -->               <!--
3) an asterisk was added to the data model -->   <!--
"taxon"; and -->                                 <!--
4) character entity definitions changed to -->   <!--
use explicit hex code entities. -->              <!--
************************************--> <!--
general entity definitions --> <!--
************************************--> <!ENTITY

% local.aa_type.value ""> <!ENTITY
% aa_type "type   (A|B|C|D|E|F|G|H|I|K|L|M |N|P|Q|R|S|T|V|W|X|Y|Z
                               %local.aa_type.value;)
                                #REQUIRED"> 
                                <!ENTITY

% at "at        CDATA #IMPLIED"> <!ENTITY

% local.biopolymer.content ""> <!ENTITY
% biopolymer "protein|peptide|subunit|dna|rna %local.biopolymer.content;">
                        <!ENTITY

% local.db_attributes.attrib ""> <!ENTITY
% db_attributes "name CDATA #IMPLIED entry
                     CDATA #IMPLIED %local.db_attributes.attrib;">
                     <!ENTITY

% local.dna_type.value ""> <!ENTITY
% dna_type "type  (A|a|T|t|G|g|C|c %local.dna_type.value;)
                                #REQUIRED"> 
                                <!ENTITY

% local.dom_type.value ""> <!ENTITY
% dom_type "type  (mature|propeptide|signal |alpha-helix|beta-strand
                               |turn|variable
                               %local.dom_type.value;)
                               #REQUIRED"> 
                                <!ENTITY

% end "end        CDATA #IMPLIED"> <!ENTITY

% local.format.value ""> <!ENTITY
% format "format    (TEXT|BINARY|ZIP |GZIP|JPEG|MSDCS|GIF
                                  %local.format.value;)
                                  #REQUIRED 
                                  "> <!ENTITY

% local.global.attrib ""> <!ENTITY
% global "state     (hidden|open|close) #IMPLIED label
											CDATA #IMPLIED id
											CDATA #IMPLIED %local.global.attrib;">
                      <!ENTITY

% keep_space "xml:space (default|preserve) 'preserve'">  
                       <!ENTITY

% local.nr.content ""> <!ENTITY
% nr "name|note|reference|db_entry|file        |group
                       %local.nr.content;">
                       <!ENTITY

% occupied "occ  CDATA #IMPLIED"> <!ENTITY

% order "order     CDATA #IMPLIED"> <!ENTITY

% local.rna_type.value ""> <!ENTITY

% rna_type "type  (A|a|U|u|G|g|C|c %local.rna_type.value;)
                            #REQUIRED"> 
                            <!ENTITY

% start "start     CDATA #IMPLIED"> <!ENTITY

% local.text_format.value ""> <!ENTITY
% text_format "format (PIR|GENBANK|SPROT|PDB|FASTA %local.text_format.value;)
                                #REQUIRED">
                                <!ENTITY

% to "to        CDATA #IMPLIED"> <!ENTITY

% type "type      CDATA #IMPLIED"> <!ENTITY

% url "url       CDATA #IMPLIED query
                        CDATA #IMPLIED"> <!ENTITY

% comp "comp      CDATA #IMPLIED">  <!--
************************************--> <!--
character entity definitions --> <!--
************************************--> <!ENTITY

angstrom "Å">      <!ENTITY

plusminus "±">     <!ENTITY

emdash "—">        <!ENTITY

endash "–">        <!ENTITY

degree "°">        <!ENTITY

registered "©">    <!ENTITY

copyright "®">     <!ENTITY

bullet "•">        <!ENTITY

tab "           ">     <!ENTITY

newline "       ">

<!ENTITY paragraph     "&newline;&tab;">

<!ENTITY point         "&newline;&bullet;">

<!-- **********************************-->
<!-- : bioml elements       -->
<!-- **********************************-->

<!ELEMENT bioml      ANY>

<!-- **********************************-->
<!-- : bioml protein elements       -->
<!-- **********************************-->

<!ELEMENT protein    (#PCDATA|subunit|peptide|%nr;)*>
<!ATTLIST protein    %global;
                        %comp;>

<!ELEMENT subunit    (#PCDATA|peptide|%nr;)*>
<!ATTLIST subunit    %global;
                        %comp;>

<!ELEMENT peptide    (#PCDATA|domain|aa|%nr;)*>
<!ATTLIST peptide    %global;
                        %start;
                        %end;>

<!ELEMENT domain     (#PCDATA|aa|%nr;)*>
<!ATTLIST domain     %global;
                     %start;
                     %end;
                     %dom_type;>

<!ELEMENT homolog   (#PCDATA|species|taxon|%nr;)*>
<!ATTLIST homolog    %global;>

<!ELEMENT aa         (#PCDATA|amod|alink|avariant|aconflict|%nr;)*>
<!ATTLIST aa         %aa_type;
                        %global;
                        %at;
                        %to;>

<!ELEMENT amod       (#PCDATA|%nr;)*>
<!ATTLIST amod       %type;
                        %global;
                        %at;
                        %to;
                        %occupied;>

<!ELEMENT alink      (#PCDATA|%nr;)*>
<!ATTLIST alink      %type;
                        %global;
                        %at;
                        %to;
                        %occupied;>

<!ELEMENT avariant   (#PCDATA|%nr;)*>
<!ATTLIST avariant   %global;
                        %aa_type;
                        %at;
                        %occupied;>

<!ELEMENT aconflict  (#PCDATA|%nr;)*>
<!ATTLIST aconflict  %global;
                        %aa_type;
                        %at;>

<!-- ***************************************-->
<!-- : bioml general gene-related elements-->
<!-- *************************************** -->

<!ELEMENT chromosome (#PCDATA|sts_domain|dna|locus|gene|%nr;)*>
<!ATTLIST chromosome %global;
                        number CDATA #IMPLIED>

<!ELEMENT sts_domain (#PCDATA|dna|locus|gene|%nr;)*>
<!ATTLIST sts_domain      %global;
                             %start;
                             %end;>

<!ELEMENT clone      (#PCDATA|locus|gene|dna|%nr;)*>
<!ATTLIST clone      %global;>

<!ELEMENT plasmid    (#PCDATA|locus|gene|dna|%nr;)*>
<!ATTLIST plasmid    %global;>

<!ELEMENT locus      (#PCDATA|dna|gene|%nr;)*>
<!ATTLIST locus      %global;
                        %start;
                        %end;>

<!-- ***************************************-->
<!-- : bioml dna gene-related elements -->
<!-- ***************************************-->

<!ELEMENT dna        (#PCDATA|clone|promotor|ddomain|exon
                         |intron|da|dmod|dvariant|dstart|dstop|%nr;)*>
<!ATTLIST dna        %global;
                        %start;
                        %end;>

<!ELEMENT promotor   (#PCDATA|%nr;)*>
<!ATTLIST promotor   %global;
                        %start;
                        %end;>

<!ELEMENT gene       (#PCDATA|dna|%nr;)*>
<!ATTLIST gene       %global;
                        %start;
                        %end;
						%comp;>

<!ELEMENT exon       (#PCDATA|%nr;)*>
<!ATTLIST exon       %global;
                        %start;
                        %end;>

<!ELEMENT intron     (#PCDATA|%nr;)*>
<!ATTLIST intron     %global;
                        %start;
                        %end;>

<!ELEMENT ddomain     (#PCDATA|da|dstart|dstop|%nr;)*>
<!ATTLIST ddomain     %global;
                         %start;
                         %end;>

<!ELEMENT da         (#PCDATA|dmod|dvariant|%nr;)*>
<!ATTLIST da         %at;
                        %global;
                        %dna_type;>

<!ELEMENT dmod       (#PCDATA|%nr;)*>
<!ATTLIST dmod       %at;
                        %global;
                        %type;
                        %occupied;>

<!ELEMENT dvariant   (#PCDATA|%nr;)*>
<!ATTLIST dvariant   %global;
                        %at;
                        %type;
                        %occupied;>

<!ELEMENT dstart     (#PCDATA|%nr;)*>
<!ATTLIST dstart     %at;
                        %global;>

<!ELEMENT dstop       (#PCDATA|%nr;)*>
<!ATTLIST dstop       %at;
                         %global;>

<!-- **********************************-->
<!-- : bioml rna gene-related elements-->
<!-- **********************************-->

<!ELEMENT rna        (#PCDATA|clone|ra|rstart|rstop
                        |rdomain|%nr;)*>
<!ATTLIST rna        %global;
                        %start;
                        %end;>

<!ELEMENT ra         (#PCDATA|rmod|rvariant|%nr;)*>
<!ATTLIST ra         %at;
                        %global;
                        %rna_type;>

<!ELEMENT rdomain     (#PCDATA|ra|rstart|rstop
                        |%nr;)*>
<!ATTLIST rdomain     %global;
                         %start;
                         %end;>

<!ELEMENT rmod       (#PCDATA|%nr;)*>
<!ATTLIST rmod       %at;
                        %global;
                        %type;
                        %occupied;>

<!ELEMENT rvariant   (#PCDATA|%nr;)*>
<!ATTLIST rvariant   %global;
                        %at;
                        %type;
                        %occupied;>

<!ELEMENT rstart     (#PCDATA|%nr;)*>

<!ATTLIST rstart     %at;
                        %global;>

<!ELEMENT rstop      (#PCDATA|%nr;)*>
<!ATTLIST rstop      %at;
                        %global;>

<!-- ***************************************-->
<!-- : bioml general elements added by DJS 1/6/99 -->
<!-- *************************************** -->

<!ELEMENT name       (#PCDATA|%nr;)*>
<!ATTLIST name        %global;
                       %keep_space;>

<!ELEMENT note       (#PCDATA|%nr;)*>
<!ATTLIST note        %global;
                       %keep_space;>

<!ELEMENT organism   (#PCDATA|species|common_name|taxon|tissue|cell 
                           |chromosome|plasmid|organelle|particle
                           |%biopolymer;|%nr;)*>
<!ATTLIST organism   %global;>

<!ELEMENT species    (#PCDATA)>
<!ATTLIST species    %global;
                        %keep_space;>

<!-- ***********************************-->
<!-- : bioml organism specific elements-->
<!-- ***********************************-->

<!ELEMENT common_name (#PCDATA)>
<!ATTLIST common_name    %global;
                            %keep_space;>

<!ELEMENT taxon       (#PCDATA|species|%nr;)*>
<!ATTLIST taxon    %global;
                      %keep_space;>

<!ELEMENT tissue     (#PCDATA|organelle|cell|particle|%biopolymer;|%nr;)*>
<!ATTLIST tissue     %global;>

<!ELEMENT cell       (#PCDATA|organelle|particle|%biopolymer;|%nr;)*>
<!ATTLIST cell       %global;>

<!ELEMENT organelle  (#PCDATA|particle|%biopolymer;|%nr;)*>
<!ATTLIST organelle  %global;>

<!ELEMENT particle   (#PCDATA|%biopolymer;|%nr;)*>
<!ATTLIST particle   %global;>


<!-- ************************************-->
<!-- : bioml reference specific elements-->
<!-- ************************************-->

<!ELEMENT reference  (#PCDATA|author|title|journal|book_title|editor
                        |volume|pages|%nr;)*>
<!ATTLIST reference  %global;
                        %keep_space;>

<!ELEMENT author     (#PCDATA)>
<!ATTLIST author  %global;
                        %keep_space;>

<!ELEMENT title      (#PCDATA)>
<!ATTLIST title  %global;
                        %keep_space;>

<!ELEMENT journal    (#PCDATA)>
<!ATTLIST journal  %global;
                        %keep_space;>

<!ELEMENT book_title (#PCDATA)>
<!ATTLIST book_title  %global;
                        %keep_space;>

<!ELEMENT editor     (#PCDATA)>
<!ATTLIST editor  %global;
                        %keep_space;>

<!ELEMENT volume     (#PCDATA)>
<!ATTLIST volume  %global;
                        %keep_space;>

<!ELEMENT pages      (#PCDATA)>
<!ATTLIST pages   %global;
                        %keep_space;>

<!-- ****************************************-->
<!-- : bioml remote data referencing elements-->
<!-- ****************************************-->

<!ELEMENT db_entry   (#PCDATA)>
<!ATTLIST db_entry   %global;
                        %db_attributes;
                        %text_format;
                        %url;>

<!ELEMENT file       (#PCDATA)>
<!ATTLIST file       %format;
                        %global;
                        %url;>

<!-- *****************************************-->
<!-- : bioml data special formatting elements -->
<!-- *****************************************-->

<!ELEMENT binary     (#PCDATA)>
<!ATTLIST binary     %format;
                        %global;>

<!ELEMENT data     (#PCDATA)>
<!ATTLIST data     %text_format;
                      %global;>

<!ELEMENT copyright (#PCDATA)>
<!ATTLIST copyright %global;>

<!-- *****************************************-->
<!-- : bioml form elements                    -->
<!-- *****************************************-->

<!ELEMENT form     (#PCDATA|input|text)*>
<!ATTLIST form     %global;
                        action CDATA #REQUIRED>

<!ELEMENT input     (#PCDATA)>
<!ATTLIST input     %global;
                        type (hidden|value) #IMPLIED
                        name CDATA #IMPLIED
                        value CDATA #IMPLIED
                        width CDATA #IMPLIED>

<!ELEMENT text     (#PCDATA)>
<!ATTLIST text      %global;>
<!-- *****************************************-->
<!-- : bioml generalized grouping element -->
<!-- *****************************************-->

<!ELEMENT group      ANY>
<!ATTLIST group      %global;>

<!-- **********************************-->
<!-- : end of bioml DTD                -->
<!-- **********************************-->

0. Title and abstract TOC Appendix A References