<?xml version="1.0" encoding="UTF-8"?>
<definitions version="2.3">
  <channels>
    <!-- General GDS Device Channel. This channel is part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.GdsDevice</urn>
      <channelName>Device</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Ready</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>State</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Trigger</dataPointTypeUrn>
        <dataPointName>Reset</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>O</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DateTime</dataPointTypeUrn>
        <dataPointName>Local-Time</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>4</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DateTime</dataPointTypeUrn>
        <dataPointName>System-Time</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>5</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.TimeSpan</dataPointTypeUrn>
        <dataPointName>Uptime</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
    </channel>

    <!-- Enhanced GDS Device Channel. This channel is based on the general GDS device channel. -->
    <channel>
      <urn>de.gira.schema.channels.GdsDevice2</urn>
      <channelName>Device</channelName>
      <baseTypeUrn>de.gira.schema.channels.GdsDevice</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>6</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Float</dataPointTypeUrn>
        <dataPointName>Memory</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>7</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Float</dataPointTypeUrn>
        <dataPointName>Free-Memory</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>8</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Float</dataPointTypeUrn>
        <dataPointName>Storage</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>9</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Float</dataPointTypeUrn>
        <dataPointName>Free-Storage</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>10</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Load</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>11</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Overload</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>12</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Stoppage</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
    </channel>

    <!-- Enhanced GDS Device with components configuration Channel. This channel is based on the general GDS Device channel. -->
    <channel>
      <urn>de.gira.schema.channels.GdsDeviceComponentsConfiguration</urn>
      <channelName>Device</channelName>
      <baseTypeUrn>de.gira.schema.channels.GdsDevice</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>6</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Configure-Components</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>7</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>Configuration-State</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>8</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Configuration-Progress</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>9</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Json</dataPointTypeUrn>
        <dataPointName>Current-Component</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>10</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Json</dataPointTypeUrn>
        <dataPointName>Configuring-Components</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>11</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Json</dataPointTypeUrn>
        <dataPointName>Components-State</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
    </channel>

    <!-- Enhanced GDS Device with components configuration request Channel. This channel is based on the general GDS Device with components configuration channel. -->
    <channel>
      <urn>de.gira.schema.channels.GdsDeviceComponentsConfigurationRequest</urn>
      <channelName>Device</channelName>
      <baseTypeUrn>de.gira.schema.channels.GdsDeviceComponentsConfiguration</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>12</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Request-Configuration</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>13</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>Configuration-Request-State</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>14</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Json</dataPointTypeUrn>
        <dataPointName>Configuration-Request-Progress</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>15</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Json</dataPointTypeUrn>
        <dataPointName>Current-Component-Request</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>16</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Json</dataPointTypeUrn>
        <dataPointName>Requesting-Components</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>17</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Json</dataPointTypeUrn>
        <dataPointName>Components-Request-State</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>

    </channel>

    <!-- SD-Card specific GDS channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.SdCard</urn>
      <channelName>SD-Card</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Connected</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Float</dataPointTypeUrn>
        <dataPointName>Capacity</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Float</dataPointTypeUrn>
        <dataPointName>Used</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- GPA specific GDS channel. This channel is an optional part of device's configured by GPA. -->
    <channel>
      <urn>de.gira.schema.channels.Gpa</urn>
      <channelName>GPA</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Configured</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DateTime</dataPointTypeUrn>
        <dataPointName>Last-Download</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Modified</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DateTime</dataPointTypeUrn>
        <dataPointName>Last-Modified</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>-</write>
        <event>-</event>
      </dataPoint>
    </channel>

    <!-- KNX Stack specific GDS channel. This channel is a mandatory part of every GDS based and KNX enabled device. -->
    <channel>
      <urn>de.gira.schema.channels.KnxProgrammingModes</urn>
      <channelName>KNX-Programming-Modes</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Programming-Mode-Device-1</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Programming-Mode-Device-2</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Programming-Mode-Device-3</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Programming-Mode-Device-4</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
    </channel>

    <!-- KNX Stack specific GDS channel. This channel is a mandatory part of every GDS based and KNX enabled device. -->
    <channel>
      <urn>de.gira.schema.channels.KnxBusStates</urn>
      <channelName>KNX-Bus-States</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Bus-State-Device-1</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Bus-State-Device-2</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Bus-State-Device-3</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Bus-State-Device-4</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
    </channel>

    <!-- KNX Stack specific GDS channel. -->
    <channel>
      <urn>de.gira.schema.channels.KnxDevice</urn>
      <channelName>KNX-Device</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Programming-Mode</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Bus-State</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
    </channel>

    <!-- Generic application specific GDS channel. This channel is an optional part of devices running specific applications (e.g. 'Logic'). -->
    <channel>
      <urn>de.gira.schema.channels.Application</urn>
      <channelName>Application</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Ready</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>State</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Halt</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Variable (internal) data point specific GDS container channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.VarChannel</urn>
      <channelName>VAR-Channel</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <!-- The actual data points are defined as part of the device definition. -->
    </channel>

    <!-- KNX Group Address based data point specific GDS container channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.KnxGaChannel</urn>
      <channelName>KNX-GA-Channel</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <!-- The actual data points are defined as part of the device definition. -->
    </channel>

    <!-- Reference channel definition. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.Reference</urn>
      <channelName>Reference</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
    </channel>

    <!-- Functional GDS timer channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.Timer</urn>
      <channelName>Timer</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Trigger</dataPointTypeUrn>
        <dataPointName>Trigger</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
    </channel>

    <!-- Functional GDS switch time channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.SwitchTime</urn>
      <channelName>Switch-Time</channelName>
      <baseTypeUrn>de.gira.schema.channels.Timer</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Word</dataPointTypeUrn>
        <dataPointName>Time-Index</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
    </channel>

    <!-- Functional GDS switch time set channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.SwitchTimeSet</urn>
      <channelName>Switch-Time-Set</channelName>
      <baseTypeUrn>de.gira.schema.channels.SwitchTime</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Integer</dataPointTypeUrn>
        <dataPointName>Trigger-Value</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Integer</dataPointTypeUrn>
        <dataPointName>Execute</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>4</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Integer</dataPointTypeUrn>
        <dataPointName>Teach</dataPointName>
        <mandatory>O</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Function specific switch time set channel. Used within GPA to relate a function to a switch ime set. -->
    <channel>
      <urn>de.gira.schema.channels.FunctionTimer</urn>
      <channelName>Function-Timer</channelName>
      <baseTypeUrn>de.gira.schema.channels.SwitchTimeSet</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
    </channel>

    <!-- Functional GDS scene set channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.SceneSet</urn>
      <channelName>Scene-Set</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Integer</dataPointTypeUrn>
        <dataPointName>Execute</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Integer</dataPointTypeUrn>
        <dataPointName>Teach</dataPointName>
        <mandatory>O</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Function scene. -->
    <channel>
      <urn>de.gira.schema.channels.FunctionScene</urn>
      <channelName>Function-Scene</channelName>
      <baseTypeUrn>de.gira.schema.channels.SceneSet</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
    </channel>

    <!-- Functional GDS sequence channel. This channel is an optional part of every GDS based device. -->
    <channel>
      <urn>de.gira.schema.channels.Sequence</urn>
      <channelName>Sequence</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.StopStart</dataPointTypeUrn>
        <dataPointName>StopStart</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Function sequence. -->
    <channel>
      <urn>de.gira.schema.channels.FunctionSequence</urn>
      <channelName>Function-Sequence</channelName>
      <baseTypeUrn>de.gira.schema.channels.Sequence</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
    </channel>

    <!-- Generic GDS channel definition 'Binary'. -->
    <channel>
      <urn>de.gira.schema.channels.Binary</urn>
      <channelName>Binary</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Binary</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Byte'. -->
    <channel>
      <urn>de.gira.schema.channels.Byte</urn>
      <channelName>Byte</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>Byte</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Word'. -->
    <channel>
      <urn>de.gira.schema.channels.Word</urn>
      <channelName>Word</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Word</dataPointTypeUrn>
        <dataPointName>Word</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'DWord'. -->
    <channel>
      <urn>de.gira.schema.channels.DWord</urn>
      <channelName>DWord</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DWord</dataPointTypeUrn>
        <dataPointName>DWord</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Integer'. -->
    <channel>
      <urn>de.gira.schema.channels.Integer</urn>
      <channelName>Integer</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Integer</dataPointTypeUrn>
        <dataPointName>Integer</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Float'. -->
    <channel>
      <urn>de.gira.schema.channels.Float</urn>
      <channelName>Float</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Float</dataPointTypeUrn>
        <dataPointName>Float</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'String'. -->
    <channel>
      <urn>de.gira.schema.channels.String</urn>
      <channelName>String</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.String</dataPointTypeUrn>
        <dataPointName>String</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Date'. -->
    <channel>
      <urn>de.gira.schema.channels.Date</urn>
      <channelName>Date</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Date</dataPointTypeUrn>
        <dataPointName>Date</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Time'. -->
    <channel>
      <urn>de.gira.schema.channels.Time</urn>
      <channelName>Time</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Time</dataPointTypeUrn>
        <dataPointName>Time</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'DateTime'. -->
    <channel>
      <urn>de.gira.schema.channels.DateTime</urn>
      <channelName>DateTime</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DateTime</dataPointTypeUrn>
        <dataPointName>DateTime</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Trigger'. -->
    <channel>
      <urn>de.gira.schema.channels.Trigger</urn>
      <channelName>Trigger</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Trigger</dataPointTypeUrn>
        <dataPointName>Trigger</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Switch'. -->
    <channel>
      <urn>de.gira.schema.channels.Switch</urn>
      <channelName>Switch</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Switch</dataPointTypeUrn>
        <dataPointName>OnOff</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'SwitchWithBoost'. -->
    <channel>
      <urn>de.gira.schema.channels.SwitchWithBoost</urn>
      <channelName>Switch-With-Boost</channelName>
      <baseTypeUrn>de.gira.schema.channels.Switch</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Switch</dataPointTypeUrn>
        <dataPointName>OnOff</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Switch</dataPointTypeUrn>
        <dataPointName>BoostOnOff</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Percent'. -->
    <channel>
      <urn>de.gira.schema.channels.Percent</urn>
      <channelName>Percent</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Percent</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Temperature'. -->
    <channel>
      <urn>de.gira.schema.channels.Temperature</urn>
      <channelName>Temperature</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Temperature</dataPointTypeUrn>
        <dataPointName>Temperature</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>O</write>
        <event>O</event>
      </dataPoint>
    </channel>
    <!-- Generic GDS channel definition 'Indoor temperature'. -->
    <channel>
      <urn>de.gira.schema.channels.IndoorTemperature</urn>
      <channelName>Indoor-Temperature</channelName>
      <baseTypeUrn>de.gira.schema.channels.Temperature</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointName>Indoor-Temperature</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>O</event>
      </dataPoint>
    </channel>
    <!-- Generic GDS channel definition 'Outdoor temperature'. -->
    <channel>
      <urn>de.gira.schema.channels.OutdoorTemperature</urn>
      <channelName>Outdoor-Temperature</channelName>
      <baseTypeUrn>de.gira.schema.channels.Temperature</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointName>Outdoor-Temperature</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'RoomTemperature'. -->
    <channel>
      <urn>de.gira.schema.channels.RoomTemperature</urn>
      <channelName>Room-Temperature</channelName>
      <baseTypeUrn>de.gira.schema.channels.Temperature</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointName>Current</dataPointName>
        <write>-</write>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Temperature</dataPointTypeUrn>
        <dataPointName>Set-Point</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'RoomTemperatureSwitchable'. -->
    <channel>
      <urn>de.gira.schema.channels.RoomTemperatureSwitchable</urn>
      <channelName>Room-Temperature-Switchable</channelName>
      <baseTypeUrn>de.gira.schema.channels.RoomTemperature</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Switch</dataPointTypeUrn>
        <dataPointName>OnOff</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Degree'. -->
    <channel>
      <urn>de.gira.schema.channels.Degree</urn>
      <channelName>Degree</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Degree</dataPointTypeUrn>
        <dataPointName>Degree</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>O</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Generic GDS channel definition 'Lux'. -->
    <channel>
      <urn>de.gira.schema.channels.Lux</urn>
      <channelName>Lux</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Lux</dataPointTypeUrn>
        <dataPointName>Lux</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>O</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Socket'. -->
    <channel>
      <urn>de.gira.schema.channels.Socket</urn>
      <channelName>Socket</channelName>
      <baseTypeUrn>de.gira.schema.channels.Switch</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointName>OnOff</dataPointName>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Light'. -->
    <channel>
      <urn>de.gira.schema.channels.Light</urn>
      <channelName>Light</channelName>
      <baseTypeUrn>de.gira.schema.channels.Switch</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointName>OnOff</dataPointName>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Dimmer'. -->
    <channel>
      <urn>de.gira.schema.channels.Dimmer</urn>
      <channelName>Dimmer</channelName>
      <baseTypeUrn>de.gira.schema.channels.Switch</baseTypeUrn>
      <defaultReadIndex>1</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Brightness</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'RGB Dimmer'. -->
    <channel>
      <urn>de.gira.schema.channels.DimmerRGB</urn>
      <channelName>Dimmer-RGB</channelName>
      <baseTypeUrn>de.gira.schema.channels.Dimmer</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Red</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Green</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>4</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Blue</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'RGBW Dimmer'. -->
    <channel>
      <urn>de.gira.schema.channels.DimmerRGBW</urn>
      <channelName>Dimmer-RGBW</channelName>
      <baseTypeUrn>de.gira.schema.channels.DimmerRGB</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>5</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>White</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Tunable White Dimmer'. -->
    <channel>
      <urn>de.gira.schema.channels.DimmerWhite</urn>
      <channelName>Dimmer-Tunable-White</channelName>
      <baseTypeUrn>de.gira.schema.channels.Dimmer</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Temperature</dataPointTypeUrn>
        <dataPointName>Color-Temperature</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Shutter'. -->
    <channel>
      <urn>de.gira.schema.channels.Shutter</urn>
      <channelName>Shutter</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>2</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.UpDown</dataPointTypeUrn>
        <dataPointName>Step-Up-Down</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.UpDown</dataPointTypeUrn>
        <dataPointName>Up-Down</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>-</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Movement</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>-</write>
        <event>M</event>
      </dataPoint>
      <validity>MMO</validity>
    </channel>

    <!-- Specific channel definition 'ShutterWithPos'. -->
    <channel>
      <urn>de.gira.schema.channels.ShutterWithPos</urn>
      <channelName>Shutter-With-Position</channelName>
      <baseTypeUrn>de.gira.schema.channels.Shutter</baseTypeUrn>
      <defaultReadIndex>3</defaultReadIndex>
      <defaultWriteIndex>3</defaultWriteIndex>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Position</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <validity>MMOM;MOOM;OOOM</validity>
    </channel>

    <!-- Specific channel definition 'Blind'. -->
    <channel>
      <urn>de.gira.schema.channels.Blind</urn>
      <channelName>Blind</channelName>
      <baseTypeUrn>de.gira.schema.channels.Shutter</baseTypeUrn>
      <defaultReadIndex>2</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
    </channel>

    <!-- Specific channel definition 'BlindWithPos'. -->
    <channel>
      <urn>de.gira.schema.channels.BlindWithPos</urn>
      <channelName>Blind-With-Position</channelName>
      <baseTypeUrn>de.gira.schema.channels.ShutterWithPos</baseTypeUrn>
      <defaultReadIndex>2</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>4</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Percent</dataPointTypeUrn>
        <dataPointName>Slat-Position</dataPointName>
        <mandatory>O</mandatory>
        <read>M</read>
        <write>M</write>
        <event>M</event>
      </dataPoint>
      <validity>MMOM;MOOM;OOOM</validity>
    </channel>

    <!-- Specific channel definition 'Thermostat'. -->
    <channel>
      <urn>de.gira.schema.channels.Thermostat</urn>
      <channelName>Thermostat</channelName>
      <baseTypeUrn>de.gira.schema.channels.RoomTemperature</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>1</defaultWriteIndex>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Enumeration</dataPointTypeUrn>
        <dataPointName>Mode</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Scene Control'. -->
    <channel>
      <urn>de.gira.schema.channels.SceneControl</urn>
      <channelName>Scene-Control</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Scene</dataPointTypeUrn>
        <dataPointName>Scene</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>-</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Camera'. -->
    <channel>
      <urn>de.gira.schema.channels.Camera</urn>
      <channelName>Camera</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Camera</dataPointName>
        <mandatory>O</mandatory>
        <read>O</read>
        <write>O</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Link'. -->
    <channel>
      <urn>de.gira.schema.channels.Link</urn>
      <channelName>Link</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Link</dataPointName>
        <mandatory>O</mandatory>
        <read>O</read>
        <write>O</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'DoorCommunication'. -->
    <channel>
      <urn>de.gira.schema.channels.DoorCommunication</urn>
      <channelName>Door-Communication</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Door-Communication</dataPointName>
        <mandatory>O</mandatory>
        <read>O</read>
        <write>O</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'Weather'. -->
    <channel>
      <urn>de.gira.schema.channels.Weather</urn>
      <channelName>Weather</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Weather</dataPointName>
        <mandatory>O</mandatory>
        <read>O</read>
        <write>O</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'TimerConditions'. -->
    <channel>
      <urn>de.gira.schema.channels.TimerConditions</urn>
      <channelName>Timer-Conditions</channelName>
      <baseTypeUrn/>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>0</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Holiday</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>1</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Vacation</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>2</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Away</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Party</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>4</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Custom-1</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>5</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Custom-2</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>6</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Binary</dataPointTypeUrn>
        <dataPointName>Custom-3</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

    <!-- Specific channel definition 'PresenceSimulation'. -->
    <channel>
      <urn>de.gira.schema.channels.PresenceSimulation</urn>
      <channelName>PresenceSimulation</channelName>
      <baseTypeUrn>de.gira.schema.channels.Application</baseTypeUrn>
      <defaultReadIndex>0</defaultReadIndex>
      <defaultWriteIndex>0</defaultWriteIndex>
      <dataPoint>
        <index>3</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>Start-Record</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>4</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Stop-Record</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>5</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>Start-Playback</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>6</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Bool</dataPointTypeUrn>
        <dataPointName>Stop-Playback</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>7</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DateTime</dataPointTypeUrn>
        <dataPointName>Timepoint-Record-Start</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>8</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.DateTime</dataPointTypeUrn>
        <dataPointName>Timepoint-Record-End</dataPointName>
        <mandatory>M</mandatory>
        <read>M</read>
        <write>-</write>
        <event>O</event>
      </dataPoint>
      <dataPoint>
        <index>9</index>
        <dataPointTypeUrn>de.gira.schema.datapoints.Byte</dataPointTypeUrn>
        <dataPointName>Clear-Playback</dataPointName>
        <mandatory>M</mandatory>
        <read>-</read>
        <write>M</write>
        <event>O</event>
      </dataPoint>
    </channel>

  </channels>

  <!-- Predefined data point types used within predefined channel definitions. -->
  <dataPoints>
    <!-- Generic data point types: -->
    <dataPoint>
      <dataPointName>Binary</dataPointName>
      <urn>de.gira.schema.datapoints.Binary</urn>
      <description>Generic binary data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Binary</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Floating-Point-Number</dataPointName>
      <urn>de.gira.schema.datapoints.Float</urn>
      <description>Generic floating point data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Float</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>32-Bit-Signed-Integer</dataPointName>
      <urn>de.gira.schema.datapoints.Integer</urn>
      <description>Generic integer data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Integer</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>64-Bit-Signed-Integer</dataPointName>
      <urn>de.gira.schema.datapoints.Int64</urn>
      <description>Generic 64 bit integer data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Int64</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Byte</dataPointName>
      <urn>de.gira.schema.datapoints.Byte</urn>
      <description>Generic 8 bit unsigned integer data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Byte</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>16-Bit-Unsigned-Integer</dataPointName>
      <urn>de.gira.schema.datapoints.Word</urn>
      <description>Generic 16 bit unsigned integer data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Word</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>32-Bit-Unsigned-Integer</dataPointName>
      <urn>de.gira.schema.datapoints.DWord</urn>
      <description>Generic 32 bit unsigned integer data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.DWord</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>64-Bit-Unsigned-Integer</dataPointName>
      <urn>de.gira.schema.datapoints.QWord</urn>
      <description>Generic 64 bit unsigned integer data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.QWord</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>String</dataPointName>
      <urn>de.gira.schema.datapoints.String</urn>
      <description>Generic text data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.String</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Date</dataPointName>
      <urn>de.gira.schema.datapoints.Date</urn>
      <description>Generic date data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Date</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Time</dataPointName>
      <urn>de.gira.schema.datapoints.Time</urn>
      <description>Generic time data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Time</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Date.Time</dataPointName>
      <urn>de.gira.schema.datapoints.DateTime</urn>
      <description>Generic date and time data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.DateTime</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Time-Span</dataPointName>
      <urn>de.gira.schema.datapoints.TimeSpan</urn>
      <description>Generic time span data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.TimeSpan</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Day-Time</dataPointName>
      <urn>de.gira.schema.datapoints.DayTime</urn>
      <description>Generic time and weekday data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.DayTime</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Object-ID</dataPointName>
      <urn>de.gira.schema.datapoints.ObjectId</urn>
      <description>Generic internal object ID data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.ObjectId</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <!-- Default data point types: -->
    <!-- Default data point types based on value type 'Binary': -->
    <dataPoint>
      <dataPointName>Boolean</dataPointName>
      <urn>de.gira.schema.datapoints.Bool</urn>
      <description>Generic Boolean value.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Binary</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Bool</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Switch</dataPointName>
      <urn>de.gira.schema.datapoints.Switch</urn>
      <description>Generic binary toggle.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Binary</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Switch</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Up-Down</dataPointName>
      <urn>de.gira.schema.datapoints.UpDown</urn>
      <description>Generic up and down toggle.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Binary</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.UpDown</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Trigger</dataPointName>
      <urn>de.gira.schema.datapoints.Trigger</urn>
      <description>Generic value independent trigger.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Binary</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Trigger</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Stop-Start</dataPointName>
      <urn>de.gira.schema.datapoints.StopStart</urn>
      <description>Generic stop and start toggle.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Binary</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.StopStart</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Open-Close</dataPointName>
      <urn>de.gira.schema.datapoints.OpenClose</urn>
      <description>Generic open and close toggle.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Binary</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.OpenClose</subtypeUrn>
    </dataPoint>
    <!-- Default data point types based on value type 'Float': -->
    <dataPoint>
      <dataPointName>Percent</dataPointName>
      <urn>de.gira.schema.datapoints.Percent</urn>
      <description>General percent value.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Float</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Percent</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Percentage</dataPointName>
      <urn>de.gira.schema.datapoints.Percentage</urn>
      <description>General percentage point value.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Float</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Percentage</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Temperature</dataPointName>
      <urn>de.gira.schema.datapoints.Temperature</urn>
      <description>General temperature value (degree Centigrade).</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Float</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Temperature</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Degree</dataPointName>
      <urn>de.gira.schema.datapoints.Degree</urn>
      <description>General degree value (0...360°).</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Float</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Degree</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Lux</dataPointName>
      <urn>de.gira.schema.datapoints.Lux</urn>
      <description>General illuminance value (Lux).</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Float</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Lux</subtypeUrn>
    </dataPoint>
    <!-- Default data point types based on value type 'Integer': -->
    <dataPoint>
      <dataPointName>Enumeration</dataPointName>
      <urn>de.gira.schema.datapoints.Enumeration</urn>
      <description>Enumeration specific data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Integer</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Bit-Field</dataPointName>
      <urn>de.gira.schema.datapoints.BitField</urn>
      <description>Bit field specific data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Integer</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Generic</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>Scene</dataPointName>
      <urn>de.gira.schema.datapoints.Scene</urn>
      <description>Scene specific data point type.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.Integer</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Scene</subtypeUrn>
    </dataPoint>
    <!-- Default data point types based on value type 'String': -->
    <dataPoint>
      <dataPointName>ASCII</dataPointName>
      <urn>de.gira.schema.datapoints.Ascii</urn>
      <description>ASCII string.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.String</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Ascii</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>ISO-8859-1</dataPointName>
      <urn>de.gira.schema.datapoints.Iso88591</urn>
      <description>ISO 8859-1 string.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.String</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Iso88591</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>UTF-8</dataPointName>
      <urn>de.gira.schema.datapoints.Utf8</urn>
      <description>UTF-8 based string.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.String</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Utf8</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>URI</dataPointName>
      <urn>de.gira.schema.datapoints.Uri</urn>
      <description>Unique resource identifier.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.String</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Uri</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>XML</dataPointName>
      <urn>de.gira.schema.datapoints.Xml</urn>
      <description>XML document or fragment.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.String</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Xml</subtypeUrn>
    </dataPoint>
    <dataPoint>
      <dataPointName>JSON</dataPointName>
      <urn>de.gira.schema.datapoints.Json</urn>
      <description>JSON object.</description>
      <valueTypeUrn>de.gira.schema.valuetypes.String</valueTypeUrn>
      <subtypeUrn>de.gira.schema.subtypes.Json</subtypeUrn>
    </dataPoint>
  </dataPoints>

  <!-- Predefined value types. Value types are compile time specific and cannot be added later on. -->
  <values>
    <value>
      <valueName>Empty</valueName>
      <urn>de.gira.schema.valuetypes.Empty</urn>
      <description>No current value.</description>
    </value>
    <value>
      <valueName>Null</valueName>
      <urn>de.gira.schema.valuetypes.Null</urn>
      <description>Current value not available.</description>
    </value>
    <value>
      <valueName>Binary</valueName>
      <urn>de.gira.schema.valuetypes.Binary</urn>
      <description>Generic binary value.</description>
    </value>
    <value>
      <valueName>Floating-Point-Number</valueName>
      <urn>de.gira.schema.valuetypes.Float</urn>
      <description>Generic floating point value.</description>
    </value>
    <value>
      <valueName>32-Bit-Signed-Integer</valueName>
      <urn>de.gira.schema.valuetypes.Integer</urn>
      <description>Generic integer value.</description>
    </value>
    <value>
      <valueName>64-Bit-Signed-Integer</valueName>
      <urn>de.gira.schema.valuetypes.Int64</urn>
      <description>Generic 64 bit integer value.</description>
    </value>
    <value>
      <valueName>Byte</valueName>
      <urn>de.gira.schema.valuetypes.Byte</urn>
      <description>Generic 8 bit unsigned value.</description>
    </value>
    <value>
      <valueName>16-Bit-Unsigned-Integer</valueName>
      <urn>de.gira.schema.valuetypes.Word</urn>
      <description>Generic 16 bit unsigned value.</description>
    </value>
    <value>
      <valueName>32-Bit-Unsigned-Integer</valueName>
      <urn>de.gira.schema.valuetypes.DWord</urn>
      <description>Generic 32 bit unsigned value.</description>
    </value>
    <value>
      <valueName>64-Bit-Unsigned-Integer</valueName>
      <urn>de.gira.schema.valuetypes.QWord</urn>
      <description>Generic 64 bit unsigned value.</description>
    </value>
    <value>
      <valueName>String</valueName>
      <urn>de.gira.schema.valuetypes.String</urn>
      <description>Generic text value.</description>
    </value>
    <value>
      <valueName>Date</valueName>
      <urn>de.gira.schema.valuetypes.Date</urn>
      <description>Generic date value.</description>
    </value>
    <value>
      <valueName>Time</valueName>
      <urn>de.gira.schema.valuetypes.Time</urn>
      <description>Generic time value to the second.</description>
    </value>
    <value>
      <valueName>Date-Time</valueName>
      <urn>de.gira.schema.valuetypes.DateTime</urn>
      <description>Combined date and time value to the second.</description>
    </value>
    <value>
      <valueName>Time-Span</valueName>
      <urn>de.gira.schema.valuetypes.TimeSpan</urn>
      <description>Time span in seconds.</description>
    </value>
    <value>
      <valueName>Day-Time</valueName>
      <urn>de.gira.schema.valuetypes.DayTime</urn>
      <description>Combined time and weekday value.</description>
    </value>
    <value>
      <valueName>Object-ID</valueName>
      <urn>de.gira.schema.valuetypes.ObjectId</urn>
      <description>Object model specific ID.</description>
    </value>

    <!-- Deprecated value types: -->
    <value>
      <valueName>Percent</valueName>
      <urn>de.gira.schema.valuetypes.Percent</urn>
      <description>Absolute value.</description>
    </value>
    <value>
      <valueName>Percentage</valueName>
      <urn>de.gira.schema.valuetypes.Percentage</urn>
      <description>Relative value.</description>
    </value>
    <value>
      <valueName>Temperature</valueName>
      <urn>de.gira.schema.valuetypes.Temperature</urn>
      <description>Absolute value [°C].</description>
    </value>
  </values>

  <!-- Predefined value sub-types. Value sub-types are compile time specific and cannot be added later on. -->
  <subtypes>
    <subtype>
      <subtypeName>Generic</subtypeName>
      <urn>de.gira.schema.subtypes.Generic</urn>
      <description>Generic non specific value sub-type.</description>
    </subtype>
    <!-- Binary related sub types: -->
    <subtype>
      <subtypeName>Boolean</subtypeName>
      <urn>de.gira.schema.subtypes.Bool</urn>
      <description>Generic non specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>Trigger</subtypeName>
      <urn>de.gira.schema.subtypes.Trigger</urn>
      <description>Trigger specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>Switch</subtypeName>
      <urn>de.gira.schema.subtypes.Switch</urn>
      <description>Switch specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>Up-Down</subtypeName>
      <urn>de.gira.schema.subtypes.UpDown</urn>
      <description>Up and down specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>Stop-Start</subtypeName>
      <urn>de.gira.schema.subtypes.StopStart</urn>
      <description>Stop and start specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>Open-Close</subtypeName>
      <urn>de.gira.schema.subtypes.OpenClose</urn>
      <description>Open and close specific value sub-type.</description>
    </subtype>
    <!-- Floating point related sub-types: -->
    <subtype>
      <subtypeName>Percent</subtypeName>
      <urn>de.gira.schema.subtypes.Percent</urn>
      <description>Percent specific value sub type (absolute value).</description>
    </subtype>
    <subtype>
      <subtypeName>Percentage</subtypeName>
      <urn>de.gira.schema.subtypes.Percentage</urn>
      <description>Percentage specific value subtype (relative value).</description>
    </subtype>
    <subtype>
      <subtypeName>Temperature</subtypeName>
      <urn>de.gira.schema.subtypes.Temperature</urn>
      <description>Temperature specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>Degree</subtypeName>
      <urn>de.gira.schema.subtypes.Degree</urn>
      <description>Degree specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>Lux</subtypeName>
      <urn>de.gira.schema.subtypes.Lux</urn>
      <description>Illuminance specific value sub-type.</description>
    </subtype>
    <!-- Integer related sub-types: -->
    <subtype>
      <subtypeName>Scene</subtypeName>
      <urn>de.gira.schema.subtypes.Scene</urn>
      <description>Scene specific value sub-type.</description>
    </subtype>
    <!-- String related sub-types: -->
    <subtype>
      <subtypeName>ASCII</subtypeName>
      <urn>de.gira.schema.subtypes.Ascii</urn>
      <description>ASCII specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>ISO-8859-1</subtypeName>
      <urn>de.gira.schema.subtypes.Iso88591</urn>
      <description>ISO 8859-1 specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>UTF-8</subtypeName>
      <urn>de.gira.schema.subtypes.Utf8</urn>
      <description>UTF-8 specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>URI</subtypeName>
      <urn>de.gira.schema.subtypes.Uri</urn>
      <description>URI specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>XML</subtypeName>
      <urn>de.gira.schema.subtypes.Xml</urn>
      <description>XML specific value sub-type.</description>
    </subtype>
    <subtype>
      <subtypeName>JSON</subtypeName>
      <urn>de.gira.schema.subtypes.Json</urn>
      <description>JSON specific value sub-type.</description>
    </subtype>
  </subtypes>
</definitions>
