<!--
====================================================================
registry.stanford.edu/xml/person/2.0/campcomm/Person.dtd
version 2.0, 09/06/11

DTD for the Stanford University Registry Person

Copyright 2002-2004 by the Board of Trustees of Stanford University
====================================================================
01/23/2023 hrt
    - Added stf_special_current_gpa and stf_special_cumulated_gpa under student_info
03/19/2020 nataliew
    - Added leavestatus
09/06/11 asingh3
	- Added student_info and birthstate tag. 
	- Changed version from 1.2 to 2.0.
12/04/06 madhum 
	- added Emergency Contact elements and associated attributes
04/30/04 molive  
	- created campcomm specific Person 1.1 DTD
11/17/04 molive
	- updated to Person 1.2 DTD structure
====================================================================
-->

<!-- +++++++++++++++++++++++++ Person +++++++++++++++++++++++++ -->

<!ELEMENT Person (name+, title*, biodemo?, address*, telephone*,
                  email*, location?, affiliation*, privgroup*, visibility*,
                  student_info?, emergency_contact*, leavestatus?)>
<!ATTLIST Person
     name               CDATA #REQUIRED
     refid              CDATA #REQUIRED
     regid              CDATA #IMPLIED
     univid             CDATA #IMPLIED
     sunetid            CDATA #IMPLIED
     source             (campcomm) #REQUIRED
>

<!-- +++++++++++++++++++++++++ Names +++++++++++++++++++++++++ -->

<!ELEMENT name (prefix?, first?, middle?, last, suffix?)>
<!ATTLIST name
     type               (preferred | full | diploma) #REQUIRED
     sourceval          CDATA #IMPLIED
>

