<!-- ..................................................... --><!-- Genealogy Person DTD module ......................... --><!-- file: person.mod     This DTD module describes a PERSON element intended for     use in family tree documents. It was developed as part of     a genealogy example in Chapter 25 of the     XML Bible, 3rd Edition, by     Elliotte Rusty Harold (elharo@metalab.unc.edu)     Published by Wiley 2004. ISBN 0-7645-4986-3.     This schema is placed in the public domain. Please      feel free to use it or adapt it in any way you like.     This DTD is identified by the PUBLIC and SYSTEM     identifiers:     PUBLIC "-//ERH//Genealogy Person Module 1.0//EN"     SYSTEM "person.mod"     It is not a formal standard, and has not been considered     or approved by any standards body.     ..................................................... --><!ELEMENT %PERSON.qname; ( %NAME.qname;   | %REFERENCE.qname;|                           %BIRTH.qname;  | %DEATH.qname; |                           %BURIAL.qname; | %BAPTISM.qname; |                           %NOTE.qname;   | %FATHER.qname; |                           %MOTHER.qname; | %SPOUSE )* ><!ATTLIST %PERSON.qname;   xmlns  CDATA #FIXED "http://ns.cafeconleche.org/genealogy/"   ID     ID    #REQUIRED><!ATTLIST %PERSON.qname;   xmlns:xsi CDATA #FIXED                    "http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation CDATA #IMPLIED><!--M means male, F means female --><!ATTLIST %PERSON.qname; SEX (M | F) #IMPLIED><!-- The ID number of a SOURCE element that documents     this entry --><!ELEMENT  %REFERENCE.qname;  EMPTY><!ENTITY % sourceref "SOURCE NMTOKEN #REQUIRED"><!ATTLIST  %REFERENCE.qname; %sourceref;><!-- Events are occurrences at a certain     time and place, though the exact time and place may     not be known for certain. Events include marriages,     births, deaths, baptisms, and burials.  --><!ENTITY % event   "(%REFERENCE.qname;*, %PLACE.qname;?, %DATE.qname;?)"><!ELEMENT  %BIRTH.qname;   %event;><!ELEMENT  %BAPTISM.qname; %event;><!ELEMENT  %DEATH.qname;   %event;><!ELEMENT  %BURIAL.qname;  %event;><!ELEMENT  %PLACE.qname;   (#PCDATA)><!ELEMENT  %DATE.qname;    (#PCDATA)><!-- A person reference is a pointer to another person     encoded in a PERSON element. The pointer is the ID     of the PERSON pointed to. --><!ENTITY % personref "PERSON NMTOKEN #REQUIRED"><!ELEMENT  %SPOUSE.qname;  EMPTY><!ATTLIST  %SPOUSE.qname;  %personref;><!ELEMENT  %FATHER.qname;  EMPTY><!ATTLIST  %FATHER.qname;  %personref;><!ELEMENT  %MOTHER.qname;  EMPTY><!ATTLIST  %MOTHER.qname;  %personref;><!-- Middle names should be encoded as part of the     given name; e.g.,     <NAME>       <GIVEN>Elliotte Rusty</GIVEN>       <SURNAME>Harold</SURNAME>     </NAME> --><!ELEMENT  %NAME.qname;    (%GIVEN.qname;?, %SURNAME.qname;?)><!ELEMENT  %GIVEN.qname;   (#PCDATA)><!ELEMENT  %SURNAME.qname; (#PCDATA)><!ELEMENT  NOTE   (REFERENCE*, body)>