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>