<!ELEMENT prefix        (#PCDATA)>

<!ELEMENT first         (#PCDATA)>

<!ELEMENT middle        (#PCDATA)>

<!ELEMENT last          (#PCDATA)>

<!ELEMENT suffix        (#PCDATA)>

<!-- +++++++++++++++++++++++++ Title +++++++++++++++++++++++++ -->

<!ELEMENT title (#PCDATA)>
<!ATTLIST title
     type               (faculty | facultyshort | job) #REQUIRED
>

<!-- +++++++++++++++++++++++++ leavestatus +++++++++++++++++++++++++ -->
<!ELEMENT leavestatus (#PCDATA)>

<!--  +++++++++++++++++++++++++ Bio Demo data +++++++++++++++++++++++++ -->

<!ELEMENT biodemo (gender?, ssn?, birthdate?, birthplace?, birthstate?, deceased?,
                   visatype?, ethnictype?, uscitizenship?)>

<!ELEMENT gender        (#PCDATA)>

<!ELEMENT birthdate     (#PCDATA)>

<!ELEMENT birthplace    (#PCDATA)>

<!ELEMENT birthstate    (#PCDATA)>

<!ELEMENT deceased      (#PCDATA)>

<!ELEMENT visatype      EMPTY>
<!ATTLIST visatype
     code               CDATA #REQUIRED
>

<!ELEMENT ethnictype    EMPTY>
<!ATTLIST ethnictype
     code               CDATA #REQUIRED
>

<!ELEMENT uscitizenship EMPTY>
<!ATTLIST uscitizenship
     code               CDATA #REQUIRED
>

<!ELEMENT ssn           (#PCDATA)>

<!-- +++++++++++++++++++++++++ Addresses +++++++++++++++++++++++++ -->
<!-- The Registry supports up to 3 lines of address   -->

<!ELEMENT address (line+, city?, (state | province)?, country, postalcode?)>
<!ATTLIST address
     type               (permanent | local | mail | billing | office) #REQUIRED
>

<!-- +++++++++++++++++++++++++ Emergency Contact Address +++++++++++++++++++++++++ -->

<!ELEMENT contact_address (line+, city?, (state | province)?, country, postalcode?)>
<!ATTLIST contact_address
     type               (primary) #REQUIRED
>

<!ELEMENT line          (#PCDATA)>

<!ELEMENT city          (#PCDATA)>

<!ELEMENT state         EMPTY>
<!ATTLIST state
     code               CDATA #REQUIRED
>

<!ELEMENT province      EMPTY>
<!ATTLIST province
     code               CDATA #REQUIRED
>

<!ELEMENT country       EMPTY>
<!ATTLIST country
     alpha3             CDATA #REQUIRED
>

<!ELEMENT postalcode    (#PCDATA)>


<!-- +++++++++++++++++++++++++ Location +++++++++++++++++++++++++ -->

<!ELEMENT location EMPTY>
<!ATTLIST location
     type               (idmail) #REQUIRED
     code               CDATA #REQUIRED
     sourceval          CDATA #IMPLIED
>

<!-- +++++++++++++++++++++++++ Telephones +++++++++++++++++++++++++ -->

<!ELEMENT telephone (icc?, area?, number, ext?)>
<!ATTLIST telephone
     type               (permanent | local | office | officefax) #REQUIRED
     sourceval          CDATA #IMPLIED
>

<!-- +++++++++++++++++++++++++ Emergency Contact Telephone +++++++++++++++++++++++++ -->

<!ELEMENT contact_telephone (icc?, area?, number)>
<!ATTLIST contact_telephone
     type               (primary | home | work | mobile) #REQUIRED
     sourceval          CDATA #IMPLIED
>

<!ELEMENT icc           (#PCDATA)>

<!ELEMENT area          (#PCDATA)>

<!ELEMENT number        (#PCDATA)>

<!ELEMENT ext           (#PCDATA)>

<!-- +++++++++++++++++++++++++ Email +++++++++++++++++++++++++ -->

<!ELEMENT email (user, host)>
<!ATTLIST email
     type               (primary | secondary) #REQUIRED
     sourceval          CDATA #IMPLIED
>

<!ELEMENT user (#PCDATA)>

<!ELEMENT host (#PCDATA)>

<!-- +++++++++++++++++++++++++ Place +++++++++++++++++++++++++ -->

<!ELEMENT place (address?, telephone*)>
<!ATTLIST place
     type               (office) #REQUIRED
     sourceval          CDATA #IMPLIED
>

<!-- +++++++++++++++++++++++++ Affiliations +++++++++++++++++++++++++ -->

<!ELEMENT affiliation (department, affdata+, place?)>
<!ATTLIST affiliation
     organization       (stanford) #REQUIRED
     type               CDATA #REQUIRED
     until              CDATA #IMPLIED
     effective          CDATA #IMPLIED
>

<!ELEMENT department (organization)>
<!ATTLIST department
     code               CDATA #IMPLIED
>

<!ELEMENT affdata (#PCDATA)>
<!ATTLIST affdata
     type               CDATA #IMPLIED
     code               CDATA #IMPLIED
>

<!-- +++++++++++++++++++++++++ Organization +++++++++++++++++++++++++ -->

<!ELEMENT organization EMPTY>
<!ATTLIST organization
     adminid            CDATA #IMPLIED
     acadid             CDATA #IMPLIED
>

<!-- +++++++++++++++++++++++++ Student Info +++++++++++++++++++++++++ -->

<!ELEMENT student_info (service_indicators?, groups?, advisors?, terms*, athlete?, cardinal_care*)>
<!ELEMENT service_indicators (service_indicator+)>
<!ELEMENT service_indicator (#PCDATA)>
<!ATTLIST service_indicator
          code CDATA #REQUIRED>

<!ELEMENT groups (group+)>
<!ELEMENT group (#PCDATA)>
<!ATTLIST group
          code CDATA #REQUIRED>
		  
<!ELEMENT advisors (advisor+)>
<!ELEMENT advisor (role?, advisor_name?, advisor_last_name?)>
<!ATTLIST advisor
          univid CDATA #REQUIRED>
		  
<!ELEMENT role (#PCDATA)>
<!ATTLIST role
          code CDATA #REQUIRED>
		  
<!ELEMENT advisor_name (#PCDATA)>

<!ELEMENT advisor_last_name (#PCDATA)>

<!ELEMENT terms (term+)>
<!ATTLIST terms
          acad_career CDATA #REQUIRED>
		  
<!ELEMENT term (acad_level_bot?, acad_level_eot?, acad_level_proj?, cumulated_gpa?, stf_special_current_gpa?, stf_special_cumulated_gpa?)>
<!ATTLIST term
          code CDATA #REQUIRED>
		  
<!ELEMENT acad_level_bot (#PCDATA)>
<!ELEMENT acad_level_eot (#PCDATA)>
<!ELEMENT acad_level_proj (#PCDATA)>
<!ELEMENT cumulated_gpa (#PCDATA)>
<!ELEMENT stf_special_current_gpa (#PCDATA)>
<!ELEMENT stf_special_cumulated_gpa (#PCDATA)>

<!ELEMENT athlete (participant+)>
<!ELEMENT participant (#PCDATA)>
<!ATTLIST participant
          code CDATA #REQUIRED
          active CDATA #REQUIRED>
		  
<!ELEMENT cardinal_care (#PCDATA)>
<!ATTLIST cardinal_care
          term CDATA #REQUIRED>

<!-- +++++++++++++++++++++++++ Emergency Contact +++++++++++++++++++++++++ -->

<!ELEMENT emergency_contact (contact_name, contact_relationship, contact_telephone*, contact_address?)>
<!ATTLIST emergency_contact
	number		CDATA #REQUIRED
	primary       	(true | false) #REQUIRED
	sync_permanent	(true | false) #REQUIRED
>

<!-- +++++++++++++++++++++++++ Emergency Contact Name +++++++++++++++++++++++++ -->

<!ELEMENT contact_name        (#PCDATA)>

<!-- +++++++++++++++++++++++++ Emergency Contact Relationship +++++++++++++++++++++++++ -->

<!ELEMENT contact_relationship (#PCDATA)>
<!ATTLIST contact_relationship
	code 		CDATA #REQUIRED
>

<!-- +++++++++++++++++++++++++ Privilege Groups +++++++++++++++++++++++++ -->

<!ELEMENT privgroup (#PCDATA)>

<!-- +++++++++++++++++++++++++ Visibilities +++++++++++++++++++++++++ -->

<!ELEMENT visibility (#PCDATA)>
<!ATTLIST visibility
     where              (ferpa) #REQUIRED
     what               (permanentaddress | mailaddress | localaddress | residenceaddress | officeaddress |
                         primaryemail | name | birthdate | birthplace |
                         permanentphone | localphone | officephone |
                         photo | academicdata) #REQUIRED
>