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>