<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="ProgrammersReference.xslt"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://ePocket.no/Handyman62/Api" targetNamespace="http://ePocket.no/Handyman62/Api" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="InstallationList">
		<xs:annotation>
			<xs:documentation>ePocket Handyman Office Import: Installations and customers</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Installation">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="InstallationID" minOccurs="1">
								<xs:annotation>
									<xs:documentation>Backoffice ID of the Installation, visible in GUI, must be unique (if not configured otherwise)</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="255"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="HSInstallationID" minOccurs="1">
								<xs:annotation>
									<xs:documentation>Handyman ID of the Installation, visible in GUI (readonly), will overwrite if found</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:integer">
									</xs:restriction>
								</xs:simpleType>
							</xs:element><xs:element name="InstallationOrigin" minOccurs="0">
								<xs:simpleType>
									<xs:annotation>
										<xs:appinfo>0=Own (default), 1=Preinstalled</xs:appinfo>
										<xs:documentation>Defaults apply if tag is not provided</xs:documentation>
									</xs:annotation>
									<xs:restriction base="xs:integer">
										<xs:enumeration value="0"/>
										<xs:enumeration value="1"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Name" minOccurs="1">
								<xs:annotation>
									<xs:documentation>Friendly name of the Site/Installation</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="255"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Site" minOccurs="1">
								<xs:simpleType>
									<xs:annotation>
										<xs:appinfo>0=Equipment, 1=Site</xs:appinfo>
									</xs:annotation>
									<xs:restriction base="xs:integer">
										<xs:enumeration value="0"/>
										<xs:enumeration value="1"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="HSEquipmentTypeID" minOccurs="0">
								<xs:simpleType>
									<xs:annotation>
										<xs:documentation>Internal id, if tag exists, use it instead of EquipmentTypeID</xs:documentation>
									</xs:annotation>
									<xs:restriction base="xs:integer"/>
								</xs:simpleType>
							</xs:element>
							<xs:element name="EquipmentTypeID" minOccurs="0">
								<xs:annotation>
									<xs:documentation>ID of the equipment type must exist in Handyman</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="20"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Address" minOccurs="0" maxOccurs="1">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Address1">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="40"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="StreetNo" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="10"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Address2">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="40"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="PostalCode">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="10"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="PostalArea">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="30"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="AddressName" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Optional name of address</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="60"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Longitude" type="xs:integer" minOccurs="0">
											<xs:annotation>
												<xs:documentation>WGS84 format (in millionths of degree)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Latitude" type="xs:integer" minOccurs="0">
											<xs:annotation>
												<xs:documentation>WGS84 format (in millionths of degree)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Address3" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="50"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Address4" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="50"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Country" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Country codes according to ISO 3166-1 alpha-2.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="2"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>						
							<xs:element name="InstallationIDParent" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Equipment must have a Site as parent. Only Site may be without parent.</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="255"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="HSDepartmentID" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Internal ID of the department, must exist in Handyman. DepartmentID can be provided instead</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:integer"/>
								</xs:simpleType>
							</xs:element>
							<xs:element name="DepartmentID" nillable="true" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="20"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="ResponsibleNo" minOccurs="1">
								<xs:annotation>
									<xs:documentation>ID of the employee responsible for the installation, must exist in Handyman</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="20"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="PreferredEmployee1No" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>ID of the first preferred technician, must exist in Handyman</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="20"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="PreferredEmployee2No" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>ID of the second preferred technician, must exist in Handyman</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="20"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Status" nillable="true" minOccurs="0">
								<xs:simpleType>
									<xs:annotation>
										<xs:appinfo>0=New (default for equipment), 1=Installed (default for site), 2=Paused, 3=Historical</xs:appinfo>
										<xs:documentation>Defaults apply if tag is not provided</xs:documentation>
									</xs:annotation>
									<xs:restriction base="xs:integer">
										<xs:enumeration value="0"/>
										<xs:enumeration value="1"/>
										<xs:enumeration value="2"/>
										<xs:enumeration value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="CategoryID" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>ID of the equipment category, must exist in Handyman. Can be left blank if EquipmentTypeID is provided</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="20"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="InstalledDate" type="xs:date" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Date the installation was set to installed. Imported if State > 0. In this case value is mandatory. Not updated if date exists in Handyman</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="LastServiceDate" type="xs:date" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Date of the last service order. Not updated if date exists in Handyman</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="LastRepairDate" type="xs:date" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Date of the last repair order. Not updated if date exists in Handyman</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="WarrantyStartDate" type="xs:date" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Date warrenty starts, not imported for sites</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="WarrantyPeriod" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Duration of the warranty period in months, not imported for sites</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:integer"/>
								</xs:simpleType>
							</xs:element>
							<xs:element name="ScannerID" nillable="true" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="255"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="TravelDistance" type="xs:decimal" nillable="true" minOccurs="0"/>
							<xs:element name="EstimatedTravelTime" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Estimated travel time in seconds</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:integer"/>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Picture" type="xs:base64Binary" minOccurs="0">
								<xs:annotation>
									<xs:appinfo>Binary representation of picture</xs:appinfo>
									<xs:documentation>Use this tag to send the picture as binary data</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="EquipmentPlaced" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Not imported for sites</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="8000"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="EquipmentServes" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Not imported for sites</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="8000"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Manufacturer" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Not imported for sites</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="255"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="ManufacturingDate" type="xs:date" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Not imported for sites</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Model" nillable="true" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Not imported for sites</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="255"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="SerialNumber" nillable="true" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:maxLength value="255"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Comment" type="xs:string" nillable="true" minOccurs="0"/>
							<xs:element name="Customer" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>A simpler customer import. For advanced features import customers first via customer import</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="CustomerNo">
											<xs:annotation>
												<xs:documentation>Creates new customer if not found</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="20"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="CustomerName" nillable="true" minOccurs="0">
											<xs:annotation>
												<xs:documentation>The rest is optional and ignored if customer exists</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="40"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Address" minOccurs="0" maxOccurs="1">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Address1">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="40"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="StreetNo" minOccurs="0">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="10"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="Address2">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="40"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="PostalCode">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="10"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="PostalArea">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="30"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="AddressName" minOccurs="0">
														<xs:annotation>
															<xs:documentation>Optional name of address</xs:documentation>
														</xs:annotation>
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="60"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="Longitude" type="xs:integer" minOccurs="0">
														<xs:annotation>
															<xs:documentation>WGS84 format (in millionths of degree)</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Latitude" type="xs:integer" minOccurs="0">
														<xs:annotation>
															<xs:documentation>WGS84 format (in millionths of degree)</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Address3" minOccurs="0">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="50"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="Address4" minOccurs="0">
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="50"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="Country" minOccurs="0">
														<xs:annotation>
															<xs:documentation>Country codes according to ISO 3166-1 alpha-2.</xs:documentation>
														</xs:annotation>
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:maxLength value="2"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="Telephone1" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="20"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Telephone2" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="20"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Comment" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="255"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Email" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="255"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="SendToAll" minOccurs="0">
											<xs:simpleType>
												<xs:annotation>
													<xs:appinfo>0=Don’t send, 1=Send, 2=Keep current setting in HS if customer exists, otherwise set to 1</xs:appinfo>
												</xs:annotation>
												<xs:restriction base="xs:integer">
													<xs:enumeration value="0"/>
													<xs:enumeration value="1"/>
													<xs:enumeration value="2"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="VATNumber" minOccurs="0">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="20"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Company" minOccurs="0">
											<xs:simpleType>
												<xs:annotation>
													<xs:appinfo>0=No, 1=Yes</xs:appinfo>
													<xs:documentation>To indicate if this customer is a company. For information only</xs:documentation>
												</xs:annotation>
												<xs:restriction base="xs:integer">
													<xs:enumeration value="0"/>
													<xs:enumeration value="1"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="ContactName" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Only contact name supported</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:maxLength value="50"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
