Schema Name: LiftInfo.xsd
Collapse XSD Schema Code:

<!--Created with Liquid XML 2015 Editor Edition 13.2.3.6018 (http://www.liquid-technologies.com)-->
<!-- Standard Elevator Information Schema (2003 to date) by Jonathan Beebe is licensed under a Creative Commons Attribution 4.0 International License. Based on a work at http://www.std4lift.info/ -->
<!-- Version 1.0 - Draft proposal 28-02-2003 -->
<!-- Version 1.1 - Draft:  modified with corrections 29-12-2003 -->
<!-- Version 1.2 - Draft:  naming revisions 22-05-2005 -->
<!-- Version 1.3 - Draft:  Building renamed as Location for greater applicability. ExceptionEventType introduced 05-04-2006 -->
<!-- Version 1.4 - Draft:  Alarm modified. ServiceEvent, CarModeEvent, GroupPowerStatusEvent, Event added 19-04-2006 -->
<!-- Version 1.4.1 - Draft:  Bug Fix: to be replaced by v1.5 12-05-2006 -->
<!-- Version 1.4.2 - Draft:   -->
<!-- Version 1.4.3 - Draft:   Added LoactionID attribute and CarStaticData to Location -->
<!-- Version 1.4.4 - Draft Made CarDirection a common Simple Type 13-07-2006-->
<!-- Version 1.5    - Draft: Compliant with CIBSE Guide D (2000) Chap 14 ;
							   Added complex DoorEvent and DriveEvent choices; Allowed for 2 Doors;  19-08-2006-->
<!-- Version 1.5.1 - Draft Modified OutOfServiceCycle and added AlarmEvent 01-09-2006-->
<!-- Version 1.5.2 - Draft Modified EventType NOT to be Extension of LogEventType 21-09-2006-->
<!-- Version 2.0 - Stabilised 01-02-2007 Added to subversion Repository 31-12-2009-->
<!-- Version 3.0 - Released 19-08-2015 Included options for multiple doors and decks per car. Added concept of Shaft. Added optional element "AssignedTo" to LandingCallType. Minor fixes.-->
<!-- Version 3.1 - Released 05-01-2016 Added FloorStop, TravelPlan and FlightTime-->
<!-- Version 3.2 - Released 15-01-2016 Added Call Rank. Moved Demand inside DynamicData so it is associated with a Car or Group. Added Time-Date to DynamicData  -->
<!-- Version 3.3 - Released 04-05-2016 Added Reference Energy Profile to StaticData. Added FloorsServed to DoorProfile   -->
<!-- Version 3.4 - Released 08-01-2017 Added Passengers per LandingCall   -->
<!-- Version 3.4.1 - Released 04-12-2017 Demand Profile Distribution can be - Recorded (ie from live data)  -->
<!-- Version 3.5 - Released  05-05-2018 Added CarFloorType (replaces FloorNumber in several references) -->
<!-- Version 3.5.1 - Released  08-07-2018 Added ApproachDelay to CallRegistration -->
<!-- Version 4.0.0 - Released  09-04-2019 Added ID, Status and Bids list to LandingCall. 
                     Added CallAnswer event and State. Added BidType and Cost Type.
                     Fix spelling of "CallCancellation" -->
<!-- Version 4.0.1 - Released  15-01-2020 Fix CarFloorType. -->
<!-- Version 4.1.0 - Released  08-02-2022 Added MayBeReassigned to LandingCallType. -->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="4.0.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="LiftInformation" type="LiftInformationType">
        <xs:annotation>
            <xs:documentation>Root element for all types of Lift Information.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="LiftInformationType">
        <xs:annotation>
            <xs:documentation>A general container for all types of Lift Information. This element can contain any number of the various types of information.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="StaticData" type="StaticDataType" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="DynamicData" type="DynamicDataType" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="Event" type="LogEventType" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="Exception" type="ExceptionEventType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="GroupDynamicData">
        <xs:annotation>
            <xs:documentation>Collection of data describing the current status of dynamic properties of a Group such as calls registered.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Car" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="CarDynamicData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="RegisteredCalls" type="CallSet" minOccurs="0" />
            <xs:element name="Demand" type="DemandProfile" minOccurs="0" />
            <xs:element name="GroupMode" type="GroupMode" minOccurs="0" />
            <xs:element name="PowerMode" type="PowerMode" minOccurs="0" />
        </xs:sequence>
        <xs:attribute name="ID" type="GroupID" use="required" />
    </xs:complexType>
    <xs:complexType name="CarDynamicData">
        <xs:annotation>
            <xs:documentation>Collection of data describing the current status of dynamic properties of a Car such as calls registered, current position and service status.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Status" type="CarStatus" minOccurs="0" />
            <xs:element name="Floor" type="CarFloorType" minOccurs="0" />
            <xs:element name="Direction" type="CarDirection" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>The current committed direction of travel of the car. If the car is slowing to a floor where it is committed to reverse, it's Direction will already be the committed departure direction.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="RegisteredCalls" type="CallSet" minOccurs="0" />
            <xs:element name="Route" type="TravelPlan" minOccurs="0" />
            <xs:element name="Demand" type="DemandProfile" minOccurs="0" />
            <xs:element name="DoorState" type="DoorState" minOccurs="0" />
            <xs:element name="Alarm" minOccurs="0">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="State">
                            <xs:attributeGroup ref="ST" />
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="Door" minOccurs="0" maxOccurs="2">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="DoorDynamicData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="Drive" minOccurs="0">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="DriveDynamicData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="Safety" minOccurs="0">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="State">
                            <xs:attributeGroup ref="ST" />
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="Mode" type="CarMode" minOccurs="0" />
            <xs:element name="Load" type="CarLoad" minOccurs="0" />
            <xs:element name="Stop" minOccurs="0">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="State">
                            <xs:attributeGroup ref="ST" />
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="Energy" type="EnergyProfile" minOccurs="0" />
            <xs:element name="InShaft" type="ShaftID" minOccurs="0" />
        </xs:sequence>
        <xs:attribute name="ID" type="CarID" use="required" />
    </xs:complexType>
    <xs:complexType name="LogEventType">
        <xs:annotation>
            <xs:documentation>Timestamp for event data.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="NoServiceCycle" type="NoServiceCycle" />
            <xs:element name="CarModeEvent" type="CarModeEvent" />
            <xs:element name="AlarmEvent">
                <xs:complexType>
                    <xs:attribute name="State" type="State" use="required" />
                </xs:complexType>
            </xs:element>
            <xs:element name="GroupModeEvent" type="GroupMode" />
            <xs:element name="PowerModeEvent">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Mode" type="PowerMode" />
                        <xs:element name="Supply" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="CallCycle" type="CallCycle" />
            <xs:element name="Register" type="CallRegistration" />
            <xs:element name="Assign" type="CallAssignment" />
            <xs:element name="DeAssign" type="CallDeassignment" />
            <xs:element name="Answer" type="CallAnswer" />
            <xs:element name="Cancel" type="CallCancellation" />
            <xs:element name="Demand" type="DemandProfile" />
            <xs:element name="FloorEvent" type="CarFloorEvent" />
            <xs:element name="Trip" type="Trip" />
            <xs:element name="ShaftEvent" type="CarShaftEvent" />
            <xs:element name="DriveEvent" type="DriveEvent" />
            <xs:element name="DoorCycle" type="DoorCycle" />
            <xs:element name="DoorEvent" type="DoorEvent" />
            <xs:element name="LoadEvent">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="CarLoad" />
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:choice>
        <xs:attributeGroup ref="ED" />
    </xs:complexType>
    <xs:complexType name="ExceptionEventType">
        <xs:annotation>
            <xs:documentation>Non-standard activity is reported using an Exception, which will define incidents such as Door Close Timeout, Failure To Move, Clipped Door Lock during high-speed travel, etc.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="DoorCloseException">
                <xs:annotation>
                    <xs:documentation>Door closing time-out.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DoorOpenException">
                <xs:annotation>
                    <xs:documentation>Door opening time-out.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DoorHoldException" type="ExceptionType">
                <xs:annotation>
                    <xs:documentation>Door hold pressed for more than 90 seconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DoorObstructionException">
                <xs:annotation>
                    <xs:documentation>Safe edge or photocell operated for more than 90 seconds.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DoorLockException">
                <xs:annotation>
                    <xs:documentation>Door lock unset during travel.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Floor of Door Exception.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="LockType">
                                    <xs:annotation>
                                        <xs:documentation>Landing or Car door lock.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="CarDoorLock" />
                                            <xs:enumeration value="LandingDoorLock" />
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:element>
                                <xs:element name="Direction" type="Direction">
                                    <xs:annotation>
                                        <xs:documentation>Direction of travel.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DoorZoneException">
                <xs:annotation>
                    <xs:documentation>Car stopped outside door zone.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="FloorAbove" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Floor above car.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="FloorBelow" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Floor below car.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DoorOperationException">
                <xs:annotation>
                    <xs:documentation>Number of Door Operations exceeded - for maintenance record.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="NumberOfOperations" type="xs:integer">
                                    <xs:annotation>
                                        <xs:documentation>Number of door operations since count started.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DriveOvertravelException">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Limit">
                                    <xs:annotation>
                                        <xs:documentation>Top or Bottom overtravel limit.</xs:documentation>
                                    </xs:annotation>
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:enumeration value="Top" />
                                            <xs:enumeration value="Bottom" />
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DriveOverspeedException">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Direction" type="Direction">
                                    <xs:annotation>
                                        <xs:documentation>Direction of car travel.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DriveOperationException">
                <xs:annotation>
                    <xs:documentation>Number of Car Trips exceeded - for maintenance record.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="NumberOfOperations" type="xs:integer">
                                    <xs:annotation>
                                        <xs:documentation>Number of door operations since count started.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DriveStartException">
                <xs:annotation>
                    <xs:documentation>Drive failed to start.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Direction" type="Direction">
                                    <xs:annotation>
                                        <xs:documentation>Direction of travel.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DriveTripException">
                <xs:annotation>
                    <xs:documentation>Drive failed to start.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="TripDuration" type="xs:duration">
                                    <xs:annotation>
                                        <xs:documentation>Elapsed since since start of trip.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Direction" type="Direction">
                                    <xs:annotation>
                                        <xs:documentation>Direction of travel.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DriveOverloadException">
                <xs:annotation>
                    <xs:documentation>Drive overload protection tripped.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Direction" type="Direction">
                                    <xs:annotation>
                                        <xs:documentation>Direction of travel.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="DriveRelevellingException">
                <xs:annotation>
                    <xs:documentation>Car re-levelling at floor.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Direction" type="Direction">
                                    <xs:annotation>
                                        <xs:documentation>Direction of relevelling travel.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="CarOutOfServiceException">
                <xs:annotation>
                    <xs:documentation>Duration of OutOfService period exceeded - for maintenance record.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="OutOfServiceDuration" type="xs:duration">
                                    <xs:annotation>
                                        <xs:documentation>Period elapsed since since count started.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="CarOverloadException">
                <xs:annotation>
                    <xs:documentation>Car maximum load exceeded.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Floor" type="CarFloorType">
                                    <xs:annotation>
                                        <xs:documentation>Current car floor.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="PowerException">
                <xs:annotation>
                    <xs:documentation>Power supply lost when other power is normal.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Supply" type="PowerSupplyType">
                                    <xs:annotation>
                                        <xs:documentation>Type of supply.</xs:documentation>
                                    </xs:annotation>
                                </xs:element>
                                <xs:element name="Mode" type="PowerModeEvent" />
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="TemperatureException">
                <xs:annotation>
                    <xs:documentation>Maximum operating temperature exceeded.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ExceptionType">
                            <xs:sequence>
                                <xs:element name="Location">
                                    <xs:annotation>
                                        <xs:documentation>Location of temperature sensor.</xs:documentation>
                                    </xs:annotation>
                                    <xs:complexType>
                                        <xs:attribute name="LocationID" type="xs:string" use="required" />
                                        <xs:attribute name="GroupID" type="xs:string" use="optional" />
                                        <xs:attribute name="CarID" type="xs:string" use="optional" />
                                        <xs:attribute name="Floor" type="FloorID" use="optional" />
                                    </xs:complexType>
                                </xs:element>
                            </xs:sequence>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:choice>
        <xs:attributeGroup ref="ED" />
    </xs:complexType>
    <xs:complexType name="CarCallType">
        <xs:annotation>
            <xs:documentation>Data describing demand registered for a specific car in terms of a destination floor.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Floor" type="FloorNumber" />
            <xs:element name="Deck" type="DeckNumber" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="LandingCallType">
        <xs:annotation>
            <xs:documentation>Data describing demand registered for a specific group in terms of an origin floor and a destination floor or direction of travel.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Floor" type="FloorNumber" />
            <xs:choice>
                <xs:element name="Direction" type="Direction" />
                <xs:element name="Destination" type="FloorNumber" />
            </xs:choice>
            <xs:element name="Passengers" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1" default="1">
                <xs:annotation>
                    <xs:documentation>The number of passengers waiting at this call (0 allows for machine internally generated "pseudo" call).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="AssignedTo" type="AssignedToType" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>If the LandingCall has been assigned, the object of the assignment is described here.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="MayBeReassigned" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
            <xs:element name="Status" type="CallStatus" minOccurs="0" />
            <xs:element name="Bids" type="BidType" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ParkCallType">
        <xs:annotation>
            <xs:documentation>Data describing internal system demand registered for a specific car in terms of a destination floor.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Floor" type="FloorNumber" />
            <xs:element name="AssignedTo" type="AssignedToType" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>If the ParkCall has been assigned, the object of the assignment is described here.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CallSet">
        <xs:annotation>
            <xs:documentation>Set of currently registered calls.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="CallData" />
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="CallCycle">
        <xs:annotation>
            <xs:documentation>Complete history of a call from original registration to final response to demand possibly including multiple assignments and de-assignments.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Registration" type="CallRegistration" />
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Assignment" type="CallAssignment" />
                <xs:element name="Deassignment" type="CallDeassignment" />
            </xs:sequence>
            <xs:element name="Answer" type="CallAnswer" />
            <xs:element name="Cancellation" type="CallCancellation" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CallRegistration">
        <xs:annotation>
            <xs:documentation>Initial registration of demand as a call.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="CallData">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="CallData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="ApproachDelay" type="xs:duration" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>There may be a delay between the time of registration of a LandingCall and the time the passenger arrives at the origin floor landing to be in a position to enter an assigned car.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CallCancellation">
        <xs:annotation>
            <xs:documentation>Final cancellation of demand following response to a call.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="CallData">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="CallData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CallAnswer">
        <xs:annotation>
            <xs:documentation>Car arrives in response to a call and accepts passenger(s).</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="CallData">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="CallData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CallAssignment">
        <xs:annotation>
            <xs:documentation>Assignment of a call to a specific car which is to provide service.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:sequence>
                <xs:element name="AssignedTo" type="CarID" />
            </xs:sequence>
            <xs:element name="CallData" type="CallData" />
            <xs:element name="ResponseQuality" type="ResponseType" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CallDeassignment">
        <xs:annotation>
            <xs:documentation>Removal of assignment from a specific car. Usually accompanies re-assignment to a different car.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:sequence>
                <xs:element name="AssignedTo" type="CarID" />
            </xs:sequence>
            <xs:element name="CallData">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="CallData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CallData">
        <xs:annotation>
            <xs:documentation>Details of origin and destination floors or required direction of travel.</xs:documentation>
        </xs:annotation>
        <xs:choice maxOccurs="unbounded">
            <xs:element name="CarCall">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="CarCallType">
                            <xs:attributeGroup ref="ST" />
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="LandingCall">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="LandingCallType">
                            <xs:attributeGroup ref="ST" />
                            <xs:attribute name="Cost" type="CostType" use="optional" />
                            <xs:attribute name="Rank" type="RankType" />
                            <xs:attribute name="ID" type="CallID" use="optional">
                                <xs:annotation>
                                    <xs:documentation>Uniquely identify this call</xs:documentation>
                                </xs:annotation>
                            </xs:attribute>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="ParkCall">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="ParkCallType">
                            <xs:attribute name="StartTime" type="xs:time" use="optional" />
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="AssignedToType">
        <xs:attribute name="Car" type="CarID" use="required" />
        <xs:attribute name="Deck" type="DeckNumber" use="optional" />
        <xs:attribute name="Shaft" type="ShaftID" use="optional" />
        <xs:attributeGroup ref="TD" />
    </xs:complexType>
    <xs:complexType name="TravelPlan">
        <xs:annotation>
            <xs:documentation>A sequence of stops (implying that the car movements will follow this sequence in the same order even if it is not the shortest 'route') detailing, at each stop, the passenger movements and timings. Does NOT include the current Floor for a stationary car.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Stop" type="FloorStop" minOccurs="1" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ResponseType">
        <xs:annotation>
            <xs:documentation>Characterisation of the quality of response provided for a specific demand.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ExpectedResponseTime" type="Seconds" />
            <xs:element name="AverageResponseTime" type="Seconds" />
            <xs:element name="Thresholds">
                <xs:complexType>
                    <xs:attribute name="ThresholdConstant" type="xs:integer" use="required" />
                    <xs:attribute name="HiThresholdTime" type="Seconds" use="optional" />
                    <xs:attribute name="ThresholdLoad" type="xs:integer" use="optional" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="FloorStop">
        <xs:annotation>
            <xs:documentation>Combined information relating to a car stopping at a floor to allow passengers to enter and/or leave a car.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Floor" type="CarFloorType" />
            <xs:element name="RegisteredCalls" type="CallSet" minOccurs="0" maxOccurs="1" />
            <xs:element name="PassengersArriving" type="xs:integer" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Passengers traveling in the car when it stops moving at the floor</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="PassengersExiting" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Passengers exiting the car at the floor (assume passengers exit before any enter)</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="Count" type="xs:integer" use="required" />
                    <xs:attribute name="PTT" type="Seconds" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="PassengersEntering" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Passengers entering the car at the floor</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="Count" type="xs:integer" use="required" />
                    <xs:attribute name="PTT" type="Seconds" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="PassengersLeaving" type="xs:integer" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>Passengers traveling in the car when it starts moving from the floor</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Timing" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="Duration" type="Seconds" />
                        <xs:element name="Times">
                            <xs:annotation>
                                <xs:documentation>These are absolute times</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:attribute name="ArrivalTime" type="xs:dateTime" use="required" />
                                <xs:attribute name="DepartureTime" type="xs:dateTime" use="optional" />
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="TimesAfter">
                            <xs:annotation>
                                <xs:documentation>These are times relative to the start of the TravelPlan to which the FloorStop belongs</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                                <xs:attribute name="ArrivalTime" type="Seconds" use="required" />
                                <xs:attribute name="DepartureTime" type="Seconds" use="optional" />
                            </xs:complexType>
                        </xs:element>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DriveDynamicData">
        <xs:annotation>
            <xs:documentation>Collection of data describing the current status of dynamic properties of the Drive of a Car.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Command" type="DriveCommand" />
            <xs:element name="NextPossibleStopFloor" type="CarFloorType" />
            <xs:element name="SpeedControl" type="DriveSpeedControl" />
            <xs:element name="Position">
                <xs:annotation>
                    <xs:documentation>Position value increases with distance from lowest reference point in shaft (Absolute) or reference floor number below (Relative).</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="Absolute" type="xs:long" />
                        <xs:element name="Relative">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="Floor" type="FloorNumber" />
                                    <xs:element name="FloorDistance" type="xs:long" />
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
            <xs:element name="Energy" type="EnergyProfile" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DriveEvent">
        <xs:annotation>
            <xs:documentation>Change of state of car drive occurring during a Trip.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:annotation>
                <xs:documentation>Choose, as appropriate, between a simple report of Drive State or complete description of the Drive Controller.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="DriveState" type="DriveCommand" />
            </xs:sequence>
            <xs:element name="Drive">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="DriveDynamicData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="NoServiceCycle">
        <xs:annotation>
            <xs:documentation>The chain of service related events from a car becoming out-of-service to its return to in-service status.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="OutOfServiceEvent">
                <xs:complexType>
                    <xs:attribute name="Status" type="CarStatus" use="required" />
                    <xs:attributeGroup ref="ED" />
                </xs:complexType>
            </xs:element>
            <xs:element name="RelatedServiceEvent" type="CarModeEvent" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="InServiceEvent" minOccurs="0">
                <xs:complexType>
                    <xs:attribute name="Status" type="CarStatus" use="required" />
                    <xs:attributeGroup ref="ED" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="NoServicePeriod" type="xs:duration" use="required" />
    </xs:complexType>
    <xs:complexType name="CarModeEvent">
        <xs:annotation>
            <xs:documentation>Change of service status of a car.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="State" type="State" use="required" />
        <xs:attribute name="Reason" type="CarMode" use="required" />
    </xs:complexType>
    <xs:complexType name="GroupModeEvent">
        <xs:annotation>
            <xs:documentation>Change of service status of a group.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="State" type="State" use="required" />
        <xs:attribute name="Reason" type="GroupMode" use="required" />
    </xs:complexType>
    <xs:complexType name="PowerModeEvent">
        <xs:annotation>
            <xs:documentation>Change of mode of the operating power supply.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="State" type="State" use="required" />
        <xs:attribute name="Reason" type="PowerMode" use="required" />
    </xs:complexType>
    <xs:complexType name="Trip">
        <xs:annotation>
            <xs:documentation>Complete Car movement cycle from origin to destination floor including floors passed.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Origin" type="CarFloorType" />
            <xs:element name="Destination" type="CarFloorType" />
            <xs:element name="Passed" type="FloorSet" minOccurs="0" />
            <xs:element name="Direction" type="Direction" />
            <xs:element name="Profile" type="SpeedProfile" minOccurs="0" />
            <xs:element name="FlightTime" type="Seconds">
                <xs:annotation>
                    <xs:documentation>Period that the car is in motion.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CarFloorEvent">
        <xs:annotation>
            <xs:documentation>Change of floor position of a specific car. This may not be the actual physical location of the car since it is the Next Possible Stopping Floor for a car in, or about be in, motion.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="NextStopFloor" type="CarFloorType" />
            <xs:element name="CarDirection" type="CarDirection" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="CarShaftEvent">
        <xs:annotation>
            <xs:documentation>In some systems, it is possible for a car to move from one shaft to another and/or for a single shaft to be occupied by multiple cars.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="CarShaft" type="ShaftID" />
            <xs:element name="CarDirection" type="CarDirection" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DoorDynamicData">
        <xs:annotation>
            <xs:documentation>Collection of data describing the current status of dynamic properties of one set of car doors.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Command" type="DoorOperation" />
            <xs:element name="Closed" type="State" />
            <xs:element name="Opened" type="State" />
            <xs:element name="LimitedOpened" type="State" minOccurs="0" />
            <xs:element name="LandingLocks" type="State" minOccurs="0" />
            <xs:element name="Obstructed" type="State" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Safe-edge or photo-cell obstruction detector.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="DoorZone" type="State" minOccurs="0" />
            <xs:element name="HoldOpen" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Passenger Door Open button or switch.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="State">
                            <xs:attributeGroup ref="ST" />
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="EndOpen" type="State" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Passenger Door Close button.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Overload" minOccurs="0">
                <xs:complexType>
                    <xs:attributeGroup ref="ST" />
                </xs:complexType>
            </xs:element>
            <xs:element name="Energy" type="EnergyProfile" minOccurs="0" />
        </xs:sequence>
        <xs:attribute name="ID" type="DoorID" use="optional" />
    </xs:complexType>
    <xs:complexType name="DoorCycle">
        <xs:annotation>
            <xs:documentation>Complete cycle of car doors from Closed though opening and back to closed.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="NotClosed">
                <xs:complexType>
                    <xs:attribute name="State" type="State" use="required" />
                    <xs:attributeGroup ref="ED" />
                </xs:complexType>
            </xs:element>
            <xs:element name="Opened" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="State" type="State" use="required" />
                    <xs:attributeGroup ref="ED" />
                </xs:complexType>
            </xs:element>
            <xs:element name="Closed">
                <xs:complexType>
                    <xs:attribute name="State" type="State" use="required" />
                    <xs:attributeGroup ref="ED" />
                </xs:complexType>
            </xs:element>
            <xs:element name="LimitedOpened" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="State" type="State" use="required" />
                    <xs:attributeGroup ref="ED" />
                </xs:complexType>
            </xs:element>
            <xs:element name="Locked" minOccurs="0">
                <xs:complexType>
                    <xs:attribute name="State" type="State" use="required" />
                    <xs:attributeGroup ref="ED" />
                </xs:complexType>
            </xs:element>
            <xs:element name="Profile" minOccurs="0">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="DoorProfile" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="ID" type="DoorID" />
    </xs:complexType>
    <xs:complexType name="DoorEvent">
        <xs:annotation>
            <xs:documentation>Change of state of car doors occuring during a Door Cycle.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:annotation>
                <xs:documentation>Choose, as appropriate, between a simple report of Door State or complete description of the Door Controller.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="DoorState" maxOccurs="2">
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="DoorState">
                                <xs:attribute name="State" type="xs:boolean" use="required" />
                                <xs:attribute name="ID" type="xs:string" use="optional" />
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:element name="Door" type="DoorDynamicData" maxOccurs="2" />
        </xs:choice>
        <xs:attribute name="ID" type="DoorID" />
    </xs:complexType>
    <xs:complexType name="CarLoadEvent">
        <xs:annotation>
            <xs:documentation>Change in car loading as a percentage of Rated Capacity.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="Load" type="CarLoad" use="required" />
        <xs:attribute name="Deck" type="DeckNumber" />
    </xs:complexType>
    <xs:complexType name="CarStaticData">
        <xs:annotation>
            <xs:documentation>Static data defining the characteristics of a specific car.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:choice>
                <xs:element name="FloorsServed" type="FloorSet" />
                <xs:element name="Decks" type="DeckData" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>A Car may have more than one Deck, each of which may serve a different (or unique) floor set.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element name="SpeedProfile" type="SpeedProfile" />
            <xs:choice minOccurs="0" maxOccurs="1">
                <xs:element name="DoorProfile" type="DoorProfile" />
                <xs:element name="Doors" type="DoorProfile" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>A Car may have several Doors, each of which may serve a different (or unique) floor set or control access to separate parts of the same floor.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element name="RatedCapacity" type="xs:integer" />
            <xs:element name="ReferenceEnergy" type="ReferenceEnergyProfile" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="ID" type="CarID" use="required" />
    </xs:complexType>
    <xs:complexType name="GroupStaticData">
        <xs:annotation>
            <xs:documentation>Static data defining the characteristics of a specific group.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Name" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Group name suitable for presentation in visual displays.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Algorithm" type="ControlAlgorithm" />
            <xs:element name="Zone" type="FloorRange" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="Car" type="CarStaticData" maxOccurs="unbounded" />
            <xs:element name="GroundFloor" type="FloorNumber" minOccurs="0" />
            <xs:element name="PriorityFloors" minOccurs="0">
                <xs:complexType>
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element name="Floor" type="FloorNumber" />
                        <xs:element name="WeightingFactor" type="xs:integer" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="NamedFloor" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="Floor" type="FloorNumber" use="required" />
                    <xs:attribute name="Name" type="xs:string" use="required" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="ID" type="GroupID" use="required" />
    </xs:complexType>
    <xs:complexType name="LocationStaticData">
        <xs:annotation>
            <xs:documentation>Static data defining the characteristics of a specific location.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="LocationName" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Just the location name. Location address, contact details, etc should be part of another information domain.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Group" type="GroupStaticData" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="Car" type="CarStaticData" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="ID" type="LocationID" use="required" />
    </xs:complexType>
    <xs:complexType name="SpeedProfile">
        <xs:annotation>
            <xs:documentation>Static data defining the dynamics of car interfloor travel.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="RatedSpeed" type="Speed" />
            <xs:element name="TimeToRatedSpeed">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="10.00" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="TimeToStop">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="20.00" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="InterfloorFlightTimes">
                <xs:annotation>
                    <xs:documentation>Use floor jumps rather than velocity and distance to reduce need for subsequent calculation.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence maxOccurs="unbounded">
                        <xs:element name="FlightTime" type="Seconds" />
                        <xs:element name="TripDistance" type="FloorRange" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Decks" type="xs:integer" minOccurs="0" />
            <xs:element name="Acceleration">
                <xs:simpleType>
                    <xs:restriction base="xs:decimal" />
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="DoorProfile">
        <xs:annotation>
            <xs:documentation>Static data defining the dynamics of car door operation.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="TimeToOpen">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:minInclusive value="0" />
                        <xs:maxInclusive value="10.0" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="TimeToClose">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="10.0" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="DwellTime">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="10.0" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="PreOpenlTime" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Pre- or advance door opening time. Doors start to open when the car enters the door-zone and before it is stationary at a floor.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="10.00" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="ShortDwellTime" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="10.00" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="TimeToLimitedOpen" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="10.0" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="TimeToLimitedClose" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="Seconds">
                        <xs:maxInclusive value="10.0" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="FloorsServed" type="FloorSet" minOccurs="0" maxOccurs="1" />
        </xs:sequence>
        <xs:attribute name="ID" type="DoorID" />
    </xs:complexType>
    <xs:complexType name="LocationDynamicData">
        <xs:annotation>
            <xs:documentation>Collection of data describing the current status of dynamic properties of the Location environment.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Group" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="GroupDynamicData" />
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="Car" type="CarDynamicData" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="Demand" type="DemandProfile" minOccurs="0" />
        </xs:sequence>
        <xs:attribute name="ID" type="LocationID" use="required" />
    </xs:complexType>
    <xs:complexType name="DynamicDataType">
        <xs:annotation>
            <xs:documentation>Collection of data describing the current status (i.e. at a specific Time and Date) of dynamic properties of the environment such as calls registered, current position and service status.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="Location" type="LocationDynamicData" maxOccurs="unbounded" />
            <xs:element name="Group" type="GroupDynamicData" maxOccurs="unbounded" />
            <xs:element name="Car" type="CarDynamicData" maxOccurs="unbounded" />
        </xs:choice>
        <xs:attributeGroup ref="TD" />
    </xs:complexType>
    <xs:complexType name="StaticDataType">
        <xs:annotation>
            <xs:documentation>Collection of data describing the non-changing aspects of the environment.</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="Location" type="LocationStaticData" maxOccurs="unbounded" />
            <xs:element name="Group" type="GroupStaticData" maxOccurs="unbounded" />
            <xs:element name="Car" type="CarStaticData" maxOccurs="unbounded" />
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="DemandProfile">
        <xs:annotation>
            <xs:documentation>Definition of the distribution of demand, in terms of call registration or passenger arrival, for a set of floors over one or more periods of time.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Period" type="xs:time">
                <xs:annotation>
                    <xs:documentation>Default period is 1 hour.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Distribution" type="Distribution" />
            <xs:element name="MaxDemandRate" type="xs:integer" />
            <xs:element name="Sample" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Period" type="xs:time">
                            <xs:annotation>
                                <xs:documentation>Default period is 5 minutes.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="Distribution" type="Distribution" default="Constant" />
                        <xs:element name="FloorRates">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="FloorSetDemandRate" maxOccurs="unbounded">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="DestinationRate">
                                                    <xs:complexType>
                                                        <xs:choice>
                                                            <xs:element name="FloorRate" maxOccurs="unbounded">
                                                                <xs:complexType>
                                                                    <xs:attribute name="Floor" type="FloorNumber" use="required" />
                                                                    <xs:attribute name="Rate" type="xs:integer" use="required" />
                                                                </xs:complexType>
                                                            </xs:element>
                                                            <xs:element name="DirectionRate" maxOccurs="2">
                                                                <xs:complexType>
                                                                    <xs:attribute name="Direction" type="Direction" use="required" />
                                                                    <xs:attribute name="Rate" type="xs:integer" use="required" />
                                                                </xs:complexType>
                                                            </xs:element>
                                                        </xs:choice>
                                                    </xs:complexType>
                                                </xs:element>
                                                <xs:element name="Floors" type="FloorSet" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="ResponseQuality" type="ResponseType" minOccurs="0" />
                    </xs:sequence>
                    <xs:attribute name="SequenceNumber" type="xs:integer" use="required" />
                    <xs:attribute name="Repeats" type="xs:integer" use="optional">
                        <xs:annotation>
                            <xs:documentation>The number of times this sample is repeated sequentially.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="DemandType" type="DemandType" use="required">
            <xs:annotation>
                <xs:documentation>Demand may be expressed in terms of Calls (the system perspective) or Passenger Arrivals (the user perspective).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="CarFloorType">
        <xs:simpleContent>
            <xs:extension base="FloorNumber">
                <xs:attribute name="Deck" type="DeckNumber" use="optional">
                    <xs:annotation>
                        <xs:documentation>If the car has more than one passenger deck the FloorNumber must be qualified by the deck which is at that floor.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="Shaft" type="ShaftID" use="optional">
                    <xs:annotation>
                        <xs:documentation>If the car can move between shafts the FloorNumber must be qualified by the shaft which the car will occupy at that floor.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="FloorRange">
        <xs:annotation>
            <xs:documentation>Range of floors between low and high FloorNumbers.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="LowFloor" type="FloorNumber" />
            <xs:element name="HighFloor" type="FloorNumber" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="FloorSet">
        <xs:annotation>
            <xs:documentation>Collection of Floors and Floor Ranges.</xs:documentation>
        </xs:annotation>
        <xs:choice maxOccurs="unbounded">
            <xs:element name="Range" type="FloorRange" />
            <xs:element name="Floor" type="FloorNumber" />
        </xs:choice>
        <xs:attribute name="Shaft" type="ShaftID" use="optional">
            <xs:annotation>
                <xs:documentation>Optionally, a FloorSet may be made specific to a Shaft.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="DeckData">
        <xs:sequence>
            <xs:element name="FloorsServed" type="FloorSet" />
        </xs:sequence>
        <xs:attribute name="DeckNumber" type="DeckNumber" />
    </xs:complexType>
    <xs:complexType name="ExceptionType">
        <xs:annotation>
            <xs:documentation>Exceptions have an Exception Code and Description to describe the exception. Also an Exception can contain other exceptions because they arrise from multiple causes.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Code" type="xs:string" />
            <xs:element name="Description" type="xs:string" />
            <xs:element name="LiftInformation" type="LiftInformationType">
                <xs:annotation>
                    <xs:documentation>The context and cause of an Exception can best be described by including further Dynamic and Event LiftInformation as well as further Exceptions which may themselves identify the trigger for this Exception.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="EnergyProfile">
        <xs:annotation>
            <xs:documentation>Definition of the distribution of energy consumption over one or more periods of time.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Period" default="PT1H">
                <xs:annotation>
                    <xs:documentation>Default period is 1 hour.</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:duration">
                        <xs:minInclusive value="PT1M" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="Maximum" type="xs:decimal" />
            <xs:element name="Mean" type="xs:decimal" />
            <xs:element name="Deviation" type="xs:decimal" />
            <xs:element name="Sample" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Period" type="xs:duration" default="PT5M">
                            <xs:annotation>
                                <xs:documentation>Default period is 5 minutes.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="EnergyConsumption" type="Energy" />
                    </xs:sequence>
                    <xs:attribute name="StartTime" type="xs:dateTime" use="required" />
                    <xs:attribute name="SequenceNumber" type="xs:integer" use="required" />
                    <xs:attribute name="Repeats" type="xs:integer" use="optional">
                        <xs:annotation>
                            <xs:documentation>The number of times this sample is repeated sequentially.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ReferenceEnergyProfile">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="RunningEnergy">
                <xs:annotation>
                    <xs:documentation>Energy consumed by a running lift when making a Reference Cycle during which the empty car is run from the bottom terminal to the top, and then back to the bottom terminal including two complete door cycles.
Erc - Is the total energy used by Reference Cycle.
Espr - Is the normalised value of Erc (ref: CIBSE Guide D)</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="Erc" type="Energy" use="required" />
                    <xs:attribute name="Espr" type="Energy" use="optional" />
                    <xs:attribute name="PerformanceLevel" type="ISOPerformanceLevel" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="IdlePower">
                <xs:annotation>
                    <xs:documentation>Idle power is measured for a period of one minute, starting immediately after finishing an ISO Reference Cycle.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="IdlePower" type="Power" use="required" />
                    <xs:attribute name="PerformanceLevel" type="ISOPerformanceLevel" />
                </xs:complexType>
            </xs:element>
            <xs:element name="StandbyPower">
                <xs:annotation>
                    <xs:documentation>Standby power is measured for a period of one minute after maintaining the empty car at a terminal landing for the Standby Period (usually 5 minutes) after the finish of the ISO Reference Cycle.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="StandbyPower" type="Power" use="required" />
                    <xs:attribute name="StandbyDelay" type="Seconds" use="required" />
                    <xs:attribute name="PerformanceLevel" type="ISOPerformanceLevel" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="TD" />
    </xs:complexType>
    <xs:complexType name="BidType">
        <xs:attribute name="Car" type="CarID" use="required" />
        <xs:attribute name="Cost" type="CostType" use="required" />
        <xs:attributeGroup ref="TD" />
    </xs:complexType>
    <xs:simpleType name="ControlAlgorithm">
        <xs:annotation>
            <xs:documentation>Name of algorithm implemented by group controller.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="SimpleCollective" />
            <xs:enumeration value="FS4" />
            <xs:enumeration value="CGC" />
            <xs:enumeration value="FSO" />
            <xs:enumeration value="ACA" />
            <xs:enumeration value="DynamicSectoring" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CarStatus">
        <xs:annotation>
            <xs:documentation>Car service status.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="InService" />
            <xs:enumeration value="OutOfService" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CarMode">
        <xs:annotation>
            <xs:documentation>Service status of a car.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="InService" />
            <xs:enumeration value="Priority" />
            <xs:enumeration value="Maintenance" />
            <xs:enumeration value="Operator" />
            <xs:enumeration value="Failure" />
            <xs:enumeration value="CloseFail" />
            <xs:enumeration value="OpenFail" />
            <xs:enumeration value="MoveFail" />
            <xs:enumeration value="Homing" />
            <xs:enumeration value="CarMode" />
            <xs:enumeration value="FireService" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="RankType">
        <xs:annotation>
            <xs:documentation>Relative ranking of importance of calls.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Normal" />
            <xs:enumeration value="Priority1" />
            <xs:enumeration value="Priority2" />
            <xs:enumeration value="SingleUser" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CostType">
        <xs:annotation>
            <xs:documentation>Cost (not specifically monetary) as evaluated by cost function.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:integer" />
    </xs:simpleType>
    <xs:simpleType name="CallStatus">
        <xs:annotation>
            <xs:documentation>Call lifcycle status (NB using US spelling of cancelled).</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Registered" />
            <xs:enumeration value="Answered" />
            <xs:enumeration value="Cancelled" />
            <xs:enumeration value="Unused" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="GroupMode">
        <xs:annotation>
            <xs:documentation>Operating mode of a group of cars.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Normal" />
            <xs:enumeration value="UpPeak" />
            <xs:enumeration value="DownPeak" />
            <xs:enumeration value="4-way" />
            <xs:enumeration value="2-way" />
            <xs:enumeration value="Emergency" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ISOPerformanceLevel">
        <xs:annotation>
            <xs:documentation>ISO25745-2 Performance Level.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="7" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="PowerMode">
        <xs:annotation>
            <xs:documentation>Mode of the operating power supply.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Normal" />
            <xs:enumeration value="Emergency" />
            <xs:enumeration value="Failed" />
            <xs:enumeration value="Off" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="PowerSupplyType">
        <xs:annotation>
            <xs:documentation>Type of power supply.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Main" />
            <xs:enumeration value="Lock" />
            <xs:enumeration value="Contoller" />
            <xs:enumeration value="Logic" />
            <xs:enumeration value="CarCallButton" />
            <xs:enumeration value="CarLight" />
            <xs:enumeration value="LandingCallButton" />
            <xs:enumeration value="ShaftLight" />
            <xs:enumeration value="Incomming" />
            <xs:enumeration value="IncommingPhase" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Energy" final="restriction">
        <xs:annotation>
            <xs:documentation>Joules.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:pattern value="\d{1,3}(\.(\d{1,2}))?" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Power" final="restriction">
        <xs:annotation>
            <xs:documentation>Watts.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:pattern value="\d{1,3}(\.(\d{1,3}))?" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Direction" final="restriction">
        <xs:annotation>
            <xs:documentation>Up or Down.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Up" />
            <xs:enumeration value="Down" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="FloorNumber">
        <xs:annotation>
            <xs:documentation>Floors are identified as a contiguous numeric sequence of Floor Numbers. Lowest floor is 1.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="1" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DeckNumber">
        <xs:annotation>
            <xs:documentation>Car decks are identified by a number. Lowest deck is 1.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:integer" />
    </xs:simpleType>
    <xs:simpleType name="LocationID">
        <xs:annotation>
            <xs:documentation>String identifier for Location.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
    <xs:simpleType name="GroupID">
        <xs:annotation>
            <xs:documentation>String identifier for Group.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
    <xs:simpleType name="CallID">
        <xs:annotation>
            <xs:documentation>String identifier uniquely identifies an instance of a call.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
    <xs:simpleType name="CarID">
        <xs:annotation>
            <xs:documentation>String identifier for Car.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
    <xs:simpleType name="FloorID">
        <xs:annotation>
            <xs:documentation>String identifier for named Floor.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
    <xs:simpleType name="ShaftID">
        <xs:annotation>
            <xs:documentation>String identifier for Shaft.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
    <xs:simpleType name="DoorID">
        <xs:annotation>
            <xs:documentation>String identifier for named Door.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
    <xs:simpleType name="CarDirection">
        <xs:annotation>
            <xs:documentation>A car may be committed to traveling in a particular direction by virtue of its currently registered calls or it may be uncommitted.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Up" />
            <xs:enumeration value="Down" />
            <xs:enumeration value="Uncommitted" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DoorState">
        <xs:annotation>
            <xs:documentation>States which car doors may attain.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Closed" />
            <xs:enumeration value="Opened" />
            <xs:enumeration value="LimitedOpened" />
            <xs:enumeration value="Locked" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DoorOperation">
        <xs:annotation>
            <xs:documentation>State of door operation as the result of a command signal.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Closing" />
            <xs:enumeration value="Opening" />
            <xs:enumeration value="LimitedOpening" />
            <xs:enumeration value="Nudging" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DriveCommand">
        <xs:annotation>
            <xs:documentation>State of drive comand signal.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="TravelUp" />
            <xs:enumeration value="TravelDown" />
            <xs:enumeration value="Stationary" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DriveSpeedControl">
        <xs:annotation>
            <xs:documentation>State of drive speed control signal.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Accelerate" />
            <xs:enumeration value="Decelerate" />
            <xs:enumeration value="1Floor" />
            <xs:enumeration value="2Floor" />
            <xs:enumeration value="Multifloor" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DemandType">
        <xs:annotation>
            <xs:documentation>Demand can be defined in terms of passenger arrivals or call registration.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Passenger" />
            <xs:enumeration value="Call" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Distribution" final="restriction">
        <xs:annotation>
            <xs:documentation>The pattern of distribution for demand.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Constant" />
            <xs:enumeration value="Gausian" />
            <xs:enumeration value="RampUp" />
            <xs:enumeration value="RampDown" />
            <xs:enumeration value="Spike" />
            <xs:enumeration value="Recorded" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Speed" final="restriction">
        <xs:annotation>
            <xs:documentation>Metres per Second.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:pattern value="\d{1,3}(\.(\d{1,2}))?" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CarLoad" final="restriction">
        <xs:annotation>
            <xs:documentation>Percentage of Rated Capacity.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0" />
            <xs:maxInclusive value="200" />
            <xs:pattern value="\d{1,3}(\.(\d{1,2}))?" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Seconds">
        <xs:annotation>
            <xs:documentation>Duration in Seconds.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0" />
            <xs:maxInclusive value="999.99" />
            <xs:pattern value="\d{1,3}(\.(\d{1,2}))?" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="State">
        <xs:annotation>
            <xs:documentation>Boolean (Set/Unset) state.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Set" />
            <xs:enumeration value="Unset" />
        </xs:restriction>
    </xs:simpleType>
    <xs:attributeGroup name="ED">
        <xs:annotation>
            <xs:documentation>A set of attributes that characterise common features of an Event.</xs:documentation>
        </xs:annotation>
        <xs:attributeGroup ref="TD" />
        <xs:attribute name="Source" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>Events are intended to record the flow of information as discrete and standard units. The Source of the event will be a controller, usually a single car controller (sometimes referred to as a Slave Controller) or group supervisory controller (sometimes referred to as the Master Controller). Other types of controller may also act as a Source.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="Destination" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation>The Event may optionally be directed to a specified destination controller. Alternatively, it may simply be broadcast to any receiving controller in which case the Destination attribute is omitted.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="TD">
        <xs:attribute name="Time" type="xs:time" use="required" />
        <xs:attribute name="Date" type="xs:date" use="optional" />
    </xs:attributeGroup>
    <xs:attributeGroup name="ST">
        <xs:annotation>
            <xs:documentation>A set of attributes that characterise a State, the duration of which can be timed.</xs:documentation>
        </xs:annotation>
        <xs:attribute name="StartTime" type="xs:time" use="optional" />
        <xs:attribute name="Duration" type="xs:duration" use="optional" />
    </xs:attributeGroup>
</xs:schema>
Collapse AttributeGroups:
Collapse ComplexTypes:
Collapse Elements:
Collapse SimpleTypes: