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.
⚠️ Schema Notes: Legacy Business Hours The individual daily opening and closing elements (e.g., MondayOpen, MondayClose, etc.) are currently commented out in the schema as they belong to the legacy version.
Status: Deprecated / Old Version.
**Activation: **To enable these fields, the following flag must be activated: DoNotUseMultipleHours
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" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(.+@.+\..+;)*(.+@.+\..+)?" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<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:element name="BusinessHours" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Hours" minOccurs="1"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<!-- required. 1=Sunday, 2=Monday,
3=Tuesday, 4=Wednesday, 5=Thursday,
6=Friday, 7=Saturday -->
<xs:element name="DaysOfWeekId"
minOccurs="0">
<xs:simpleType>
<xs:restriction
base="xs:int">
<xs:minInclusive
value="1" />
<xs:maxInclusive
value="7" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- required. 1=Open, 2=Close, 3=24
Hours -->
<xs:element name="StatusId">
<xs:simpleType>
<xs:restriction
base="xs:int">
<xs:enumeration
value="1" />
<xs:enumeration
value="2" />
<xs:enumeration
value="3" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="HolidayId"
type="xs:int" minOccurs="0" />
<xs:element name="Date"
type="xs:date" minOccurs="0" />
<xs:element name="Name"
type="xs:string" minOccurs="0" />
<xs:element name="IsSpecialHour"
type="xs:boolean" minOccurs="0" />
<xs:sequence>
<xs:element name="DetailsHours"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<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:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<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 9 days ago