<?xml version="1.0" encoding="UTF-8"?>
<!-- SPDX-License-Identifier: AGPL-3.0-or-later -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:annotation>
        <xs:documentation>This document describes the ESP incident reporting format.</xs:documentation>
    </xs:annotation>
    <xs:element name="report">
        <xs:annotation>
            <xs:documentation>This is the main top level tag to define an incident report.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="batchedReport" minOccurs="0" type="batchedReport">
                    <xs:annotation>
                        <xs:documentation>Report represents a batch of otherwise individual reports that have been grouped for the specified reason.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="incidentSummary">
                    <xs:annotation>
                        <xs:documentation>This contains general incident information.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="internetDetails" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>This record summarizes the details of the incident being reported. There can be more than one for different incident details, but there must be at least of these for each report.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="lawEnforcement" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>The law enforcement contact information related to the event. This is used if the incident information has already been reported to law enforcement or if the request originated from law enforcement.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="reporter">
                    <xs:annotation>
                        <xs:documentation>This is information related to the person or organization reporting the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="personOrUserReported" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>There can be 0 or 1 reported user or person involved in the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="intendedRecipient" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>There can be 0 or more intended recipients involved in the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="victim" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>There can be 0 or more victim records for each incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional notes on this incident not covered by any other section.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="incidentSummary">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="incidentType" type="incidentType">
                    <xs:annotation>
                        <xs:documentation>This field describes the type of incident being reported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="platform" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The full application name where the reported content occurred.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="escalateToHighPriority" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Company indicated a higher level of urgency (immediate risk to child) and the reason for this escalation. Only enter text if you want to escalate the report.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="reportAnnotations" minOccurs="0" type="reportAnnotations">
                    <xs:annotation>
                        <xs:documentation>Tags indicated by ESP to describe the reported incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="incidentDateTime" type="xs:dateTime">
                    <xs:annotation>
                        <xs:documentation>The date/time of the reported incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="incidentDateTimeDescription" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>This is a text field that allows you to enter any additional information related to the incidentDateTime.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="reportAnnotations">
        <xs:all>
            <xs:element name="sextortion" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the report associated with sextortion?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="csamSolicitation" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the report associated with solicitation for child sexual assault material?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="minorToMinorInteraction" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the report associated with an interaction between minors?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="spam" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the report associated with spam?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="sadisticOnlineExploitation" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the report associated with sadistic online exploitation?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="informational" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>The report is associated with an incident that is informational in nature. Supplying a value will de-escalate the report.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
    </xs:complexType>

    <xs:element name="internetDetails">
        <xs:annotation>
            <xs:documentation>This record summarizes the details of the incident being reported. There can be one or more for different incident details. Each record must have one of the following subtypes.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:choice>
                <xs:element ref="webPageIncident">
                    <xs:annotation>
                        <xs:documentation>The incident occurred on a web page.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="emailIncident">
                    <xs:annotation>
                        <xs:documentation>The incident occurred over Email.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="newsgroupIncident">
                    <xs:annotation>
                        <xs:documentation>The incident occurred in a newsgroup.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="chatImIncident">
                    <xs:annotation>
                        <xs:documentation>The incident occurred over IM or during a chat session.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="onlineGamingIncident">
                    <xs:annotation>
                        <xs:documentation>The incident occurred during an online game.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="cellPhoneIncident">
                    <xs:annotation>
                        <xs:documentation>This category is used when the primary method of communication between the child and/or reported person or user is through a cell phone. This can include phone conversations, text messages, or images sent through the phone.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="nonInternetIncident">
                    <xs:annotation>
                        <xs:documentation>This category of the incident does not involve an online or computer component or a cell phone (e.g., face-to-face contact or potentially illegal hard copy or printed materials).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="peer2peerIncident">
                    <xs:annotation>
                        <xs:documentation>The incident occurred via a Peer to Peer (also known as P2P) decentralized network that allows users to share files through a direct connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:complexType>
    </xs:element>

    <xs:element name="webPageIncident">
        <xs:annotation>
            <xs:documentation>The incident occurred on a web page.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="url" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>This is the actual URL where the reported incident occurred. There can be as many of these as needed.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>This is a text field that allows you to enter any additional information related to the web page event.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="thirdPartyHostedContent" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>True if the reported URL is hosted on another company&apos;s server. The reporting company has no further information on this incident and is providing it to NCMEC for informational purposes.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>

    <xs:element name="emailIncident">
        <xs:annotation>
            <xs:documentation>The incident occurred over email.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="emailAddress" minOccurs="0" maxOccurs="unbounded" type="email">
                    <xs:annotation>
                        <xs:documentation>An email address associated with the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="content" minOccurs="0" type="content">
                    <xs:annotation>
                        <xs:documentation>The headers, subject, and content of the communication.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional notes to add to the email event.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="newsgroupIncident">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>The incident occurred in a newsgroup.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="name" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The newsgroup name.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="emailAddress" minOccurs="0" maxOccurs="unbounded" type="email">
                    <xs:annotation>
                        <xs:documentation>An email address associated with the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="content" minOccurs="0" type="content">
                    <xs:annotation>
                        <xs:documentation>The content of the newsgroup posting including any headers, subject.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional notes to add to the newsgroup event.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="chatImIncident">
        <xs:annotation>
            <xs:documentation>The incident occurred over IM or during a chat session.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="chatClient" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The chat or instant messenger program used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="chatRoomName" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of the chat room.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="content" minOccurs="0" type="content">
                    <xs:annotation>
                        <xs:documentation>The content of the chat, any chat logs.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional information related to the chat/instant messaging incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="onlineGamingIncident">
        <xs:annotation>
            <xs:documentation>The incident occurred during an online game.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="gameName" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of the game the incident occurred in.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="console" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of the gaming console if one was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="content" minOccurs="0" type="content">
                    <xs:annotation>
                        <xs:documentation>The content of the message/chat that occurred during the game.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional information about the online gaming incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="cellPhoneIncident">
        <xs:annotation>
            <xs:documentation>This category is used when the primary method of communication between the child and/or reported person or user is through a cell phone. This can include phone conversations, text messages, or images sent through the phone.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="phoneNumber" minOccurs="0" type="phone">
                    <xs:annotation>
                        <xs:documentation>The cell phone number associated with the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="latitude" minOccurs="0" type="latlong">
                    <xs:annotation>
                        <xs:documentation>The latitude associated with the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="longitude" minOccurs="0" type="latlong">
                    <xs:annotation>
                        <xs:documentation>The longitude associated with the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional information about the cell phone incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="nonInternetIncident">
        <xs:annotation>
            <xs:documentation>This category of the incident does not involve an online or computer component or a cell phone (e.g., face-to-face contact or potentially illegal hard copy or printed materials).</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="locationName" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The location associated with the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="incidentAddress" minOccurs="0" maxOccurs="unbounded" type="address">
                    <xs:annotation>
                        <xs:documentation>Incident&apos;s address.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Please describe in detail the incident being reported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="peer2peerIncident">
        <xs:annotation>
            <xs:documentation>The incident occurred via a Peer to Peer (also known as P2P) decentralized network that allows users to share files through a direct connection.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="client" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The Peer to Peer Client used (e.g., Phex, Emule).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ipCaptureEvent" minOccurs="0" maxOccurs="unbounded" type="ipCaptureEvent">
                    <xs:annotation>
                        <xs:documentation>An IP address used by the person or user reported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileNames" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of file(s).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional information about the cell phone incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="lawEnforcement">
        <xs:annotation>
            <xs:documentation>The law enforcement contact information related to the event. This is used if the incident information has already been reported to law enforcement or if the request originated from law enforcement.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="agencyName" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The law enforcement agency name involved.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="caseNumber" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The case number if known.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="officerContact" minOccurs="0" type="contactPerson">
                    <xs:annotation>
                        <xs:documentation>The contact information for the investigator or officer on the case.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="reportedToLe" minOccurs="0" type="reportedToLawEnforcement">
                    <xs:annotation>
                        <xs:documentation>Set this to true if the incident was reported to law enforcement by the company.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="servedLegalProcessDomestic" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>Set this to true if domestic law enforcement has served legal process about this person/user or reported incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="servedLegalProcessInternational" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Set this to true if international law enforcement has served legal process about this person/user or reported incident.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:boolean">
                                <xs:attribute name="fleaCountry" type="country">
                                    <xs:annotation>
                                        <xs:documentation>The name of the country associated with this report from which legal process was received.</xs:documentation>
                                    </xs:annotation>
                                </xs:attribute>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="reporter">
        <xs:annotation>
            <xs:documentation>This is information related to the person or company reporting the incident.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="reportingPerson" type="person">
                    <xs:annotation>
                        <xs:documentation>Details of the person reporting the information and the company&apos;s address.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="contactPerson" minOccurs="0" type="contactPerson">
                    <xs:annotation>
                        <xs:documentation>Use this field if a person other than the person submitting the report should be contacted by law enforcement regarding the report.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="companyTemplate" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>This open-text field allows a company to include language (not specific to the reported incident) that they want included in every CyberTipline report. For instance, basic company information, how legal process should be served, length of data retention, 24-hour emergency phone numbers, etc..</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="termsOfService" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Include Terms of Service (TOS) relevant to the incident being reported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="legalURL" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Company can include a URL if they wish to direct attention to a web page for further information.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="personOrUserReported">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="personOrUserReportedPerson" minOccurs="0" type="person">
                    <xs:annotation>
                        <xs:documentation>The person information about the reported person or user in the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="vehicleDescription" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The description for the vehicle of the reported person.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="espIdentifier" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The unique ID of the reported person or user in the ESP&apos;s system (e.g., friend ID).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="espService" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of the reporter's product or service that was used by the reported person or user during the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="compromisedAccount" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>This account has been compromised, hacked, or hijacked.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="screenName" minOccurs="0" type="screenName">
                    <xs:annotation>
                        <xs:documentation>The screen name of the reported person or user.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="displayName" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>A display name, other than a screen name or a username, for the reported person or user.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profileUrl" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The different identifying URLs for this reported person or user.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profileBio" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>A copy of the user's bio as per their account according to the reporting company's platform.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ipCaptureEvent" minOccurs="0" maxOccurs="unbounded" type="ipCaptureEvent">
                    <xs:annotation>
                        <xs:documentation>An originating IP address used by the reported person or user and when it was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deviceId" minOccurs="0" maxOccurs="unbounded" type="deviceId">
                    <xs:annotation>
                        <xs:documentation>An ID for a device used by the reported person or user and, optionally, when it was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="thirdPartyUserReported" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>Reported person or user is using another company&apos;s service. The reporting company has no further information about this person or user.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="priorCTReports" minOccurs="0" maxOccurs="unbounded" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>List report ID numbers for any prior CyberTipline reports on this reported person or user.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="groupIdentifier" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The ESP believes the reported person or user is engaged in an organized online group related to child sexual exploitation. This open text field is used to provide unique group identifiers (e.g., group name, group ID, etc.).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="accountTemporarilyDisabled" minOccurs="0" type="accountTemporarilyDisabled">
                    <xs:annotation>
                        <xs:documentation>Whether the account was temporarily disabled at any point.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="accountPermanentlyDisabled" minOccurs="0" type="accountPermanentlyDisabled">
                    <xs:annotation>
                        <xs:documentation>Whether the account was permanently disabled.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="estimatedLocation" minOccurs="0" type="estimatedLocation">
                    <xs:annotation>
                        <xs:documentation>The reporter's estimated location for the reported person or user.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="allEmailsReported" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>There are no additional emails to report.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="associatedAccount" minOccurs="0" maxOccurs="unbounded" type="associatedAccount">
                    <xs:annotation>
                        <xs:documentation>Any additional account associated with this reported person or user.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional notes on this reported person or user not covered by any other section</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="intendedRecipient">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="intendedRecipientPerson" minOccurs="0" type="person">
                    <xs:annotation>
                        <xs:documentation>The person information about the intended recipient.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="espIdentifier" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The unique ID of the intended recipient in the ESP&apos;s system (e.g., friend ID).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="espService" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of the reporter's product or service that was used by the intended recipient during the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="compromisedAccount" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>This account has been compromised, hacked, or hijacked.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="screenName" minOccurs="0" type="screenName">
                    <xs:annotation>
                        <xs:documentation>The screen name of the intended recipient.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="displayName" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>A display name, other than a screen name or a username, for the intended recipient.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profileUrl" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>An identifying URL for this intended recipient.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profileBio" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>A copy of the user's bio as per their account according to the reporting company's platform.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ipCaptureEvent" minOccurs="0" maxOccurs="unbounded" type="ipCaptureEvent">
                    <xs:annotation>
                        <xs:documentation>An IP address used by the intended recipient and when it was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deviceId" minOccurs="0" maxOccurs="unbounded" type="deviceId">
                    <xs:annotation>
                        <xs:documentation>An ID for a device used by the intended recipient and when it was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="priorCTReports" minOccurs="0" maxOccurs="unbounded" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>A CyberTipline report ID for any prior CyberTipline report on this intended recipient.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="groupIdentifier" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The ESP believes the intended recipient is engaged in an organized online group related to child sexual exploitation. This open text field is used to provide unique group identifiers (e.g., group name, group ID, etc.).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="accountTemporarilyDisabled" minOccurs="0" type="accountTemporarilyDisabled">
                    <xs:annotation>
                        <xs:documentation>Whether the account was temporarily disabled at any point.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="accountPermanentlyDisabled" minOccurs="0" type="accountPermanentlyDisabled">
                    <xs:annotation>
                        <xs:documentation>Whether the account was permanently disabled.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="estimatedLocation" minOccurs="0" type="estimatedLocation">
                    <xs:annotation>
                        <xs:documentation>The reporter's estimated location for the intended recipient.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="allEmailsReported" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>There are no additional emails to report.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" maxOccurs="unbounded" type="text">
                    <xs:annotation>
                        <xs:documentation>Additional information about this intended recipient not covered by any other section.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="victim">
        <xs:annotation>
            <xs:documentation>There can be 0 or more victim records for each incident.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="victimPerson" type="person">
                    <xs:annotation>
                        <xs:documentation>The victim&apos;s personal details such as name, address, phone numbers.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="espIdentifier" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The unique ID of the victim in the ESP&apos;s system (e.g., friend ID).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="espService" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of the reporter's product or service that was used by the victim during the incident.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="compromisedAccount" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>This account has been compromised, hacked, or hijacked.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="screenName" minOccurs="0" type="screenName">
                    <xs:annotation>
                        <xs:documentation>The screen name of the victim.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="displayName" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>A display name, other than a screen name or a username, for the victim.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profileUrl" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The identifying URL(s) for the victim.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="profileBio" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>A copy of the user's bio as per their account according to the reporting company's platform.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ipCaptureEvent" minOccurs="0" maxOccurs="unbounded" type="ipCaptureEvent">
                    <xs:annotation>
                        <xs:documentation>An originating IP address used by the victim and when it was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deviceId" minOccurs="0" maxOccurs="unbounded" type="deviceId">
                    <xs:annotation>
                        <xs:documentation>An ID for a device used by the victim and, optionally, when it was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="schoolName" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Victim&apos;s school name.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="priorCTReports" minOccurs="0" maxOccurs="unbounded" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>List of report ID numbers for any prior CyberTipline reports on this victim.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="accountTemporarilyDisabled" minOccurs="0" type="accountTemporarilyDisabled">
                    <xs:annotation>
                        <xs:documentation>Whether the account was temporarily disabled at any point.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="accountPermanentlyDisabled" minOccurs="0" type="accountPermanentlyDisabled">
                    <xs:annotation>
                        <xs:documentation>Whether the account was permanently disabled.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="estimatedLocation" minOccurs="0" type="estimatedLocation">
                    <xs:annotation>
                        <xs:documentation>The reporter's estimated location for the victim.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="allEmailsReported" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>There are no additional emails to report.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="associatedAccount" minOccurs="0" maxOccurs="unbounded" type="associatedAccount">
                    <xs:annotation>
                        <xs:documentation>Any additional account associated with this victim.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="additionalInfo" minOccurs="0" type="text">
                    <xs:annotation>
                        <xs:documentation>Any additional notes on this victim.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="fileDetails">
        <xs:annotation>
            <xs:documentation>The root element of the file details.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="reportId" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>The report this file is related to.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileId" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>The file this report is related to.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileName" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The name of the file being reported to NCMEC by the company.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="originalFileName" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Original filename associated with the file when it was uploaded to the company's servers by the reported user or person.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="uploadedToEspTimestamp" minOccurs="0" type="xs:dateTime">
                    <xs:annotation>
                        <xs:documentation>The date and time the file was uploaded to the reporting ESP.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="locationOfFile" minOccurs="0" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The URL where reported file was originally located.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileViewedByEsp" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>Has your company viewed the file being reported to NCMEC?</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="exifViewedByEsp" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>Has your company viewed the EXIF for the file being reported to NCMEC?</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="publiclyAvailable" minOccurs="0" type="xs:boolean">
                    <xs:annotation>
                        <xs:documentation>Was the reported file publicly accessible to online users?</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileRelevance" minOccurs="0" type="fileRelevance">
                    <xs:annotation>
                        <xs:documentation>The relevance or relation of the uploaded file to the report. Unless specified otherwise, a file is "Reported" by default.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:choice>
                    <xs:element name="potentialMeme" minOccurs="0" type="xs:boolean">
                        <xs:annotation>
                            <xs:documentation>Is the file being shared/posted out of mimicry or other seemingly non-malicious intent?</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="fileAnnotations" minOccurs="0" type="fileAnnotations">
                        <xs:annotation>
                            <xs:documentation>Tags indicated by ESP to describe the reported file.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:choice>
                <xs:element name="industryClassification" minOccurs="0" type="fileClassification">
                    <xs:annotation>
                        <xs:documentation>This field should be used only if your company has executed the MOU to participate in the Industry Hash Sharing Platform. Only populate with Industry-created classification scale (A1, A2, B1, or B2).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="originalFileHash" minOccurs="0" maxOccurs="unbounded" type="hash">
                    <xs:annotation>
                        <xs:documentation>The original binary hash value of the file at the time it was uploaded by the reported user or person (prior to any potential modification by your company). Include required attribute hashType, specifying the type of hash submitted, e.g., MD5, SHA1, etc.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ipCaptureEvent" minOccurs="0" type="ipCaptureEvent">
                    <xs:annotation>
                        <xs:documentation>This represents the upload IP address of the file and when it occurred.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="deviceId" minOccurs="0" maxOccurs="unbounded" type="deviceId">
                    <xs:annotation>
                        <xs:documentation>An ID for a device used to upload the file and, optionally, when it was used.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="details" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="additionalInfo" minOccurs="0" maxOccurs="unbounded" type="text">
                    <xs:annotation>
                        <xs:documentation>Additional information regarding the uploaded file your company wishes to report (e.g., "viral video").</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="details">
        <xs:annotation>
            <xs:documentation>All the file meta data name value pairs.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="nameValuePair" maxOccurs="unbounded" type="nameValue">
                    <xs:annotation>
                        <xs:documentation>The list of meta data.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="type" type="metadataTypes">
                <xs:annotation>
                    <xs:documentation>The type of meta data being sent.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="text">
        <xs:simpleContent>
            <xs:extension base="xs:string">
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="content">
        <xs:simpleContent>
            <xs:extension base="xs:string">
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="person">
        <xs:annotation>
            <xs:documentation>A person record. Can be used to represent a reported person or user, victim, or reporting person.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="firstName" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Person&apos;s first name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="lastName" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Person&apos;s last name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="phone" minOccurs="0" maxOccurs="unbounded" type="phone">
                <xs:annotation>
                    <xs:documentation>Phone number and type.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="email" minOccurs="0" maxOccurs="unbounded" type="email">
                <xs:annotation>
                    <xs:documentation>Contact email address (type and if verified).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="address" minOccurs="0" maxOccurs="unbounded" type="address">
                <xs:annotation>
                    <xs:documentation>Person&apos;s address.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="age" minOccurs="0" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Person&apos;s age.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ageAssertionDiscrepancy" minOccurs="0" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>The asserted age for the Person conflicts with the reporter&apos;s determination of the Person&apos;s age.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="dateOfBirth" minOccurs="0" type="xs:date">
                <xs:annotation>
                    <xs:documentation>Person&apos;s date of birth.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="contactPerson">
        <xs:annotation>
            <xs:documentation>A person record with information pertinent for contact.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="firstName" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Person&apos;s first name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="lastName" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Person&apos;s last name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="phone" minOccurs="0" maxOccurs="unbounded" type="phone">
                <xs:annotation>
                    <xs:documentation>Phone number and type.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="email" minOccurs="0" maxOccurs="unbounded" type="email">
                <xs:annotation>
                    <xs:documentation>Contact email address (type and if verified).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="address" minOccurs="0" maxOccurs="unbounded" type="address">
                <xs:annotation>
                    <xs:documentation>Person&apos;s address.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="address">
        <xs:sequence>
            <xs:element name="address" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Street Address.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="city" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>City.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="zipCode" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Zip or postal code.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="state" minOccurs="0" type="state">
                <xs:annotation>
                    <xs:documentation>US State or territory.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="nonUsaState" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>If not in the United States, the state or province.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="country" minOccurs="0" type="country">
                <xs:annotation>
                    <xs:documentation>Country name or two letter country code.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="type" type="addressType">
            <xs:annotation>
                <xs:documentation>The type of address.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:simpleType name="addressType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Home" />
            <xs:enumeration value="Business" />
            <xs:enumeration value="Billing" />
            <xs:enumeration value="Shipping" />
            <xs:enumeration value="Technical" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="email">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="type" type="emailType" />
                <xs:attribute name="verified" type="xs:boolean" />
                <xs:attribute name="verificationDate" type="xs:dateTime" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="emailType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Home" />
            <xs:enumeration value="Work" />
            <xs:enumeration value="Business" />
            <xs:enumeration value="Recovery" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="phone">
        <xs:annotation>
            <xs:documentation>The complex type phone contains the phone number and if available, the phone type.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="type" type="phoneType" />
                <xs:attribute name="verified" type="xs:boolean" />
                <xs:attribute name="verificationDate" type="xs:dateTime" />
                <xs:attribute name="countryCallingCode" type="phoneCountryCallingCode" />
                <xs:attribute name="extension" type="phoneExtension" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="phoneType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Mobile" />
            <xs:enumeration value="Home" />
            <xs:enumeration value="Business" />
            <xs:enumeration value="Work" />
            <xs:enumeration value="Fax" />
            <xs:enumeration value="Internet" />
            <xs:enumeration value="Recovery" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="phoneCountryCallingCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="\+[0-9]{1,3}" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="phoneExtension">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]+" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="screenName">
        <xs:simpleContent>
            <xs:extension base="xs:string">
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="estimatedLocation">
        <xs:sequence>
            <xs:element name="city" minOccurs="0" type="xs:string" />
            <xs:element name="region" minOccurs="0" type="xs:string" />
            <xs:element name="countryCode" minOccurs="0" type="country" />
        </xs:sequence>
        <xs:attribute name="verified" type="xs:boolean" />
        <xs:attribute name="timestamp" type="xs:dateTime" />
    </xs:complexType>

    <xs:complexType name="batchedReport">
        <xs:attribute name="reason" use="required" type="batchedReportReason" />
    </xs:complexType>

    <xs:simpleType name="batchedReportReason">
        <xs:restriction base="xs:string">
            <xs:enumeration value="VIRAL_POTENTIAL_MEME" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="incidentType">
        <xs:annotation>
            <xs:documentation>This is an enumeration of all supported incident types. Originally, we only supported child pornography, but we have expanded to support child sex trafficking, child sex tourism, sexual molestation, misleading domain names, misleading worlds or images, online enticement, or unsolicited obscene material to a child.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Child Pornography (possession, manufacture, and distribution)" />
            <xs:enumeration value="Child Sex Trafficking" />
            <xs:enumeration value="Child Sex Tourism" />
            <xs:enumeration value="Child Sexual Molestation"/>
            <xs:enumeration value="Misleading Domain Name" />
            <xs:enumeration value="Misleading Words or Digital Images on the Internet" />
            <xs:enumeration value="Online Enticement of Children for Sexual Acts" />
            <xs:enumeration value="Unsolicited Obscene Material Sent to a Child" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="ipCaptureEvent">
        <xs:annotation>
            <xs:documentation>This represents the origination IP address of an action and when it occurred.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ipAddress" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The IP address from which the incident occurred.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="eventName" minOccurs="0" type="ipCaptureType">
                <xs:annotation>
                    <xs:documentation>Type of IP Address reported, e.g., Login, Registration, Upload, etc.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="dateTime" minOccurs="0" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>The time the incident occurred and the IP address was recorded.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="possibleProxy" minOccurs="0" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If the ESP has reason to believe this IP address is a proxy, please indicate this here.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="port" minOccurs="0" type="xs:int">
                <xs:annotation>
                    <xs:documentation>The port number of the IP address.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="deviceId">
        <xs:annotation>
            <xs:documentation>This represents the capture of a device ID.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="idType" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The type of device ID captured, e.g., IMEI, ICCID, SSID, etc..</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="idValue" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The value of the ID captured.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="eventName" minOccurs="0" type="ipCaptureType">
                <xs:annotation>
                    <xs:documentation>Event during which the company recorded the device ID capture reported, e.g., Login, Registration, Upload, etc..</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="dateTime" minOccurs="0" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>The time the incident occurred and the device ID was recorded.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="ipCaptureType">
        <xs:annotation>
            <xs:documentation>This defines the type of URL. Types include login, registration, etc. The available options are enumerated in the schema.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Login" />
            <xs:enumeration value="Registration" />
            <xs:enumeration value="Purchase" />
            <xs:enumeration value="Upload" />
            <xs:enumeration value="Other" />
            <xs:enumeration value="Unknown" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="latlong">
        <xs:annotation>
            <xs:documentation>The latitude or longitude is specified as a decimal number. Plus values represent north and east, negative values represents south and west.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:double" />
    </xs:simpleType>

    <xs:complexType name="reportedToLawEnforcement">
        <xs:simpleContent>
            <xs:extension base="xs:boolean">
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="accountTemporarilyDisabled">
        <xs:simpleContent>
            <xs:extension base="xs:boolean">
                <xs:attribute name="disabledDate" type="xs:dateTime" />
                <xs:attribute name="userNotified" type="xs:boolean" />
                <xs:attribute name="userNotifiedDate" type="xs:dateTime" />
                <xs:attribute name="reenabledDate" type="xs:dateTime" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="accountPermanentlyDisabled">
        <xs:simpleContent>
            <xs:extension base="xs:boolean">
                <xs:attribute name="disabledDate" type="xs:dateTime" />
                <xs:attribute name="userNotified" type="xs:boolean" />
                <xs:attribute name="userNotifiedDate" type="xs:dateTime" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="associatedAccount">
        <xs:sequence>
            <xs:element name="platform" minOccurs="0">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:annotation>
                                <xs:documentation>The full application name of the associated account.</xs:documentation>
                            </xs:annotation>
                            <xs:attribute name="thirdPartyUser" type="xs:boolean" />
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="firstName" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Associated account person's first name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="middleName" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Associated account person's middle name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="lastName" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Associated account person's last name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="approximateAge" minOccurs="0" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Associated account person's approximate age.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ageAssertionDiscrepancy" minOccurs="0" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>The asserted age for the associated account person conflicts with the reporter&apos;s determination of the associated account person's age.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="dateOfBirth" minOccurs="0" type="xs:date">
                <xs:annotation>
                    <xs:documentation>Associated account person's date of birth.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="phone" minOccurs="0" maxOccurs="unbounded" type="phone">
                <xs:annotation>
                    <xs:documentation>Contact phone number (type and if verified).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="email" minOccurs="0" maxOccurs="unbounded" type="email">
                <xs:annotation>
                    <xs:documentation>Contact email address (type and if verified).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="allEmailsReported" minOccurs="0" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>There are no additional emails to report.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="address" minOccurs="0" maxOccurs="unbounded" type="address">
                <xs:annotation>
                    <xs:documentation>Associated account's address.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="espService" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The name of the reporter's product or service that was used by the associated account during the incident.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="espIdentifier" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The unique ID of the associated account in the ESP's system (e.g., friend ID).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="profileUrl" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The identifying URL(s) for the associated account.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="screenName" minOccurs="0" type="screenName">
                <xs:annotation>
                    <xs:documentation>The screen name of the associated account.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="displayName" minOccurs="0" maxOccurs="unbounded" type="xs:string">
                <xs:annotation>
                    <xs:documentation>A display name, other than a screen name or a username, for the associated account.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="profileBio" minOccurs="0" type="text">
                <xs:annotation>
                    <xs:documentation>A copy of the user's bio as per their account according to the associated account's platform.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="groupIdentifier" minOccurs="0" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The ESP believes the associated account is engaged in an organized online group related to child sexual exploitation. This open text field is used to provide unique group identifiers (e.g., group name, group ID, etc.).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="compromisedAccount" minOccurs="0" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>This account has been compromised, hacked, or hijacked.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="accountTemporarilyDisabled" minOccurs="0" type="accountTemporarilyDisabled">
                <xs:annotation>
                    <xs:documentation>Whether the account was temporarily disabled at any point.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="accountPermanentlyDisabled" minOccurs="0" type="accountPermanentlyDisabled">
                <xs:annotation>
                    <xs:documentation>Whether the account was permanently disabled.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ipCaptureEvent" minOccurs="0" maxOccurs="unbounded" type="ipCaptureEvent">
                <xs:annotation>
                    <xs:documentation>An originating IP address used by the associated account and when it was used.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="deviceId" minOccurs="0" maxOccurs="unbounded" type="deviceId">
                <xs:annotation>
                    <xs:documentation>An ID for a device used by the associated account and, optionally, when it was used.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="priorCTReport" minOccurs="0" maxOccurs="unbounded" type="xs:long">
                <xs:annotation>
                    <xs:documentation>List of report ID numbers for any prior CyberTipline reports on this associated account.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="additionalInfo" minOccurs="0" type="text">
                <xs:annotation>
                    <xs:documentation>Any additional notes on this associated account.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="type" type="associatedAccountType" use="required" />
    </xs:complexType>

    <xs:simpleType name="associatedAccountType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Billing" />
            <xs:enumeration value="Linked" />
            <xs:enumeration value="Business" />
            <xs:enumeration value="Creator" />
            <xs:enumeration value="Parent/Guardian" />
            <xs:enumeration value="Other" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="fileRelevance">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Reported" />
            <xs:enumeration value="Supplemental Reported" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="fileAnnotations">
        <xs:all>
            <xs:element name="animeDrawingVirtualHentai" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the file depicting anime, drawing, cartoon, virtual or hentai?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="potentialMeme" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the file being shared/posted out of mimicry or other seemingly non-malicious intent?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="viral" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Is the file circulating rapidly from one user to another?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="possibleSelfProduction" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Does the file contain content that is believed to be self- produced?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="physicalHarm" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Does the file depict an intentional act of causing physical injury or trauma to a person?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="violenceGore" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Does the file depict graphic violence, including but not limited to acts of brutality or detailed or vivid gruesomeness?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="bestiality" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Does the file involve an animal(s)?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="liveStreaming" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Does the file depicts content that was streamed live at the time it was uploaded?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="infant" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Does the file depict an infant?</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="generativeAi" minOccurs="0" type="xs:boolean" fixed="true">
                <xs:annotation>
                    <xs:documentation>Does the file contain content that is believed to be Generative Artificial Intelligence?</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="fileClassification">
        <xs:restriction base="xs:string">
            <xs:enumeration value="A1" />
            <xs:enumeration value="A2" />
            <xs:enumeration value="B1" />
            <xs:enumeration value="B2" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="hash">
        <xs:annotation>
            <xs:documentation>The complex type hash contains a hash and hash type.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="hashType" use="required" type="xs:string" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="nameValue">
        <xs:sequence>
            <xs:element name="name" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The name of the meta data variable.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="value" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The value of the meta data variable.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="metadataTypes">
        <xs:restriction base="xs:string">
            <xs:enumeration value="EXIF" />
            <xs:enumeration value="HASH" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="country">
        <xs:annotation>
            <xs:documentation>This type supports the code of countries specified in the list of ISO 3166 Country Codes.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="" />
            <xs:enumeration value="A1">
                <xs:annotation>
                    <xs:documentation>Anonymous Proxy</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="A2">
                <xs:annotation>
                    <xs:documentation>Satellite Provider</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="O1">
                <xs:annotation>
                    <xs:documentation>Other Country</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AD">
                <xs:annotation>
                    <xs:documentation>Andorra</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AE">
                <xs:annotation>
                    <xs:documentation>United Arab Emirates</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AF">
                <xs:annotation>
                    <xs:documentation>Afghanistan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AG">
                <xs:annotation>
                    <xs:documentation>Antigua and Barbuda</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AI">
                <xs:annotation>
                    <xs:documentation>Anguilla</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AL">
                <xs:annotation>
                    <xs:documentation>Albania</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AM">
                <xs:annotation>
                    <xs:documentation>Armenia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AN">
                <xs:annotation>
                    <xs:documentation>Netherlands Antilles</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AO">
                <xs:annotation>
                    <xs:documentation>Angola</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AP">
                <xs:annotation>
                    <xs:documentation>Asia/Pacific Region</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AQ">
                <xs:annotation>
                    <xs:documentation>Antarctica</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AR">
                <xs:annotation>
                    <xs:documentation>Argentina</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AS">
                <xs:annotation>
                    <xs:documentation>American Samoa</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AT">
                <xs:annotation>
                    <xs:documentation>Austria</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AU">
                <xs:annotation>
                    <xs:documentation>Australia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AW">
                <xs:annotation>
                    <xs:documentation>Aruba</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AX">
                <xs:annotation>
                    <xs:documentation>Aland Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AZ">
                <xs:annotation>
                    <xs:documentation>Azerbaijan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BA">
                <xs:annotation>
                    <xs:documentation>Bosnia and Herzegovina</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BB">
                <xs:annotation>
                    <xs:documentation>Barbados</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BD">
                <xs:annotation>
                    <xs:documentation>Bangladesh</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BE">
                <xs:annotation>
                    <xs:documentation>Belgium</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BF">
                <xs:annotation>
                    <xs:documentation>Burkina Faso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BG">
                <xs:annotation>
                    <xs:documentation>Bulgaria</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BH">
                <xs:annotation>
                    <xs:documentation>Bahrain</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BI">
                <xs:annotation>
                    <xs:documentation>Burundi</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BJ">
                <xs:annotation>
                    <xs:documentation>Benin</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BL">
                <xs:annotation>
                    <xs:documentation>Saint Bartelemey</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BM">
                <xs:annotation>
                    <xs:documentation>Bermuda</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BN">
                <xs:annotation>
                    <xs:documentation>Brunei Darussalam</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BO">
                <xs:annotation>
                    <xs:documentation>Bolivia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BQ">
                <xs:annotation>
                    <xs:documentation>Bonaire, Sint Eustatius and Saba</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BR">
                <xs:annotation>
                    <xs:documentation>Brazil</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BS">
                <xs:annotation>
                    <xs:documentation>Bahamas</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BT">
                <xs:annotation>
                    <xs:documentation>Bhutan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BV">
                <xs:annotation>
                    <xs:documentation>Bouvet Island</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BW">
                <xs:annotation>
                    <xs:documentation>Botswana</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BY">
                <xs:annotation>
                    <xs:documentation>Belarus</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BZ">
                <xs:annotation>
                    <xs:documentation>Belize</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CA">
                <xs:annotation>
                    <xs:documentation>Canada</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC">
                <xs:annotation>
                    <xs:documentation>Cocos (Keeling) Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CD">
                <xs:annotation>
                    <xs:documentation>Congo, The Democratic Republic of the</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CF">
                <xs:annotation>
                    <xs:documentation>Central African Republic</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CG">
                <xs:annotation>
                    <xs:documentation>Congo</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CH">
                <xs:annotation>
                    <xs:documentation>Switzerland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CI">
                <xs:annotation>
                    <xs:documentation>Cote d&apos;Ivoire</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CK">
                <xs:annotation>
                    <xs:documentation>Cook Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CL">
                <xs:annotation>
                    <xs:documentation>Chile</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CM">
                <xs:annotation>
                    <xs:documentation>Cameroon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CN">
                <xs:annotation>
                    <xs:documentation>China</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CO">
                <xs:annotation>
                    <xs:documentation>Colombia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CR">
                <xs:annotation>
                    <xs:documentation>Costa Rica</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CU">
                <xs:annotation>
                    <xs:documentation>Cuba</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CV">
                <xs:annotation>
                    <xs:documentation>Cape Verde</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CX">
                <xs:annotation>
                    <xs:documentation>Christmas Island</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CW">
                <xs:annotation>
                    <xs:documentation>Curacao</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CY">
                <xs:annotation>
                    <xs:documentation>Cyprus</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CZ">
                <xs:annotation>
                    <xs:documentation>Czech Republic</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DE">
                <xs:annotation>
                    <xs:documentation>Germany</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DJ">
                <xs:annotation>
                    <xs:documentation>Djibouti</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DK">
                <xs:annotation>
                    <xs:documentation>Denmark</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DM">
                <xs:annotation>
                    <xs:documentation>Dominica</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DO">
                <xs:annotation>
                    <xs:documentation>Dominican Republic</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DZ">
                <xs:annotation>
                    <xs:documentation>Algeria</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EC">
                <xs:annotation>
                    <xs:documentation>Ecuador</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EE">
                <xs:annotation>
                    <xs:documentation>Estonia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EG">
                <xs:annotation>
                    <xs:documentation>Egypt</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EH">
                <xs:annotation>
                    <xs:documentation>Western Sahara</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ER">
                <xs:annotation>
                    <xs:documentation>Eritrea</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ES">
                <xs:annotation>
                    <xs:documentation>Spain</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ET">
                <xs:annotation>
                    <xs:documentation>Ethiopia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EU">
                <xs:annotation>
                    <xs:documentation>Europe</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FI">
                <xs:annotation>
                    <xs:documentation>Finland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FJ">
                <xs:annotation>
                    <xs:documentation>Fiji</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FK">
                <xs:annotation>
                    <xs:documentation>Falkland Islands (Malvinas)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FM">
                <xs:annotation>
                    <xs:documentation>Micronesia, Federated States of</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FO">
                <xs:annotation>
                    <xs:documentation>Faroe Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FR">
                <xs:annotation>
                    <xs:documentation>France</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FX">
                <xs:annotation>
                    <xs:documentation>France, Metropolitan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GA">
                <xs:annotation>
                    <xs:documentation>Gabon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GB">
                <xs:annotation>
                    <xs:documentation>United Kingdom</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GD">
                <xs:annotation>
                    <xs:documentation>Grenada</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GE">
                <xs:annotation>
                    <xs:documentation>Georgia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GF">
                <xs:annotation>
                    <xs:documentation>French Guiana</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GG">
                <xs:annotation>
                    <xs:documentation>Guernsey</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GH">
                <xs:annotation>
                    <xs:documentation>Ghana</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GI">
                <xs:annotation>
                    <xs:documentation>Gibraltar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GL">
                <xs:annotation>
                    <xs:documentation>Greenland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GM">
                <xs:annotation>
                    <xs:documentation>Gambia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GN">
                <xs:annotation>
                    <xs:documentation>Guinea</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GP">
                <xs:annotation>
                    <xs:documentation>Guadeloupe</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GQ">
                <xs:annotation>
                    <xs:documentation>Equatorial Guinea</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GR">
                <xs:annotation>
                    <xs:documentation>Greece</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GS">
                <xs:annotation>
                    <xs:documentation>South Georgia and the South Sandwich Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GT">
                <xs:annotation>
                    <xs:documentation>Guatemala</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GU">
                <xs:annotation>
                    <xs:documentation>Guam</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GW">
                <xs:annotation>
                    <xs:documentation>Guinea-Bissau</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GY">
                <xs:annotation>
                    <xs:documentation>Guyana</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HK">
                <xs:annotation>
                    <xs:documentation>Hong Kong</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HM">
                <xs:annotation>
                    <xs:documentation>Heard Island and McDonald Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HN">
                <xs:annotation>
                    <xs:documentation>Honduras</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HR">
                <xs:annotation>
                    <xs:documentation>Croatia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HT">
                <xs:annotation>
                    <xs:documentation>Haiti</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HU">
                <xs:annotation>
                    <xs:documentation>Hungary</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ID">
                <xs:annotation>
                    <xs:documentation>Indonesia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IE">
                <xs:annotation>
                    <xs:documentation>Ireland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IL">
                <xs:annotation>
                    <xs:documentation>Israel</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IM">
                <xs:annotation>
                    <xs:documentation>Isle of Man</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IN">
                <xs:annotation>
                    <xs:documentation>India</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IO">
                <xs:annotation>
                    <xs:documentation>British Indian Ocean Territory</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IQ">
                <xs:annotation>
                    <xs:documentation>Iraq</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IR">
                <xs:annotation>
                    <xs:documentation>Iran, Islamic Republic of</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IS">
                <xs:annotation>
                    <xs:documentation>Iceland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IT">
                <xs:annotation>
                    <xs:documentation>Italy</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JE">
                <xs:annotation>
                    <xs:documentation>Jersey</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JM">
                <xs:annotation>
                    <xs:documentation>Jamaica</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JO">
                <xs:annotation>
                    <xs:documentation>Jordan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JP">
                <xs:annotation>
                    <xs:documentation>Japan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KE">
                <xs:annotation>
                    <xs:documentation>Kenya</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KG">
                <xs:annotation>
                    <xs:documentation>Kyrgyzstan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KH">
                <xs:annotation>
                    <xs:documentation>Cambodia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KI">
                <xs:annotation>
                    <xs:documentation>Kiribati</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KM">
                <xs:annotation>
                    <xs:documentation>Comoros</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KN">
                <xs:annotation>
                    <xs:documentation>Saint Kitts and Nevis</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KP">
                <xs:annotation>
                    <xs:documentation>Korea, Democratic People&apos;s Republic of</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KR">
                <xs:annotation>
                    <xs:documentation>Korea, Republic of</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KW">
                <xs:annotation>
                    <xs:documentation>Kuwait</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KY">
                <xs:annotation>
                    <xs:documentation>Cayman Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KZ">
                <xs:annotation>
                    <xs:documentation>Kazakhstan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LA">
                <xs:annotation>
                    <xs:documentation>Lao People&apos;s Democratic Republic</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LB">
                <xs:annotation>
                    <xs:documentation>Lebanon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LC">
                <xs:annotation>
                    <xs:documentation>Saint Lucia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LI">
                <xs:annotation>
                    <xs:documentation>Liechtenstein</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LK">
                <xs:annotation>
                    <xs:documentation>Sri Lanka</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LR">
                <xs:annotation>
                    <xs:documentation>Liberia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LS">
                <xs:annotation>
                    <xs:documentation>Lesotho</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LT">
                <xs:annotation>
                    <xs:documentation>Lithuania</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LU">
                <xs:annotation>
                    <xs:documentation>Luxembourg</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LV">
                <xs:annotation>
                    <xs:documentation>Latvia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LY">
                <xs:annotation>
                    <xs:documentation>Libyan Arab Jamahiriya</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MA">
                <xs:annotation>
                    <xs:documentation>Morocco</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MC">
                <xs:annotation>
                    <xs:documentation>Monaco</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MD">
                <xs:annotation>
                    <xs:documentation>Moldova, Republic of</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ME">
                <xs:annotation>
                    <xs:documentation>Montenegro</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MF">
                <xs:annotation>
                    <xs:documentation>Saint Martin</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MG">
                <xs:annotation>
                    <xs:documentation>Madagascar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MH">
                <xs:annotation>
                    <xs:documentation>Marshall Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MK">
                <xs:annotation>
                    <xs:documentation>Macedonia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ML">
                <xs:annotation>
                    <xs:documentation>Mali</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MM">
                <xs:annotation>
                    <xs:documentation>Myanmar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MN">
                <xs:annotation>
                    <xs:documentation>Mongolia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MO">
                <xs:annotation>
                    <xs:documentation>Macao</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MP">
                <xs:annotation>
                    <xs:documentation>Northern Mariana Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MQ">
                <xs:annotation>
                    <xs:documentation>Martinique</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MR">
                <xs:annotation>
                    <xs:documentation>Mauritania</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MS">
                <xs:annotation>
                    <xs:documentation>Montserrat</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MT">
                <xs:annotation>
                    <xs:documentation>Malta</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MU">
                <xs:annotation>
                    <xs:documentation>Mauritius</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MV">
                <xs:annotation>
                    <xs:documentation>Maldives</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MW">
                <xs:annotation>
                    <xs:documentation>Malawi</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MX">
                <xs:annotation>
                    <xs:documentation>Mexico</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MY">
                <xs:annotation>
                    <xs:documentation>Malaysia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MZ">
                <xs:annotation>
                    <xs:documentation>Mozambique</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NA">
                <xs:annotation>
                    <xs:documentation>Namibia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NC">
                <xs:annotation>
                    <xs:documentation>New Caledonia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NE">
                <xs:annotation>
                    <xs:documentation>Niger</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NF">
                <xs:annotation>
                    <xs:documentation>Norfolk Island</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NG">
                <xs:annotation>
                    <xs:documentation>Nigeria</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NI">
                <xs:annotation>
                    <xs:documentation>Nicaragua</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NL">
                <xs:annotation>
                    <xs:documentation>Netherlands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NO">
                <xs:annotation>
                    <xs:documentation>Norway</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NP">
                <xs:annotation>
                    <xs:documentation>Nepal</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NR">
                <xs:annotation>
                    <xs:documentation>Nauru</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NU">
                <xs:annotation>
                    <xs:documentation>Niue</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NZ">
                <xs:annotation>
                    <xs:documentation>New Zealand</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OM">
                <xs:annotation>
                    <xs:documentation>Oman</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PA">
                <xs:annotation>
                    <xs:documentation>Panama</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PE">
                <xs:annotation>
                    <xs:documentation>Peru</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PF">
                <xs:annotation>
                    <xs:documentation>French Polynesia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PG">
                <xs:annotation>
                    <xs:documentation>Papua New Guinea</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PH">
                <xs:annotation>
                    <xs:documentation>Philippines</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PK">
                <xs:annotation>
                    <xs:documentation>Pakistan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PL">
                <xs:annotation>
                    <xs:documentation>Poland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PM">
                <xs:annotation>
                    <xs:documentation>Saint Pierre and Miquelon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PN">
                <xs:annotation>
                    <xs:documentation>Pitcairn</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PR">
                <xs:annotation>
                    <xs:documentation>Puerto Rico</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PS">
                <xs:annotation>
                    <xs:documentation>Palestinian Territory</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PT">
                <xs:annotation>
                    <xs:documentation>Portugal</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PW">
                <xs:annotation>
                    <xs:documentation>Palau</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PY">
                <xs:annotation>
                    <xs:documentation>Paraguay</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QA">
                <xs:annotation>
                    <xs:documentation>Qatar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RE">
                <xs:annotation>
                    <xs:documentation>Reunion</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RO">
                <xs:annotation>
                    <xs:documentation>Romania</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RS">
                <xs:annotation>
                    <xs:documentation>Serbia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RU">
                <xs:annotation>
                    <xs:documentation>Russian Federation</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RW">
                <xs:annotation>
                    <xs:documentation>Rwanda</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SA">
                <xs:annotation>
                    <xs:documentation>Saudi Arabia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SB">
                <xs:annotation>
                    <xs:documentation>Solomon Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SC">
                <xs:annotation>
                    <xs:documentation>Seychelles</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SD">
                <xs:annotation>
                    <xs:documentation>Sudan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SE">
                <xs:annotation>
                    <xs:documentation>Sweden</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SG">
                <xs:annotation>
                    <xs:documentation>Singapore</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SH">
                <xs:annotation>
                    <xs:documentation>Saint Helena</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SI">
                <xs:annotation>
                    <xs:documentation>Slovenia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SJ">
                <xs:annotation>
                    <xs:documentation>Svalbard and Jan Mayen</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SK">
                <xs:annotation>
                    <xs:documentation>Slovakia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SL">
                <xs:annotation>
                    <xs:documentation>Sierra Leone</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SM">
                <xs:annotation>
                    <xs:documentation>San Marino</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SN">
                <xs:annotation>
                    <xs:documentation>Senegal</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SO">
                <xs:annotation>
                    <xs:documentation>Somalia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SR">
                <xs:annotation>
                    <xs:documentation>Suriname</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SS">
                <xs:annotation>
                    <xs:documentation>South Sudan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ST">
                <xs:annotation>
                    <xs:documentation>Sao Tome and Principe</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SV">
                <xs:annotation>
                    <xs:documentation>El Salvador</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SX">
                <xs:annotation>
                    <xs:documentation>Sint Maarten (Dutch part)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SY">
                <xs:annotation>
                    <xs:documentation>Syrian Arab Republic</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SZ">
                <xs:annotation>
                    <xs:documentation>Swaziland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TC">
                <xs:annotation>
                    <xs:documentation>Turks and Caicos Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TD">
                <xs:annotation>
                    <xs:documentation>Chad</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TF">
                <xs:annotation>
                    <xs:documentation>French Southern Territories</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TG">
                <xs:annotation>
                    <xs:documentation>Togo</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TH">
                <xs:annotation>
                    <xs:documentation>Thailand</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TJ">
                <xs:annotation>
                    <xs:documentation>Tajikistan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TK">
                <xs:annotation>
                    <xs:documentation>Tokelau</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TL">
                <xs:annotation>
                    <xs:documentation>Timor-Leste</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TM">
                <xs:annotation>
                    <xs:documentation>Turkmenistan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TN">
                <xs:annotation>
                    <xs:documentation>Tunisia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TO">
                <xs:annotation>
                    <xs:documentation>Tonga</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TR">
                <xs:annotation>
                    <xs:documentation>Turkey</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TT">
                <xs:annotation>
                    <xs:documentation>Trinidad and Tobago</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TV">
                <xs:annotation>
                    <xs:documentation>Tuvalu</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TW">
                <xs:annotation>
                    <xs:documentation>Taiwan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TZ">
                <xs:annotation>
                    <xs:documentation>Tanzania, United Republic of</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UA">
                <xs:annotation>
                    <xs:documentation>Ukraine</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UG">
                <xs:annotation>
                    <xs:documentation>Uganda</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UM">
                <xs:annotation>
                    <xs:documentation>United States Minor Outlying Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="US">
                <xs:annotation>
                    <xs:documentation>United States</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UY">
                <xs:annotation>
                    <xs:documentation>Uruguay</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UZ">
                <xs:annotation>
                    <xs:documentation>Uzbekistan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VA">
                <xs:annotation>
                    <xs:documentation>Holy See (Vatican City State)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VC">
                <xs:annotation>
                    <xs:documentation>Saint Vincent and the Grenadines</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VE">
                <xs:annotation>
                    <xs:documentation>Venezuela</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VG">
                <xs:annotation>
                    <xs:documentation>Virgin Islands, British</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VI">
                <xs:annotation>
                    <xs:documentation>Virgin Islands, U.S.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VN">
                <xs:annotation>
                    <xs:documentation>Vietnam</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VU">
                <xs:annotation>
                    <xs:documentation>Vanuatu</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WF">
                <xs:annotation>
                    <xs:documentation>Wallis and Futuna</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WS">
                <xs:annotation>
                    <xs:documentation>Samoa</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XK">
                <xs:annotation>
                    <xs:documentation>Kosovo</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YE">
                <xs:annotation>
                    <xs:documentation>Yemen</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YT">
                <xs:annotation>
                    <xs:documentation>Mayotte</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZA">
                <xs:annotation>
                    <xs:documentation>South Africa</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZM">
                <xs:annotation>
                    <xs:documentation>Zambia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZW">
                <xs:annotation>
                    <xs:documentation>Zimbabwe</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="state">
        <xs:annotation>
            <xs:documentation>This type supports the two digit codes of the US states and territories. They are enumerated in the XML schema.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="" />
            <xs:enumeration value="AK">
                <xs:annotation>
                    <xs:documentation>Alaska</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AL">
                <xs:annotation>
                    <xs:documentation>Alabama</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AR">
                <xs:annotation>
                    <xs:documentation>Arkansas</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AZ">
                <xs:annotation>
                    <xs:documentation>Arizona</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CA">
                <xs:annotation>
                    <xs:documentation>California</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CO">
                <xs:annotation>
                    <xs:documentation>Colorado</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CT">
                <xs:annotation>
                    <xs:documentation>Connecticut</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DC">
                <xs:annotation>
                    <xs:documentation>District of Columbia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DE">
                <xs:annotation>
                    <xs:documentation>Delaware</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FL">
                <xs:annotation>
                    <xs:documentation>Florida</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GA">
                <xs:annotation>
                    <xs:documentation>Georgia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GU">
                <xs:annotation>
                    <xs:documentation>Guam</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HI">
                <xs:annotation>
                    <xs:documentation>Hawaii</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IA">
                <xs:annotation>
                    <xs:documentation>Iowa</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ID">
                <xs:annotation>
                    <xs:documentation>Idaho</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IL">
                <xs:annotation>
                    <xs:documentation>Illinois</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IN">
                <xs:annotation>
                    <xs:documentation>Indiana</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KS">
                <xs:annotation>
                    <xs:documentation>Kansas</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KY">
                <xs:annotation>
                    <xs:documentation>Kentucky</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LA">
                <xs:annotation>
                    <xs:documentation>Louisiana</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MA">
                <xs:annotation>
                    <xs:documentation>Massachusetts</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MD">
                <xs:annotation>
                    <xs:documentation>Maryland</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ME">
                <xs:annotation>
                    <xs:documentation>Maine</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MI">
                <xs:annotation>
                    <xs:documentation>Michigan</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MN">
                <xs:annotation>
                    <xs:documentation>Minnesota</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MO">
                <xs:annotation>
                    <xs:documentation>Missouri</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MS">
                <xs:annotation>
                    <xs:documentation>Mississippi</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MT">
                <xs:annotation>
                    <xs:documentation>Montana</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NC">
                <xs:annotation>
                    <xs:documentation>North Carolina</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ND">
                <xs:annotation>
                    <xs:documentation>North Dakota</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NE">
                <xs:annotation>
                    <xs:documentation>Nebraska</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NH">
                <xs:annotation>
                    <xs:documentation>New Hampshire</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NJ">
                <xs:annotation>
                    <xs:documentation>New Jersey</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NM">
                <xs:annotation>
                    <xs:documentation>New Mexico</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NV">
                <xs:annotation>
                    <xs:documentation>Nevada</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NY">
                <xs:annotation>
                    <xs:documentation>New York</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OH">
                <xs:annotation>
                    <xs:documentation>Ohio</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OK">
                <xs:annotation>
                    <xs:documentation>Oklahoma</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OR">
                <xs:annotation>
                    <xs:documentation>Oregon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PA">
                <xs:annotation>
                    <xs:documentation>Pennsylvania</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PR">
                <xs:annotation>
                    <xs:documentation>Puerto Rico</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RI">
                <xs:annotation>
                    <xs:documentation>Rhode Island</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SC">
                <xs:annotation>
                    <xs:documentation>South Carolina</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SD">
                <xs:annotation>
                    <xs:documentation>South Dakota</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TN">
                <xs:annotation>
                    <xs:documentation>Tennessee</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TX">
                <xs:annotation>
                    <xs:documentation>Texas</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UT">
                <xs:annotation>
                    <xs:documentation>Utah</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VA">
                <xs:annotation>
                    <xs:documentation>Virginia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VI">
                <xs:annotation>
                    <xs:documentation>Virgin Islands</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VT">
                <xs:annotation>
                    <xs:documentation>Vermont</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WA">
                <xs:annotation>
                    <xs:documentation>Washington</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WI">
                <xs:annotation>
                    <xs:documentation>Wisconsin</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WV">
                <xs:annotation>
                    <xs:documentation>West Virginia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WY">
                <xs:annotation>
                    <xs:documentation>Wyoming</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="reportResponse">
        <xs:annotation>
            <xs:documentation>This element is the root element of the response to a report, file or file details submittal.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="responseCode" type="xs:int">
                    <xs:annotation>
                        <xs:documentation>The response code returned from the submittal. 0 is success, any non-zero number is an error code defined in the documentation.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="responseDescription" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>The description of the error code or empty if the response is success.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="reportId" minOccurs="0" type="xs:long">
                    <xs:annotation>
                        <xs:documentation>The report ID about which this submittal is related.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="fileId" minOccurs="0" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>If a file was uploaded, the file ID of the file.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="hash" minOccurs="0" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>If a file was uploaded, the md5 hash of the file.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="reportDoneResponse">
        <xs:annotation>
            <xs:documentation>The final response from the server once the report has been submitted, all files and file details have been uploaded and the report done has been submitted.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="responseCode" type="xs:int">
                    <xs:annotation>
                        <xs:documentation>The response code returned from the submittal. 0 is success, any non-zero number is an error code defined in the documentation.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="reportId" type="xs:long" />
                <xs:element name="files">
                    <xs:annotation>
                        <xs:documentation>The list of files successfully uploaded.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="fileId" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
