<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.4">

  <xs:element name="DataSet" type="DataSet" >
    <xs:key name="KeyXml_PolicyID">
      <xs:selector xpath=".//Policy" />
      <xs:field xpath="@Xml_PolicyID" />
    </xs:key>
    <xs:key name="KeyXml_InsurerID">
      <xs:selector xpath=".//Insurer" />
      <xs:field xpath="@Xml_InsurerID" />
    </xs:key>
    <xs:key name="KeyXml_TransactionID">
      <xs:selector xpath=".//Transaction" />
      <xs:field xpath="@Xml_TransactionID" />
    </xs:key>
  </xs:element>

  <xs:complexType name="DataSet">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Brokerage" type="Brokerage" />
      <xs:element minOccurs="1" maxOccurs="1" name="BrokerPolicies" type="ArrayOfBrokerPolicy" />
    </xs:sequence>
    <xs:attribute name="SchemaVersion" type="xs:double" fixed="1.4" use="required"/>
    <xs:attribute name="ReportingState" type="StateCodeType" use="required"/>
    <xs:attribute name="SubmissionType" type="SubmissionType" use="required"/>
  </xs:complexType>

  <xs:complexType name="Brokerage">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="LicenseNumber" type="BrokerageLicenseNumberType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Name" type="BrokerageNameType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Contacts" type="ArrayOfContact" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="BrokerageLicenseNumberType">
    <xs:restriction base="AlphaNumericType">
      <xs:maxLength value="7" />
      <xs:minLength value="7" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SubmissionType">
    <xs:annotation>
      <xs:documentation>Submission Type (Single or Multistate and Agent or IPC)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="AgentSS">
        <xs:annotation>
          <xs:documentation>Single State Agent Filings</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="IPCSS">
        <xs:annotation>
          <xs:documentation>Single State IPC Filings</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AgentMS">
        <xs:annotation>
          <xs:documentation>Multi State Agent Filings</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="IPCMS">
        <xs:annotation>
          <xs:documentation>Multi State IPC Filings</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="BrokerageNameType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="150" />
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ArrayOfContact">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="2" name="Contact" type="ContactType" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ContactType">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <!-- see general types for below elements -->
      <xs:element minOccurs="1" maxOccurs="1" name="FirstName" type="FirstNameType" />
      <xs:element minOccurs="0" maxOccurs="1" name="MiddleName" type="MiddleNameType" />
      <xs:element minOccurs="1" maxOccurs="1" name="LastName" type="LastNameType" />
      <xs:element minOccurs="0" maxOccurs="1" name="NameSuffix" type="NameSuffixType" />
      <xs:element minOccurs="1" maxOccurs="1" name="EmailAddress" type="EmailAddressType" />
      <xs:element minOccurs="1" maxOccurs="1" name="ContactAddress" type="AddressType" />
      <xs:element minOccurs="1" maxOccurs="1" name="PhoneNumber" type="PhoneNumberType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Fax" type="FaxNumberType" />
    </xs:sequence>
    <xs:attribute name="ContactType" type="ContactTypeEnum" use="required"/>
  </xs:complexType>
  
  <xs:simpleType name="ContactTypeEnum">
    <xs:annotation>
      <xs:documentation>Contact Type</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="BillingContact">
        <xs:annotation>
          <xs:documentation>Billing Contact</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="SubmissionContact">
        <xs:annotation>
          <xs:documentation>Submission Contact</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Both">
        <xs:annotation>
          <xs:documentation>Both</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ArrayOfBrokerPolicy">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="BrokerPolicy" type="BrokerPolicy" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="BrokerPolicy">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Broker" type="Broker" />
      <xs:element minOccurs="0" maxOccurs="1" name="Policies" type="ArrayOfPolicy" />
    </xs:sequence>
  </xs:complexType>

  <!-- broker -->
  <xs:complexType name="Broker">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="LicenseNumber" type="BrokerLicenseNumberType" />
      <xs:element minOccurs="0" maxOccurs="1" name="BrokerInfo" type="BrokerInfo" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="BrokerLicenseNumberType">
    <xs:restriction base="AlphaNumericType">
      <xs:maxLength value="7" />
      <xs:minLength value="7" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="BrokerInfo">
    <xs:annotation>
      <xs:documentation>
        Only required field is Broker/Agent License. Broker/Agent Info entered will be considered an update to the Broker/Agent, and will be updated and stored.
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <!-- see general types for below elements -->
      <xs:element minOccurs="0" maxOccurs="1" name="FirstName" type="FirstNameType" />
      <xs:element minOccurs="0" maxOccurs="1" name="MiddleName" type="MiddleNameType" />
      <xs:element minOccurs="0" maxOccurs="1" name="LastName" type="LastNameType" />
      <xs:element minOccurs="0" maxOccurs="1" name="NameSuffix" type="NameSuffixType" />
      <xs:element minOccurs="0" maxOccurs="1" name="EmailAddress" type="EmailAddressType" />
      <xs:element minOccurs="0" maxOccurs="1" name="BrokerAddress" type="AddressType" />
      <xs:element minOccurs="0" maxOccurs="1" name="MailingAddress" type="AddressType" />
      <xs:element minOccurs="0" maxOccurs="1" name="PhoneNumber" type="PhoneNumberType" />
      <xs:element minOccurs="0" maxOccurs="1" name="Fax" type="FaxNumberType" />
    </xs:sequence>
  </xs:complexType>


  <!-- Policies (ArrayOfPolicy) -->
  <xs:complexType name="ArrayOfPolicy">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Policy" type="Policy" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Policy">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="PolicyNumber" type="PolicyNumberType" />
      <xs:element minOccurs="1" maxOccurs="1" name="ExpirationDate" type="xs:date" />
      <xs:element minOccurs="1" maxOccurs="1" name="InsuredName" type="NameType" />
      <xs:element minOccurs="1" maxOccurs="1" name="County" type="CountyType" />
      <xs:element minOccurs="1" maxOccurs="1" name="PostalCode" type="PostalCodeType"/>
      <xs:element minOccurs="1" maxOccurs="1" name="HomeState" type="StateCodeType"/>
      <xs:element minOccurs="0" maxOccurs="1" name="Comment" type="CommentType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Transactions" type="ArrayOfTransaction" />
    </xs:sequence>
    <xs:attribute name="CustomPolicyID" type="xs:string" use="optional" />
    <xs:attribute name="Xml_PolicyID" type="xs:nonNegativeInteger" use="required">
      <xs:annotation>
        <xs:documentation>Must be unique within the return</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <!-- PolicyNumberType -->
  <xs:simpleType name="PolicyNumberType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50" />
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="NameType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="75" />
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="CountyType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Alachua" />
      <xs:enumeration value="Baker" />
      <xs:enumeration value="Bay" />
      <xs:enumeration value="Bradford" />
      <xs:enumeration value="Brevard" />
      <xs:enumeration value="Broward" />
      <xs:enumeration value="Calhoun" />
      <xs:enumeration value="Charlotte" />
      <xs:enumeration value="Citrus" />
      <xs:enumeration value="Clay" />
      <xs:enumeration value="Collier" />
      <xs:enumeration value="Columbia" />
      <xs:enumeration value="Dade" />
      <xs:enumeration value="Desoto" />
      <xs:enumeration value="Dixie" />
      <xs:enumeration value="Duval" />
      <xs:enumeration value="Escambia" />
      <xs:enumeration value="Flagler" />
      <xs:enumeration value="Franklin" />
      <xs:enumeration value="Gadsden" />
      <xs:enumeration value="Gilchrist" />
      <xs:enumeration value="Glades" />
      <xs:enumeration value="Gulf" />
      <xs:enumeration value="Hamilton" />
      <xs:enumeration value="Hardee" />
      <xs:enumeration value="Hendry" />
      <xs:enumeration value="Hernando" />
      <xs:enumeration value="Highlands" />
      <xs:enumeration value="Hillsborough" />
      <xs:enumeration value="Holmes" />
      <xs:enumeration value="Indian River" />
      <xs:enumeration value="Jackson" />
      <xs:enumeration value="Jefferson" />
      <xs:enumeration value="Lafayette" />
      <xs:enumeration value="Lake" />
      <xs:enumeration value="Lee" />
      <xs:enumeration value="Leon" />
      <xs:enumeration value="Levy" />
      <xs:enumeration value="Liberty" />
      <xs:enumeration value="Madison" />
      <xs:enumeration value="Manatee" />
      <xs:enumeration value="Marion" />
      <xs:enumeration value="Martin" />
      <xs:enumeration value="Miami-Dade" />
      <xs:enumeration value="Monroe" />
      <xs:enumeration value="Multiple Counties" />
      <xs:enumeration value="Nassau" />
      <xs:enumeration value="Okaloosa" />
      <xs:enumeration value="Okeechobee" />
      <xs:enumeration value="Orange" />
      <xs:enumeration value="Osceola" />
      <xs:enumeration value="Palm Beach" />
      <xs:enumeration value="Pasco" />
      <xs:enumeration value="Pinellas" />
      <xs:enumeration value="Polk" />
      <xs:enumeration value="Putnam" />
      <xs:enumeration value="Santa Rosa" />
      <xs:enumeration value="Sarasota" />
      <xs:enumeration value="Seminole" />
      <xs:enumeration value="St. Johns" />
      <xs:enumeration value="St. Lucie" />
      <xs:enumeration value="Sumter" />
      <xs:enumeration value="Suwannee" />
      <xs:enumeration value="Taylor" />
      <xs:enumeration value="Union" />
      <xs:enumeration value="Volusia" />
      <xs:enumeration value="Wakulla" />
      <xs:enumeration value="Walton" />
      <xs:enumeration value="Washington" />
      <xs:enumeration value="ALACHUA" />
      <xs:enumeration value="BAKER" />
      <xs:enumeration value="BAY" />
      <xs:enumeration value="BRADFORD" />
      <xs:enumeration value="BREVARD" />
      <xs:enumeration value="BROWARD" />
      <xs:enumeration value="CALHOUN" />
      <xs:enumeration value="CHARLOTTE" />
      <xs:enumeration value="CITRUS" />
      <xs:enumeration value="CLAY" />
      <xs:enumeration value="COLLIER" />
      <xs:enumeration value="COLUMBIA" />
      <xs:enumeration value="DADE" />
      <xs:enumeration value="DESOTO" />
      <xs:enumeration value="DIXIE" />
      <xs:enumeration value="DUVAL" />
      <xs:enumeration value="ESCAMBIA" />
      <xs:enumeration value="FLAGLER" />
      <xs:enumeration value="FRANKLIN" />
      <xs:enumeration value="GADSDEN" />
      <xs:enumeration value="GILCHRIST" />
      <xs:enumeration value="GLADES" />
      <xs:enumeration value="GULF" />
      <xs:enumeration value="HAMILTON" />
      <xs:enumeration value="HARDEE" />
      <xs:enumeration value="HENDRY" />
      <xs:enumeration value="HERNANDO" />
      <xs:enumeration value="HIGHLANDS" />
      <xs:enumeration value="HILLSBOROUGH" />
      <xs:enumeration value="HOLMES" />
      <xs:enumeration value="INDIAN RIVER" />
      <xs:enumeration value="JACKSON" />
      <xs:enumeration value="JEFFERSON" />
      <xs:enumeration value="LAFAYETTE" />
      <xs:enumeration value="LAKE" />
      <xs:enumeration value="LEE" />
      <xs:enumeration value="LEON" />
      <xs:enumeration value="LEVY" />
      <xs:enumeration value="LIBERTY" />
      <xs:enumeration value="MADISON" />
      <xs:enumeration value="MANATEE" />
      <xs:enumeration value="MARION" />
      <xs:enumeration value="MARTIN" />
      <xs:enumeration value="MIAMI-DADE" />
      <xs:enumeration value="MONROE" />
      <xs:enumeration value="MULTIPLE COUNTIES" />
      <xs:enumeration value="NASSAU" />
      <xs:enumeration value="OKALOOSA" />
      <xs:enumeration value="OKEECHOBEE" />
      <xs:enumeration value="ORANGE" />
      <xs:enumeration value="OSCEOLA" />
      <xs:enumeration value="PALM BEACH" />
      <xs:enumeration value="PASCO" />
      <xs:enumeration value="PINELLAS" />
      <xs:enumeration value="POLK" />
      <xs:enumeration value="PUTNAM" />
      <xs:enumeration value="SANTA ROSA" />
      <xs:enumeration value="SARASOTA" />
      <xs:enumeration value="SEMINOLE" />
      <xs:enumeration value="ST. JOHNS" />
      <xs:enumeration value="ST. LUCIE" />
      <xs:enumeration value="SUMTER" />
      <xs:enumeration value="SUWANNEE" />
      <xs:enumeration value="TAYLOR" />
      <xs:enumeration value="UNION" />
      <xs:enumeration value="VOLUSIA" />
      <xs:enumeration value="WAKULLA" />
      <xs:enumeration value="WALTON" />
      <xs:enumeration value="WASHINGTON" />
    </xs:restriction>
  </xs:simpleType>

  <!-- ArrayOfTransaction -->
  <xs:complexType name="ArrayOfTransaction">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Transaction" type="Transaction" />
    </xs:sequence>
  </xs:complexType>

  <!-- Transaction -->
  <xs:complexType name="Transaction">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="CoverageCode" type="CoverCodeType" />
      <xs:element minOccurs="1" maxOccurs="1" name="TaxStatus" type="TaxStatusType" />
      <xs:element minOccurs="1" maxOccurs="1" name="TransactionType" type="TransactionType" />
      <xs:element minOccurs="1" maxOccurs="1" name="EffectiveDate" type="xs:date" />
      <xs:element minOccurs="0" maxOccurs="1" name="HurricaneDeductible" type="NetDecimalType" />
      <xs:element minOccurs="0" maxOccurs="1" name="WsCoverage" type="YesNoType" />
      <xs:element minOccurs="0" maxOccurs="1" name="WspEligible" type="YesNoType" />
      <xs:element minOccurs="0" maxOccurs="1" name="AopDeductible" type="NetDecimalType" />
      <xs:element minOccurs="0" maxOccurs="1" name="PrimaryAmount" type="NetDecimalType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Insurer" type="Insurer" />
      <xs:element minOccurs="1" maxOccurs="1" name="IssueDate" type="xs:date" />
      <xs:element minOccurs="1" maxOccurs="1" name="Premium" type="NetDecimalType" />
      <xs:element minOccurs="1" maxOccurs="1" name="PolicyFee" type="NetDecimalType" />
      <xs:element minOccurs="0" maxOccurs="1" name="LateExempt" type="YesNoType" />
      <xs:element minOccurs="0" maxOccurs="1" name="LateReason" type="LateReasonType" />
      <xs:element minOccurs="0" maxOccurs="1" name="UMR" type="UMRType" />
      <xs:element minOccurs="0" maxOccurs="1" name="Comment" type="CommentType" />
      <xs:element minOccurs="1" maxOccurs="unbounded" name="StateAllocations" type="ArrayOfAllocation"/>
    </xs:sequence>
    <xs:attribute name="CustomTransactionID" type="xs:string" use="optional"/>
    <xs:attribute name="Xml_TransactionID" type="xs:nonNegativeInteger" use="required">
      <xs:annotation>
        <xs:documentation>Must be unique within the return</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>



  <!-- ArrayOfAllocation -->
  <xs:complexType name="ArrayOfAllocation">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Allocation" type="AllocationType" />
    </xs:sequence>
  </xs:complexType>


  <!-- transaction elements -->
  <xs:complexType name="AllocationType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="StateAllocation" type="StateCodeType" />
      <xs:element minOccurs="1" maxOccurs="1" name="PremiumAllocation" type="NetDecimalType" />
      <xs:element minOccurs="1" maxOccurs="1" name="PolicyFeeAllocation" type="NetDecimalType" />
    </xs:sequence>
  </xs:complexType>

  <!-- transaction elements -->
  <xs:simpleType name="CoverCodeType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{4}" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TaxStatusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="0">
        <xs:annotation>
          <xs:documentation>TAXABLE</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>NON-TAXABLE AIRPORT LIABILITY, AIRCRAFT HULL LIABILITY</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>NON-TAXABLE GOVERNMENT</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>NON-TAXABLE MOTOR TRUCK CARGO, OCEAN MARINE, OCEAN MARINE CARGO</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>EMPA ONLY</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  
  <xs:simpleType name="TransactionType">
    <xs:annotation>
      <xs:documentation>Transaction Type</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="1">
        <xs:annotation>
          <xs:documentation>New Business</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="2">
        <xs:annotation>
          <xs:documentation>Additional Premium</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="3">
        <xs:annotation>
          <xs:documentation>Return Premium</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="4">
        <xs:annotation>
          <xs:documentation>Cancellation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="5">
        <xs:annotation>
          <xs:documentation>Renewal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="6">
        <xs:annotation>
          <xs:documentation>Reinstatement</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="11">
        <xs:annotation>
          <xs:documentation>Backout Of New Business</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="12">
        <xs:annotation>
          <xs:documentation>Backout Of Additional Premium</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="13">
        <xs:annotation>
          <xs:documentation>Backout Of Return Premium</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="14">
        <xs:annotation>
          <xs:documentation>Backout Of Cancellation</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="15">
        <xs:annotation>
          <xs:documentation>Backout Of Renewal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="16">
        <xs:annotation>
          <xs:documentation>Backout Of Reinstatement</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NetDecimalType">
    <xs:annotation>
      <xs:documentation>Type for a amount field with dollars and cents</xs:documentation>
    </xs:annotation>
    <xs:restriction base="NetPremiumDecimalType">
      <xs:totalDigits value="10" />
      <xs:minInclusive value="-99999999.99" />
      <xs:maxInclusive value="99999999.99" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NetPremiumDecimalType">
    <xs:annotation>
      <xs:documentation>4-digit decimal typically used by a decimal amount field (Percentage field).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:decimal">
      <xs:fractionDigits value="4" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="YesNoType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Y">
        <xs:annotation>
          <xs:documentation>Yes</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="N">
        <xs:annotation>
          <xs:documentation>No</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:complexType name="Insurer">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="NAICNumber" type="InsurerNAICType" />
    </xs:sequence>
    <xs:attribute name="Xml_InsurerID" type="xs:nonNegativeInteger" use="required">
      <xs:annotation>
        <xs:documentation>Must be unique within the return</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="InsurerNAICType">
    <xs:restriction base="AlphaNumericType">
      <xs:maxLength value="10" />
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="LateReasonType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="A">
        <xs:annotation>
          <xs:documentation>Audit policy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="B">
        <xs:annotation>
          <xs:documentation>Binder replacement</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="C">
        <xs:annotation>
          <xs:documentation>Correction</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F">
        <xs:annotation>
          <xs:documentation>Flat cancel with rewrite</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="I">
        <xs:annotation>
          <xs:documentation>Issue date</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="L">
        <xs:annotation>
          <xs:documentation>Late filing</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="O">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="R">
        <xs:annotation>
          <xs:documentation>Retroactive effective date</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="CommentType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="250" />
      <xs:minLength value="0" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="UMRType">
    <xs:annotation>
      <xs:documentation>
        The Unique Market Reference (UMR) number should be located on the policy's declaration page, and may also be referenced as either the Authority Reference Number, Reference Number, or Contract Number. If none of these fields exist on your declaration page, you should contact your U.S. wholesaler to obtain the UMR/Contract number.
        This number will always begin with the letter 'B' followed immediately by 4 digits (signifying the Lloyd's broker), and contain up to 12 alphanumeric characters for a maximum of 17 characters.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[Bb][0-9]{4}[a-zA-Z0-9]{1,12}" />
    </xs:restriction>
  </xs:simpleType>


  <!-- general types -->
  <xs:simpleType name="DecimalType">
    <xs:annotation>
      <xs:documentation>4-digit decimal typically used by a decimal amount field (Percentage field).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:decimal">
      <xs:fractionDigits value="4" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DecimalAmountType">
    <xs:annotation>
      <xs:documentation>Type for a amount field with dollars and cents (Max 100, Min 0)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="DecimalType">
      <xs:totalDigits value="7" />
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="100.0000" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="FirstNameType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50" />
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="MiddleNameType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30" />
      <xs:minLength value="0" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="LastNameType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50" />
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NameSuffixType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30" />
      <xs:minLength value="0" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="EmailAddressType">
    <xs:annotation>
      <xs:documentation>Used for an email address</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:maxLength value="75" />
      <xs:pattern value="\w+([\-+.']\w+)*@\w+([\-.]\w+)*\.\w+([\-.]\w+)*">
        <xs:annotation>
          <xs:documentation>Domain Name Email Address</xs:documentation>
        </xs:annotation>
      </xs:pattern>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="FaxNumberType">
    <xs:annotation>
      <xs:documentation>Used for a phone no. - 10 digits</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="([0-9]{10})" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="AddressType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Address">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="75" />
            <xs:minLength value="1" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="Address2">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="50" />
            <xs:minLength value="0" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="City">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="20" />
            <xs:minLength value="1" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:choice>
        <xs:element name="StateCode" type="StateCodeType">      </xs:element>
        <xs:element name="Province">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="30" />
              <xs:minLength value="1" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:choice>
      <xs:element minOccurs="1" maxOccurs="1" name="PostalCode" type="PostalCodeType"></xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="CountryCode">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="30" />
            <xs:minLength value="1" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="StateCodeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AL">
        <xs:annotation>
          <xs:documentation>Alabama</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AK">
        <xs:annotation>
          <xs:documentation>Alaska</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AZ">
        <xs:annotation>
          <xs:documentation>Arizona</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AR">
        <xs:annotation>
          <xs:documentation>Arkansas</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="DE">
        <xs:annotation>
          <xs:documentation>Delaware</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="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="HI">
        <xs:annotation>
          <xs:documentation>Hawaii</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="IA">
        <xs:annotation>
          <xs:documentation>Iowa</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="ME">
        <xs:annotation>
          <xs:documentation>Maine</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MD">
        <xs:annotation>
          <xs:documentation>Maryland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MA">
        <xs:annotation>
          <xs:documentation>Massachusetts</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="MS">
        <xs:annotation>
          <xs:documentation>Mississippi</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MO">
        <xs:annotation>
          <xs:documentation>Missouri</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="MT">
        <xs:annotation>
          <xs:documentation>Montana</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NE">
        <xs:annotation>
          <xs:documentation>Nebraska</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="NV">
        <xs:annotation>
          <xs:documentation>Nevada</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="NY">
        <xs:annotation>
          <xs:documentation>New York</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="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="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="VT">
        <xs:annotation>
          <xs:documentation>Vermont</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="VA">
        <xs:annotation>
          <xs:documentation>Virginia</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WA">
        <xs:annotation>
          <xs:documentation>Washington</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="WI">
        <xs:annotation>
          <xs:documentation>Wisconsin</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="WY">
        <xs:annotation>
          <xs:documentation>Wyoming</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="GU">
        <xs:annotation>
          <xs:documentation>GUAM</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="VI">
        <xs:annotation>
          <xs:documentation>U.S. Virgin Islands</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="NU">
        <xs:annotation>
          <xs:documentation>Non-USA</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:complexType name="PhoneNumberType">
    <xs:annotation>
      <xs:documentation>
        <xs:anyAttribute />
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="CountryCode" type="PartialPhoneNumberType" />
      <xs:element minOccurs="1" maxOccurs="1" name="AreaCode" type="AreaPrefixPhoneNumberType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Prefix" type="AreaPrefixPhoneNumberType" />
      <xs:element minOccurs="1" maxOccurs="1" name="Line" type="LinePhoneNumberType" />
      <xs:element minOccurs="0" maxOccurs="1" name="Extension" type="PartialPhoneNumberType" />
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="AreaPrefixPhoneNumberType">
    <xs:restriction base="NumericType">
      <xs:minLength value="3" />
      <xs:maxLength value="3" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="LinePhoneNumberType">
    <xs:restriction base="NumericType">
      <xs:minLength value="4" />
      <xs:maxLength value="4" />
    </xs:restriction>
  </xs:simpleType>
    
  <xs:simpleType name="PartialPhoneNumberType">
    <xs:restriction base="NumericType">
      <xs:minLength value="0" />
      <xs:maxLength value="5" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="PostalCodeType">
    <xs:annotation>
      <xs:documentation>ZIP Code - 5 digits plus optional 4. No dashes</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{5}(([0-9]{4}))?" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AlphaNumericType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Za-z0-9]*" />
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="NumericType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]*" />
    </xs:restriction>
  </xs:simpleType>

  
</xs:schema>
