<!-- bchtml.dtd; 6 Jun 1996; To do: SDA stuff -->

<!--
			 Classes of elements

containers1	normal containers, contain %bodytext, have %attrs
containers2	exceptional content models and/or attributes
paras		bridge elts between containers & text, contain %paracontent
text1		normal character-level elts, contain %paracontent, have %attrs
text2		exceptional content models and/or attributes
specials	auxiliary elements

			    Content models

paracontent	for paras: #pcdata plus all character level elements
bodycontent	for containers: most containers and paras

			      Attributes

attrs		standard attributes for all elements

		  Backward Compatibility (bc) switch

bc		set to `ignore' to exclude deprecated stuff

-->

<!entity % bc "include">
<![ %bc [
<!entity % containers2 "form,object,ul,ol,li,dl,table,td,th,hr">
<!entity % text1 "em,strong,cite,var,kbd,sample,code,abbrev,
  acronym,dfn,q,span,bdo,sup,sub,ins,del,font,small">
<!entity % paracontent "(#pcdata|em|strong|cite|var|kbd|sample|code|
  abbrev|acronym|dfn|q|img|br|a|input|span|bdo|sub|sup|ins|del|spot|
  font|small)*">
<!entity % bodycontent "(p|h1|h2|h3|h4|h5|h6|pre|div|ul|ol|
  blockquote|object|dl|table|address|form|hr)*">
<!entity % attrs
  "bgcolor cdata #implied
  border number #implied
  cellspacing number #implied
  width number #implied
  height number #implied
  color cdata #implied
  size cdata #implied
  valign cdata #implied
  class nmtokens #implied
  name id #implied
  lang name #implied
  dir (ltr,rtl) #implied
  value cdata #implied
  style cdata #implied">
]]>

<!entity % containers1 "body,div,dd,blockquote,caption">
<!entity % containers2 "form,object,ul,ol,li,dl,table,td,th">
<!entity % paras "p,dt,h1,h2,h3,h4,h5,h6,pre,address,credit">
<!entity % text1 "em,strong,cite,var,kbd,sample,code,abbrev,
  acronym,dfn,q,span,bdo,sup,sub,ins,del">
<!entity % text2 "img,br,a,input,spot,select">
<!entity % specials "col,colgroup,thead,tbody,tfoot,tr,option,param,di">

<!entity % paracontent "(#pcdata|em|strong|cite|var|kbd|sample|code|
  abbrev|acronym|dfn|q|img|br|a|input|span|bdo|sub|sup|ins|del|spot)*">
<!entity % bodycontent "(p|h1|h2|h3|h4|h5|h6|pre|div|ul|ol|
  blockquote|object|dl|table|address|form)*">

<!entity % attrs			-- Standard attributes --
  "class nmtokens #implied		-- Subclass --
  name id #implied			-- Target anchor --
  lang name #implied			-- Natural language, e.g.: en-us --
  dir (ltr,rtl) #implied		-- Writing direction override --
  value cdata #implied			-- Arbitrary associated data --
  style cdata #implied"			-- Local style overrides -->

<!-- Containers -->

<!element (%containers1,li,td,th)  - o  %bodycontent>
<!element form  - -  %bodycontent -(form)>
<!element object  - -  (param*,caption?,%bodycontent,credit?)>
<!element (ul,ol)  - -  (li+)>
<!element dl  - -  (di+)>
<!element table  - -  (caption?,(col*|colgroup*),thead?,tfoot?,tbody+)>
<![ %bc [
<!element hr - o empty			-- Concession to backw. compat.-->
]]>

<!attlist (%containers1) %attrs>
<!attlist form %attrs>
<!attlist object
  -- etc --
  %attrs>
<!attlist ul %attrs>
<!attlist ol
  start number 1			-- Starting number for label --
  step number 1				-- Increment for each label --
  %attrs>
<!attlist li
  skip number 0				-- Skip # of omitted items --
  %attrs>
<!attlist dl %attrs>
<!attlist table %attrs>
<!attlist (td,th)
  rowspan number 1			-- # of rows to span --
  colspan number 1			-- # of columns to span --
  %attrs>

<!-- Paras -->

<!element (%paras) o o %paracontent>
<!attlist (%paras) %attrs>

<!-- Text -->

<!element (%text1)  o o  %paracontent>
<!element (img,br,input,spot)  - o  empty>
<!element a  - -  %paracontent -(a)>
<!element select  - -  (option+)>

<!attlist (%text1,spot) %attrs>
<!attlist img
  src cdata #required			-- Embeded object URL -- 
  alt cdata #implied			-- Alternative text --
  %attrs>
<!attlist a
  href cdata #required			-- URL --
  rel nmtokens #implied			-- relationship to remote resource --
  title cdata #implied			-- for resources without a title --
  type cdata #implied			-- e.g.: text/html; charset=foo --
  tip cdata #implied			-- balloon help --
  %attrs>
<!attlist input
  -- etc --
  %attrs>
<!attlist select
  -- etc --
  %attrs>

<!-- Specials -->

<!element (col,param)  - o  empty>
<!element colgroup  - o  (col+)>
<!element (thead,tbody,tfoot)  o o  (tr+)>
<!element tr o o (td|th)+>
<!element option - o rcdata>
<!element di o o (dt+,dd+)>

<!attlist (col,colgroup)
  span number 1				-- # of columns spanned --
  %attrs>
<!attlist (thead,tbody,tfoot,tr,di) %attrs>
<!attlist option
  selected (selected) #implied
  shape (rect,circle,poly) #implied
  %attrs>
<!attlist param
  name cdata #required
  value cdata #implied
  valueref cdata #implied
  type cdata #implied>

<!-- Document head -->

<!element html o o (head,body)>
<!element head o o (title|link|meta|base|style)*>
<!element (title,style) - o rcdata>
<!element (link,meta,base) - o empty>
<!attlist link
  href cdata #implied
  rel nmtokens #implied
  title cdata #implied
  type cdata #implied			-- e.g.: text/html; charset=foo --
  name id #implied>
<!attlist base
  href cdata #implied>
<!attlist meta
  http-equiv name #implied
  name name #implied
  content cdata #required>
<!attlist style
  type cdata #implied
  title cdata #implied>

<!-- All ISO & W3C entities -->

<!entity % HTMLicn PUBLIC
  "-//W3C//ENTITIES WWW standard icons//EN">
%HTMLicn;
<!entity % ISOamsa PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
%ISOamsa;
<!entity % ISOamsb PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN">
%ISOamsb;
<!entity % ISOamsc PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN">
%ISOamsc;
<!entity % ISOamsn PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN">
%ISOamsn;
<!entity % ISOamso PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN">
%ISOamso;
<!entity % ISOamsr PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN">
%ISOamsr;
<!entity % ISObox PUBLIC
  "ISO 8879:1986//ENTITIES Box and Line Drawing//EN">
%ISObox;
<!entity % ISOcyr1 PUBLIC
  "ISO 8879:1986//ENTITIES Russian Cyrillic//EN">
%ISOcyr1;
<!entity % ISOcyr2 PUBLIC
  "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN">
%ISOcyr2;
<!entity % ISOdia PUBLIC
  "ISO 8879:1986//ENTITIES Diacritical Marks//EN">
%ISOdia;
<!entity % ISOgrk1 PUBLIC
  "ISO 8879:1986//ENTITIES Greek Letters//EN">
%ISOgrk1;
<!entity % ISOgrk2 PUBLIC
  "ISO 8879:1986//ENTITIES Monotoniko Greek//EN">
%ISOgrk2;
<!entity % ISOgrk3 PUBLIC
  "ISO 8879:1986//ENTITIES Greek Symbols//EN">
%ISOgrk3;
<!entity % ISOgrk4 PUBLIC
  "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN">
%ISOgrk4;
<!entity % ISOlat1 PUBLIC
  "ISO 8879:1986//ENTITIES Added Latin 1//EN">
%ISOlat1;
<!entity % ISOlat2 PUBLIC 
 "ISO 8879:1986//ENTITIES Added Latin 2//EN">
%ISOlat2;
<!entity % ISOnum PUBLIC
  "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
%ISOnum;
<!entity % ISOpub PUBLIC
  "ISO 8879:1986//ENTITIES Publishing//EN">
%ISOpub;
<!entity % ISOtech PUBLIC
  "ISO 8879:1986//ENTITIES General Technical//EN">
%ISOtech;

<!-- i18n entities -->

<!entity zwnj cdata "&#8204;"-- zero width non-joiner-->
<!entity zwj  cdata "&#8205;"-- zero width joiner-->
<!entity lrm  cdata "&#8206;"-- left-to-right mark-->
