%PDF- %PDF-
Direktori : /data/bordel/scanned/ |
Current File : //data/bordel/scanned/transformFrom.xsl |
<?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template match="/" > <InternalDataSet> <xsl:call-template name="Panel" /> <xsl:apply-templates select="/PanelConfiguration/Panel/RuntimePersistence/Storage" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition/DependencyChildren/UID" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition/Sounders/UID" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition/ExternalSignallingGroups/UID" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/ExternalSignallingGroups/ExternalSignallingGroup" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/ExternalSignallingGroups/ExternalSignallingGroup/Sounders/UID" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/ExternalSignallingGroups/ExternalSignallingGroup/Flashers/UID" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PartitionMembers/DetectorGroups/DetectorGroup" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PartitionMembers/AccessPoints/AccessPoint" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PartitionMembers/AccessPoints/AccessPoint/Users/User" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PMCollections/PMCollection" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PMCollections/PMCollection/PMs/PM" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualPIRs/VirtualPIR" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualInputs/VirtualInput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualOutputs/VirtualOutput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualCameras/VirtualCamera" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualCarbonMonoxides/VirtualCarbonMonoxide" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualDoors/VirtualDoor" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualDSDevices/VirtualDSDevice" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualFlashers/VirtualFlasher" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualKeySwitchs/VirtualKeySwitch" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualKeys/VirtualKey" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualLeds/VirtualLed" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualPeripherals/VirtualPeripheral" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualPeripherals/VirtualPeripheral/Owners/Owner" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRelays/VirtualRelay" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRFPeripherals/VirtualRFPeripheral" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRFPeripherals/VirtualRFPeripheral/Owners/Owner" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRfMasters/VirtualRfMaster" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRfReceivers/VirtualRfReceiver" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualSmartUIs/VirtualSmartUI" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualSmokeDetectors/VirtualSmokeDetector" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualSounders/VirtualSounder" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualTemperatures/VirtualTemperature" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualUserInterfaces/VirtualUserInterface" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualWindows/VirtualWindow" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduleManager/Holidays/Holiday" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/UserManager/Users/User" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/UserManager/Users/User/UserGroups/UserGroup" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/UserGroupManager/UserGroup" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/UserGroupManager/UserGroup/ScheduledItems/ScheduledItem" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduleManager/TimeSchedules/TimeSchedule" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduledItemManager/ScheduledItem" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/ApplicationManager/EventLogs/EventLog" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/Macros/TriggerPool/Trigger" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/Macros/ConditionPool/Condition" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/Macros/SignalPool/Signal" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/Macros/CommandPool/Command" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/Macros/ActionPool/Action" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/Macros/ActionPool/Action/ActionList/CommandRef" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/Macros/MacroPool/Macro" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/UserInterfaceManager/UIProxy" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/UserInterfaceManager/UIProxy/Partitions/UID" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/UserInterfaceManager/UIProxy/Items/Item" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/RemoteApplicationManager/Connections/RemoteApplication" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/AlarmReportingManager/AlarmDevices/AlarmDevice" /> <xsl:apply-templates select="/PanelConfiguration/Panel/Application/AlarmReportingManager/AlarmDevices/AlarmDevice/FaultPartitions/UID" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalPirs/LogicalPir" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalInputs/LogicalInput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalOutputs/LogicalOutput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalAccessPoints/LogicalAccessPoint" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalCameras/LogicalCamera" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalCarbonMonoxides/LogicalCarbonMonoxide" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalDisplays/LogicalDisplay" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalDoors/LogicalDoor" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalDSAlarmReportings/LogicalDSAlarmReporting" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalEventBroadcasters/LogicalEventBroadcaster" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalInstallationServices/LogicalInstallationService" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalKeyboards/LogicalKeyboard" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalKeyboardReaders/LogicalKeyboardReader" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalKeys/LogicalKey" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalLeds/LogicalLed" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalPeripherals/LogicalPeripheral" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalReaders/LogicalReader" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalRFPeripherals/LogicalRFPeripheral" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalRFMasters/LogicalRFMaster" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSmartUIs/LogicalSmartUI" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSmokeDetectors/LogicalSmokeDetector" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSounders/LogicalSounder" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSounders/SounderTemplates/SounderTemplate" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalTemperatures/LogicalTemperature" /> <!-- not supported by panel yet <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalEmails/LogicalEmail" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSMSs/LogicalSMS" /> --> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/GPIO/GPIOOutputs/GPIOOutput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/GPIO/GPIOInputs/GPIOInput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/GPIO/SPIOutputs/SPIOutput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/GPIO/SPIInputs/SPIInput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/GPIO/AnalogInputs/AnalogInput" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/BusController/Controller" /> <xsl:apply-templates select="/PanelConfiguration/Panel/HardwareManager/SupportController/Controller" /> <xsl:apply-templates select="//ConfiguredDevices/*/WirelessMasters/UID" /> </InternalDataSet> </xsl:template> <xsl:template name="Panel"> <UID> <UID><xsl:value-of select="PanelConfiguration/Panel/@UID" /></UID> <TableName>Panel</TableName> </UID> <Panel> <UID><xsl:value-of select="PanelConfiguration/Panel/@UID" /></UID> <!-- is it here for compatibility with older version (data will not be lost), can be deleted later --> <Name><xsl:value-of select="PanelConfiguration/Panel/@Name" /></Name> <!-- --> <Name><xsl:value-of select="PanelConfiguration/Panel/Name" /></Name> <Type><xsl:value-of select="PanelConfiguration/Panel/@Type" /></Type> </Panel> <ConfigInfo> <UID>1</UID> <Version><xsl:value-of select="PanelConfiguration/Panel/ConfigInfo/Version" /></Version> <GUID><xsl:value-of select="PanelConfiguration/Panel/ConfigInfo/GUID" /></GUID> <CompatibilityID><xsl:value-of select="PanelConfiguration/Panel/ConfigInfo/CompatibilityID" /></CompatibilityID> <ChangeCounter><xsl:value-of select="PanelConfiguration/Panel/ConfigInfo/ChangeCounter" /></ChangeCounter> <Timestamp><xsl:value-of select="PanelConfiguration/Panel/ConfigInfo/Timestamp" /></Timestamp> </ConfigInfo> <GeneralSettings> <UID>1</UID> <UserCodeLength><xsl:value-of select="PanelConfiguration/Panel/Application/ApplicationManager/UserManager/CodeLength" /></UserCodeLength> <UserCodeDuressPosition><xsl:value-of select="PanelConfiguration/Panel/Application/ApplicationManager/UserManager/DuressPosition" /></UserCodeDuressPosition> <UserCodeDuressOffset><xsl:value-of select="PanelConfiguration/Panel/Application/ApplicationManager/UserManager/DuressOffset" /></UserCodeDuressOffset> </GeneralSettings> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/RuntimePersistence/Storage"> <Storage> <UID><xsl:value-of select="position()" /></UID> <SaveFrequency><xsl:value-of select="@eSaveFrequency" /></SaveFrequency> <Seconds><xsl:value-of select="@Seconds" /></Seconds> <Mode><xsl:value-of select="@Mode" /></Mode> <FileName><xsl:value-of select="@Filename" /></FileName> <FileStream><xsl:value-of select="@FileStream" /></FileStream> <DecoratorStream><xsl:value-of select="@DecoratorStream" /></DecoratorStream> </Storage> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualPIRs/VirtualPIR"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualPIR</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <xsl:if test="@Type='ccVirtualBusPIR'"> <VirtualPIR> <UID><xsl:value-of select="@UID" /></UID> </VirtualPIR> <VirtualBusPIR> <UID><xsl:value-of select="@UID" /></UID> <LogicalPIRUID><xsl:value-of select="HWUID" /></LogicalPIRUID> </VirtualBusPIR> </xsl:if> <xsl:if test="@Type='ccVirtualHardwiredPIR'"> <VirtualPIR> <UID><xsl:value-of select="@UID" /></UID> </VirtualPIR> <VirtualHardwiredPIR> <UID><xsl:value-of select="@UID" /></UID> <AlarmInputUID><xsl:value-of select="Inputs/Input[Position='pipAlarm']/HWUID" /></AlarmInputUID> <TamperInputUID><xsl:value-of select="Inputs/Input[Position='pipTamper']/HWUID" /></TamperInputUID> <FaultInputUID><xsl:value-of select="Inputs/Input[Position='pipFault']/HWUID" /></FaultInputUID> <WalkTestOutputUID><xsl:value-of select="Outputs/Output[Position='popWalkTest']/HWUID" /></WalkTestOutputUID> <SetOutputUID><xsl:value-of select="Outputs/Output[Position='popSet']/HWUID" /></SetOutputUID> </VirtualHardwiredPIR> </xsl:if> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualInputs/VirtualInput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualInput</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualInput> <UID><xsl:value-of select="@UID" /></UID> <LogicalInputUID><xsl:value-of select="HWUID" /></LogicalInputUID> </VirtualInput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualOutputs/VirtualOutput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualOutput</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualOutput> <UID><xsl:value-of select="@UID" /></UID> <LogicalOutputUID><xsl:value-of select="HWUID" /></LogicalOutputUID> <SignalUID><xsl:value-of select="Signal" /></SignalUID> </VirtualOutput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualDoors/VirtualDoor"> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualDoor> <UID><xsl:value-of select="@UID" /></UID> <SecondaryOwner><xsl:value-of select="SecondaryOwner" /></SecondaryOwner> <Tamper><xsl:value-of select="Tamper" /></Tamper> <LockingError><xsl:value-of select="LockingError" /></LockingError> </VirtualDoor> <xsl:if test="@Type='ccVirtualBusDoor'"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualBusDoor</TableName> </UID> <VirtualBusDoor> <UID><xsl:value-of select="@UID" /></UID> <OpenSignalSounder><xsl:value-of select="OpenSignalSounder" /></OpenSignalSounder> <OpenSignalTime><xsl:value-of select="OpenSignalTime" /></OpenSignalTime> <OpenAlarmTime><xsl:value-of select="OpenAlarmTime" /></OpenAlarmTime> <LogicalDoorUID><xsl:value-of select="HWUID" /></LogicalDoorUID> </VirtualBusDoor> </xsl:if> <xsl:if test="@Type='ccVirtualHardwiredDoor'"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualHardwiredDoor</TableName> </UID> <VirtualHardwiredDoor> <UID><xsl:value-of select="@UID" /></UID> <OpenSignalSounder><xsl:value-of select="OpenSignalSounder" /></OpenSignalSounder> <OpenSignalTime><xsl:value-of select="OpenSignalTime" /></OpenSignalTime> <OpenAlarmTime><xsl:value-of select="OpenAlarmTime" /></OpenAlarmTime> <StateContactUID><xsl:value-of select="Inputs/Input[Position='dipStateContact']/HWUID" /></StateContactUID> <LatchContactUID><xsl:value-of select="Inputs/Input[Position='dipLatchContact']/HWUID" /></LatchContactUID> <BoltContactUID><xsl:value-of select="Inputs/Input[Position='dipBoltContact']/HWUID" /></BoltContactUID> <OpenerRelayUID><xsl:value-of select="Outputs/Output[Position='dopOpenerRelais']/HWUID" /></OpenerRelayUID> <PrealarmRelayUID><xsl:value-of select="Outputs/Output[Position='dopPrealarmRelais']/HWUID" /></PrealarmRelayUID> <LockRelayUID><xsl:value-of select="Outputs/Output[Position='dopLockRelais']/HWUID" /></LockRelayUID> <EscapeRelayUID><xsl:value-of select="Outputs/Output[Position='dopEscapeRelais']/HWUID" /></EscapeRelayUID> </VirtualHardwiredDoor> </xsl:if> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualPeripherals/VirtualPeripheral"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualPeripheral</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> </VirtualDevice> <VirtualPeripheral> <UID><xsl:value-of select="@UID" /></UID> <xsl:choose> <xsl:when test="HWUID=/PanelConfiguration/Panel/@UID"> <UsedByPanel>true</UsedByPanel> </xsl:when> <xsl:otherwise> <UsedByPanel>false</UsedByPanel> <LogicalPeripheralUID><xsl:value-of select="HWUID" /></LogicalPeripheralUID> </xsl:otherwise> </xsl:choose> <xsl:for-each select="FaultTypes/FaultType"> <xsl:variable name="effectName" select="concat('fe',substring(Type, 3))" /> <xsl:if test="$effectName!=''"> <xsl:element name="{$effectName}"><xsl:value-of select="Effect" /></xsl:element> </xsl:if> </xsl:for-each> </VirtualPeripheral> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualPeripherals/VirtualPeripheral/Owners/Owner"> <xsl:variable name="PMUID"><xsl:value-of select="UID" /></xsl:variable> <xsl:variable name="VPUID"><xsl:value-of select="./../../@UID" /></xsl:variable> <VirtualPeripheralPartitionMemberFaultType> <UID><xsl:value-of select="position()" /></UID> <!--xml tag position is used as unique ID--> <VirtualPeripheralUID><xsl:value-of select="$VPUID" /></VirtualPeripheralUID> <PartitionMemberUID><xsl:value-of select="$PMUID" /></PartitionMemberUID> <xsl:choose> <xsl:when test="FaultTypes"> <SendAllFaultTypes>false</SendAllFaultTypes> <!-- only some faulttypes are sent to the owner (partitionmember) --> <xsl:for-each select="FaultTypes/FaultType"> <xsl:if test="string-length(.)>0"> <xsl:element name="{.}">true</xsl:element> </xsl:if> </xsl:for-each> </xsl:when> <xsl:otherwise> <!-- missing faulttypelist means that all fault event types are sent to the owner (partitionmember) --> <SendAllFaultTypes>true</SendAllFaultTypes> </xsl:otherwise> </xsl:choose> </VirtualPeripheralPartitionMemberFaultType> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualSmokeDetectors/VirtualSmokeDetector"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualSmokeDetector</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualSmokeDetector> <UID><xsl:value-of select="@UID" /></UID> <LogicalSmokeDetectorUID><xsl:value-of select="HWUID" /></LogicalSmokeDetectorUID> <LowSenseEffect><xsl:value-of select="LowSenseEffect" /></LowSenseEffect> <WrongHeadEffect><xsl:value-of select="WrongHeadEffect" /></WrongHeadEffect> </VirtualSmokeDetector> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRFPeripherals/VirtualRFPeripheral"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualWirelessPeripheral</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualWirelessPeripheral> <UID><xsl:value-of select="@UID" /></UID> <LogicalWirelessPeripheralUID><xsl:value-of select="HWUID" /></LogicalWirelessPeripheralUID> <xsl:for-each select="FaultTypes/FaultType"> <xsl:variable name="effectName" select="concat('fe',substring(Type, 3))" /> <xsl:if test="$effectName!=''"> <xsl:element name="{$effectName}"><xsl:value-of select="Effect" /></xsl:element> </xsl:if> </xsl:for-each> </VirtualWirelessPeripheral> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRFPeripherals/VirtualRFPeripheral/Owners/Owner"> <xsl:variable name="PMUID"><xsl:value-of select="UID" /></xsl:variable> <xsl:variable name="VPUID"><xsl:value-of select="./../../@UID" /></xsl:variable> <VirtualPeripheralPartitionMemberFaultType> <UID><xsl:value-of select="position()" /></UID> <!--xml tag position is used as unique ID--> <VirtualRFPeripheralUID><xsl:value-of select="$VPUID" /></VirtualRFPeripheralUID> <PartitionMemberUID><xsl:value-of select="$PMUID" /></PartitionMemberUID> <xsl:choose> <xsl:when test="FaultTypes"> <SendAllFaultTypes>false</SendAllFaultTypes> <!-- only some faulttypes are sent to the owner (partitionmember) --> <xsl:for-each select="FaultTypes/FaultType"> <xsl:if test="string-length(.)>0"> <xsl:element name="{.}">true</xsl:element> </xsl:if> </xsl:for-each> </xsl:when> <xsl:otherwise> <!-- missing faulttypelist means that all fault event types are sent to the owner (partitionmember) --> <SendAllFaultTypes>true</SendAllFaultTypes> </xsl:otherwise> </xsl:choose> </VirtualPeripheralPartitionMemberFaultType> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRfMasters/VirtualRfMaster"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualWirelessPeripheral</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualWirelessMaster> <UID><xsl:value-of select="@UID" /></UID> <LogicalWirelessMasterUID><xsl:value-of select="HWUID" /></LogicalWirelessMasterUID> </VirtualWirelessMaster> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRfReceivers/VirtualRfReceiver"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualWirelessReceiver</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualWirelessReceiver> <UID><xsl:value-of select="@UID" /></UID> <LogicalRfReceiverUID><xsl:value-of select="HWUID" /></LogicalRfReceiverUID> </VirtualWirelessReceiver> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualSmartUIs/VirtualSmartUI"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualSmartUI</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualSmartUI> <UID><xsl:value-of select="@UID" /></UID> <LogicalSmartUI_UID><xsl:value-of select="HWUID" /></LogicalSmartUI_UID> </VirtualSmartUI> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualTemperatures/VirtualTemperature"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualTemperature</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualTemperature> <UID><xsl:value-of select="@UID" /></UID> <LogicalTemperatureUID><xsl:value-of select="HWUID" /></LogicalTemperatureUID> </VirtualTemperature> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualCameras/VirtualCamera"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualCamera</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualCamera> <UID><xsl:value-of select="@UID" /></UID> <LogicalCameraUID><xsl:value-of select="HWUID" /></LogicalCameraUID> </VirtualCamera> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualCarbonMonoxides/VirtualCarbonMonoxide"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualCarbonMonoxide</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualCarbonMonoxide> <UID><xsl:value-of select="@UID" /></UID> <LogicalCarbonMonoxideUID><xsl:value-of select="HWUID" /></LogicalCarbonMonoxideUID> </VirtualCarbonMonoxide> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualKeySwitchs/VirtualKeySwitch"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualKeySwitch</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualKeySwitch> <UID><xsl:value-of select="@UID" /></UID> <LogicalInputUID><xsl:value-of select="HWUID" /></LogicalInputUID> </VirtualKeySwitch> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualKeys/VirtualKey"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualKey</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualKey> <UID><xsl:value-of select="@UID" /></UID> <LogicalKeyUID><xsl:value-of select="HWUID" /></LogicalKeyUID> </VirtualKey> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualLeds/VirtualLed"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualLED</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualLed> <UID><xsl:value-of select="@UID" /></UID> <LogicalOutputUID><xsl:value-of select="HWUID" /></LogicalOutputUID> </VirtualLed> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualRelays/VirtualRelay"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualRelay</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualRelay> <UID><xsl:value-of select="@UID" /></UID> <LogicalOutputUID><xsl:value-of select="HWUID" /></LogicalOutputUID> </VirtualRelay> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualWindows/VirtualWindow"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualWindow</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualWindow> <UID><xsl:value-of select="@UID" /></UID> <AlarmInputUID><xsl:value-of select="Inputs/Input[Position='pipAlarm']/HWUID" /></AlarmInputUID> <TamperInputUID><xsl:value-of select="Inputs/Input[Position='pipTamper']/HWUID" /></TamperInputUID> </VirtualWindow> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualSounders/VirtualSounder"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualSounder</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualSounder> <UID><xsl:value-of select="@UID" /></UID> <LogicalSirenUID><xsl:value-of select="HWUID" /></LogicalSirenUID> </VirtualSounder> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualUserInterfaces/VirtualUserInterface"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualUserInterface</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualUserInterface> <UID><xsl:value-of select="@UID" /></UID> </VirtualUserInterface> <xsl:if test="@Type='ccVirtualReader'"> <VirtualReader> <UID><xsl:value-of select="@UID" /></UID> <LogicalReaderUID><xsl:value-of select="HWUID" /></LogicalReaderUID> </VirtualReader> </xsl:if> <xsl:if test="@Type='ccVirtualKeyboard'"> <VirtualKeyboard> <UID><xsl:value-of select="@UID" /></UID> <LogicalKeyboardUID><xsl:value-of select="HWUID" /></LogicalKeyboardUID> </VirtualKeyboard> </xsl:if> <xsl:if test="@Type='ccVirtualKeyboardReader'"> <VirtualKeyboardReader> <UID><xsl:value-of select="@UID" /></UID> <LogicalKeyboardReaderUID><xsl:value-of select="HWUID" /></LogicalKeyboardReaderUID> </VirtualKeyboardReader> </xsl:if> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualDSDevices/VirtualDSDevice"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualDSDevice</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualDSDevice> <UID><xsl:value-of select="@UID" /></UID> <LogicalDSAlarmReportingUID><xsl:value-of select="HWUID" /></LogicalDSAlarmReportingUID> </VirtualDSDevice> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/VirtualDevices/VirtualFlashers/VirtualFlasher"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>VirtualFlasher</TableName> </UID> <VirtualDevice> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <HWUID><xsl:value-of select="HWUID" /></HWUID> <Owner><xsl:value-of select="Owner" /></Owner> </VirtualDevice> <VirtualFlasher> <UID><xsl:value-of select="@UID" /></UID> <LogicalOutputUID><xsl:value-of select="HWUID" /></LogicalOutputUID> </VirtualFlasher> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Partition</TableName> </UID> <Partition> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <PartitionType><xsl:value-of select="PartitionType" /></PartitionType> <Omit><xsl:value-of select="Omit" /></Omit> <DoorLockingWait><xsl:value-of select="DoorLockingWait" /></DoorLockingWait> <AlarmIndicationDelayTime><xsl:value-of select="AlarmIndicationDelay/Time" /></AlarmIndicationDelayTime> <EntryTime><xsl:value-of select="Entry/Time" /></EntryTime> <EntryPreWarnTime><xsl:value-of select="Entry/PreWarnTime" /></EntryPreWarnTime> <EntrySounderType><xsl:value-of select="Entry/SounderType" /></EntrySounderType> <EntrySounderStyle><xsl:value-of select="Entry/SounderStyle" /></EntrySounderStyle> <EntryPreWarnSounderStyle><xsl:value-of select="Entry/PreWarnSounderStyle" /></EntryPreWarnSounderStyle> <EntryAlarmSounderStyle><xsl:value-of select="Entry/AlarmSounderStyle" /></EntryAlarmSounderStyle> <ExitTime><xsl:value-of select="Exit/Time" /></ExitTime> <ExitPreWarnTime><xsl:value-of select="Exit/PreWarnTime" /></ExitPreWarnTime> <ExitSounderType><xsl:value-of select="Exit/SounderType" /></ExitSounderType> <ExitSounderStyle><xsl:value-of select="Exit/SounderStyle" /></ExitSounderStyle> <ExitPreWarnSounderStyle><xsl:value-of select="Exit/PreWarnSounderStyle" /></ExitPreWarnSounderStyle> <FullAlarmTime><xsl:value-of select="FullAlarm/Time" /></FullAlarmTime> <LocalAlarmTime><xsl:value-of select="LocalAlarm/Time" /></LocalAlarmTime> <LocalAlarmSounderType><xsl:value-of select="LocalAlarm/SounderType" /></LocalAlarmSounderType> <LocalAlarmSounderStyle><xsl:value-of select="LocalAlarm/SounderStyle" /></LocalAlarmSounderStyle> <FullSetConfirmTime><xsl:value-of select="FullSetConfirm/Time" /></FullSetConfirmTime> <FullSetConfirmSounderType><xsl:value-of select="FullSetConfirm/SounderType" /></FullSetConfirmSounderType> <FullSetConfirmSounderStyle><xsl:value-of select="FullSetConfirm/SounderStyle" /></FullSetConfirmSounderStyle> <PartSetDelayTime><xsl:value-of select="PartSetDelay/Time" /></PartSetDelayTime> <PartSetDelaySounderType><xsl:value-of select="PartSetDelay/SounderType" /></PartSetDelaySounderType> <PartSetDelaySounderStyle><xsl:value-of select="PartSetDelay/SounderStyle" /></PartSetDelaySounderStyle> <UnsetPreventionTime><xsl:value-of select="UnsetPrevention/Time" /></UnsetPreventionTime> <UnsetPreventionAlarmTime><xsl:value-of select="UnsetPrevention/AlarmTime" /></UnsetPreventionAlarmTime> <ExternalSignallingWaitTime><xsl:value-of select="ExternalSignallingWait/Time" /></ExternalSignallingWaitTime> <ExternalSignallingIntruder><xsl:if test="ExternalSignallingWait/AlarmTypes[AlarmType='atIntruder']">true</xsl:if></ExternalSignallingIntruder> <ExternalSignallingTamper><xsl:if test="ExternalSignallingWait/AlarmTypes[AlarmType='atTamper']">true</xsl:if></ExternalSignallingTamper> <ExternalSignallingPanic><xsl:if test="ExternalSignallingWait/AlarmTypes[AlarmType='atPanic']">true</xsl:if></ExternalSignallingPanic> <ExternalSignallingFire><xsl:if test="ExternalSignallingWait/AlarmTypes[AlarmType='atFire']">true</xsl:if></ExternalSignallingFire> <ExternalSignallingTechnical><xsl:if test="ExternalSignallingWait/AlarmTypes[AlarmType='atTechnical']">true</xsl:if></ExternalSignallingTechnical> <ClearWaitTime><xsl:value-of select="ClearWait/Time" /></ClearWaitTime> <AlarmReportingWaitTime><xsl:value-of select="AlarmReportingWait/Time" /></AlarmReportingWaitTime> <AlarmReportingIntruder><xsl:if test="AlarmReportingWait/AlarmTypes[AlarmType='atIntruder']">true</xsl:if></AlarmReportingIntruder> <AlarmReportingTamper><xsl:if test="AlarmReportingWait/AlarmTypes[AlarmType='atTamper']">true</xsl:if></AlarmReportingTamper> <AlarmReportingPanic><xsl:if test="AlarmReportingWait/AlarmTypes[AlarmType='atPanic']">true</xsl:if></AlarmReportingPanic> <AlarmReportingFire><xsl:if test="AlarmReportingWait/AlarmTypes[AlarmType='atFire']">true</xsl:if></AlarmReportingFire> <AlarmReportingTechnical><xsl:if test="AlarmReportingWait/AlarmTypes[AlarmType='atTechnical']">true</xsl:if></AlarmReportingTechnical> <FaultTime><xsl:value-of select="Fault/Time" /></FaultTime> <FaultSounderType><xsl:value-of select="Fault/SounderType" /></FaultSounderType> <FaultSounderStyle><xsl:value-of select="Fault/SounderStyle" /></FaultSounderStyle> <!-- Partition Dependencies 1:N <ParentPartitionUID><xsl:value-of select="DependencyParent/UID" /></ParentPartitionUID> --> </Partition> <xsl:variable name="PartitionUID"><xsl:value-of select="@UID" /></xsl:variable> <ExternalSounderStyle> <UID><xsl:value-of select="$PartitionUID" /></UID> <PartitionUID><xsl:value-of select="$PartitionUID" /></PartitionUID> <FireAlarmSounderStyle><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atFire']/SounderStyle" /></FireAlarmSounderStyle> <FireAlarmSounderTemplateUID><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atFire']/SounderTemplate" /></FireAlarmSounderTemplateUID> <PanicAlarmSounderStyle><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atPanic']/SounderStyle" /></PanicAlarmSounderStyle> <PanicAlarmSounderTemplateUID><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atPanic']/SounderTemplate" /></PanicAlarmSounderTemplateUID> <IntruderAlarmSounderStyle><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atIntruder']/SounderStyle" /></IntruderAlarmSounderStyle> <IntruderAlarmSounderTemplateUID><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atIntruder']/SounderTemplate" /></IntruderAlarmSounderTemplateUID> <TamperAlarmSounderStyle><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atTamper']/SounderStyle" /></TamperAlarmSounderStyle> <TamperAlarmSounderTemplateUID><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atTamper']/SounderTemplate" /></TamperAlarmSounderTemplateUID> <TechnicalAlarmSounderStyle><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atTechnical']/SounderStyle" /></TechnicalAlarmSounderStyle> <TechnicalAlarmSounderTemplateUID><xsl:value-of select="ExternalSounderStyles/ExternalSounderStyle[AlarmType='atTechnical']/SounderTemplate" /></TechnicalAlarmSounderTemplateUID> </ExternalSounderStyle> <xsl:for-each select="UnsetPrevention/AlarmTypes/AlarmType"> <UnsetPreventionAlarmType> <PartitionUID><xsl:value-of select="$PartitionUID" /></PartitionUID> <AlarmType><xsl:value-of select="." /></AlarmType> </UnsetPreventionAlarmType> </xsl:for-each> <SoundingFaultTypes> <PartitionUID><xsl:value-of select="$PartitionUID" /></PartitionUID> <!-- only TRUE values are inserted, (FALSE values are default values in dataset) --> <xsl:for-each select="Fault/Sounding/FaultType"> <xsl:if test="string-length(.)>0"> <xsl:element name="{.}">true</xsl:element> </xsl:if> </xsl:for-each> </SoundingFaultTypes> <StoredFaultTypes> <PartitionUID><xsl:value-of select="$PartitionUID" /></PartitionUID> <!-- only TRUE values are inserted, (FALSE values are default values in dataset) --> <xsl:for-each select="Fault/Stored/FaultType"> <xsl:if test="string-length(.)>0"> <xsl:element name="{.}">true</xsl:element> </xsl:if> </xsl:for-each> </StoredFaultTypes> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition/DependencyChildren/UID"> <xsl:variable name="PartitionUID" select="./../../@UID" /> <PartitionDependency> <UID><xsl:value-of select="position()" /></UID> <!--xml tag position is used as unique ID--> <ParentPartitionUID><xsl:value-of select="$PartitionUID" /></ParentPartitionUID> <ChildPartitionUID><xsl:value-of select="." /></ChildPartitionUID> </PartitionDependency> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition/Sounders/UID"> <xsl:variable name="PartitionUID" select="./../../@UID" /> <Partition_LocalSounder> <UID><xsl:value-of select="position()" /></UID> <PartitionUID><xsl:value-of select="$PartitionUID" /></PartitionUID> <LocalSounderUID><xsl:value-of select="." /></LocalSounderUID> </Partition_LocalSounder> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/Partitions/Partition/ExternalSignallingGroups/UID"> <xsl:variable name="PartitionUID" select="./../../@UID" /> <Partition_SignalingGroup> <UID><xsl:value-of select="position()" /></UID> <!--xml tag position is used as unique ID--> <PartitionUID><xsl:value-of select="$PartitionUID" /></PartitionUID> <SignalingGroupUID><xsl:value-of select="." /></SignalingGroupUID> </Partition_SignalingGroup> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/ExternalSignallingGroups/ExternalSignallingGroup"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>SignalingGroup</TableName> </UID> <SignalingGroup> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Exclusive><xsl:value-of select="Exclusive" /></Exclusive> <AlarmPriority><xsl:value-of select="AlarmPriority" /></AlarmPriority> <Overwrite><xsl:value-of select="Overwrite" /></Overwrite> </SignalingGroup> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/ExternalSignallingGroups/ExternalSignallingGroup/Sounders/UID"> <xsl:variable name="GroupUID"><xsl:value-of select="./../../@UID" /></xsl:variable> <SignalingGroup_Sounder> <UID><xsl:value-of select="position()" /></UID> <!--xml tag position is used as unique ID--> <SignalingGroupUID><xsl:value-of select="$GroupUID" /></SignalingGroupUID> <SounderUID><xsl:value-of select="." /></SounderUID> </SignalingGroup_Sounder> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionManager/ExternalSignallingGroups/ExternalSignallingGroup/Flashers/UID"> <xsl:variable name="GroupUID"><xsl:value-of select="./../../@UID" /></xsl:variable> <SignalingGroup_Flasher> <UID><xsl:value-of select="position()" /></UID> <!--xml tag position is used as unique ID--> <SignalingGroupUID><xsl:value-of select="$GroupUID" /></SignalingGroupUID> <FlasherUID><xsl:value-of select="." /></FlasherUID> </SignalingGroup_Flasher> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PartitionMembers/DetectorGroups/DetectorGroup"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>DetectorGroup</TableName> </UID> <PartitionMember> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Owner><xsl:value-of select="Owner" /></Owner> <ReadySetType><xsl:value-of select="ReadySetType" /></ReadySetType> <AlarmSetType><xsl:value-of select="AlarmSetType" /></AlarmSetType> <Omit><xsl:value-of select="Omit" /></Omit> <AlertingType><xsl:value-of select="AlertingType" /></AlertingType> <AlertingTypeFullSet><xsl:value-of select="AlertingTypeFullSet" /></AlertingTypeFullSet> <AlarmDeleteType><xsl:value-of select="AlarmDeleteType" /></AlarmDeleteType> <FaultReadySetType><xsl:value-of select="FaultReadySetType" /></FaultReadySetType> <FaultAlarmSetType><xsl:value-of select="FaultAlarmSetType" /></FaultAlarmSetType> <FaultDeleteType><xsl:value-of select="FaultDeleteType" /></FaultDeleteType> <AlarmRepeatCount><xsl:value-of select="AlarmRepeatCount" /></AlarmRepeatCount> <ClearAlarmReleased><xsl:value-of select="ClearAlarmReleased" /></ClearAlarmReleased> </PartitionMember> <DetectorGroup> <UID><xsl:value-of select="@UID" /></UID> <PartSetDelayPostTrigger><xsl:value-of select="PartSetDelayPostTrigger" /></PartSetDelayPostTrigger> <UnsetPrevention><xsl:value-of select="UnsetPrevention" /></UnsetPrevention> <AutomaticClear><xsl:value-of select="AutomaticClear" /></AutomaticClear> <ReleaseDelay><xsl:value-of select="ReleaseDelay" /></ReleaseDelay> <NormalDelay><xsl:value-of select="NormalDelay" /></NormalDelay> <ReleaseDelayTime><xsl:value-of select="ReleaseDelayTime" /></ReleaseDelayTime> <NormalDelayTime><xsl:value-of select="NormalDelayTime" /></NormalDelayTime> <VerifiedAlarmTime><xsl:value-of select="VerifiedAlarmTime" /></VerifiedAlarmTime> <VerifiedPreWarnTime><xsl:value-of select="VerifiedPreWarnTime" /></VerifiedPreWarnTime> <SounderStyle><xsl:value-of select="SounderStyle" /></SounderStyle> <SounderTemplateUID><xsl:value-of select="SounderTemplate" /></SounderTemplateUID> </DetectorGroup> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PartitionMembers/AccessPoints/AccessPoint"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>AccessPoint</TableName> </UID> <PartitionMember> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Owner><xsl:value-of select="Owner" /></Owner> <ReadySetType><xsl:value-of select="ReadySetType" /></ReadySetType> <AlarmSetType><xsl:value-of select="AlarmSetType" /></AlarmSetType> <Omit><xsl:value-of select="Omit" /></Omit> <AlertingType><xsl:value-of select="AlertingType" /></AlertingType> <AlertingTypeFullSet><xsl:value-of select="AlertingTypeFullSet" /></AlertingTypeFullSet> <AlarmDeleteType><xsl:value-of select="AlarmDeleteType" /></AlarmDeleteType> <FaultReadySetType><xsl:value-of select="FaultReadySetType" /></FaultReadySetType> <FaultAlarmSetType><xsl:value-of select="FaultAlarmSetType" /></FaultAlarmSetType> <FaultDeleteType><xsl:value-of select="FaultDeleteType" /></FaultDeleteType> <AlarmRepeatCount><xsl:value-of select="AlarmRepeatCount" /></AlarmRepeatCount> <UnsetPrevention><xsl:value-of select="UnsetPrevention" /></UnsetPrevention> <ClearAlarmReleased><xsl:value-of select="ClearAlarmReleased" /></ClearAlarmReleased> </PartitionMember> <AccessPoint> <UID><xsl:value-of select="@UID" /></UID> <DoorReleaseTime><xsl:value-of select="DoorReleaseTime" /></DoorReleaseTime> <ModeAccess><xsl:value-of select="OperatingModes/Access" /></ModeAccess> <ModeAccessNoSchedule><xsl:value-of select="OperatingModes/AccessAutomatic" /></ModeAccessNoSchedule> <ModeSet><xsl:value-of select="OperatingModes/FullSet" /></ModeSet> <ModePartSet><xsl:value-of select="OperatingModes/PartSet" /></ModePartSet> <ModeUnset><xsl:value-of select="OperatingModes/Unset" /></ModeUnset> <ModeMacro><xsl:value-of select="OperatingModes/Macro" /></ModeMacro> <ModeQuickMacro><xsl:value-of select="OperatingModes/QuickMacro" /></ModeQuickMacro> <CodeData><xsl:value-of select="CodeData" /></CodeData> <DuressAlarmSetType><xsl:value-of select="Alarms/Duress/AlarmSetType" /></DuressAlarmSetType> <DuressAlertingType><xsl:value-of select="Alarms/Duress/AlertingType" /></DuressAlertingType> <FailAttemptAlarmSetType><xsl:value-of select="Alarms/FailAttempt/AlarmSetType" /></FailAttemptAlarmSetType> <FailAttemptAlertingType><xsl:value-of select="Alarms/FailAttempt/AlertingType" /></FailAttemptAlertingType> <DoorTamperAlarmSetType><xsl:value-of select="Alarms/DoorTamper/AlarmSetType" /></DoorTamperAlarmSetType> <DoorTamperAlertingType><xsl:value-of select="Alarms/DoorTamper/AlertingType" /></DoorTamperAlertingType> <DoorOpenTimeAlarmSetType><xsl:value-of select="Alarms/DoorOpenTime/AlarmSetType" /></DoorOpenTimeAlarmSetType> <DoorOpenTimeAlertingType><xsl:value-of select="Alarms/DoorOpenTime/AlertingType" /></DoorOpenTimeAlertingType> <LogicalAccessPointUID><xsl:value-of select="HWUID" /></LogicalAccessPointUID> </AccessPoint> <xsl:variable name="UID"><xsl:value-of select="@UID" /></xsl:variable> <MultiplePersonAccess> <AccessPoint_UID><xsl:value-of select="$UID" /></AccessPoint_UID> <MPALimit><xsl:value-of select="MultiplePersonAccess/MPALimit" /></MPALimit> </MultiplePersonAccess> <FailAttempt> <AccessPoint_UID><xsl:value-of select="$UID" /></AccessPoint_UID> <Limit><xsl:value-of select="FailAttempt/Limit" /></Limit> <DeactivateAccess><xsl:value-of select="FailAttempt/DeactivateAccess" /></DeactivateAccess> <DeactivateMacros><xsl:value-of select="FailAttempt/DeactivateMacros" /></DeactivateMacros> <LockoutTime><xsl:value-of select="FailAttempt/LockoutTime" /></LockoutTime> </FailAttempt> <xsl:for-each select="Macros/QuickMacro"> <APQuickMacro> <AccessPointUID><xsl:value-of select="$UID" /></AccessPointUID> <Key><xsl:value-of select="MacroKey" /></Key> <MacroUID><xsl:value-of select="UID" /></MacroUID> </APQuickMacro> </xsl:for-each> <xsl:for-each select="Macros/Macro"> <APMacro> <AccessPointUID><xsl:value-of select="$UID" /></AccessPointUID> <Code><xsl:value-of select="MacroCode" /></Code> <MacroUID><xsl:value-of select="UID" /></MacroUID> </APMacro> </xsl:for-each> <xsl:for-each select="Users/User"> </xsl:for-each> <xsl:for-each select="Turnstile"> <APTurnstile> <AccessPointUID><xsl:value-of select="$UID" /></AccessPointUID> <Type><xsl:value-of select="Type" /></Type> <OpenerRelayOutputUID><xsl:value-of select="Output[Position='dopOpenerRelais']/HWUID" /></OpenerRelayOutputUID> <LatchContactInputUID><xsl:value-of select="Input[Position='dipLatchContact']/HWUID" /></LatchContactInputUID> </APTurnstile> </xsl:for-each> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PartitionMembers/AccessPoints/AccessPoint/Users/User"> <xsl:variable name="AccessPointUID" select="./../../@UID" /> <AccessPoint_User> <UID><xsl:value-of select="position()" /></UID> <!--xml tag position is used as unique ID--> <AccessPointUID><xsl:value-of select="$AccessPointUID" /></AccessPointUID> <UserUID><xsl:value-of select="." /></UserUID> </AccessPoint_User> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PMCollections/PMCollection"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>PMCollection</TableName> </UID> <PMCollection> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Order><xsl:value-of select="Order" /></Order> <Owner><xsl:value-of select="Owner" /></Owner> <ReleaseStorage><xsl:value-of select="ReleaseStorage" /></ReleaseStorage> <ReleaseStorageTime><xsl:value-of select="ReleaseStorageTime" /></ReleaseStorageTime> </PMCollection> <xsl:choose> <xsl:when test="@Type='ccPMCollectionDependency'"> <PMCollectionDependency> <UID><xsl:value-of select="@UID" /></UID> <All><xsl:value-of select="All" /></All> <Min><xsl:value-of select="Min" /></Min> <AlarmPeriod><xsl:value-of select="AlarmPeriod" /></AlarmPeriod> </PMCollectionDependency> </xsl:when> <xsl:when test="@Type='ccPMCollectionEntryRoute'"> <PMCollectionEntryRoute> <UID><xsl:value-of select="@UID" /></UID> </PMCollectionEntryRoute> </xsl:when> <xsl:when test="@Type='ccPMCollectionExitRoute'"> <PMCollectionExitRoute> <UID><xsl:value-of select="@UID" /></UID> </PMCollectionExitRoute> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/PartitionMemberManager/PMCollections/PMCollection/PMs/PM"> <xsl:variable name="PMCollectionUID" select="./../../@UID" /> <PMCollection_PartitionMember> <UID><xsl:value-of select="position()" /></UID> <Number><xsl:value-of select="Number" /></Number> <PMCollectionUID><xsl:value-of select="$PMCollectionUID" /></PMCollectionUID> <PartitionMemberUID><xsl:value-of select="UID" /></PartitionMemberUID> </PMCollection_PartitionMember> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduleManager/Holidays/Holiday"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Holiday</TableName> </UID> <Holiday> <UID><xsl:value-of select="@UID" /></UID> <xsl:choose> <xsl:when test="@HolidayType"> <Type><xsl:value-of select="@HolidayType" /></Type> </xsl:when> <xsl:otherwise> <Type>htFullDay</Type> </xsl:otherwise> </xsl:choose> <Name><xsl:value-of select="Name" /></Name> <xsl:choose> <xsl:when test="contains(Date,'0000-')"> <Day><xsl:value-of select="concat('2000',substring(Date,5,6))" /></Day> <Yearly>true</Yearly> </xsl:when> <xsl:otherwise> <Day><xsl:value-of select="Date" /></Day> <Yearly>false</Yearly> </xsl:otherwise> </xsl:choose> </Holiday> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/UserManager/Users/User"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>User</TableName> </UID> <User> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Enabled><xsl:value-of select="Enabled" /></Enabled> <CodeData><xsl:value-of select="CodeData" /></CodeData> <CardData><xsl:value-of select="CardData" /></CardData> <RFFobData><xsl:value-of select="RFFobData" /></RFFobData> <xsl:choose> <xsl:when test="StartDate or EndDate"> <UnlimitedValidity>false</UnlimitedValidity> </xsl:when> <xsl:otherwise> <UnlimitedValidity>true</UnlimitedValidity> </xsl:otherwise> </xsl:choose> <ValidityStartDate><xsl:value-of select="StartDate" /></ValidityStartDate> <ValidityEndDate><xsl:value-of select="EndDate" /></ValidityEndDate> </User> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/UserManager/Users/User/UserGroups/UserGroup"> <xsl:variable name="UserUID" select="../../@UID" /> <User_UserGroup> <UID><xsl:value-of select="position()" /></UID> <UserUID><xsl:value-of select="$UserUID" /></UserUID> <UserGroupUID><xsl:value-of select="." /></UserGroupUID> </User_UserGroup> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/UserGroupManager/UserGroup"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>RTZ</TableName> </UID> <xsl:variable name="UserGroupUID" select="@UID" /> <xsl:variable name="UserGroupPosition" select="position()" /> <!-- in GCP each ScheduledItem can have a different Schedule, in MB panels all scheduleditems in usergroup always share the same schedule (because GUI would be too complex), therefore ScheduleUID is always read from first ScheduledItem --> <xsl:variable name="FirstScheduledItemUID" select="ScheduledItems/ScheduledItem" /> <xsl:variable name="FirstScheduleUID" select="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduledItemManager/ScheduledItem[@UID=$FirstScheduledItemUID]/Schedule" /> <UserGroup> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <ScheduleUID><xsl:value-of select="$FirstScheduleUID" /></ScheduleUID> <!-- sets helper flags - these flags are used for grid filtering (without these flags is not possible to write correct data filter) --> <xsl:if test="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduledItemManager/ScheduledItem[@UID=$FirstScheduledItemUID]/@Type='ccScheduledAccessPointGroup'"> <APGFlag>true</APGFlag> </xsl:if> <xsl:if test="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduledItemManager/ScheduledItem[@UID=$FirstScheduledItemUID]/@Type='ccScheduledAccessControlMode'"> <ACMFlag>true</ACMFlag> </xsl:if> <xsl:if test="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduledItemManager/ScheduledItem[@UID=$FirstScheduledItemUID]/@Type='ccScheduledDoorControlMode'"> <DCMFlag>true</DCMFlag> </xsl:if> <xsl:for-each select="Privileges/Privilege"> <xsl:element name="{.}">true</xsl:element> </xsl:for-each> <!-- according to Schedule type are set flags UseCalendar and Priority --> <xsl:for-each select="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduleManager/Schedules/Schedule[@UID=$FirstScheduleUID]"> <UseCalendar> <xsl:choose> <xsl:when test="@Type='ccSchedule'">false</xsl:when> <xsl:otherwise>true</xsl:otherwise> </xsl:choose> </UseCalendar> <Priority> <xsl:choose> <xsl:when test="@Type='ccDateSchedulePriority'">true</xsl:when> <xsl:otherwise>false</xsl:otherwise> </xsl:choose> </Priority> </xsl:for-each> </UserGroup> <!-- stores ScheduleUID into list of unique UIDs --> <UID> <UID><xsl:value-of select="$FirstScheduleUID" /></UID> <TableName>Schedule</TableName> </UID> <!-- Time schedules + day periods --> <xsl:for-each select="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduleManager/Schedules/Schedule[@UID=$FirstScheduleUID]"> <xsl:variable name="SchedulePosition" select="position()" /> <xsl:for-each select="TimeSchedules/TimeSchedule"> <UserGroup_TimeSchedule> <UID><xsl:value-of select="$UserGroupPosition*1000000+$SchedulePosition*1000+position()" /></UID> <UserGroupUID><xsl:value-of select="$UserGroupUID" /></UserGroupUID> <TimeScheduleUID><xsl:value-of select="." /></TimeScheduleUID> </UserGroup_TimeSchedule> </xsl:for-each> <xsl:for-each select="DatePeriods/DatePeriod"> <DatePeriod> <UID><xsl:value-of select="$UserGroupPosition*1000000+$SchedulePosition*1000+position()" /></UID> <UserGroupUID><xsl:value-of select="$UserGroupUID" /></UserGroupUID> <StartDate><xsl:value-of select="StartDate" /></StartDate> <EndDate><xsl:value-of select="EndDate" /></EndDate> <Yearly><xsl:value-of select="Yearly" /></Yearly> </DatePeriod> </xsl:for-each> </xsl:for-each> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/UserGroupManager/UserGroup/ScheduledItems/ScheduledItem"> <xsl:variable name="UserGroupUID" select="../../@UID" /> <xsl:variable name="ScheduledItemUID" select="." /> <UserGroup_ScheduledItem> <UID><xsl:value-of select="position()" /></UID> <UserGroupUID><xsl:value-of select="$UserGroupUID" /></UserGroupUID> <ScheduledItemUID><xsl:value-of select="$ScheduledItemUID" /></ScheduledItemUID> <expUserGroupType><xsl:value-of select="/PanelConfiguration/Panel/Application/ApplicationManager/UserGroupManager/UserGroup[@UID=$UserGroupUID]/@Type" /></expUserGroupType> <expScheduledItemType><xsl:value-of select="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduledItemManager/ScheduledItem[@UID=$ScheduledItemUID]/@Type" /></expScheduledItemType> </UserGroup_ScheduledItem> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduledItemManager/ScheduledItem"> <xsl:variable name="ScheduledItemUID" select="@UID" /> <xsl:variable name="ScheduledItemType" select="@Type" /> <xsl:variable name="UserGroupUID" select="/PanelConfiguration/Panel/Application/ApplicationManager/UserGroupManager/UserGroup[ScheduledItems/ScheduledItem=$ScheduledItemUID]/@UID" /> <xsl:variable name="ScheduledItemPosition" select="position()" /> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>ScheduledItem</TableName> </UID> <ScheduledItem> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> <ControlMode><xsl:value-of select="ControlMode" /></ControlMode> </ScheduledItem> <xsl:for-each select="AccessPoints/AccessPoint"> <xsl:choose> <!-- mapping rows for RTZ (ScheduledAccessPointGroup) --> <xsl:when test="$ScheduledItemType='ccScheduledAccessPointGroup'"> <ScheduledItem_APGroup> <!-- uid in mapping table is calculated as group number * 2000 + number of accesspoint in accesspoint group --> <UID><xsl:value-of select="$ScheduledItemPosition*2000 + position()" /></UID> <ScheduledItemUID><xsl:value-of select="$ScheduledItemUID" /></ScheduledItemUID> <AccessPointUID><xsl:value-of select="@UID" /></AccessPointUID> <xsl:for-each select="Privileges/Privilege"> <xsl:element name="{.}">true</xsl:element> </xsl:for-each> </ScheduledItem_APGroup> </xsl:when> <!-- mapping rows for AccessControlMode (ScheduledAccessControlMode) --> <xsl:when test="$ScheduledItemType='ccScheduledAccessControlMode'"> <ScheduledItem_AP> <UID><xsl:value-of select="$ScheduledItemPosition*2000 + position()" /></UID> <ScheduledItemUID><xsl:value-of select="$ScheduledItemUID" /></ScheduledItemUID> <AccessPointUID><xsl:value-of select="." /></AccessPointUID> <Valid>true</Valid> </ScheduledItem_AP> </xsl:when> </xsl:choose> </xsl:for-each> <xsl:for-each select="Doors/Door"> <ScheduledItem_Door> <!-- uid in mapping table is calculated as group number * 2000 + door position --> <UID><xsl:value-of select="$ScheduledItemPosition*2000 + position()" /></UID> <ScheduledItemUID><xsl:value-of select="$ScheduledItemUID" /></ScheduledItemUID> <DoorUID><xsl:value-of select="." /></DoorUID> </ScheduledItem_Door> </xsl:for-each> <xsl:for-each select="UIProxies/UIProxy"> <ScheduledItem_UIProxy> <UID><xsl:value-of select="$ScheduledItemPosition*2000 + position()" /></UID> <ScheduledItemUID><xsl:value-of select="$ScheduledItemUID" /></ScheduledItemUID> <UIProxyUID><xsl:value-of select="." /></UIProxyUID> </ScheduledItem_UIProxy> </xsl:for-each> <xsl:for-each select="Partitions/Partition"> <ScheduledItem_Partition> <UID><xsl:value-of select="$ScheduledItemPosition*2000 + position()" /></UID> <ScheduledItemUID><xsl:value-of select="$ScheduledItemUID" /></ScheduledItemUID> <PartitionUID><xsl:value-of select="." /></PartitionUID> </ScheduledItem_Partition> </xsl:for-each> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/ScheduleManager/TimeSchedules/TimeSchedule"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>TimeSchedule</TableName> </UID> <TimeSchedule> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="Weekdays/Weekday"> <xsl:variable name="DayName" select="." /> <xsl:element name="{substring($DayName,4)}">true</xsl:element> </xsl:for-each> <ExpiredDay><xsl:value-of select="ExpiredDay" /></ExpiredDay> </TimeSchedule> <xsl:variable name="TimeScheduleUID" select="@UID" /> <xsl:for-each select="TimePeriods/TimePeriod"> <TimePeriod> <TimeScheduleUID><xsl:value-of select="$TimeScheduleUID" /></TimeScheduleUID> <StartTime><xsl:value-of select="StartTime" /></StartTime> <EndTime><xsl:value-of select="EndTime" /></EndTime> <Position><xsl:value-of select="position()" /></Position> <Enabled>true</Enabled> </TimePeriod> </xsl:for-each> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/ApplicationManager/EventLogs/EventLog"> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/Macros/TriggerPool/Trigger"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Trigger</TableName> </UID> <Trigger> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <GeneratorUID><xsl:value-of select="GeneratorUID" /></GeneratorUID> </Trigger> <xsl:variable name="tableName"> <xsl:value-of select="concat('Trigger_',substring(@Type,10,100))" /> </xsl:variable> <xsl:element name="{$tableName}"> <!-- iterates the rest of command parameters and stores them into extra table --> <UID><xsl:value-of select="@UID" /></UID> <xsl:for-each select="*"> <xsl:if test="(name()!='Name') and (name()!='GeneratorUID')"> <xsl:element name="{name()}"><xsl:value-of select="." /></xsl:element> </xsl:if> </xsl:for-each> </xsl:element> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/Macros/ConditionPool/Condition"> <xsl:variable name="UID">1</xsl:variable> <xsl:variable name="ConditionUID"><xsl:value-of select="@UID" /></xsl:variable> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Condition</TableName> </UID> <Condition> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <ExpressionRootUID>1</ExpressionRootUID> </Condition> <xsl:for-each select="ExpressionRoot"> <xsl:call-template name="ReadExpression"> <xsl:with-param name="ConditionUID" select="$ConditionUID" /> <xsl:with-param name="NewExpressionUID" select="1" /> <xsl:with-param name="ParentExpressionUID" select="0" /> </xsl:call-template> </xsl:for-each> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/Macros/SignalPool/Signal"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Signal</TableName> </UID> <Signal> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <SourceUID><xsl:value-of select="Ref" /></SourceUID> <Inverted><xsl:value-of select="Inverted" /></Inverted> <SingleEdge><xsl:value-of select="SingleEdge" /></SingleEdge> <Impulse><xsl:value-of select="Impulse" /></Impulse> </Signal> </xsl:template> <xsl:template name="ReadExpression"> <xsl:param name="ConditionUID" /> <xsl:param name="NewExpressionUID" /> <xsl:param name="ParentExpressionUID" /> <xsl:variable name="MAXTREENODESINBRANCH" select="20" /><!-- constant must have the same value in XSL and in C# --> <Expression> <ExpressionUID><xsl:value-of select="$NewExpressionUID" /></ExpressionUID> <ConditionUID><xsl:value-of select="$ConditionUID" /></ConditionUID> <Type><xsl:value-of select="@Type" /></Type> <xsl:if test="@Type='ccAtomic'"> <xsl:if test="@TriggerRef>0"> <TriggerUID><xsl:value-of select="@TriggerRef" /></TriggerUID> </xsl:if> </xsl:if> <xsl:if test="$ParentExpressionUID>0"> <ParentExpressionUID><xsl:value-of select="$ParentExpressionUID" /></ParentExpressionUID> </xsl:if> </Expression> <xsl:if test="@Type!='ccAtomic'"> <xsl:for-each select="Expression"> <xsl:if test="position()<=$MAXTREENODESINBRANCH"> <xsl:variable name="NewUID" select="($NewExpressionUID+position()-1)*($MAXTREENODESINBRANCH+1)" /> <xsl:call-template name="ReadExpression"> <xsl:with-param name="ConditionUID" select="$ConditionUID" /> <xsl:with-param name="NewExpressionUID" select="$NewUID" /> <xsl:with-param name="ParentExpressionUID" select="$NewExpressionUID" /> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/Macros/CommandPool/Command"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Command</TableName> </UID> <Command> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <ExecutorUID><xsl:value-of select="ExecutorUID" /></ExecutorUID> </Command> <xsl:variable name="tableName"><xsl:value-of select="concat('Command_',substring(@Type,9,100))" /></xsl:variable> <xsl:element name="{$tableName}"> <!-- iterates the rest of command parameters and stores them into extra table --> <UID><xsl:value-of select="@UID" /></UID> <xsl:for-each select="*"> <xsl:if test="(name()!='Name') and (name()!='ExecutorUID')"> <xsl:element name="{name()}"><xsl:value-of select="." /></xsl:element> </xsl:if> </xsl:for-each> </xsl:element> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/Macros/ActionPool/Action"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Action</TableName> </UID> <Action> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> </Action> <xsl:variable name="ActionUID" select="@UID" /> <xsl:for-each select="ActionList/CommandRef"> </xsl:for-each> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/Macros/ActionPool/Action/ActionList/CommandRef"> <xsl:variable name="ActionUID" select="./../../@UID" /> <Action_Command> <UID><xsl:value-of select="position()" /></UID> <Action_UID><xsl:value-of select="$ActionUID" /></Action_UID> <Command_UID><xsl:value-of select="." /></Command_UID> </Action_Command> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/Macros/MacroPool/Macro"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>Macro</TableName> </UID> <Macro> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <ConditionUID><xsl:value-of select="ConditionRef" /></ConditionUID> <ActionOnUID><xsl:value-of select="ActionRef" /></ActionOnUID> <ActionOffUID><xsl:value-of select="ActionRef2" /></ActionOffUID> </Macro> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/UserInterfaceManager/UIProxy"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>UIProxy</TableName> </UID> <UIProxy> <UID><xsl:value-of select="@UID" /></UID> <Name><xsl:value-of select="Name" /></Name> <Type><xsl:value-of select="@Type" /></Type> </UIProxy> <xsl:choose> <xsl:when test="@Type='ccUITouchCenter'"> <UITouchCenter> <UID><xsl:value-of select="@UID" /></UID> <LogicalSmartUI_UID><xsl:value-of select="HWUID" /></LogicalSmartUI_UID> <Language><xsl:value-of select="Language" /></Language> <TamperPartitionUID><xsl:value-of select="TamperPartition" /></TamperPartitionUID> <PreferedPartitionUID><xsl:value-of select="PreferedPartition" /></PreferedPartitionUID> <AmountCodeInput><xsl:value-of select="AmountCodeInput" /></AmountCodeInput> <OperatingTime><xsl:value-of select="OperatingTime" /></OperatingTime> <BlockingTime><xsl:value-of select="BlockingTime" /></BlockingTime> <OperationWithCode><xsl:value-of select="OperationWithCode" /></OperationWithCode> <ViewWithCode><xsl:value-of select="ViewWithCode" /></ViewWithCode> <ViewOverview><xsl:value-of select="ViewOverview" /></ViewOverview> <AlarmLEDByFullSet><xsl:value-of select="AlarmLEDByFullSet" /></AlarmLEDByFullSet> <FullSetUnsetAllowed><xsl:value-of select="FullSetUnsetAllowed" /></FullSetUnsetAllowed> <PartSetUnsetAllowed><xsl:value-of select="PartSetUnsetAllowed" /></PartSetUnsetAllowed> </UITouchCenter> </xsl:when> <xsl:otherwise> <UIKeypad> <UID><xsl:value-of select="@UID" /></UID> <LogicalKeyboardReaderUID><xsl:value-of select="HWUID" /></LogicalKeyboardReaderUID> <LogicalPeripheralUID><xsl:value-of select="HWUIDPeripheral" /></LogicalPeripheralUID> <LogicalDisplayUID><xsl:value-of select="HWUIDDisplay" /></LogicalDisplayUID> <OwnerKeypadUID><xsl:value-of select="Owner" /></OwnerKeypadUID> <OperatingTime><xsl:value-of select="OperatingTime" /></OperatingTime> <Indication><xsl:value-of select="Indication" /></Indication> <Operating><xsl:value-of select="Operating" /></Operating> </UIKeypad> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/UserInterfaceManager/UIProxy/Partitions/UID"> <xsl:variable name="UIProxyUID" select="../../@UID" /> <UITouchCenter_Partition> <UID><xsl:value-of select="position()" /></UID> <UIProxyUID><xsl:value-of select="$UIProxyUID" /></UIProxyUID> <PartitionUID><xsl:value-of select="." /></PartitionUID> </UITouchCenter_Partition> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/UserInterfaceManager/UIProxy/Items/Item"> <xsl:variable name="UIProxyUID" select="../../@UID" /> <UIKeypadItem> <UID><xsl:value-of select="position()" /></UID> <!-- autonumbering is used, because in panel xml is no such UID --> <UIKeypadUID><xsl:value-of select="$UIProxyUID" /></UIKeypadUID> <!-- common part --> <Number><xsl:value-of select="Number" /></Number> <LogicalLedUID><xsl:value-of select="Led" /></LogicalLedUID> <Function><xsl:value-of select="Function" /></Function> <Indication><xsl:value-of select="Indication" /></Indication> <!-- signal part --> <RedLed_SignalUID><xsl:value-of select="SignalRed" /></RedLed_SignalUID> <YellowLed_SignalUID><xsl:value-of select="SignalYellow" /></YellowLed_SignalUID> <GreenLed_SignalUID><xsl:value-of select="SignalGreen" /></GreenLed_SignalUID> <!-- function part --> <LogicalKeyUID><xsl:value-of select="Key" /></LogicalKeyUID> <Operating><xsl:value-of select="Operating" /></Operating> <Operating2><xsl:value-of select="Operating2" /></Operating2> <TargetDeviceUID><xsl:value-of select="UID" /></TargetDeviceUID> </UIKeypadItem> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/RemoteApplicationManager/Connections/RemoteApplication"> <RemoteApplication> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <IPAddress><xsl:value-of select="Port/@IP" /></IPAddress> <Port><xsl:value-of select="Port/@Port" /></Port> <SocketType><xsl:value-of select="Port/@Type" /></SocketType> <Protocol><xsl:value-of select="Port/@TCPUDP" /></Protocol> <Blocking><xsl:value-of select="Port/@Blocking" /></Blocking> <Interval><xsl:value-of select="Interval" /></Interval> <PassWD><xsl:value-of select="Password" /></PassWD> </RemoteApplication> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/AlarmReportingManager/AlarmDevices/AlarmDevice"> <xsl:variable name="AlarmDeviceUID" select="@UID" /> <UID> <UID><xsl:value-of select="$AlarmDeviceUID" /></UID> <TableName>AlarmDevice</TableName> </UID> <AlarmDevice> <UID><xsl:value-of select="$AlarmDeviceUID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <VirtualDSDeviceUID><xsl:value-of select="VirtualDSDevice" /></VirtualDSDeviceUID> <PartitionUID><xsl:value-of select="Partition" /></PartitionUID> <SendDescription><xsl:value-of select="Description" /></SendDescription> <CommFailureEffect><xsl:value-of select="FaultTypes/FaultType[Type='ftCommFailure']/Effect" /></CommFailureEffect> <WireFaultEffect><xsl:value-of select="FaultTypes/FaultType[Type='ftWireFault']/Effect" /></WireFaultEffect> </AlarmDevice> <AlarmDevice_FaultType> <AlarmDeviceUID><xsl:value-of select="$AlarmDeviceUID" /></AlarmDeviceUID> <CommFailureEffect><xsl:value-of select="FaultTypes/FaultType[Type='ftCommFailure']/Effect" /></CommFailureEffect> <WireFaultEffect><xsl:value-of select="FaultTypes/FaultType[Type='ftWireFault']/Effect" /></WireFaultEffect> </AlarmDevice_FaultType> <xsl:for-each select="Channels/Channel"> <Channel> <AlarmDeviceUID><xsl:value-of select="$AlarmDeviceUID" /></AlarmDeviceUID> <Type><xsl:value-of select="@Type" /></Type> <Number><xsl:value-of select="@Number" /></Number> <xsl:choose> <xsl:when test="@Type='Alarm'"> <SignalUID><xsl:value-of select="@Partition" /></SignalUID> <PartitionAlarmType><xsl:value-of select="@AlarmType" /></PartitionAlarmType> </xsl:when> <xsl:when test="@Type='Signal'"> <SignalUID><xsl:value-of select="@Ref" /></SignalUID> </xsl:when> <xsl:otherwise> <!-- channels with empty type are not included into xml --> </xsl:otherwise> </xsl:choose> <Inverted><xsl:value-of select="@Inverted" /></Inverted> <SingleEdge><xsl:value-of select="@SingleEdge" /></SingleEdge> <Impulse><xsl:value-of select="@Impulse" /></Impulse> </Channel> </xsl:for-each> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/Application/AlarmReportingManager/AlarmDevices/AlarmDevice/FaultPartitions/UID"> <xsl:variable name="AlarmDeviceUID" select="../../@UID" /> <AlarmDevice_FaultPartition> <UID><xsl:value-of select="position()" /></UID> <AlarmDeviceUID><xsl:value-of select="$AlarmDeviceUID" /></AlarmDeviceUID> <PartitionUID><xsl:value-of select="." /></PartitionUID> </AlarmDevice_FaultPartition> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalInputs/LogicalInput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalInput</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <xsl:for-each select="//ConfiguredDevices/*[Inputs/Input/LDUID=$LDUID]"> <xsl:for-each select="Inputs/Input[LDUID=$LDUID]"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalInput</TableName> </UID> </xsl:for-each> </xsl:for-each> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <!--inserts HardwareDeviceUID in various ways --> <xsl:for-each select="//ConfiguredDevices/*[Inputs/Input/LDUID=$LDUID]"> <xsl:for-each select="Inputs/Input[LDUID=$LDUID]"> <ClassType><xsl:value-of select="@Type" /></ClassType> <ClassUID><xsl:value-of select="@UID" /></ClassUID> <Number><xsl:value-of select="Number" /></Number> <Parameter><xsl:value-of select="Param" /></Parameter> </xsl:for-each> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//GPIO/GPIOInputs/GPIOInput[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//GPIO/SPIInputs/SPIInput[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//GPIO/AnalogInputs/AnalogInput[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <!-- end of HardwareDeviceUID --> </LogicalDevice> <LogicalInput> <UID><xsl:value-of select="@UID" /></UID> </LogicalInput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalOutputs/LogicalOutput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalOutput</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <xsl:for-each select="//ConfiguredDevices/*[Outputs/Output/LDUID=$LDUID]"> <xsl:for-each select="Outputs/Output[LDUID=$LDUID]"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalOutput</TableName> </UID> </xsl:for-each> </xsl:for-each> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <!--inserts HardwareDeviceUID in various ways --> <xsl:for-each select="//ConfiguredDevices/*[Outputs/Output/LDUID=$LDUID]"> <xsl:for-each select="Outputs/Output[LDUID=$LDUID]"> <ClassType><xsl:value-of select="@Type" /></ClassType> <ClassUID><xsl:value-of select="@UID" /></ClassUID> <Number><xsl:value-of select="Number" /></Number> </xsl:for-each> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//GPIO/GPIOOutputs/GPIOOutput[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//GPIO/SPIOutputs/SPIOutput[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <!-- end of HardwareDeviceUID --> </LogicalDevice> <LogicalOutput> <UID><xsl:value-of select="@UID" /></UID> </LogicalOutput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalPirs/LogicalPir"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalPIR</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalPIR> <UID><xsl:value-of select="@UID" /></UID> </LogicalPIR> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSounders/LogicalSounder"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalSounder</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <xsl:for-each select="//ConfiguredDevices/*[Sounder/LDUID=$LDUID]"> <xsl:for-each select="Sounder"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalSounder</TableName> </UID> </xsl:for-each> </xsl:for-each> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[Sounder/LDUID=$LDUID]"> <xsl:for-each select="Sounder"> <ClassType><xsl:value-of select="@Type" /></ClassType> <ClassUID><xsl:value-of select="@UID" /></ClassUID> <Number><xsl:value-of select="Number" /></Number> </xsl:for-each> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalSounder> <UID><xsl:value-of select="@UID" /></UID> </LogicalSounder> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalKeys/LogicalKey"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalKey</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <!--inserts HardwareDeviceUID in various ways --> <xsl:for-each select="//ConfiguredDevices/*[Keys/Key/LDUID=$LDUID]"> <xsl:for-each select="Keys/Key[LDUID=$LDUID]"> <ClassType><xsl:value-of select="@Type" /></ClassType> <ClassUID><xsl:value-of select="@UID" /></ClassUID> <Number><xsl:value-of select="Number" /></Number> </xsl:for-each> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <!-- end of HardwareDeviceUID --> </LogicalDevice> <LogicalKey> <UID><xsl:value-of select="@UID" /></UID> </LogicalKey> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalLeds/LogicalLed"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalLed</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <!--inserts HardwareDeviceUID in various ways --> <xsl:for-each select="//ConfiguredDevices/*[Leds/Led/LDUID=$LDUID]"> <xsl:for-each select="Leds/Led[LDUID=$LDUID]"> <ClassType><xsl:value-of select="@Type" /></ClassType> <ClassUID><xsl:value-of select="@UID" /></ClassUID> <Number><xsl:value-of select="Number" /></Number> </xsl:for-each> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <!-- end of HardwareDeviceUID --> </LogicalDevice> <LogicalLed> <UID><xsl:value-of select="@UID" /></UID> </LogicalLed> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSounders/SounderTemplates/SounderTemplate"> <UID> <UID><xsl:value-of select="Number" /></UID> <TableName>SounderTemplate</TableName> </UID> <SounderTemplate> <UID><xsl:value-of select="Number" /></UID> <Name><xsl:value-of select="Name" /></Name> <LowFrequency><xsl:value-of select="LowFrequency" /></LowFrequency> <HighFrequency><xsl:value-of select="HighFrequency" /></HighFrequency> <RiseTime><xsl:value-of select="RiseTime" /></RiseTime> <FallTime><xsl:value-of select="FallTime" /></FallTime> <RestingTimeLowFrequency><xsl:value-of select="RestingTimeLowFrequency" /></RestingTimeLowFrequency> <RestingTimeHighFrequency><xsl:value-of select="RestingTimeHighFrequency" /></RestingTimeHighFrequency> </SounderTemplate> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalEmails/LogicalEmail"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalEmail</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalEmail> <UID><xsl:value-of select="@UID" /></UID> </LogicalEmail> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSMSs/LogicalSMS"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalSMS</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalSMS> <UID><xsl:value-of select="@UID" /></UID> </LogicalSMS> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalReaders/LogicalReader"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalReader</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalReader> <UID><xsl:value-of select="@UID" /></UID> </LogicalReader> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalKeyboards/LogicalKeyboard"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalKeyboard</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalKeyboard> <UID><xsl:value-of select="@UID" /></UID> </LogicalKeyboard> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalKeyboardReaders/LogicalKeyboardReader"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalKeyboardReader</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalKeyboardReader> <UID><xsl:value-of select="@UID" /></UID> </LogicalKeyboardReader> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalKeypads/LogicalKeypad"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalKeypad</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalKeypad> <UID><xsl:value-of select="@UID" /></UID> </LogicalKeypad> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSmartUIs/LogicalSmartUI"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalSmartUI</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalSmartUI> <UID><xsl:value-of select="@UID" /></UID> </LogicalSmartUI> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalCameras/LogicalCamera"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalCamera</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalCamera> <UID><xsl:value-of select="@UID" /></UID> </LogicalCamera> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalCarbonMonoxides/LogicalCarbonMonoxide"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalCarbonMonoxide</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalCarbonMonoxide> <UID><xsl:value-of select="@UID" /></UID> </LogicalCarbonMonoxide> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalDisplays/LogicalDisplay"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalDisplay</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalDisplay> <UID><xsl:value-of select="@UID" /></UID> </LogicalDisplay> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalDoors/LogicalDoor"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalDoor</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <xsl:for-each select="//ConfiguredDevices/*[Doors/Door/LDUID=$LDUID]"> <xsl:for-each select="Doors/Door[LDUID=$LDUID]"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalDoor</TableName> </UID> </xsl:for-each> </xsl:for-each> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[Doors/Door/LDUID=$LDUID]"> <xsl:for-each select="Doors/Door[LDUID=$LDUID]"> <ClassType><xsl:value-of select="@Type" /></ClassType> <ClassUID><xsl:value-of select="@UID" /></ClassUID> <Number><xsl:value-of select="Number" /></Number> </xsl:for-each> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalDoor> <UID><xsl:value-of select="@UID" /></UID> <xsl:for-each select="//Doors/Door[LDUID=$LDUID]"> <DoorNumber><xsl:value-of select="Number" /></DoorNumber> </xsl:for-each> </LogicalDoor> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalAccessPoints/LogicalAccessPoint"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalAccessPoint</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <xsl:for-each select="//ConfiguredDevices/*[AccessPoints/AccessPoint/LDUID=$LDUID]"> <xsl:for-each select="AccessPoints/AccessPoint[LDUID=$LDUID]"> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalAccessPoint</TableName> </xsl:for-each> </xsl:for-each> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[AccessPoints/AccessPoint/LDUID=$LDUID]"> <xsl:for-each select="AccessPoints/AccessPoint[LDUID=$LDUID]"> <ClassType><xsl:value-of select="@Type" /></ClassType> <ClassUID><xsl:value-of select="@UID" /></ClassUID> <Number><xsl:value-of select="Number" /></Number> </xsl:for-each> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalAccessPoint> <UID><xsl:value-of select="@UID" /></UID> <xsl:variable name="UID"><xsl:value-of select="@UID" /></xsl:variable> <xsl:for-each select="//ConfiguredDevices/*/AccessPoints/AccessPoint[LDUID=$UID]"> <DoorNumber><xsl:value-of select="DoorNumber" /></DoorNumber> <DoorOutside><xsl:value-of select="DoorOutside" /></DoorOutside> </xsl:for-each> </LogicalAccessPoint> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalEventBroadcasters/LogicalEventBroadcaster"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalEventBroadCaster</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalEventBroadcaster> <UID><xsl:value-of select="@UID" /></UID> </LogicalEventBroadcaster> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalPeripherals/LogicalPeripheral"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalPeripheral</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDPeripheral=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalPeripheral> <UID><xsl:value-of select="@UID" /></UID> </LogicalPeripheral> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalRFPeripherals/LogicalRFPeripheral"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalWirelessPeripheral</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDRFPeripheral=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalWirelessPeripheral> <UID><xsl:value-of select="@UID" /></UID> </LogicalWirelessPeripheral> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalRFMasters/LogicalRFMaster"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalRFMaster</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalWirelessMaster> <UID><xsl:value-of select="@UID" /></UID> </LogicalWirelessMaster> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalSmokeDetectors/LogicalSmokeDetector"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalSmokeDetector</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalSmokeDetector> <UID><xsl:value-of select="@UID" /></UID> </LogicalSmokeDetector> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalTemperatures/LogicalTemperature"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalTemperature</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalTemperature> <UID><xsl:value-of select="@UID" /></UID> </LogicalTemperature> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalDSAlarmReportings/LogicalDSAlarmReporting"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalDSAlarmReporting</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDUID=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalDSAlarmReporting> <UID><xsl:value-of select="@UID" /></UID> </LogicalDSAlarmReporting> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/LogicalDevices/LogicalInstallationServices/LogicalInstallationService"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>LogicalInstaService</TableName> </UID> <xsl:variable name="LDUID" select="@UID" /> <LogicalDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <xsl:for-each select="//ConfiguredDevices/*[LDInstallServices=$LDUID]"> <HardwareDeviceUID><xsl:value-of select="@UID" /></HardwareDeviceUID> </xsl:for-each> </LogicalDevice> <LogicalInstallService> <UID><xsl:value-of select="@UID" /></UID> </LogicalInstallService> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/GPIO/GPIOInputs/GPIOInput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>GPIOInput</TableName> </UID> <HardwareDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Address><xsl:value-of select="Address" /></Address> <OnboardDevice>true</OnboardDevice> </HardwareDevice> <HWGPIOInput> <UID><xsl:value-of select="@UID" /></UID> <LogicalInputUID><xsl:value-of select="LDUID" /></LogicalInputUID> </HWGPIOInput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/GPIO/GPIOOutputs/GPIOOutput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>GPIOOutput</TableName> </UID> <HardwareDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Address><xsl:value-of select="Address" /></Address> <OnboardDevice>true</OnboardDevice> </HardwareDevice> <HWGPIOOutput> <UID><xsl:value-of select="@UID" /></UID> <LogicalOutputUID><xsl:value-of select="LDUID" /></LogicalOutputUID> </HWGPIOOutput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/GPIO/SPIInputs/SPIInput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>SPIInput</TableName> </UID> <HardwareDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Address><xsl:value-of select="Address" /></Address> <OnboardDevice>true</OnboardDevice> </HardwareDevice> <HWSPIInput> <UID><xsl:value-of select="@UID" /></UID> <LogicalInputUID><xsl:value-of select="LDUID" /></LogicalInputUID> </HWSPIInput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/GPIO/SPIOutputs/SPIOutput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>SPIOutput</TableName> </UID> <HardwareDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Address><xsl:value-of select="Address" /></Address> <OnboardDevice>true</OnboardDevice> </HardwareDevice> <HWSPIOutput> <UID><xsl:value-of select="@UID" /></UID> <LogicalOutputUID><xsl:value-of select="LDUID" /></LogicalOutputUID> </HWSPIOutput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/GPIO/AnalogInputs/AnalogInput"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>AnalogInput</TableName> </UID> <HardwareDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Address><xsl:value-of select="Address" /></Address> <OnboardDevice>true</OnboardDevice> </HardwareDevice> <HWAnalogInput> <UID><xsl:value-of select="@UID" /></UID> <LogicalInputUID><xsl:value-of select="LDUID" /></LogicalInputUID> <TerminationResistor><xsl:value-of select="TerminationResistor" /></TerminationResistor> <ThresholdReleaseTop><xsl:value-of select="ThresholdReleaseTop" /></ThresholdReleaseTop> <ThresholdReleaseDown><xsl:value-of select="ThresholdReleaseDown" /></ThresholdReleaseDown> <ThresholdInterrupt><xsl:value-of select="ThresholdInterrupt" /></ThresholdInterrupt> <ThresholdShortCircuit><xsl:value-of select="ThresholdShortCircuit" /></ThresholdShortCircuit> </HWAnalogInput> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/BusController/Controller"> <xsl:call-template name="ReadControllers"> <xsl:with-param name="OwnerUID"><xsl:value-of select="/PanelConfiguration/Panel/@UID" /></xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template match="/PanelConfiguration/Panel/HardwareManager/SupportController/Controller"> <xsl:call-template name="ReadControllers"> <xsl:with-param name="OwnerUID"><xsl:value-of select="0" /></xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template match="//ConfiguredDevices/*/WirelessMasters/UID"> <xsl:param name="DeviceUID" select="./../../@UID" /> <WirelessMaster> <UID><xsl:value-of select="position()" /></UID> <DeviceUID><xsl:value-of select="$DeviceUID" /></DeviceUID> <MasterUID><xsl:value-of select="." /></MasterUID> </WirelessMaster> </xsl:template> <xsl:template name="ReadControllers"> <xsl:param name="OwnerUID" /> <!-- loads all controllers --> <xsl:variable name="PanelUID"><xsl:value-of select="/PanelConfiguration/Panel/@UID" /></xsl:variable> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>HardwareDevice</TableName> </UID> <HardwareDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Address><xsl:value-of select="Address" /></Address> <xsl:if test="$OwnerUID>0"> <ParentDeviceUID><xsl:value-of select="$OwnerUID" /></ParentDeviceUID> </xsl:if> <!-- first level of hardware devices (controllers) is connected directly to the panel, therefore onboard flag is set--> <OnboardController>true</OnboardController> <PartitionTamper><xsl:value-of select="PartitionTamper" /></PartitionTamper> <TamperOnLoss><xsl:value-of select="TamperOnLoss" /></TamperOnLoss> <!-- In this case columns SubdeviceUID and SubdeviceType are not used --> </HardwareDevice> <Controller> <UID><xsl:value-of select="@UID" /></UID> </Controller> <xsl:variable name="DeviceUID"><xsl:value-of select="@UID" /></xsl:variable> <xsl:variable name="DeviceType"><xsl:value-of select="@Type" /></xsl:variable> <xsl:call-template name="ReadPortSettings"> <xsl:with-param name="DeviceUID" select="$DeviceUID" /> </xsl:call-template> <xsl:call-template name="ReadHardwareDeviceProperties"> <xsl:with-param name="DeviceUID" select="$DeviceUID"/> <xsl:with-param name="DeviceType" select="$DeviceType"/> </xsl:call-template> <!-- loads list of configured devices --> <xsl:for-each select="ConfiguredDevices/BusDevice"> <xsl:call-template name="LoadConfiguredDevice"> <xsl:with-param name="ControllerUID" select="$DeviceUID" /> <xsl:with-param name="WirelessDevice" select="'false'" /> </xsl:call-template> </xsl:for-each> <xsl:for-each select="ConfiguredDevices/WirelessDevice"> <xsl:call-template name="LoadConfiguredDevice"> <xsl:with-param name="ControllerUID" select="$DeviceUID" /> <xsl:with-param name="WirelessDevice" select="'true'" /> </xsl:call-template> </xsl:for-each> <!--ConfiguredDevice tag is no longer supported --> <xsl:for-each select="ConfiguredDevices/ConfiguredDevice"> <xsl:call-template name="LoadConfiguredDevice"> <xsl:with-param name="ControllerUID" select="$DeviceUID" /> <xsl:with-param name="WirelessDevice" select="'false'" /> </xsl:call-template> </xsl:for-each> </xsl:template> <xsl:template name="ReadPortSettings"> <xsl:param name="DeviceUID" /> <xsl:variable name="PortCount"><xsl:value-of select="count(Port)" /></xsl:variable> <xsl:if test="$PortCount>0"> <Port> <Name><xsl:value-of select="Port/@Name" /></Name> <Hardware><xsl:value-of select="Port/@Hardware" /></Hardware> <Mode><xsl:value-of select="Port/@Mode" /></Mode> <BaudRate><xsl:value-of select="Port/@BaudRate" /></BaudRate> <DataBits><xsl:value-of select="Port/@DataBits" /></DataBits> <StopBits><xsl:value-of select="Port/@StopBits" /></StopBits> <Parity><xsl:value-of select="Port/@Parity" /></Parity> <ControllerUID><xsl:value-of select="$DeviceUID" /></ControllerUID> </Port> </xsl:if> </xsl:template> <xsl:template name="ReadHardwareDeviceProperties"> <xsl:param name="DeviceUID" /> <xsl:param name="DeviceType" /> <!-- cuts the prefix cc and adds prefix HW, e.g. "ccBus25InputModule"->"HWBus25InputModule" --> <xsl:variable name="tableName"><xsl:value-of select="concat('HW',substring($DeviceType,3,100))" /></xsl:variable> <!-- creates device specific table, e.g. HWBus25InputModule --> <xsl:if test="string-length($tableName)>0"> <xsl:element name="{$tableName}"> <UID><xsl:value-of select="$DeviceUID" /></UID> <xsl:for-each select="./*"> <!-- main purpose is to iterate all unknown tags, therefore all well known tags are skipped (list of all known hardware device tags is quite long)--> <xsl:if test="(name()!='Name') and (name()!='Address') and (name()!='Port') and (name()!='Controller') and (name()!='ConfiguredDevices') and (name()!='ConfiguredDevice') and (name()!='DetectedDevices') and (name()!='Inputs') and (name()!='Outputs') and (name()!='Doors') and (name()!='AccessPoints') and (name()!='Sounder') and (name()!='WirelessMasters') and (name()!='Keys') and (name()!='Leds')" > <!-- all tags for peripherals must be skipped --> <xsl:if test="not(contains(name(),'LDUID')) and (name()!='LDPeripheral') and (name()!='LDRFPeripheral') and (name()!='LDInstallServices')"> <!-- columns from HardwareDevice table must be skipped also --> <xsl:if test="(name()!='TimePattern') and (name()!='PartitionTamper') and (name()!='TamperOnLoss')"> <!-- the rest of parameters is specific for each device type, therefore such parameters are stored into extra table (see tables with HW... prefix) --> <xsl:choose> <xsl:when test="name()='ConfigData'"> <!-- ConfigData is helper treenode for DS devices. DS devices contain separate xml configuration with many tree levels, therefore deep copy is required --> <xsl:call-template name="CopyAll" /> </xsl:when> <xsl:when test="name()='MSB'"> <MSB> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="input-string"> <xsl:value-of select="string(.)" /> </xsl:with-param> </xsl:call-template> </MSB> </xsl:when> <xsl:otherwise> <!-- other parameters are single values only, therefore shallow copy is enough --> <xsl:element name="{name()}"><xsl:value-of select="." /></xsl:element> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:if> </xsl:if> </xsl:for-each> </xsl:element> </xsl:if> </xsl:template> <xsl:template name="LoadConfiguredDevice"> <xsl:param name="ControllerUID" /> <xsl:param name="WirelessDevice" /> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>HardwareDevice</TableName> </UID> <!-- subdevice uid --> <xsl:for-each select="Controller"> <UID> <UID><xsl:value-of select="@UID" /></UID> <TableName>UID</TableName> </UID> </xsl:for-each> <HardwareDevice> <UID><xsl:value-of select="@UID" /></UID> <Type><xsl:value-of select="@Type" /></Type> <Name><xsl:value-of select="Name" /></Name> <Address><xsl:value-of select="Address" /></Address> <xsl:for-each select="Controller"> <SubdeviceUID><xsl:value-of select="@UID" /></SubdeviceUID> <SubdeviceType><xsl:value-of select="@Type" /></SubdeviceType> </xsl:for-each> <TimePattern><xsl:value-of select="TimePattern" /></TimePattern> <WirelessDevice><xsl:value-of select="$WirelessDevice" /></WirelessDevice> <PartitionTamper><xsl:value-of select="PartitionTamper" /></PartitionTamper> <TamperOnLoss><xsl:value-of select="TamperOnLoss" /></TamperOnLoss> <ParentDeviceUID><xsl:value-of select="$ControllerUID" /></ParentDeviceUID> </HardwareDevice> <xsl:call-template name="ReadHardwareDeviceProperties"> <xsl:with-param name="DeviceUID" select="@UID"/> <xsl:with-param name="DeviceType" select="@Type"/> </xsl:call-template> <xsl:variable name="DeviceUID"><xsl:value-of select="@UID" /></xsl:variable> <xsl:for-each select="Controller"> <xsl:for-each select="ConfiguredDevices/BusDevice"> <xsl:call-template name="LoadConfiguredDevice"> <xsl:with-param name="ControllerUID" select="$DeviceUID" /> <xsl:with-param name="WirelessDevice" select="'false'" /> </xsl:call-template> </xsl:for-each> <xsl:for-each select="ConfiguredDevices/WirelessDevice"> <xsl:call-template name="LoadConfiguredDevice"> <xsl:with-param name="ControllerUID" select="$DeviceUID" /> <xsl:with-param name="WirelessDevice" select="'true'" /> </xsl:call-template> </xsl:for-each> <!--ConfiguredDevice tag is no longer supported --> <xsl:for-each select="ConfiguredDevices/ConfiguredDevice"> <xsl:call-template name="LoadConfiguredDevice"> <xsl:with-param name="ControllerUID" select="$DeviceUID" /> <xsl:with-param name="WirelessDevice" select="'false'" /> </xsl:call-template> </xsl:for-each> </xsl:for-each> </xsl:template> <!-- Copy XSL elements and their attributes --> <xsl:template name="CopyAll"> <xsl:element name="{name()}"> <xsl:for-each select="@*"> <xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute> </xsl:for-each> <xsl:for-each select="*"> <xsl:call-template name="CopyAll" /> </xsl:for-each> <xsl:value-of select="." /> </xsl:element> </xsl:template> <xsl:template name="ConvertHexToDec"> <xsl:param name="input-string" select=" '' "/> <xsl:param name="result" select="0" /> <xsl:choose> <xsl:when test="$input-string = ''"> <xsl:value-of select="$result" /> </xsl:when> <xsl:otherwise> <xsl:variable name="digit" select="substring($input-string, 1, 1)" /> <xsl:variable name="rest" select="substring($input-string, 2)" /> <xsl:choose> <xsl:when test="$digit = '0'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '1'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 1"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '2'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 2"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '3'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 3"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '4'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 4"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '5'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 5"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '6'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 6"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '7'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 7"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '8'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 8"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = '9'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 9"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = 'A'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 10"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = 'B'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 11"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = 'C'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 12"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = 'D'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 13"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = 'E'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 14"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:when test="$digit = 'F'"> <xsl:call-template name="ConvertHexToDec"> <xsl:with-param name="result" select="$result * 16 + 15"/> <xsl:with-param name="input-string" select="$rest"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:text>bad hex digit</xsl:text> <xsl:value-of select="$digit"/> <xsl:text>found at:</xsl:text> <xsl:value-of select="$input-string" /> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>