<!-- ************** Entities ************** -->
<!ENTITY % URI "CDATA">
<!ENTITY % NUMBER "CDATA">
<!ENTITY % LANG "CDATA">
<!ENTITY % dataelement "CDATA">
<!ENTITY % categories "(  physical   |  online   |  uniqueid   |  purchase   |  financial   |  computer   |  navigation   |  interactive   |  demographic   |  content   |  state   |  political   |  health   |  preference   |  other   )">

<!--  *********** POLICY ***********  -->
<!ELEMENT POLICY ( ENTITY,DISCLOSURE,REMEDIES?,DISPUTES-GROUP?,STATEMENT+,EXTENSION* )>

<!--  *********** ENTITY ***********  -->
<!ELEMENT ENTITY ( DATA+,EXTENSION* )+>

<!--  *********** DISCLOSURE ***********  -->
<!ELEMENT DISCLOSURE ( EXTENSION* )>
<!ATTLIST DISCLOSURE
      discuri %URI; #REQUIRED
      access ( nonident     
      |  contact     |  
      other_ident     |  contact_and_other     |  all     |  none ) #REQUIRED
>

<!--  *********** DISPUTES ***********  -->
<!ELEMENT DISPUTES-GROUP ( DISPUTES+,EXTENSION* )+>
<!ELEMENT DISPUTES ( EXTENSION* )>
<!ATTLIST DISPUTES
      resolution-type ( service | independent | court | law ) #REQUIRED
      service %URI; #REQUIRED
      description CDATA #IMPLIED
      verification CDATA #IMPLIED
      image CDATA #IMPLIED
      width %NUMBER; #IMPLIED
      height %NUMBER; #IMPLIED
      alt CDATA #IMPLIED
>

<!--  *********** REMEDIES ***********  -->
<!ELEMENT REMEDIES ( correct?,    money?,    law?,    EXTENSION* )>
<!ELEMENT correct EMPTY>
<!ELEMENT money EMPTY>
<!ELEMENT law EMPTY>

<!--  *********** STATEMENT ***********  -->
<!ELEMENT STATEMENT ( CONSEQUENCE?,    PURPOSE,    RECIPIENT,    RETENTION,    DATA-GROUP+,    EXTENSION* )>

<!--  *********** CONSEQUENCE ***********  -->
<!ELEMENT CONSEQUENCE ( #PCDATA )>

<!--  *********** PURPOSE ***********  -->
<!ELEMENT PURPOSE ( current?,    admin?,    develop?,    contact?,    customization?,    targeting?,    profiling?,    other-purpose?,    EXTENSION* )>
<!ELEMENT current EMPTY>
<!ATTLIST current      change_preferences ( yes | no ) "no">
<!ELEMENT admin EMPTY>
<!ATTLIST admin      change_preferences ( yes | no ) "no">
<!ELEMENT develop EMPTY>
<!ATTLIST develop      change_preferences ( yes | no ) "no">
<!ELEMENT contact EMPTY>
<!ATTLIST contact      change_preferences ( yes | no ) "no">
<!ELEMENT customization EMPTY>
<!ATTLIST customization      change_preferences ( yes | no ) "no">
<!ELEMENT targeting EMPTY>
<!ATTLIST targeting      change_preferences ( yes | no ) "no">
<!ELEMENT profiling EMPTY>
<!ATTLIST profiling      change_preferences ( yes | no ) "no">
<!ELEMENT other-purpose ( #PCDATA )>
<!ATTLIST other-purpose      change_preferences ( yes | no ) "no">

<!--  *********** RECIPIENT ***********  -->
<!ELEMENT RECIPIENT ( ours?,    same?,    other-recipient?,    delivery?,    public?,    unrelated?,    EXTENSION* )>
<!ELEMENT ours EMPTY>
<!ELEMENT same EMPTY>
<!ELEMENT other-recipient EMPTY>
<!ELEMENT delivery EMPTY>
<!ELEMENT public EMPTY>
<!ELEMENT unrelated EMPTY>

<!--  *********** RETENTION ***********  -->
<!ELEMENT RETENTION ( ( no-retention     |  stated-purpose     |  legal-requirement     |  indefinitely     |  business-practices ),    EXTENSION* )>
<!ELEMENT no-retention EMPTY>
<!ELEMENT stated-purpose EMPTY>
<!ELEMENT legal-requirement EMPTY>
<!ELEMENT indefinitely EMPTY>
<!ELEMENT business-practices EMPTY>

<!--  *********** DATA ***********  -->
<!ELEMENT DATA-GROUP ( DATA+,EXTENSION* )+>
<!ELEMENT DATA ( #PCDATA  |  EXTENSION )*>
<!ATTLIST DATA
     name %dataelement; #REQUIRED
     dataschema %URI; #IMPLIED
     optional ( yes  |  no ) "no"
     type CDATA #IMPLIED
     typeschema CDATA #IMPLIED
     template ( yes  |  no ) "no"
     category %categories; #IMPLIED
     short CDATA #IMPLIED
     long CDATA #IMPLIED
     size %NUMBER; #IMPLIED
>

<!--  *********** EXTENSION ***********  -->
<!ELEMENT EXTENSION ( #PCDATA )>
<!ATTLIST EXTENSION     optional ( yes  |  no ) "yes">



