<!-- Key Choice -->
<!ELEMENT kc (#PCDATA | img)*>
<!ATTLIST kc
  type (f|g|s|k) #REQUIRED
  dest CDATA #IMPLIED
>

<!-- Key Pair -->
<!ELEMENT kp (kc, kc)>
<!ATTLIST kp
  id CDATA #IMPLIED
>

<!-- Key -->
<!ELEMENT key (kp*)>

<!-- Common Elements -->
<!ELEMENT name (#PCDATA)>      <!-- Name of an object -->
<!ELEMENT desc (di*)>          <!-- Description of an object -->
<!ELEMENT di (dt, dd)>         <!-- Description item -->
<!ELEMENT dt (#PCDATA)>        <!-- Description item title -->
<!ELEMENT dd (#PCDATA | img)*> <!-- Description item data -->

<!ELEMENT img EMPTY > <!-- Image -->
<!ATTLIST img
  id CDATA #IMPLIED
  src CDATA #REQUIRED
> 

<!ELEMENT f (name, desc?, key?, g+) > <!-- Family -->
<!ELEMENT g (name, desc?, key?, s+) > <!-- Genus  -->
<!ELEMENT s (name, desc) >            <!-- Species -->

<!ELEMENT poppi-xml (key?, f*)> <!-- Document Structure -->