<?xml version='1.0'?>
<schema
  xmlns='http://www.w3.org/1999/XMLSchema'
  targetNamespace='http://www.w3.org/P3P/validator/p3p.xml'
  xmlns:p3p='http://www.w3.org/P3P/validator/p3p.xml'>

 <element name='POLICY'>
  <complexType content='elementOnly'>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
   <element ref='p3p:DATASCHEMA' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:ENTITY'/>
   <element ref='p3p:ACCESS'/>
   <element ref='p3p:DISPUTES-GROUP' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:STATEMENT' maxOccurs='unbounded'/>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
   <attribute name='discuri' type='uriReference' use='required'/>
  </complexType>
 </element>

 <element name='ENTITY'>
  <complexType content='elementOnly'>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
   <element ref='p3p:DATA-GROUP'/>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='ACCESS'>
  <complexType content='elementOnly'>
   <choice>
    <element ref='p3p:nonident'/>
    <element ref='p3p:ident_contact'/>
    <element ref='p3p:other_ident'/>
    <element ref='p3p:contact_and_other'/>
    <element ref='p3p:all'/>
    <element ref='p3p:none'/>
   </choice>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='nonident'>
  <complexType content='empty'/>
 </element>

 <element name='ident_contact'>
  <complexType content='empty'/>
 </element>

 <element name='other_ident'>
  <complexType content='empty'/>
 </element>

 <element name='contact_and_other'>
  <complexType content='empty'/>
 </element>

 <element name='all'>
  <complexType content='empty'/>
 </element>

 <element name='none'>
  <complexType content='empty'/>
 </element>

 <element name='DISPUTES-GROUP'>
  <complexType content='elementOnly'>
   <element ref='p3p:DISPUTES' maxOccurs='unbounded'/>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='DISPUTES'>
  <complexType content='elementOnly'>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
   <element ref='p3p:LONG-DESCRIPTION' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:IMG' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:REMEDIES' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
   <attribute name='resolution-type' use='required'>
    <simpleType base='string'>
     <enumeration value='service'/>
     <enumeration value='independent'/>
     <enumeration value='court'/>
     <enumeration value='law'/>
    </simpleType>
   </attribute>
   <attribute name='service' type='uriReference' use='required'/>
   <attribute name='verification' type='string' use='optional'/>
   <attribute name='short-description' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='LONG-DESCRIPTION'>
  <complexType content='mixed'>
  </complexType>
 </element>

 <element name='IMG'>
  <complexType content='empty'>
   <attribute name='src' type='uriReference' use='required'/>
   <attribute name='width' type='nonNegativeInteger' use='optional'/>
   <attribute name='height' type='nonNegativeInteger' use='optional'/>
   <attribute name='alt' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='REMEDIES'>
  <complexType content='elementOnly'>
   <choice maxOccurs='unbounded'>
    <element ref='p3p:correct'/>
    <element ref='p3p:money'/>
    <element ref='p3p:law'/>
   </choice>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='correct'>
  <complexType content='empty'/>
 </element>

 <element name='money'>
  <complexType content='empty'/>
 </element>

 <element name='law'>
  <complexType content='empty'/>
 </element>

 <element name='STATEMENT'>
  <complexType content='elementOnly'>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
   <element ref='p3p:CONSEQUENCE' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:PURPOSE'/>
   <element ref='p3p:RECIPIENT'/>
   <element ref='p3p:RETENTION'/>
   <element ref='p3p:DATA-GROUP' maxOccurs='unbounded'/>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='CONSEQUENCE'>
  <complexType content='mixed'>
  </complexType>
 </element>

 <element name='PURPOSE'>
  <complexType content='elementOnly'>
   <choice maxOccurs='unbounded'>
    <element ref='p3p:current'/>
    <element ref='p3p:admin'/>
    <element ref='p3p:develop'/>
    <element ref='p3p:contact'/>
    <element ref='p3p:customization'/>
    <element ref='p3p:tailoring'/>
    <element ref='p3p:pseudonym'/>
    <element ref='p3p:profiling'/>
    <element ref='p3p:other-purpose'/>
   </choice>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='current'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='admin'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='develop'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='contact'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='customization'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='tailoring'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='pseudonym'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='profiling'>
  <complexType content='empty'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='other-purpose'>
  <complexType content='mixed'>
   <attribute name='change_preferences' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='RECIPIENT'>
  <complexType content='elementOnly'>
   <choice maxOccurs='unbounded'>
    <element ref='p3p:ours'/>
    <element ref='p3p:same'/>
    <element ref='p3p:other-recipient'/>
    <element ref='p3p:delivery'/>
    <element ref='p3p:public'/>
    <element ref='p3p:unrelated'/>
   </choice>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='ours'>
  <complexType content='empty'/>
 </element>

 <element name='same'>
  <complexType content='empty'/>
 </element>

 <element name='other-recipient'>
  <complexType content='empty'/>
 </element>

 <element name='delivery'>
  <complexType content='empty'/>
 </element>

 <element name='public'>
  <complexType content='empty'/>
 </element>

 <element name='unrelated'>
  <complexType content='empty'/>
 </element>

 <element name='RETENTION'>
  <complexType content='elementOnly'>
   <choice>
    <element ref='p3p:no-retention'/>
    <element ref='p3p:stated-purpose'/>
    <element ref='p3p:legal-requirement'/>
    <element ref='p3p:indefinitely'/>
    <element ref='p3p:business-practices'/>
   </choice>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name='no-retention'>
  <complexType content='empty'/>
 </element>

 <element name='stated-purpose'>
  <complexType content='empty'/>
 </element>

 <element name='legal-requirement'>
  <complexType content='empty'/>
 </element>

 <element name='indefinitely'>
  <complexType content='empty'/>
 </element>

 <element name='business-practices'>
  <complexType content='empty'/>
 </element>

 <element name='DATA-GROUP'>
  <complexType content='elementOnly'>
   <element ref='p3p:DATA' maxOccurs='unbounded'/>
   <element ref='p3p:EXTENSION' minOccurs='0' maxOccurs='unbounded'/>
   <attribute name='base' type='uriReference' use='default' value='http://www.w3.org/TR/P3P/base'/>
  </complexType>
 </element>

 <element name='DATA'>
  <complexType content='mixed'>
   <sequence minOccurs='0' maxOccurs='unbounded'>
    <element ref='p3p:CATEGORIES'/>
   </sequence>
   <attribute name='ref' type='uriReference' use='required'/>
   <attribute name='optional' use='default' value='no'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>

 <element name='DATASCHEMA'>
  <complexType content='elementOnly'>
   <choice minOccurs='0' maxOccurs='unbounded'>
    <element ref='p3p:DATA-DEF'/>
    <element ref='p3p:DATA-TYPE'/>
    <element ref='p3p:EXTENSION'/>
   </choice>
  </complexType>
 </element>

 <element name='DATA-DEF'>
  <complexType content='elementOnly'>
   <element ref='p3p:CATEGORIES' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:LONG-DESCRIPTION' minOccurs='0' maxOccurs='1'/>
   <attribute name='name' type='ID' use='required'/>
   <attribute name='typeref' type='uriReference' use='optional'/>
   <attribute name='short-description' type='string' use='optional'/>
   <attribute name='size' type='nonNegativeInteger' use='default' value='0'/>
  </complexType>
 </element>

 <element name='DATA-TYPE'>
  <complexType content='elementOnly'>
   <element ref='p3p:CATEGORIES' minOccurs='0' maxOccurs='1'/>
   <element ref='p3p:LONG-DESCRIPTION' minOccurs='0' maxOccurs='1'/>
   <attribute name='name' type='ID' use='required'/>
   <attribute name='type-ref' type='uriReference' use='optional'/>
   <attribute name='short-description' type='string' use='optional'/>
   <attribute name='size' type='nonNegativeInteger' use='default' value='0'/>
  </complexType>
 </element>

 <element name='CATEGORIES'>
  <complexType content='elementOnly'>
   <choice maxOccurs='unbounded'>
    <element ref='p3p:physical'/>
    <element ref='p3p:online'/>
    <element ref='p3p:uniqueid'/>
    <element ref='p3p:purchase'/>
    <element ref='p3p:financial'/>
    <element ref='p3p:computer'/>
    <element ref='p3p:navigation'/>
    <element ref='p3p:interactive'/>
    <element ref='p3p:demographic'/>
    <element ref='p3p:content'/>
    <element ref='p3p:state'/>
    <element ref='p3p:political'/>
    <element ref='p3p:health'/>
    <element ref='p3p:preference'/>
    <element ref='p3p:other'/>
   </choice>
  </complexType>
 </element>

 <element name='physical'>
  <complexType content='empty'/>
 </element>

 <element name='online'>
  <complexType content='empty'/>
 </element>

 <element name='uniqueid'>
  <complexType content='empty'/>
 </element>

 <element name='purchase'>
  <complexType content='empty'/>
 </element>

 <element name='financial'>
  <complexType content='empty'/>
 </element>

 <element name='computer'>
  <complexType content='empty'/>
 </element>

 <element name='navigation'>
  <complexType content='empty'/>
 </element>

 <element name='interactive'>
  <complexType content='empty'/>
 </element>

 <element name='demographic'>
  <complexType content='empty'/>
 </element>

 <element name='content'>
  <complexType content='empty'/>
 </element>

 <element name='state'>
  <complexType content='empty'/>
 </element>

 <element name='political'>
  <complexType content='empty'/>
 </element>

 <element name='health'>
  <complexType content='empty'/>
 </element>

 <element name='preference'>
  <complexType content='empty'/>
 </element>

 <element name='other'>
  <complexType content='empty'/>
 </element>

 <element name='EXTENSION'>
  <complexType content='mixed'>
   <attribute name='optional' use='default' value='yes'>
    <simpleType base='string'>
     <enumeration value='yes'/>
     <enumeration value='no'/>
    </simpleType>
   </attribute>
  </complexType>
 </element>
</schema>
