XML Schema
Here is the current XML schema for Bullseye imports.
This schema is designated as "2013 2.3".
The current import program can accept schema 2.1, 2.2 and 2.3.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xs3p.xsl"?>
<!-- Bullseye Web Service location import schema file -->
<xs:schema targetNamespace="EVI.BullsEye" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:codegen="urn:schemas-microsoft-com:xml-msprop">
<xs:element name="BullseyeLocationImport">
<xs:complexType>
<xs:sequence>
<xs:element name="HeaderInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="BullseyeClientID" type="xs:int" />
<xs:element name="AdminApiKey" type="xs:string" minOccurs="0" />
<xs:element name="DateGenerated" type="xs:dateTime" />
<xs:element name="ThirdPartyID" type="xs:string" minOccurs="0" />
<xs:element name="ClientNotifyEmail" type="xs:string" minOccurs="0" />
<xs:element name="CSVImportControlID" type="xs:int" minOccurs="0" />
<xs:element name="ForceUpdate" type="xs:boolean" minOccurs="0" />
<xs:element name="Migrate" type="xs:boolean" minOccurs="0" />
<xs:element name="GeneratedLocation3rdPartyIDs" type="xs:boolean" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BullseyeCategories" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Category" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ThirdPartyId" type="xs:string" minOccurs="0" />
<xs:element name="CategoryData" type="xs:string" minOccurs="0" />
<xs:element name="ParentThirdPartyId" type="xs:string" minOccurs="0" />
<xs:element name="ImageFileURL" type="xs:string" minOccurs="0" />
<xs:element name="CategoryType" type="xs:int" minOccurs="0" />
<xs:element name="ToolTip" type="xs:string" minOccurs="0" />
<xs:element name="MigrationID" type="xs:string" minOccurs="0" />
<xs:element name="ParentMigrationID" type="xs:string" minOccurs="0" />
<xs:element name="CategoryGroupName" type="xs:string" minOccurs="0" />
<xs:element name="CategoryGroupMigrationID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BullseyeCategoryGroups" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="CategoryGroup" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="MigrationID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BullseyeTerritories" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Territory" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<!-- required & must be unique -->
<xs:element name="Name" type="xs:string" />
<!-- does not currently exist in the database. -->
<xs:element name="ThirdPartyId" type="xs:string" minOccurs="0" />
<!-- required. 1=US, 2=Canada, 3=Int'l, 4=Other Countries -->
<xs:element name="TypeId" type="xs:positiveInteger" />
<!-- only used for 'other countries' type -->
<xs:element name="CountryId" type="xs:positiveInteger" minOccurs="0" />
<xs:sequence>
<xs:element name="TerritoryItem" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<!-- 1=Country, 2=State, 3=Postal Code, 4=County, 5=City -->
<xs:element name="ItemTypeId" type="xs:positiveInteger" />
<!-- either ItemId or ItemName must be present. -->
<!-- for types 1 & 2, the appropriate Bullseye code should be in ItemId. -->
<!-- for types 3, 4, & 5, the appropriate data should be in ItemName. -->
<xs:element name="ItemId" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="ItemName" type="xs:string" minOccurs="0" />
<!-- required. true=include, false=exclude -->
<xs:element name="Include" type="xs:boolean" />
<xs:element name="CountryIdentifier" type="xs:string" minOccurs="0" />
<xs:element name="Region1Identifier" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="Category" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="ThirdPartyID" type="xs:string" minOccurs="0" />
<xs:element name="MigrationID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BullseyeCompanyNames" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="CompanyName" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="EmailDomain" type="xs:string" minOccurs="0" />
<xs:element name="ThirdPartyID" type="xs:string" minOccurs="0" />
<xs:element name="MigrationID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BullseyeLocations">
<xs:complexType>
<xs:sequence>
<xs:element name="Location" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<!-- ID and MemberID are not for client use. -->
<xs:element name="Active" type="xs:boolean" minOccurs="0" />
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="MemberID" type="xs:int" minOccurs="0" />
<xs:element name="ThirdPartyID" type="xs:string" minOccurs="0" />
<xs:element name="Name" type="xs:string"/>
<xs:element name="URL" type="xs:string" minOccurs="0" />
<xs:element name="LocationType" type="xs:string" minOccurs="0" />
<xs:element name="Address1" type="xs:string" minOccurs="0" />
<xs:element name="Address2" type="xs:string" minOccurs="0" />
<xs:element name="Address3" type="xs:string" minOccurs="0" />
<xs:element name="Address4" type="xs:string" minOccurs="0" />
<xs:element name="InternationalAddress" type="xs:string" minOccurs="0" />
<xs:element name="City" type="xs:string" minOccurs="0" />
<xs:element name="PostCode" type="xs:string" minOccurs="0" />
<xs:element name="StateAbbr" type="xs:string" minOccurs="0" />
<xs:element name="CountryCode" type="xs:string"/>
<xs:element name="EmailAddress" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9.+_%'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,14}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PhoneNumber" type="xs:string" minOccurs="0" />
<xs:element name="FaxNumber" type="xs:string" minOccurs="0" />
<xs:element name="MobileNumber" type="xs:string" minOccurs="0" />
<xs:element name="ContactName" type="xs:string" minOccurs="0" />
<xs:element name="ContactPosition" type="xs:string" minOccurs="0" />
<xs:element name="ContactURL" type="xs:string" minOccurs="0" />
<xs:element name="InternetLocation" type="xs:boolean"/>
<xs:element name="ResponsivenessRating" type="xs:string" minOccurs="0" />
<xs:element name="FacebookPageId" type="xs:string" minOccurs="0" />
<xs:element name="LeadManager" type="xs:boolean"/>
<xs:element name="StoreLocator" type="xs:boolean"/>
<xs:element name="RepID" type="xs:int" minOccurs="0" />
<xs:element name="TimeZoneID" type="xs:int" minOccurs="0" />
<xs:element name="MondayOpen" type="xs:time" minOccurs="0" />
<xs:element name="MondayClose" type="xs:time" minOccurs="0" />
<xs:element name="TuesdayOpen" type="xs:time" minOccurs="0" />
<xs:element name="TuesdayClose" type="xs:time" minOccurs="0" />
<xs:element name="WednesdayOpen" type="xs:time" minOccurs="0" />
<xs:element name="WednesdayClose" type="xs:time" minOccurs="0" />
<xs:element name="ThursdayOpen" type="xs:time" minOccurs="0" />
<xs:element name="ThursdayClose" type="xs:time" minOccurs="0" />
<xs:element name="FridayOpen" type="xs:time" minOccurs="0" />
<xs:element name="FridayClose" type="xs:time" minOccurs="0" />
<xs:element name="SaturdayOpen" type="xs:time" minOccurs="0" />
<xs:element name="SaturdayClose" type="xs:time" minOccurs="0" />
<xs:element name="SundayOpen" type="xs:time" minOccurs="0" />
<xs:element name="SundayClose" type="xs:time" minOccurs="0" />
<xs:element name="Latitude" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="9"/>
<xs:fractionDigits value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Longitude" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="9"/>
<xs:fractionDigits value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ImageURL" type="xs:string" minOccurs="0" />
<xs:element name="YelpPlaceID" type="xs:string" minOccurs="0" />
<xs:element name="GooglePlaceID" type="xs:string" minOccurs="0" />
<xs:sequence>
<xs:element name="Territory" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="LocAttribute" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="ValueBoolean" type="xs:boolean" minOccurs="0" />
<xs:element name="ValueString" type="xs:string" minOccurs="0" />
<xs:element name="ValueInteger" type="xs:int" minOccurs="0" />
<xs:element name="ValueOptionID" type="xs:int" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ValueOptionText" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ValueLinkURL" type="xs:string" minOccurs="0" />
<xs:element name="ValueLinkDisplayText" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="ComplexAttribute" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="SubAttribute" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="ValueBoolean" type="xs:boolean" minOccurs="0" />
<xs:element name="ValueString" type="xs:string" minOccurs="0" />
<xs:element name="ValueInteger" type="xs:int" minOccurs="0" />
<xs:element name="ValueOptionID" type="xs:int" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ValueOptionText" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ValueLinkURL" type="xs:string" minOccurs="0" />
<xs:element name="ValueLinkDisplayText" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="Category" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="ThirdPartyID" type="xs:string" minOccurs="0" />
<xs:element name="MigrationID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="SEO" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Title" type="xs:string" minOccurs="0" />
<xs:element name="MetaDescription" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="LandingPageImage" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="URL" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="SocialMediaLinks" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Facebook" type="xs:string" minOccurs="0" />
<xs:element name="Twitter" type="xs:string" minOccurs="0" />
<xs:element name="GooglePlus" type="xs:string" minOccurs="0" />
<xs:element name="Pinterest" type="xs:string" minOccurs="0" />
<xs:element name="LinkedIn" type="xs:string" minOccurs="0" />
<xs:element name="Yelp" type="xs:string" minOccurs="0" />
<xs:element name="Instagram" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="HolidayHours" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Holiday" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="Date" type="xs:date" />
<xs:element name="Closed" type="xs:boolean" minOccurs="0" />
<xs:element name="OpeningTime" type="xs:time" minOccurs="0" />
<xs:element name="ClosingTime" type="xs:time" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="Languages" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Language" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:int" />
<xs:element name="LocationName" type="xs:string" minOccurs="0" />
<xs:element name="Address1" type="xs:string" minOccurs="0" />
<xs:element name="Address2" type="xs:string" minOccurs="0" />
<xs:element name="Address3" type="xs:string" minOccurs="0" />
<xs:element name="Address4" type="xs:string" minOccurs="0" />
<xs:element name="City" type="xs:string" minOccurs="0" />
<xs:element name="ContactPosition" type="xs:string" minOccurs="0" />
<xs:sequence>
<xs:element name="LocAttribute" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:int" />
<xs:element name="ValueString" type="xs:string" minOccurs="0" />
<xs:element name="ValueLinkDisplayText" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="SEO" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Title" type="xs:string" minOccurs="0" />
<xs:element name="MetaDescription" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="CompanyName" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="ThirdPartyID" type="xs:string" minOccurs="0" />
<xs:element name="MigrationID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="LocationGroup" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- this attribute is used to indicate which version of the schema you are using. -->
<xs:attribute name="schemaVersion" use="required">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:pattern value="2.[1-3]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
Updated 11 months ago