Eclipse.org Eclipse.org Device Kit

dkml.xsd schema

Device Kit Attributes Elements XML Reference
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2002, 2008 IBM.                                           -->
<!-- All rights reserved. This program and the accompanying materials        -->
<!-- are made available under the terms of the Eclipse Public License v1.0   -->
<!-- which accompanies this distribution, and is available at                -->
<!-- http://www.eclipse.org/legal/epl-v10.html                               -->
<!--                                                                         -->
<!-- Contributors:                                                           -->
<!--     IBM - initial API and implementation                                -->
<!-- WARNING:                                                                  -->
<!-- Consult the hardware manufacturer's technical specifications and User   -->
<!-- Guide for proper usage of the hardware before you use the Device Kit.   -->
<!-- Improper usage may result in damage to the hardware.                    -->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="dkml" type="dkmlType">
        <xs:annotation>
            <xs:documentation><![CDATA[Specifies the root element of a Device Kit                 <b>D</b>evice <b>K</b>it <b>L</b>anguage (dkml) document.]]>
            </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the AttributeFormatType      -->

    <xs:simpleType name="AttributeFormatType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="binary">
                <xs:annotation>
                    <xs:documentation>Specifies that the format is binary (0-1). Each binary digit defines a single bit of data.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="decimal">
                <xs:annotation>
                    <xs:documentation>Specifies that the format is decimal (0-9).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hex">
                <xs:annotation>
                    <xs:documentation>Specifies that the format is hex (0-9, A-F). Each hex digit defines 4 bits of data.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="octal">
                <xs:annotation>
                    <xs:documentation>Specifies that the format is octal (0-7). Each octal digit defines 3 bits of data.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the UserMessageBaseGroup      -->

    <xs:attributeGroup name="UserMessageBaseGroup">
        <xs:attribute name="usermessagebase" type="xs:integer">
            <xs:annotation>
                <xs:appinfo>1.1.0</xs:appinfo>
                <xs:documentation>Specifies the start of the user messages. Default is 1000.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="AttributeTargetGroup">
        <xs:attribute name="target" type="xs:string">
            <xs:annotation>
                <xs:appinfo>1.1.0</xs:appinfo>
                <xs:documentation>Specifies the target. Default is 1000.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the Execution Environments Attribute      -->

    <xs:attributeGroup name="ExecutionEnvironments">
        <xs:attribute name="executionenvironments" type="xs:string">
            <xs:annotation>
                <xs:appinfo>1.1.0</xs:appinfo>
                <xs:documentation>Specifies the Execution Environments for the bundle Manifest.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeCustomType      -->

    <xs:simpleType name="AttributeCustomType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:documentation>Specifies that the custom type as boolean.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int">
                <xs:annotation>
                    <xs:documentation>Specifies that the custom type as int.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="long">
                <xs:annotation>
                    <xs:documentation>Specifies that the custom type as long.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="String">
                <xs:annotation>
                    <xs:documentation>Specifies that the custom type as String.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeIdCustomGroup      -->

    <xs:attributeGroup name="AttributeIdCustomGroup">
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attribute name="name" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>Required. The name/key of the custom variable.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="AttributeCustomType" use="required">
            <xs:annotation>
                <xs:documentation>Required. The type of the custom variable.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="defaultvalue" type="xs:string">
            <xs:annotation>
                <xs:documentation>Required. The default value to assign the variable.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="required" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies if required by the configuration.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="false" name="access" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>If true, a class field, get method, and set method will be generated for the variable. Default is false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeNameGroup      -->

    <xs:attributeGroup name="AttributeIdGroup">
        <xs:attribute name="id" type="xs:ID" use="optional">
            <xs:annotation>
                <xs:documentation>Specifies an unique identifier for this element. After defining an element with the id attribute, other elements can reference this element by using the <a href=&quot;"idrefAttribute.html&quot;">idref</a> attribute. Since the id attribute value is used by the code generator to generate field and method names, no spaces, periods or commas should be used.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdrefGroup      -->
<!-- Define the AttributeNameGroup      -->

    <xs:attributeGroup name="AttributeNameGroup">
        <xs:attribute name="name" type="xs:Name" use="optional">
            <xs:annotation>
                <xs:documentation>Specifies a name for this element. Normally, if the name attribute is not specified, then the id attribute is used for the name of the element. Since the name attribute value is used by the code generator to generate field and method names, no spaces, periods or commas should be used.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdrefGroup      -->

    <xs:attributeGroup name="AttributeIdrefGroup">
        <xs:attribute name="idref" type="xs:IDREF" use="optional">
            <xs:annotation>
                <xs:documentation>Specifies a reference to the element with the matching <a href=&quot;"idAttribute.html&quot;">id</a> attribute. The matching <a href=&quot;"idAttribute.html&quot;">id</a> attribute must be specified before the idref attribute can be used.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdrefGlobalGroup      -->

    <xs:attributeGroup name="AttributeIdrefGlobalGroup">
        <xs:attribute name="idref" type="xs:anyURI" use="optional">
            <xs:annotation>
                <xs:documentation>Specifies a reference to the element with the matching <a href=&quot;"idAttribute.html&quot;">id</a> attribute. The matching <a href=&quot;"idAttribute.html&quot;">id</a> attribute must be specified before the idref attribute can be used.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdFormatGroup      -->

    <xs:attributeGroup name="AttributeIdFormatGroup">
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attribute name="format" type="AttributeFormatType">
            <xs:annotation>
                <xs:documentation>Specifies the numeric format base of data. For instance, if the protocol&apos;'s specification are in hexadecimal format, this attribute should be set to &quot;"hex&quot;".</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the PackageBaseGroup      -->

    <xs:attributeGroup name="PackageBaseGroup">
        <xs:attribute name="packagebase" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the start of the generated code&apos;'s package. That is, any code that Device Kit generates will be in a package starting with this value. A common value is &quot;"com.<i>company-name</i>&quot;".</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdFormatImplementationGroup      -->

    <xs:attributeGroup name="AttributeIdFormatImplementationGroup">
        <xs:attributeGroup ref="AttributeIdFormatGroup"/>
        <xs:attribute name="implementation" type="xs:Name">
            <xs:annotation>
                <xs:documentation>Specifies the implementation class name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationGroup">
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attribute name="implementation" type="xs:Name">
            <xs:annotation>
                <xs:documentation>Specifies the implementation class name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationSuperclassGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationSuperclassGroup">
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attribute name="superclass" type="xs:Name">
            <xs:annotation>
                <xs:documentation>Specifies the implementation super class name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationServiceGroup">
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attribute name="service" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the Open Services Gateway Initiative (OSGi) service interface name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceBundleGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationServiceBundleGroup">
        <xs:attributeGroup ref="AttributeIdImplementationServiceGroup"/>
        <xs:attribute name="bundle" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the Open Services Gateway Initiative (OSGi) bundle name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bundleid" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the Open Services Gateway Initiative (OSGi) bundle symbolic id.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceBundleLazyGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationServiceBundleLazyGroup">
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attribute default="false" name="lazy" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies if the generated code should be lazy. The default is false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceBundleLazyAbstractGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationServiceBundleLazyAbstractGroup">
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyGroup"/>
        <xs:attribute default="false" name="abstract" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies an abstract implementation class. The default is false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="createmethod" type="xs:boolean" default="false">
            <xs:annotation>
                <xs:appinfo>1.0.0</xs:appinfo>
                <xs:documentation>Specifies create method(s). The default is false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="superclass" type="xs:Name">
            <xs:annotation>
                <xs:documentation>Specifies the implementation superclass name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceBundleSuperclassGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationServiceBundleSuperclassGroup">
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attribute name="superclass" type="xs:Name">
            <xs:annotation>
                <xs:documentation>Specifies the implementation superclass name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceBundleSuperclassAbstractGroup      -->

    <xs:attributeGroup name="AttributeIdImplementationServiceBundleSuperclassAbstractGroup">
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassGroup"/>
        <xs:attribute default="false" name="abstract" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies an abstract implementation class. The default is false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeMonitortimeGroup      -->

    <xs:attributeGroup name="AttributeMonitortimeGroup">
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attribute name="monitortime" type="xs:unsignedLong">
            <xs:annotation>
                <xs:documentation>Specifies the monitor time in milliseconds.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeCodenameGroup      -->

    <xs:attributeGroup name="AttributeCodenameGroup">
        <xs:attribute name="codename" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies the name in the code should be used instead of the Device Kit generated name. </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeOldGroup      -->

    <xs:attributeGroup name="AttributeOldGroup">
        <xs:attribute name="old" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies if old code should be generated. The default value is defined in the Device Kit preference settings. </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeSimpleParameterType      -->

    <xs:simpleType name="AttributeSimpleParameterType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ascii">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is American National Standard Code for Information Interchange (ASCII).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="asciiz">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a zero terminated American National Standard Code for Information Interchange (ASCII).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bit">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a single bit.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a boolean.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a boolean array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed byte (8 bits). A signed byte ranges in value between -128 and 127.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a signed byte (8 bits) array. A signed byte ranges in value between -128 and 127.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bytes">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an array of bytes.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a double.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a double array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a float.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a float array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hexascii">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a HEX (base 16) number in American National Standard Code for Information Interchange (ASCII).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hexstring">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a HEX (base 16) number String.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed integer (32 bits). A signed integer ranges in value between -2147483648 and 2147483647.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a signed integer (32 bits) array. A signed integer ranges in value between -2147483648 and 2147483647.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="long">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed long (64 bits). A signed long ranges in value between -9223372036854775808 and 9223372036854775807.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="long[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a signed long (64 bits) array. A signed long ranges in value between -9223372036854775808 and 9223372036854775807.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="nascii">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an American National Standard Code for Information Interchange (ASCII) number.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="nstring">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a numeric string.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="numericstring">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is numeric string.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="short">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed short (16 bits). A signed short ranges in value between -32768 and 32767.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="string">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a string .</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ubyte">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned byte (8 bits). An unsigned byte ranges in value between 0 and 255. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ubytes">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned bytes (8 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="uint">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned integer (32 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ulong">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned long (64 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ushort">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned short (16 bits). An unsigned value ranges from 0 to 65535.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeParametersType      -->

    <xs:simpleType name="AttributeParametersType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Array">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter will be an array of Objects (Object[]).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="List">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter will be an instance of the List interface.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Map">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter will be an instance of the Map interface.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="AttributeDataType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="bit">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a single bit.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a boolean.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a boolean array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed byte (8 bits). A signed byte ranges in value between -128 and 127.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a signed byte (8 bits) array. A signed byte ranges in value between -128 and 127.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bytes">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an array of bytes.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a double.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a double array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a float.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a float array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed integer (32 bits). A signed integer ranges in value between -2147483648 and 2147483647.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a signed integer (32 bits) array. A signed integer ranges in value between -2147483648 and 2147483647.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="long">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed long (64 bits). A signed long ranges in value between -9223372036854775808 and 9223372036854775807.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="long[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a signed long (64 bits) array. A signed long ranges in value between -9223372036854775808 and 9223372036854775807.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="short">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a signed short (16 bits). A signed short ranges in value between -32768 and 32767.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="string">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is a string .</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ubyte">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned byte (8 bits). An unsigned byte ranges in value between 0 and 255. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ubytes">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned bytes (8 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="uint">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned integer (32 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ulong">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned long (64 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ushort">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is an unsigned short (16 bits). An unsigned value ranges from 0 to 65535.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Array">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter will be an array of Objects (Object[]).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="List">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter will be an instance of the List interface.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Map">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter will be an instance of the Map interface.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeSimpleCardinalityType      -->

    <xs:simpleType name="AttributeSimpleCardinalityType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Scalar">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the cardinality value is scalar.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Array">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the cardinality value is array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Vector">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the cardinality value is vector.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeSimpleConfigurationType      -->

    <xs:simpleType name="AttributeSimpleConfigurationType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Byte">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the configuration value is an instance of the Byte class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Boolean">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the configuration value is an instance of the Boolean class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Double">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the configuration value is an instance of the Double class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Float">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the configuration value is an instance of the Float class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Integer">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the configuration value is an instance of the Integer class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Long">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the configuration value is an instance of the Long class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Short">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Specifies that the configuration value is an instance of the Short class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="String">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the configuration value is a string.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeConfigurationGroup      -->

    <xs:attributeGroup name="AttributeConfigurationGroup">
        <xs:attribute name="cardinality" type="AttributeSimpleCardinalityType">
            <xs:annotation>
                <xs:appinfo>1.0.0</xs:appinfo>
                <xs:documentation>Specifies the cardinality type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="size" type="xs:integer">
            <xs:annotation>
                <xs:documentation>Specifies the cardinality size.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="AttributeSimpleConfigurationType">
            <xs:annotation>
                <xs:appinfo>1.0.0</xs:appinfo>
                <xs:documentation>Specifies the configuration type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="defaultvalue" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the configuration default value.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="required" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies if configuration value if required.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeSimpleMeasurementType      -->

    <xs:simpleType name="AttributeSimpleMeasurementType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Boolean">
                <xs:annotation>
                    <xs:documentation>Specifies that the measurement value is an instance of the Boolean class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Integer">
                <xs:annotation>
                    <xs:documentation>Specifies that the measurement value is an instance of the Integer class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="List">
                <xs:annotation>
                    <xs:documentation>Specifies that the measurement value is an instance of List.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Long">
                <xs:annotation>
                    <xs:documentation>Specifies that the measurement value is an instance of the Long class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Map">
                <xs:annotation>
                    <xs:documentation>Specifies that the measurement value is an instance of Map.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Number">
                <xs:annotation>
                    <xs:documentation> Specifies that the measurement value is an instance of the Number class.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Object">
                <xs:annotation>
                    <xs:documentation>Specifies that the measurement value is an Object.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="String">
                <xs:annotation>
                    <xs:documentation>Specifies that the measurement value is a string.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the adapterType used by the adapter element      -->

    <xs:complexType name="adapterType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies a adapter.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation>Specifies a custom parameter for this adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway Initiative (OSGi) adapter service to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the package to be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="profileref" type="profilerefType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the profile to be supported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Defines a command supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commands" type="commandsType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation>Defines a group supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="measurement" type="measurementType">
                    <xs:annotation>
                        <xs:documentation>Defines a measurement supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signal" type="signalType">
                    <xs:annotation>
                        <xs:documentation>Defines a signal supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Specifies the device(s) or adapter to be used by the adapter. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the device used by the adapter.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
        <xs:attribute default="false" name="get" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies to generate get methods. The default is false unless abstract or lazy.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the adaptertestType used by the adaptertest element      -->

    <xs:complexType name="adaptertestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an adapter test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the adapter test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies the message(s) to send during the test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="adapter" type="adapterType">
                <xs:annotation>
                    <xs:documentation>Specifies the adapter to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface adapter test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentType used by the agent element      -->

    <xs:complexType name="agentType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies a agent.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation>Specifies a custom parameter for this agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="agentparent" type="agentparentType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Agent parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="agentuses" type="agentusesType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Agent uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway Initiative (OSGi) agent service to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the package to be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Specifies the device(s) or agent to be used by the agent. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="agentmodel" type="agentmodelType">
                    <xs:annotation>
                        <xs:documentation>Specifies the agent model used by the agent.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Specifies the device(s) or agent to be used by the agent. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the device used by the agent.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command that is supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commands" type="commandsType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation>Defines a group supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementType">
                    <xs:annotation>
                        <xs:documentation>Specifies a measurement supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signal" type="signalType">
                    <xs:annotation>
                        <xs:documentation>Specifies a signal supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentmodelType used by the agent element      -->

    <xs:complexType name="agentmodelType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an agent model.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the agent model.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this agent model.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation>Specifies a custom parameter for this agent model.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway Initiative (OSGi) agent service to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the package to be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Specifies the device(s) or agent to be used by the agent. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the device used by the agent model.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentserviceType used by the agentservice element      -->

    <xs:complexType name="agentserviceType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) agent service name.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the Open Services Gateway Initiative (OSGi) agent service.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the agenttestType used by the agenttest element      -->

    <xs:complexType name="agenttestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an agent test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the agent test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies the message(s) to send during the test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="agent" type="agentType">
                <xs:annotation>
                    <xs:documentation>Specifies the agent to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="agentmodeltest" type="agentmodeltestType">
                <xs:annotation>
                    <xs:documentation>Specifies the agent model test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface agent test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentmodeltestType used by the agenttest element      -->

    <xs:complexType name="agentmodeltestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an agent model test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the agent model test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="agentmodel" type="agentmodelType">
                <xs:annotation>
                    <xs:documentation>Specifies the agent model to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface agnet model test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the asciiType used by the ascii element      -->

    <xs:complexType name="asciiType">
        <xs:annotation>
            <xs:documentation> The ascii tag specifies the ASCII data for a message or filter. Each character defines 8 bits of data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the utf8Type used by the utf8 element      -->

    <xs:complexType name="utf8Type">
        <xs:annotation>
            <xs:documentation> The utf8 tag specifies the UTF-8 data for a message. </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the bundleType used by the bundle element      -->

    <xs:complexType name="bundleType">
        <xs:annotation>
            <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle with a simple bundle activator should be created.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the bundle.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the binaryType used by the binary element      -->

    <xs:complexType name="binaryType">
        <xs:annotation>
            <xs:documentation>Specifies binary data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the booleanType used by the boolean element      -->

    <xs:complexType name="booleanType">
        <xs:annotation>
            <xs:documentation>Specifies a boolean value.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the byteType used by the byte element      -->

    <xs:complexType name="byteType">
        <xs:annotation>
            <xs:documentation>Specifies a byte of data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!--         <xs:simpleType name="bytesListType">         <xs:list itemType="xs:string"/>     </xs:simpleType>       -->
<!-- Define the bytesSimpleType used by the bytes element      -->

    <xs:simpleType name="bytesSimpleType">
        <xs:annotation>
            <xs:documentation> The bytes tag specifies the data for a message or filter. Each byte defines 8 bits of data. You can specify the numeric format base of the data with the format attribute.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="(\s*(\-?\d{1,3}(,\s*(\-?\d{1,3}))*))|(\s*((([a-f]|[A-F]|[0-9]|){1,2})((\,\s*)([0-9]|[a-f]|[A-F]){1,2})*)\s*)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="bytesType">
        <xs:annotation>
            <xs:documentation> The bytes tag specifies the data for a message or filter. Each byte defines 8 bits of data. You can specify the numeric format base of the data with the format attribute.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="bytesSimpleType">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the characterType used by the  character element      -->

    <xs:complexType name=" characterType">
        <xs:annotation>
            <xs:documentation>Specifies a character of data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the dkmlType used by the dkml element      -->

    <xs:complexType name="dkmlType">
        <xs:annotation>
            <xs:documentation>Specifies the root element of a Device Kit Markup Language (dkml) document.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of a Device Kit Markup Language (dkml) element.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="pids" type="pidsType">
                <xs:annotation>
                    <xs:documentation>Specifies the defined pids.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="1">
                <xs:element maxOccurs="1" minOccurs="1" name="adapter" type="adapterType">
                    <xs:annotation>
                        <xs:documentation>Specifies an adapter.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="adaptertest" type="adaptertestType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Specifies an adapter test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="agent" type="agentType">
                    <xs:annotation>
                        <xs:documentation>Specifies an agent.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="agentmodel" type="agentmodelType">
                    <xs:annotation>
                        <xs:documentation>Specifies the agent model used by the agent.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="agenttest" type="agenttestType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Specifies an agent test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="agentmodeltest" type="agentmodeltestType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Specifies an agent model test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="concrete" type="concreteType">
                    <xs:annotation>
                        <xs:documentation>Specifies a concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="concretetest" type="concretetestType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Specifies a concrete test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="connection" type="connectionType">
                    <xs:annotation>
                        <xs:documentation>Specifies an connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="connectiontest" type="connectiontestType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Specifies an connection test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies a device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="devicetest" type="devicetestType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Specifies a device test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="profile" type="profileType">
                    <xs:annotation>
                        <xs:documentation>Specifies a profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="profiletest" type="profiletestType">
                    <xs:annotation>
                        <xs:documentation>Specifies a profile test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="testagent" type="testagentType">
                    <xs:annotation>
                        <xs:documentation>Specifies a test agent.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" ref="receiver">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a receiver transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="receivertest" type="receivertestType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a receiver transport test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="transport" type="transportType">
                    <xs:annotation>
                        <xs:documentation>Specifies a transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="1" name="transporttest" type="transporttestType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Specifies a transport test.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attribute name="packagebase" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the start of the generated code&apos;'s package. That is, any code that Device Kit generates will be in a package starting with this value. A common value is &quot;"com.<i>company-name</i>&quot;".</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the commandType used by the command element      -->

    <xs:complexType name="commandType">
        <xs:annotation>
            <xs:documentation> The command tag denotes an action that can be performed by the hardware device. Usually, a message must be sent to the hardware device to cause the action to be performed. When an application requests a command to be executed, the software device requests the transport to send the command message to the hardware device. For example, you might use the command tag to send a message to a radio to &quot;"turn volume up&quot;" or &quot;"turn on power&quot;". The commands that the device should define are hardware specific. As such, the command set for a radio differs from the command set for a car bus. Also, the command set might vary based on the company that built the device. To send effective commands to hardware, be sure to use the hardware specifications from the manufacturer. Some commands can be executed with a parameter that will be encoded into the message before it is sent to the hardware device. The message that represent the command are defined in a message tag.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the command description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Defines if this command is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the command data units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this command.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies a unique command key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="configuration" type="configurationType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Defines this command as a configuration command. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="commandreceived"
                    type="commandreceivedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies if a command message can be received from the device. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="rate" type="xs:unsignedLong">
                <xs:annotation>
                    <xs:documentation>Specifies the polling rate in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="0" name="message" type="messageType">
                    <xs:annotation>
                        <xs:documentation>Specifies the message to execute the command.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="method" type="methodType">
                    <xs:annotation>
                        <xs:documentation>Specifies the method to execute the command.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="data" type="dataType">
                    <xs:annotation>
                        <xs:documentation>Specifies the data to execute the command.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="measurement"
                    type="measurementReferenceType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies the measurement to get the value for the command.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeSimpleMeasurementType">
            <xs:annotation>
                <xs:documentation>Specifies the command data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the commandrefType used by the commandref element      -->

    <xs:complexType name="commandrefType">
        <xs:annotation>
            <xs:documentation>Specifies a command reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the command reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the commandsType used by the commands element      -->

    <xs:complexType name="commandsType">
        <xs:annotation>
            <xs:documentation> The commands tag enables you to couple commands together. You can use the commands tag to execute a series of commands in sequence. This tag can have multiple command children. Use the idref attribute to reference the actual commands under the commands tag. The value of &quot;"idref&quot;" corresponds to the id of a previously defined command. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the commands description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the commands units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this group of commands.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies a unique commands key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="configuration" type="configurationType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Defines this command as a configuration command. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="commandreceived"
                    type="commandreceivedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies if a command message can be received from the device. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="1">
                <xs:element maxOccurs="unbounded" minOccurs="1" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Specifies the command within the group of commands.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="sleep" type="sleepType">
                    <xs:annotation>
                        <xs:documentation>Specifies a sleep command.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the commandreceivedType used by the commandreceived element      -->

    <xs:complexType name="commandreceivedType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation> If content value is true, then the command received message can occur. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the concreteType used by the concrete element      -->

    <xs:complexType name="concreteType">
        <xs:annotation>
            <xs:documentation> The concrete tag defines the interface to a software device. The command tags define the actions that are supported by this software device. The signals tags define the events that are supported by this software device. The measurement tags define the properties supported by this software device. Use the transportservice tag to specify the device’s transport. You can specify the Open Services Gateway Initiative (OSGi) service and transport class implementation with the transportservice tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex concrete.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="commandreceived"
                    type="commandreceivedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies if a command message can be received from the concrete device. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="initializemeasurements"
                    type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Specifies that the concrete device should initialize the measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies an optional key value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="pids" type="pidsType">
                <xs:annotation>
                    <xs:documentation>Specifies the defined pids.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="protocol">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the concrete device protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Defines a command supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commands" type="commandsType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation>Defines a group supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementType">
                    <xs:annotation>
                        <xs:documentation>Defines a measurement supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signal" type="signalType">
                    <xs:annotation>
                        <xs:documentation>Defines a signal supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway initiative (OSGi) service to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of a package to be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="1" ref="receiver">
                    <xs:annotation>
                        <xs:documentation>Specifies the receiver transport used by the concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="transport" type="transportType">
                    <xs:annotation>
                        <xs:documentation>Specifies the transport used by the concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="transportservice"
                        type="transportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway Initiative (OSGi) transport service to be used by the device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udp" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation>Specifies a User Diagram Protocol (UDP) transport. Please, use the udptransport element instead of the udp element.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udptransport" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation>Specifies a User Diagram Protocol (UDP) transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the concretetestType used by the concretetest element      -->

    <xs:complexType name="concretetestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies a concrete test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the concrete test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="concrete" type="concreteType">
                <xs:annotation>
                    <xs:documentation>Specifies the concrete device to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testexecute" type="testexecuteType">
                <xs:annotation>
                    <xs:documentation>Specifies if all commands should be executed.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testexecuteread"
                    type="testexecutereadType">
                <xs:annotation>
                    <xs:documentation>Specifies if the executeRead method should be invoked on all measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testexecutewrite"
                    type="testexecutewriteType">
                <xs:annotation>
                    <xs:documentation>Specifies if the executeWrite method should be invoked on all measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testread" type="testreadType">
                <xs:annotation>
                    <xs:documentation>Specifies if the read method should be invoked on all measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testtrigger" type="testtriggerType">
                <xs:annotation>
                    <xs:documentation>Specifies if all signals should be triggered.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface concrete test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the configurationType used by the configuration element      -->

    <xs:complexType name="configurationType" mixed="true">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation> If content value is true, then this is a configuration control. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Description of the configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the configuration units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="enum" type="enumType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a enumeration option configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="minimum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the minimum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maximum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the maximum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeConfigurationGroup"/>
    </xs:complexType>
<!-- Define the connectionType used by the connection element      -->

    <xs:complexType name="connectionType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies a connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a custom parameter for this connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationSuperclassGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the connectionserviceType used by the connectionservice element      -->

    <xs:complexType name="connectionserviceType">
        <xs:annotation>
            <xs:documentation>Specifies a connection service to be used by the transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the connection service.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this connection service.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the connectiontestType used by the connectiontest element      -->

    <xs:complexType name="connectiontestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an connection test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the connection test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies the message(s) to send during the test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="connection" type="connectionType">
                <xs:annotation>
                    <xs:documentation>Specifies the connection to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface connection test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the customparameterType used by the customparameter element      -->

    <xs:complexType name="customparameterType">
        <xs:annotation>
            <xs:documentation>Specifies a custom parameter.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the custom parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the custom parameter units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this custom parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="enum" type="enumType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a enumeration option configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="minimum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the minimum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maximum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the maximum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdCustomGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the dataType used by the data element      -->

    <xs:complexType name="dataType">
        <xs:annotation>
            <xs:documentation> The data tag specifies a data within a message. By using the data tag, the value of the data can be extracted from the message received from the hardware device. The data tag is also used to define how to stored a data into a message to be sent to the hardware device. This value in the message can be translated into/from the application value by using the translate tags. Valid subtags of data include those that specify where to place the data within the message and a series of transforms that manipulate the data&apos;'s data. You can set the units of the data with the units tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the data.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:documentation>Defines if this data item is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the data units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this data.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the data key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="length" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the data length in <b>bits</b>. See the <a href=&quot;"sizeElement.html&quot;">size</a> element to specify the data length in bytes. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="size" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the data size in <b>bytes</b>. See the <a href=&quot;"lengthElement.html&quot;">length</a> element to specify the data length in bits. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element name="minimum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="maximum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="data" type="dataType">
                <xs:annotation>
                    <xs:documentation>Specifies the data to execute the command.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the optional data units.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeDataType">
            <xs:annotation>
                <xs:documentation>Specifies the data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="AttributeNameGroup"/>
    </xs:complexType>
<!-- Define the databitsType used by the databits element      -->

    <xs:simpleType name="databitsType">
        <xs:annotation>
            <xs:documentation>Specifies the data bits for a serial port.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:unsignedInt">
            <xs:enumeration value="5"/>
            <xs:enumeration value="6"/>
            <xs:enumeration value="7"/>
            <xs:enumeration value="8"/>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the descriptionType used by the description element      -->

    <xs:complexType name="descriptionType">
        <xs:annotation>
            <xs:documentation>Specifies the description of the parent element. The description element documents the Device Kit XML file and the generated code.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the deprecatedType used by the deprecated element      -->

    <xs:complexType name="deprecatedType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies that parent Specifies that the contents of this element should be marked as deprecated. </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the deviceType used by the device element      -->

    <xs:complexType name="deviceType">
        <xs:annotation>
            <xs:documentation> The device tag is used to denote the interface to a hardware device. The command tags denote the actions that are supported by the hardware device. The signals tags denote the events that are supported by the hardware device. The measurement tags denote the properties supported by the hardware device. Use the transportservice tag to specify the device’s transport. You can specify the Open Services Gateway Initiative (OSGi) service and transport class implementation with the transportservice tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deviceparent" type="deviceparentType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the Device parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="commandreceived"
                    type="commandreceivedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies if a command message can be received from the device. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="initializemeasurements"
                    type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Specifies that the device should initialize the measurements when the device is started.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies an optional key value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="pids" type="pidsType">
                <xs:annotation>
                    <xs:documentation>Specifies the defined pids.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="priority" type="priorityType">
                <xs:annotation>
                    <xs:documentation>Specifies the device execution priority.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="protocol">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the device protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command that is supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commands" type="commandsType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation>Defines a group supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementType">
                    <xs:annotation>
                        <xs:documentation>Specifies a measurement supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signal" type="signalType">
                    <xs:annotation>
                        <xs:documentation>Specifies a signal supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commandref" type="commandrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurementref"
                        type="measurementrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a measurement reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signalref" type="signalrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a signal reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway initiative (OSGi) service to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the package of be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="0" name="transport" type="transportType">
                    <xs:annotation>
                        <xs:documentation>Specifies the transport used by the device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="transportservice"
                        type="transportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the Open Services Gateway Initiative (OSGi) transport service name.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udp" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation>Specifies a User Diagram Protocol (UDP) transport. Please, use the udptransport element instead of the udp element.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udptransport" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation>Specifies a User Diagram Protocol (UDP) transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
        <xs:attribute default="false" name="get" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies to generate get methods. The default is false unless abstract or lazy.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the deviceIDREFType      -->

    <xs:complexType name="deviceIDREFType">
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the devicerefType      -->

    <xs:complexType name="devicerefType">
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the deviceparentType used by the deviceparent element      -->

    <xs:complexType name="deviceparentType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies a device parent.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the device parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deviceref" type="devicerefType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies device parent reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the devicetestType used by the devicetest element      -->

    <xs:complexType name="devicetestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies a device test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="device" type="deviceType">
                <xs:annotation>
                    <xs:documentation>Specifies the device to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testexecute" type="testexecuteType">
                <xs:annotation>
                    <xs:documentation>Specifies if all commands should be executed.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testexecuteread"
                    type="testexecutereadType">
                <xs:annotation>
                    <xs:documentation>Specifies if the executeRead method should be invoked on all measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testexecutewrite"
                    type="testexecutewriteType">
                <xs:annotation>
                    <xs:documentation>Specifies if the executeWrite method should be invoked on all measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testread" type="testreadType">
                <xs:annotation>
                    <xs:documentation>Specifies if the read method should be invoked on all measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testtrigger" type="testtriggerType">
                <xs:annotation>
                    <xs:documentation>Specifies if all signals should be triggered.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the doubleType used by the double element      -->

    <xs:complexType name="doubleType">
        <xs:annotation>
            <xs:documentation>Specifies double data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:double">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the echoType used by the echo element      -->

    <xs:complexType name="echoType">
        <xs:annotation>
            <xs:documentation>Specifies an echo connection.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the enumType used by the enum element      -->

    <xs:complexType mixed="true" name="enumType">
        <xs:annotation>
            <xs:documentation> Use the enum tag to specify a enumeration. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the enumeration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the enum units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specification reference for this enumeration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a enumeration key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="label" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a enumeration label.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="value" type="valueType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the enumeration value.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="AttributeNameGroup"/>
    </xs:complexType>
<!-- Define the exportserviceType used by the exportservice element      -->

    <xs:complexType name="exportserviceType">
        <xs:annotation>
            <xs:documentation>Specifies the name of the Open Services Gateway initiative (OSGi) service to be exported.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the managedfactorybundleType used by the managedfactorybundle element      -->

    <xs:complexType name="managedfactorybundleType">
        <xs:annotation>
            <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle with a factory bundle activator should be created.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the factory bundle.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the fileType used by the file element      -->

    <xs:complexType name="fileType">
        <xs:annotation>
            <xs:documentation>Specifies a file connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specreference" type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="inputpath" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the file input path name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="inputname" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the input file name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="outputpath" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the file output path name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="outputname" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the output file name.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the filterType used by the filter element      -->

    <xs:complexType name="filterType">
        <xs:annotation>
            <xs:documentation> Use the filter tag to specify a filter mask for a message. The bytes tag defines the relevant filter bytes. All of the bits in the filter bytes that are turned on will be compared and all bits that are turned off will be ignored. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the filter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this filter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="1" name="bytes" type="bytesType">
                <xs:annotation>
                    <xs:documentation>Specifies the message filter (Bit off - ignore, Bit on - compare).</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the filtersType used by the filters element      -->

    <xs:complexType name="filtersType">
        <xs:annotation>
            <xs:documentation>Specifies a group of filters.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the filters description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this group of filters.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies a unique filter key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="1" name="filter" type="filterType">
                <xs:annotation>
                    <xs:documentation>Specifies the filter.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:element name="filter" type="filterType"/>
<!-- Define the floatType used by the float element      -->

    <xs:complexType name="floatType">
        <xs:annotation>
            <xs:documentation>Specifies float data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:float">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the gpioType used by the gpio element      -->

    <xs:complexType name="gpioType">
        <xs:annotation>
            <xs:documentation>Specifies a General Purpose Input Output (GPIO) connection.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the i2cType used by the i2c element      -->

    <xs:complexType name="i2cType">
        <xs:annotation>
            <xs:documentation>Specifies an Inter-IC (i2c) connection.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the groupType used by the group element      -->

    <xs:complexType name="groupType">
        <xs:annotation>
            <xs:documentation> The group tag is used to denote the interface to a hardware group. The command tags denote the actions that are supported by the hardware group. The signals tags denote the events that are supported by the hardware group. The measurement tags denote the properties supported by the hardware group. Use the transportgroup tag to specify the group’s transport. You can specify the Open Services Gateway Initiative (OSGi) service and transport class implementation with the transportservice tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the group.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this group.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this group.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="commandreceived"
                    type="commandreceivedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies if a command message can be received from the group. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies an optional key value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command that is supported by this group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commands" type="commandsType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation>Specifies a group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementType">
                    <xs:annotation>
                        <xs:documentation>Specifies a measurement supported by this group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signal" type="signalType">
                    <xs:annotation>
                        <xs:documentation>Specifies a signal supported by this group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway initiative (OSGi) group to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the package of be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the importType used by the import element      -->

    <xs:complexType name="importType">
        <xs:annotation>
            <xs:documentation>Specifies an import package.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the incubationType used by the incubation element      -->

    <xs:complexType name="incubationType">
        <xs:annotation>
            <xs:documentation> If content value is true, then it is an incubation project. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the intType used by the int element      -->

    <xs:complexType name="intType">
        <xs:annotation>
            <xs:documentation>Specifies integer data (32 bits).</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the junitType used by the junit element      -->

    <xs:complexType name="junitType">
        <xs:annotation>
            <xs:documentation>Specifies junit test. Currently, not supported.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the mapType used by the map element      -->

    <xs:complexType name="mapType">
        <xs:annotation>
            <xs:documentation>Specifies map data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the listType used by the list element      -->

    <xs:complexType name="listType">
        <xs:annotation>
            <xs:documentation>Specifies list data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the longType used by the long element      -->

    <xs:complexType name="longType">
        <xs:annotation>
            <xs:documentation>Specifies long data (64 bits).</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the managedbundleType used by the managedbundle element      -->

    <xs:complexType name="managedbundleType">
        <xs:annotation>
            <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle with a managed bundle activator should be created.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the managed bundle.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the maximumType used by the maximum element      -->

    <xs:complexType name="maximumType">
        <xs:annotation>
            <xs:documentation>Specifies the maximum value for the data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the measurementType used by the measurement element      -->

    <xs:complexType name="measurementType">
        <xs:annotation>
            <xs:documentation> The measurement tag denotes a logical property of the hardware device. This logical property is usually stored in the hardware device and requires that commands to be sent to the device to read (readcommand tag) or write (writecommand tag) the value of the measurement. The signal tag is used to define the signal that will be triggered when the value of the measurement is sent by the hardware device. Hardware devices vary on how the measurements are implemented. Some hardware devices only support the reading of measurement values and do not support writing new values via messages. Other hardware devices support both reading and writing of the measurement. Some hardware devices support notification of the signal message when the value changes while other hardware device require that a read message be sent to get the measurement value. See the hardware device specifications to determine the correct tags that must be defined by this device.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the measurement description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Defines if this measurement is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this measurement.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies a unique measurement key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="configuration" type="configurationType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Defines this measurement as a configuration measurement. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="rate" type="xs:unsignedLong">
                <xs:annotation>
                    <xs:documentation>Specifies the measurement polling rate in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="0" name="message" type="messageType">
                    <xs:annotation>
                        <xs:documentation>Specifies the measurement message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="data" type="dataType">
                    <xs:annotation>
                        <xs:documentation>Specifies the measurement data.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="readcommand" type="commandType">
                <xs:annotation>
                    <xs:documentation>Specifies the command to request a read of the current value of the measurement.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="0" name="writecommand" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Specifies the command to request a change of the measurement value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="method" type="methodType">
                    <xs:annotation>
                        <xs:documentation>Specifies the method.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="signal" type="signalType">
                <xs:annotation>
                    <xs:documentation>Specifies the signal containing the measurement value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:sequence minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementReferenceType">
                    <xs:annotation>
                        <xs:appinfo>1.0.0</xs:appinfo>
                        <xs:documentation>Defines the parent measurement.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:choice maxOccurs="unbounded" minOccurs="0">
                    <xs:element maxOccurs="1" minOccurs="1" name="field" type="xs:string">
                        <xs:annotation>
                            <xs:appinfo>1.1.0</xs:appinfo>
                            <xs:documentation>Specifies the field name to use on the receiving measurement. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                        <xs:annotation>
                            <xs:appinfo>1.0.0</xs:appinfo>
                            <xs:documentation>Specifies a parameter used to extract/insert the information within the parent data.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="parameters" type="parametersType">
                        <xs:annotation>
                            <xs:appinfo>1.0.0</xs:appinfo>
                            <xs:documentation>Specifies a group of parameters.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:choice>
            </xs:sequence>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the measurement units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="value" type="valueType">
                <xs:annotation>
                    <xs:documentation>Specifies the optional initial measurement value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element name="maximum" type="maximumType">
                    <xs:annotation>
                        <xs:documentation>Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="minimum" type="minimumType">
                    <xs:annotation>
                        <xs:documentation>Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="negative" type="negativeType">
                    <xs:annotation>
                        <xs:documentation>Negate the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="not" type="notType">
                    <xs:annotation>
                        <xs:documentation>Logical not of a boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="scale" type="scaleType">
                    <xs:annotation>
                        <xs:documentation>Specifies a numeric scale value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="shift" type="shiftType">
                    <xs:annotation>
                        <xs:documentation>Specifies an integer shift value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="translate" type="translateType">
                    <xs:annotation>
                        <xs:documentation>Specifies a numeric translate (add) value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeSimpleMeasurementType">
            <xs:annotation>
                <xs:documentation>Specifies the measurement data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="false" name="listen" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies the containing object to listen to this measurement. The default is false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="triggeronsetvalue" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies to trigger the signal on set value. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="triggeronreadcommand" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies to trigger the signal on read command. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="executeread" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies the measurement supports executeRead. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="executewrite" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies the measurement supports executeWrite. If both the setvalue and setwrite attributes are false, then the measurement is a read only measurement. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="setvalue" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies the measurement supports setValue. If both the setvalue and setwrite attributes are false, then the measurement is a read only measurement. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="error" type="xs:boolean">
            <xs:annotation>
                <xs:appinfo>1.1.0</xs:appinfo>
                <xs:documentation>Specifies the measurement can report an error. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the measurementrefType used by the measurementref element      -->

    <xs:complexType name="measurementrefType">
        <xs:annotation>
            <xs:documentation>Specifies a measurement reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the measurement reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the measurementReferenceType used by the measurement element      -->

    <xs:complexType name="measurementReferenceType">
        <xs:annotation>
            <xs:documentation> The measurement tag denotes a logical property of the hardware device. This logical property is usually stored in the hardware device and requires that commands to be sent to the device to read (readcommand tag) or write (writecommand tag) the value of the measurement. The signal tag is used to define the signal that will be triggered when the value of the measurement is sent by the hardware device. Hardware devices vary on how the measurements are implemented. Some hardware devices only support the reading of measurement values and do not support writing new values via messages. Other hardware devices support both reading and writing of the measurement. Some hardware devices support notification of the signal message when the value changes while other hardware device require that a read message be sent to get the measurement value. See the hardware device specifications to determine the correct tags that must be defined by this device.</xs:documentation>
        </xs:annotation>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the messageType used by the message element      -->

    <xs:complexType name="messageType" mixed="true">
        <xs:annotation>
            <xs:documentation> The message tag specifies the actual message or set of bytes that the are sent or received from the hardware device. The ascii, bytes, nibbles, tokens, parameter, parameters, and filter subtags define the content of a message. The specific tags to use within the message tag depend on a combination of the hardware specification and the controls that the application needs. For example, if the hardware communicates with bytes or eight bits use the bytes tag. If the hardware understands four-bit increments, use a series of nibbles to define the message. You can also set a filter mask for a message. The contents of the filter determine which bits are relevant. The content of a binary message is often defined by using the bytes subtag to specify a special byte or set of bytes. The content of a American National Standard Code for Information Interchange (ASCII) message is normally defined by using the ascii subtag. You can set the delimiter with the tokens tag. Messages can also have parameters that hold important value information. Specify message parameters with the parameter and parameters tags. Defining the messages correctly is very important activity. WARNING: Defining the messages incorrectly and sending the wrong messages to a hardware device can be dangerous.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the message.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this message.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="1" name="ascii" type="asciiType">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of ASCII characters (8 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="1" name="bytes" type="bytesType">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of bytes. Each byte is 8 bits.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="1" name="nibbles" type="nibblesType">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of nibbles. Each nibble is 4 bits.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="1" name="utf8" type="utf8Type">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of UTF-8 characters.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="tokens" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the message tokens.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="block">
                    <xs:annotation>
                        <xs:documentation>Specifies a block within the message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                    <xs:annotation>
                        <xs:documentation>Specifies a parameter within the message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="parameters" type="parametersType">
                    <xs:annotation>
                        <xs:documentation>Specifies a group of parameters.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="segment">
                    <xs:annotation>
                        <xs:documentation>Specifies a segment.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="choicesegment">
                    <xs:annotation>
                        <xs:documentation>Specifies a choice segment.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="filter" type="filterType">
                <xs:annotation>
                    <xs:documentation>Specifies the message filter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="sentmessage" type="messageReferenceType">
                <xs:annotation>
                    <xs:documentation>Specifies the message that was sent that caused this message.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:element name="message" type="messageType"/>
<!-- Define the messageReferenceType      -->

    <xs:complexType name="messageReferenceType">
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the messagesType used by the messages element      -->

    <xs:complexType name="messagesType">
        <xs:annotation>
            <xs:documentation>Specifies a group of messages.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the messages description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this group of messages.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies the unique messages key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="1" name="message" type="messageType">
                <xs:annotation>
                    <xs:documentation>Specifies the message.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the methodType used by the method element      -->

    <xs:complexType name="methodType">
        <xs:annotation>
            <xs:documentation>Specifies method data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the minimumType used by the minimum element      -->

    <xs:complexType name="minimumType">
        <xs:annotation>
            <xs:documentation>Specifies the minimum value for the data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the monitorType used by the monitor element      -->

    <xs:complexType name="monitorType">
        <xs:annotation>
            <xs:documentation>Specifies monitor test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the monitor test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeMonitortimeGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the mostType used by the most element      -->

    <xs:complexType name="mostType">
        <xs:annotation>
            <xs:documentation>Specifies a Media Oriented Systems Transport (MOST) connection.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the multicastType used by the multicast element      -->

    <xs:complexType name="multicastType">
        <xs:annotation>
            <xs:documentation>Specifies a multicast transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the multicast transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this multicast transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the multicast remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the multicast remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the multicast local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the multicast local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="packetsize" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the multicast packet size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the multiplexType used by the multiplex element      -->

    <xs:complexType name="multiplexType" mixed="true">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation> If content value is true, then this is a multiplex object. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Description of the multiplex object.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this multiplex.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeConfigurationGroup"/>
    </xs:complexType>
<!-- Define the negativeType used by the negative element      -->

    <xs:complexType name="negativeType">
        <xs:annotation>
            <xs:documentation>Specifies the negative transform.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the nibblesType used by the nibbles element      -->

    <xs:complexType name="nibblesType">
        <xs:annotation>
            <xs:documentation> The nibbles tag specifies data for a message. Each nibble defines 4 bits of data. You can specify the numeric format base of data with the format attribute. Normally, the hex format should be used to define the data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the notType used by the not element      -->

    <xs:complexType name="notType">
        <xs:annotation>
            <xs:documentation>Specifies the not transform.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the noactivitytimeoutType used by the noactivitytimeout element      -->

    <xs:complexType name="noactivitytimeoutType">
        <xs:annotation>
            <xs:documentation>Specifies the timeout value in milliseconds to wait for no activity. If no activity has occurred after this time, the transport may attempt to determine if the device is OK by sending a message to the device.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedLong"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the parameterType used by the parameter element      -->

    <xs:complexType name="parameterType">
        <xs:annotation>
            <xs:documentation> The parameter tag specifies a parameter within a message. By using the parameter tag, the value of the parameter can be extracted from the message received from the hardware device. The parameter tag is also used to define how to stored a parameter into a message to be sent to the hardware device. This value in the message can be translated into/from the application value by using the translate tags. Valid subtags of parameter include those that specify where to place the parameter within the message and a series of transforms that manipulate the parameter&apos;'s data. You can set the units of the parameter with the units tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the parameter units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the parameter key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bigendian" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is in big endian order. This is the default order.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="field" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the field parameter name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="insert" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter should be inserted into the message.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="littleendian" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies that the parameter data is in little endian order.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="offset" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the starting <b>bit</b> offset of the parameter within the message. Offset 0 is the first bit in the message. See the <a href=&quot;"indexElement.html&quot;">index</a> element to specify the parameter position in bytes. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="index" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the starting <b>byte</b> index of the parameter within the message. Index 0 is the first byte of the message. See the <a href=&quot;"offsetElement.html&quot;">offset</a> element to specify the parameter offset in bits. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="length" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the parameter length in <b>bits</b>. See the <a href=&quot;"sizeElement.html&quot;">size</a> element to specify the parameter length in bytes. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="lengthtoend" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies the parameter continues until the end of the message or segment.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="size" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the parameter size in <b>bytes</b> (1 byte is 8 bits). See the <a href=&quot;"lengthElement.html&quot;">length</a> element to specify the parameter length in bits. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element name="enum" type="enumType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a enumeration for this parameter.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element name="minimum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="maximum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="negative" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Negate the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="not" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Logical not of a boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="scale" type="scaleType">
                    <xs:annotation>
                        <xs:documentation>Specifies the value to scale the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="shift" type="shiftType">
                    <xs:annotation>
                        <xs:documentation>Specifies the value to shift the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="translate" type="translateType">
                    <xs:annotation>
                        <xs:documentation>Specifies the value to add (translate) to the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the optional parameter units.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeSimpleParameterType">
            <xs:annotation>
                <xs:documentation>Specifies the data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="parameter" type="parameterType"/>
    <xs:complexType name="blockType">
        <xs:complexContent>
            <xs:extension base="parameterType">
                <xs:sequence maxOccurs="1" minOccurs="0">
                    <xs:element ref="value"/>
                </xs:sequence>
                <xs:attributeGroup ref="AttributeTargetGroup"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
<!-- Define the block element      -->

    <xs:element name="block" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a block. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="blockType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the constantblock element      -->

    <xs:element name="constantblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a constant block. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the reserveblock element      -->

    <xs:element name="reserveblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a reserve block. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the versionblock element      -->

    <xs:element name="versionblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a version block. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the idblock element      -->

    <xs:element name="idblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a id block. </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="identifierblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a identifierblock block. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the typeblock element      -->

    <xs:element name="typeblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a type block. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the countblock element      -->

    <xs:element name="countblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a count block. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the lengthblock element      -->

    <xs:element name="lengthblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a length in bits block. The contents of the block is the length in bits. </xs:documentation>
        </xs:annotation>
<!--           <xs:complexType>              <xs:complexContent>                  <xs:extension base="parameterType">                      <xs:attributeGroup ref="AttributeTargetGroup"/>                        </xs:extension>                                     </xs:complexContent>                           </xs:complexType>                         -->

    </xs:element><!-- Define the sizeblock element      -->

    <xs:element name="sizeblock" substitutionGroup="lengthblock">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a length in bytes block. The contents of the block is the length in bytes(each byte is 8 bits). </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the segmentlengthblock element      -->

    <xs:element name="segmentlengthblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a segment length in bits block. The contents of the block is the length in bits. </xs:documentation>
        </xs:annotation>
<!--           <xs:complexType>              <xs:complexContent>                  <xs:extension base="parameterType">                      <xs:attributeGroup ref="AttributeTargetGroup"/>                        </xs:extension>                                     </xs:complexContent>                           </xs:complexType>                         -->

    </xs:element><!-- Define the segmentsizeblock element      -->

    <xs:element name="segmentsizeblock" substitutionGroup="segmentlengthblock">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a segment length in bytes block. The contents of the block is the length in bytes(each byte is 8 bits). </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the messagelengthblock element      -->

    <xs:element name="messagelengthblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a message length in bits block. The contents of the block is the length in bits. </xs:documentation>
        </xs:annotation>
<!--           <xs:complexType>              <xs:complexContent>                  <xs:extension base="parameterType">                      <xs:attributeGroup ref="AttributeTargetGroup"/>                        </xs:extension>                                     </xs:complexContent>                           </xs:complexType>                         -->

    </xs:element><!-- Define the messagesizeblock element      -->

    <xs:element name="messagesizeblock" substitutionGroup="messagelengthblock">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a message length in bytes block. The contents of the block is the length in bytes(each byte is 8 bits). </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the bytesparameter element      -->

    <xs:element name="bytesparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a bytes parameter. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the bitsparameter element      -->

    <xs:element name="bitsparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a bits parameter. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the multiparameter element      -->

    <xs:element name="multiparameter" substitutionGroup="parameter" abstract="true">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a multi parameter. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="parameterType">
                    <xs:sequence maxOccurs="1" minOccurs="0">
                        <xs:choice maxOccurs="1" minOccurs="0">
                            <xs:element ref="countblock"/>
                            <xs:element ref="lengthblock"/>
                        </xs:choice>
                        <xs:element ref="parameter" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the variablelengthparameter element      -->

    <xs:element name="variablelengthparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a variable length parameter. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="parameterType">
                    <xs:sequence maxOccurs="1" minOccurs="0">
                        <xs:element ref="lengthblock"/>
                        <xs:element ref="parameter"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the listparameter element      -->

    <xs:element name="listparameter" substitutionGroup="multiparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a list parameter. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the mapparameter element      -->

    <xs:element name="mapparameter" substitutionGroup="multiparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a map parameter. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the arrayparameter element      -->

    <xs:element name="arrayparameter" substitutionGroup="multiparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a array parameter. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the utf8stringparameter element      -->

    <xs:element name="utf8stringparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a UTF-8 string parameter. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="parameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the stringparameter element      -->

    <xs:element name="stringparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a string parameter. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="parameterType">
                    <xs:choice maxOccurs="1" minOccurs="0">
                        <xs:element name="encoding" type="xs:string"/>
                    </xs:choice>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="numberparameterType">
        <xs:complexContent>
            <xs:extension base="parameterType"/>
        </xs:complexContent>
    </xs:complexType>
<!-- Define the booleanparameter element      -->

    <xs:element name="booleanparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary boolean parameter. Normally, a boolean parameter length should not be longer than 1 bit. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="parameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the numberparameter element      -->

    <xs:element name="numberparameter" substitutionGroup="parameter" abstract="true"/>
<!-- Define the integerparameter element      -->

    <xs:element name="integerparameter" substitutionGroup="numberparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary integer parameter. An integer parameter length should not be longer than 32 bits (4 bytes). </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="numberparameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="unsignedintegerparameter"
            substitutionGroup="integerparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary unsigned integer parameter. An unsigned integer parameter length should not be longer than 32 bits (4 bytes). </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the longparameter element      -->

    <xs:element name="longparameter" substitutionGroup="numberparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary long parameter. An long parameter length should not be longer than 64 bits (8 bytes). </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="numberparameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="unsignedlongparameter" substitutionGroup="longparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary unsigned long parameter. An unsigned long parameter length should not be longer than 64 bits (8 bytes). </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the shortparameter element      -->

    <xs:element name="shortparameter" substitutionGroup="numberparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary short parameter. An short parameter length should not be longer than 16 bits (2 bytes). </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="numberparameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="unsignedshortparameter" substitutionGroup="shortparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary unsigned short parameter. An unsigned short parameter length should not be longer than 16 bits (2 bytes). </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="byteparameter" substitutionGroup="numberparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary byte parameter. An byte parameter length should not be longer than 8 bits (1 byte). </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="numberparameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="unsignedbyteparameter" substitutionGroup="byteparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary unsigned byte parameter. An unsigned byte parameter length should not be longer than 8 bits (1 byte). </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="floatparameter" substitutionGroup="numberparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary IEEE 754 floating-point single 32 bit parameter. The float parameter length should be 32 bits (4 bytes). </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="numberparameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="doubleparameter" substitutionGroup="numberparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a binary IEEE 754 floating-point double 64 bit parameter. The double parameter length should be 64 bits (8 bytes). </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="numberparameterType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the parametersType used by the parameters element      -->

    <xs:complexType name="parametersType">
        <xs:annotation>
            <xs:documentation> Message can contain multiple parameters. The parameters tag enables you to set multiple parameters for a message. This tag can have multiple parameter children. The idref attribute references the parameters in the parameters tag. The value of &quot;"idref&quot;" corresponds to the id of a previously defined parameter. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the parameters description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the parameters units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this group of parameters.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies the unique parameters key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="1">
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                    <xs:annotation>
                        <xs:documentation>Specifies the parameter.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="parameters" type="parametersType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies the parameters.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeParametersType">
            <xs:annotation>
                <xs:documentation>Specifies the data type of parameters.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the parityType used by the parity element      -->

    <xs:simpleType name="parityType">
        <xs:annotation>
            <xs:documentation>Specifies the parity of the serial port.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="none"/>
            <xs:enumeration value="even"/>
            <xs:enumeration value="odd"/>
            <xs:enumeration value="mark"/>
            <xs:enumeration value="space"/>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the pidType used by the pid element      -->

    <xs:complexType name="pidType">
        <xs:annotation>
            <xs:documentation> The pid tag specifies a parameter identifier (PID). By using the pid tag, the value of the pid can be extracted from the message received from the hardware device. The pid tag is also used to define how to stored a parameter into a message to be sent to the hardware device. This value in the message can be translated into/from the application value by using the translate tags. Valid subtags of parameter include those that specify where to place the parameter within the message and a series of transforms that manipulate the parameter&apos;'s data. You can set the units of the parameter with the units tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the parameter identifier (PID).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the parameter identifier (PID) units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this parameter identifier (PID).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies the parameter identifier (pid) key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="identifier" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the parameter identifier.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="length" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the parameter (pid) data length in <b>bits</b>.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="size" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the parameter identifier (pid) size in <b>bytes</b>. See the <a href=&quot;"lengthElement.html&quot;">length</a> element to specify the parameter (pid) data length in bits. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element name="minimum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="maximum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="negative" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Negate the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="not" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>Logical not of a boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="scale" type="scaleType">
                    <xs:annotation>
                        <xs:documentation>Specifies the value to scale the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="shift" type="shiftType">
                    <xs:annotation>
                        <xs:documentation>Specifies the value to shift the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="translate" type="translateType">
                    <xs:annotation>
                        <xs:documentation>Specifies the value to add (translate) to the parameter value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the optional parameter identifier (pid) units.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeSimpleParameterType">
            <xs:annotation>
                <xs:documentation>Specifies the data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the pidsType used by the pids element      -->

    <xs:complexType name="pidsType">
        <xs:annotation>
            <xs:documentation> The pids tag enables you to define the set of pid supported. The idref attribute references the pids in the pids tag. The value of &quot;"idref&quot;" corresponds to the id of a previously defined pids. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the pids description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the pids units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for pids.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies the unique pids key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="1" name="pid" type="pidType">
                <xs:annotation>
                    <xs:documentation>Specifies the pid.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the playbackType used by the playback element      -->

    <xs:complexType name="playbackType">
        <xs:annotation>
            <xs:documentation>Specifies playback test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the playback test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the priorityType used by the priority element      -->

    <xs:complexType name="priorityType">
        <xs:annotation>
            <xs:documentation>Specifies the execution priority.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedInt"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the randomaccessfileType used by the randomaccessfile element      -->

    <xs:complexType name="randomaccessfileType">
        <xs:annotation>
            <xs:documentation>Specifies a random access file connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the random access file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specreference" type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this random access file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex random access file.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="name" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the file name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="mode" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the file mode.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="path" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the file path name.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the responsetimeoutType used by the responsetimeout element      -->

    <xs:complexType name="responsetimeoutType">
        <xs:annotation>
            <xs:documentation>Specifies the milliseconds to wait on a response transport.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedLong"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the readsizeType used by the readsize element      -->

    <xs:complexType name="readsizeType">
        <xs:annotation>
            <xs:documentation>Specifies the size in bytes of the read buffer.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedInt"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the writesizeType used by the writesize element      -->

    <xs:complexType name="writesizeType">
        <xs:annotation>
            <xs:documentation>Specifies the size in bytes of the write buffer.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedInt"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the transmitretriesType used by the transmitretries element      -->

    <xs:complexType name="transmitretriesType">
        <xs:annotation>
            <xs:documentation>Specifies the transmit retried on a transport.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedLong"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the retrytimeType used by the retrytime element      -->

    <xs:complexType name="retrytimeType">
        <xs:annotation>
            <xs:documentation>Specifies the milliseconds to wait before attempting to retry the connection.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedLong"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the scaleType used by the scale element      -->

    <xs:complexType mixed="true" name="scaleType">
        <xs:annotation>
            <xs:documentation>Specifies a scale transform.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the scale.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this scale.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the segmentType used by the segment element      -->

    <xs:complexType name="segmentType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation> The segment tag specifies a segment within a message. By using the segment tag, the value of the segment can be extracted from the message received from the hardware device. The segment tag is also used to define how to stored a segment into a message to be sent to the hardware device. This value in the message can be translated into/from the application value by using the translate tags. Valid subtags of segment include those that specify where to place the segment within the message and a series of transforms that manipulate the segment&apos;'s data. You can set the units of the segment with the units tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the segment.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this segment.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the segment key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="field" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the field segment name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="1" name="ascii" type="asciiType">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of ASCII characters (8 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="1" name="bytes" type="bytesType">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of bytes. Each byte is 8 bits.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="1" name="nibbles" type="nibblesType">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of nibbles. Each nibble is 4 bits.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                    <xs:annotation>
                        <xs:documentation>Specifies a parameter within the message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="parameters" type="parametersType">
                    <xs:annotation>
                        <xs:documentation>Specifies a group of parameters.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="segment">
                    <xs:annotation>
                        <xs:documentation>Specifies a segment within the segment.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="choicesegment">
                    <xs:annotation>
                        <xs:documentation>Specifies a choice segment.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="filter" type="filterType">
                <xs:annotation>
                    <xs:documentation>Specifies the message filter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="offset" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the starting <b>bit</b> offset of the segment within the message. Offset 0 is the first bit in the message. See the <a href=&quot;"indexElement.html&quot;">index</a> element to specify the segment position in bytes. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="index" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the starting <b>byte</b> index of the segment within the message. Index 0 is the first byte of the message. See the <a href=&quot;"offsetElement.html&quot;">offset</a> element to specify the segment offset in bits. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="length" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the segment length in <b>bits</b>. See the <a href=&quot;"sizeElement.html&quot;">size</a> element to specify the segment length in bytes. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="size" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation>Specifies the segment size in <b>bytes</b>. See the <a href=&quot;"lengthElement.html&quot;">length</a> element to specify the segment length in bits. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element name="occursminimum" type="occursminimumType" maxOccurs="1" minOccurs="0">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the minimum number of times the seqment can occur. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="occursmaximum" type="occursmaximumType" maxOccurs="1" minOccurs="0">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the maximum number of times the seqment can occur. </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeSimpleParameterType">
            <xs:annotation>
                <xs:documentation>Specifies the data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="segment" type="segmentType"/>
    <xs:element name="parametersegment" substitutionGroup="segment"/>
    <xs:element name="singleparametersegment" substitutionGroup="segment"/>
<!-- Define the choicesegmentType used by the choicesegment element      -->

    <xs:complexType name="choicesegmentType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation> The segment tag specifies a segment within a message. By using the segment tag, the value of the segment can be extracted from the message received from the hardware device. The segment tag is also used to define how to stored a segment into a message to be sent to the hardware device. This value in the message can be translated into/from the application value by using the translate tags. Valid subtags of segment include those that specify where to place the segment within the message and a series of transforms that manipulate the segment&apos;'s data. You can set the units of the segment with the units tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the segment.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this segment.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the segment key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="field" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the field segment name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="segment">
                <xs:annotation>
                    <xs:documentation>Specifies a parameter within the message.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="choicesegment">
                <xs:annotation>
                    <xs:documentation>Specifies a choice segment.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="occursminimum" type="occursminimumType" maxOccurs="1" minOccurs="0">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the minimum number of times the seqment can occur. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="occursmaximum" type="occursmaximumType" maxOccurs="1" minOccurs="0">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies the maximum number of times the seqment can occur. </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeSimpleParameterType">
            <xs:annotation>
                <xs:documentation>Specifies the data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="choicesegment" type="choicesegmentType"/>
<!-- Define the sendType used by the send element      -->

    <xs:complexType name="sendType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>The send tag specifies the message(s) to send. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the send description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this send.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="1">
                <xs:element maxOccurs="unbounded" minOccurs="1" name="message" type="messageType">
                    <xs:annotation>
                        <xs:documentation>Specifies the message to send.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="sleep" type="sleepType">
                    <xs:annotation>
                        <xs:documentation>Specifies a sleep time.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the serialType used by the serial element      -->

    <xs:complexType name="serialType">
        <xs:annotation>
            <xs:documentation>Specifies a serial port (RS232) connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the serial connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this serial connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex serial connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="baudrate" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port baud rate. Common baud rates for a serial port: <ul> <li>110</li> <li>300</li> <li>1200</li> <li>2400</li> <li>4800</li> <li>9600</li> <li>19200</li> <li>38400</li> <li>57600</li> <li>115200</li> <li>230400</li> <li>460800</li> <li>921600</li> </ul></xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="comport" type="xs:positiveInteger">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port communication port. This value starts at 1.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="databits" type="databitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port data bits.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="hardwareflowcontrol" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port hardware flow control value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="parity" type="parityType">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port parity.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readintervaltimeout"
                    type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the number of milliseconds that the serial port read between bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readtotaltimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the maximum amount of time in milliseconds that the serial port will wait for a read.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="softwareflowcontrol" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port software flow control value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="stopbits" type="stopbitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port stop bits.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writetotaltimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the serial port write timeout value in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the stringType used by the string element      -->

    <xs:complexType name="stringType">
        <xs:annotation>
            <xs:documentation>Specifies string data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the occursminimumType used by the occursminimum element      -->

    <xs:simpleType name="occursminimumType">
        <xs:annotation>
            <xs:documentation>Specifies the minimum number of times the seqment can occur.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="([0-9])+|(n)"/>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the occursmaximumType used by the occursmaximum element      -->

    <xs:simpleType name="occursmaximumType">
        <xs:annotation>
            <xs:documentation>Specifies the maximum number of times the seqment can occur..</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="([0-9])+|(n)"/>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the optionalType used by the optional element      -->

    <xs:complexType name="optionalType" mixed="true">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation> If content value is true, then this is a optional item. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Description of the optional item.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this optional item.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the profile used by the profile element      -->

    <xs:complexType name="profileType">
        <xs:annotation>
            <xs:documentation> The profile tag is used to denote the interface to a hardware profile. The command tags denote the actions that are supported by the hardware profile. The signals tags denote the events that are supported by the hardware profile. The measurement tags denote the properties supported by the hardware profile. Use the transportprofile tag to specify the profile’s transport. You can specify the Open Services Gateway Initiative (OSGi) profile and transport class implementation with the transportprofile tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation>Specifies a custom parameter for this adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="profileparent" type="profileparentType">
                <xs:annotation>
                    <xs:documentation>Profile parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="profileuses" type="profileusesType">
                <xs:annotation>
                    <xs:documentation>Profile uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="commandreceived"
                    type="commandreceivedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies if a command message can be received from the profile. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies an optional key value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command that is supported by this profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commands" type="commandsType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation>Defines a group supported by this profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementType">
                    <xs:annotation>
                        <xs:documentation>Specifies a measurement supported by this profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signal" type="signalType">
                    <xs:annotation>
                        <xs:documentation>Specifies a signal supported by this profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway initiative (OSGi) service to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the package of be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="0" name="adapter" type="adapterType">
                    <xs:annotation>
                        <xs:documentation>Specifies the adapter used by the profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the device used by the profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
        <xs:attribute default="false" name="get" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies to generate get methods. The default is false unless abstract or lazy.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the profilerefType used by the profileref element      -->

    <xs:complexType name="profilerefType">
        <xs:annotation>
            <xs:documentation>Specifies a profile reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the profile reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commandref" type="commandrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurementref"
                        type="measurementrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a measurement reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signalref" type="signalrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a signal reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the profileparentType used by the profileparent element      -->

    <xs:complexType name="profileparentType">
        <xs:annotation>
            <xs:documentation>Specifies a profile reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the profile reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="profileref" type="profilerefType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies profile parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the profileusesType used by the profileuses element      -->

    <xs:complexType name="profileusesType">
        <xs:annotation>
            <xs:documentation>Specifies a profile reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the profile reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="profileref" type="profilerefType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies profile uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the agentrefType used by the agentref element      -->

    <xs:complexType name="agentrefType">
        <xs:annotation>
            <xs:documentation>Specifies a agent reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the agent reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="commandref" type="commandrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a command reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurementref"
                        type="measurementrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a measurement reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signalref" type="signalrefType">
                    <xs:annotation>
                        <xs:documentation>Specifies a signal reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the agentparentType used by the agentparent element      -->

    <xs:complexType name="agentparentType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies a agent parent.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the agent parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="agentref" type="agentrefType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies agent parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the agentusesType used by the agentuses element      -->

    <xs:complexType name="agentusesType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies a agent uses.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the agent uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="agentref" type="agentrefType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies agent uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="profileref" type="profilerefType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies profile uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the profiletestType used by the profiletest element      -->

    <xs:complexType name="profiletestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an profile test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the profile test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies the message(s) to send during the test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="profile" type="profileType">
                <xs:annotation>
                    <xs:documentation>Specifies the profile to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface profile test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the protocol used by the protocol element      -->

    <xs:complexType name="protocolType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation> The protocol tag is used to denote the interface to a hardware protocol. The command tags denote the actions that are supported by the hardware protocol. The signals tags denote the events that are supported by the hardware protocol. The measurement tags denote the properties supported by the hardware protocol. Use the transportprotocol tag to specify the protocol’s transport. You can specify the Open Services Gateway Initiative (OSGi) protocol and transport class implementation with the transportprotocol tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="0" ref="block">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a block used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" ref="segment">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a segement used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="choicesegment">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a segment.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" ref="filter">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a filter used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" ref="message">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a message used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" ref="parameter">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies a parameter used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="protocol" type="protocolType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
        </xs:annotation>
    </xs:element>
<!-- Define the shiftType used by the shift element      -->

    <xs:complexType mixed="true" name="shiftType">
        <xs:annotation>
            <xs:documentation>Specifies a shift transform.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the shift.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this shift.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the shiftTypeContent      -->

    <xs:complexType name="shiftTypeContent">
        <xs:simpleContent>
            <xs:extension base="xs:integer"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the shortType used by the short element      -->

    <xs:complexType name="shortType">
        <xs:annotation>
            <xs:documentation>Specifies short data (16 bits).</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the signalType used by the signal element      -->

    <xs:complexType name="signalType">
        <xs:annotation>
            <xs:documentation> The signal tag denotes a logical event that can be triggered by the hardware device. Usually, a signal defines a message that can be received from the hardware device when an important event occurs. A message tag defines the hardware-specific bytes that represent the signal. See the hardware device specifications more information about the specific bytes that define the signal message. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Specifies the signal description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Defines if this signal is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation>Specifies the signal units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this signal.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation>Specifies the unique signal key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="configuration" type="configurationType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Defines this signal as a configuration signal. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="rate" type="xs:unsignedLong">
                <xs:annotation>
                    <xs:documentation>Specifies the rate that the signal is received in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:choice maxOccurs="unbounded" minOccurs="0">
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="message" type="messageType">
                        <xs:annotation>
                            <xs:documentation>Specifies the message to trigger the signal.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element maxOccurs="1" minOccurs="0" name="method" type="methodType">
                        <xs:annotation>
                            <xs:documentation>Specifies the method to handle the signal.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="data" type="dataType">
                        <xs:annotation>
                            <xs:documentation>Specifies the data when the signal triggers.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:sequence maxOccurs="1" minOccurs="0">
                        <xs:element maxOccurs="1" minOccurs="1" name="signal" type="signalType">
                            <xs:annotation>
                                <xs:documentation>Specifies the signal to listen. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element maxOccurs="1" minOccurs="1" name="field" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>Specifies the field name to use on the receiving signal. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:choice>
                <xs:element maxOccurs="1" minOccurs="0" name="messages" type="messagesType">
                    <xs:annotation>
                        <xs:documentation>Specifies the messages to trigger the signal.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="pid" type="pidType">
                    <xs:annotation>
                        <xs:documentation>Specifies the pid for this signal.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                <xs:annotation>
                    <xs:documentation>Specifies a message parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="parameters" type="parametersType">
                <xs:annotation>
                    <xs:documentation>Specifies a parameter group.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element name="maximum" type="maximumType">
                    <xs:annotation>
                        <xs:documentation>Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="minimum" type="minimumType">
                    <xs:annotation>
                        <xs:documentation>Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="negative" type="negativeType">
                    <xs:annotation>
                        <xs:documentation>Negate the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="not" type="notType">
                    <xs:annotation>
                        <xs:documentation>Logical not of a boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="scale" type="scaleType">
                    <xs:annotation>
                        <xs:documentation>Scale the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="shift" type="shiftType">
                    <xs:annotation>
                        <xs:documentation>Shift the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="translate" type="translateType">
                    <xs:annotation>
                        <xs:documentation>Translate (add) to the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeSimpleMeasurementType">
            <xs:annotation>
                <xs:documentation>Specifies the signal data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="trigger" type="xs:boolean">
            <xs:annotation>
                <xs:documentation>Specifies the signal supports trigger. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the signalrefType used by the signalref element      -->

    <xs:complexType name="signalrefType">
        <xs:annotation>
            <xs:documentation>Specifies a signal reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the signal reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the sleepType used by the sleep element      -->

    <xs:complexType name="sleepType">
        <xs:annotation>
            <xs:documentation>Specifies a sleep command with the content value in milliseconds.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedLong">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the specType used by the spec element      -->

    <xs:complexType name="specType">
        <xs:annotation>
            <xs:documentation>Specifies the hardware specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the specification.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="speccomment" type="speccommentType">
                <xs:annotation>
                    <xs:documentation>Comment about the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specdate" type="specdateType">
                <xs:annotation>
                    <xs:documentation>Date of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="spectitle" type="spectitleType">
                <xs:annotation>
                    <xs:documentation>Title of the protoocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specurl" type="specurlType">
                <xs:annotation>
                    <xs:documentation>Url of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specvendor" type="specvendorType">
                <xs:annotation>
                    <xs:documentation>Vendor of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specversion" type="specversionType">
                <xs:annotation>
                    <xs:documentation>Version of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the speccommentType used by the speccomment element      -->

    <xs:complexType name="speccommentType">
        <xs:annotation>
            <xs:documentation>Specifies a comment about the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the specdateType used by the specdate element      -->

    <xs:complexType name="specdateType">
        <xs:annotation>
            <xs:documentation>Specifies the date of the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the specsectionType used by the specsection element      -->

    <xs:complexType name="specsectionType">
        <xs:annotation>
            <xs:documentation>Specifies the section in the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the specreferenceType used by the specreference element      -->

    <xs:complexType name="specreferenceType">
        <xs:annotation>
            <xs:documentation>Specifies a reference to the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the specification reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>The protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specsection" type="specsectionType">
                <xs:annotation>
                    <xs:documentation>The reference to section in the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the spectitleType used by the spectitle element      -->

    <xs:complexType name="spectitleType">
        <xs:annotation>
            <xs:documentation>Specifies the title of the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the specurlType used by the specurl element      -->

    <xs:complexType name="specurlType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies the url of the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the specvendorType used by the specvendor element      -->

    <xs:complexType name="specvendorType">
        <xs:annotation>
            <xs:documentation>Specifies the vendor of the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the specversionType used by the specversion element      -->

    <xs:complexType name="specversionType">
        <xs:annotation>
            <xs:documentation>Specifies the version of the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the stopbitsType used by the stopbits element      -->

    <xs:simpleType name="stopbitsType">
        <xs:annotation>
            <xs:documentation>Specifies the stop bits of a serial port connection. This value can be changed at runtime by specifing the following in the property file: <p> <var>lowercase transport name</var>.<b>stopbits</b>=<var>value</var> <xmp> gpsnmeatransport.stopbits=1 </xmp></p></xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="1"/>
            <xs:enumeration value="1.5"/>
            <xs:enumeration value="2"/>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the tcpipType used by the tcpip element      -->

    <xs:complexType name="tcpipType">
        <xs:annotation>
            <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specreference" type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="host" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote host name. The "host" element has been replaced with the "remotehost" to be more consistent with the "udp" element. In future versions the "host" element may not be supported so developers should use the "remotehost" element. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) local host.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="linger" type="xs:integer">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) linger value. A value of -1 specifies to use the default values. A value of zero specifies no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readtimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) read timeout in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the sslType used by the tcpip element      -->

    <xs:complexType name="sslType">
        <xs:annotation>
            <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specreference" type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="host" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="linger" type="xs:integer">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL linger value. A value of -1 specifies to use the default values. A value of zero speciifes no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readtimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL read timeout in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the tcpipserverType used by the tcpipserver element      -->

    <xs:complexType name="tcpipserverType">
        <xs:annotation>
            <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specreference" type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex TCP/IP server.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local host.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="port" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server port. The "port" element has been replaced with the "localport" element to be more constant with "udpserver". Future versions may remove the "port" element so developers should use the "localport" element. </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the sslserverType used by the tcpipserver element      -->

    <xs:complexType name="sslserverType">
        <xs:annotation>
            <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specreference" type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex SSL TCP/IP server.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="port" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL port.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the testagentType used by the testagent element      -->

    <xs:complexType name="testagentType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies an test agent.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the test agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="profileref" type="profilerefType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation>Specifies the profile to be tested.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="profile" type="profileType">
                    <xs:annotation>
                        <xs:documentation>Specifies the profile to be tested.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="UserMessageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the swtType used by the swt element      -->

    <xs:complexType name="swtType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies a Standard Widget Toolkit (SWT) test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Description of the Standard Widget Toolkit (SWT) test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="testmethod" type="testmethodType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Description of the Standard Widget Toolkit (SWT) test.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationSuperclassGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the testcaseType used by the testcase element      -->

    <xs:complexType name="testcaseType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies a junit testcase test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Description of the test case.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="testmethod" type="testmethodType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Description of the test case.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationSuperclassGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the testmethodType used by the testmethod element      -->

    <xs:complexType name="testmethodType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies a junit testcase test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the test method.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeNameGroup"/>
    </xs:complexType>
<!-- Define the testcountType used by the testcount element      -->

    <xs:complexType name="testcountType">
        <xs:annotation>
            <xs:documentation>Specifies the number of times to execute the test cases.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedInt"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the testdelayType used by the testdelay element      -->

    <xs:complexType name="testdelayType">
        <xs:annotation>
            <xs:documentation>Specifies the milliseconds time between each test.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedLong"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the testexecuteType used by the testexecute element      -->

    <xs:complexType name="testexecuteType">
        <xs:annotation>
            <xs:documentation> If content value is true, then the test class will execute each command. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the testexecutereadType used by the testexecuteread element      -->

    <xs:complexType name="testexecutereadType">
        <xs:annotation>
            <xs:documentation> If content value is true, then the executeRead method should be invoked on all measurements. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the testexecutewriteType used by the testexecutewrite element      -->

    <xs:complexType name="testexecutewriteType">
        <xs:annotation>
            <xs:documentation> If content value is true, then the test class will executeWrite each measurement. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the testreadType used by the testread element      -->

    <xs:complexType name="testreadType">
        <xs:annotation>
            <xs:documentation> If content value is true, then the test class will read each measurement. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the testtriggerType used by the testtrigger element      -->

    <xs:complexType name="testtriggerType">
        <xs:annotation>
            <xs:documentation> If content value is true, then the test class will trigger each signal. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the translateType used by the translate element      -->

    <xs:complexType mixed="true" name="translateType">
        <xs:annotation>
            <xs:documentation>Specifies the translate (add) value.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the translate.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this translate.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the transportType used by the transport element      -->

    <xs:complexType name="transportType">
        <xs:annotation>
            <xs:documentation>Specifies a transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation>Specifies a custom parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="noactivitytimeout"
                    type="noactivitytimeoutType">
                <xs:annotation>
                    <xs:documentation>No activity timeout value in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="responsetimeout"
                    type="responsetimeoutType">
                <xs:annotation>
                    <xs:documentation>Response timeout out value in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="retrytime" type="retrytimeType">
                <xs:annotation>
                    <xs:documentation>Retry time value in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="transmitretries"
                    type="transmitretriesType">
                <xs:annotation>
                    <xs:documentation>Transmit retries value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="message" type="messageType">
                <xs:annotation>
                    <xs:documentation>Specifies a transport message.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway Initiative (OSGi) transport service to be exported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="import" type="importType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the package to be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Specifies the connection(s) or transport to be used by the transport. If multiple connections are specified, the first connection is the default connection.</xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="1" name="connection" type="connectionType">
                    <xs:annotation>
                        <xs:documentation>Specifies an connection to be used by the transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="connectionservice"
                        type="connectionserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the connection to be used by the transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="echo" type="echoType">
                    <xs:annotation>
                        <xs:documentation>Specifies an echo connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="file" type="fileType">
                    <xs:annotation>
                        <xs:documentation>Specifies a file connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="gpio" type="gpioType">
                    <xs:annotation>
                        <xs:documentation>Specifies a General Purpose Input Output (GPIO) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="i2c" type="i2cType">
                    <xs:annotation>
                        <xs:documentation>Specifies an Inter-IC (I2C) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="most" type="mostType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Media Oriented Systems Transport (MOST) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="randomaccessfile"
                        type="randomaccessfileType">
                    <xs:annotation>
                        <xs:documentation>Specifies a random access file connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="serial" type="serialType">
                    <xs:annotation>
                        <xs:documentation>Specifies a serial port connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="tcpip" type="tcpipType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="tcpipserver" type="tcpipserverType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="ssl" type="sslType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="sslserver" type="sslserverType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udp" type="udpType">
                    <xs:annotation>
                        <xs:documentation>Specifies a User Diagram Protocol (UDP) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udpserver" type="udpserverType">
                    <xs:annotation>
                        <xs:documentation>Specifies a User Diagram Protocol (UDP) server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="urlconnection" type="urlconnectionType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Uniform Resource Locator (URL) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="usb" type="usbType">
                    <xs:annotation>
                        <xs:documentation>Specifies a USB connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="transportservice"
                        type="transportserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the name of the Open Services Gateway Initiative (OSGi) transport service to be used by the transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
    <xs:element name="transport" type="transportType"/>
<!-- Define the transportserviceType used by the transportservice element      -->

    <xs:complexType name="transportserviceType">
        <xs:annotation>
            <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) transport service name.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the Open Services Gateway Initiative (OSGi) transport service.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the transporttestType used by the transporttest element      -->

    <xs:complexType name="transporttestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation>Specifies a transport test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies the message(s) to send during the test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="transport" type="transportType">
                <xs:annotation>
                    <xs:documentation>Specifies the transport to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies a Standard Widget Toolkit (SWT) user interface transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
    <xs:element name="transporttest" type="transporttestType"/>
    <xs:element name="receiver" substitutionGroup="transport">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Defines a receiver transport. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the receivertestType used by the receivertest element      -->

    <xs:complexType name="receivertestType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation>Specifies a receiver transport test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of receiver transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation>Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation>Specifies the version level. The format of the version number should be n.n.n where n is a number. For example, 1.0.0 is a valid version.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="vendor" type="vendorType">
                <xs:annotation>
                    <xs:documentation>Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation>If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies the message(s) to send during the test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" ref="receiver">
                <xs:annotation>
                    <xs:documentation>Specifies the receiver transport to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation>Unsigned integer that specifies the number of times to execute tests.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testdelay" type="testdelayType">
                <xs:annotation>
                    <xs:documentation>Specifies the milliseconds to sleep between each test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="junit" type="junitType">
                <xs:annotation>
                    <xs:documentation>Specifies a junit test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="monitor" type="monitorType">
                <xs:annotation>
                    <xs:documentation>Specifies a monitor test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="playback" type="playbackType">
                <xs:annotation>
                    <xs:documentation>Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the udpType used by the udp element      -->

    <xs:complexType name="udpType">
        <xs:annotation>
            <xs:documentation>Specifies a User Diagram Protocol (UDP) connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the User Diagram Protocol (UDP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this User Diagram Protocol (UDP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex UDP connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) connection remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) connection remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) connection local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) connection local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="packetsize" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) connection packet size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the udpserverType used by the udpserver element      -->

    <xs:complexType name="udpserverType">
        <xs:annotation>
            <xs:documentation>Specifies a User Diagram Protocol (UDP) server connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the User Diagram Protocol (UDP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this User Diagram Protocol (UDP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex UDP server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) server connection remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) server connection remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) server connection local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) server connection local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="packetsize" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) server connection packet size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the udptransportType used by the udptransport element      -->

    <xs:complexType name="udptransportType">
        <xs:annotation>
            <xs:documentation>Specifies a User Diagram Protocol (UDP) transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the User Diagram Protocol (UDP) transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this User Diagram Protocol (UDP) transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation>Specifies that this is a multiplex UDP.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="packetsize" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the User Datagram Protocol (UDP) packet size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the unitsType used by the units element      -->

    <xs:complexType mixed="true" name="unitsType">
        <xs:annotation>
            <xs:documentation>Specifies the units of a parameter or measurement element.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this units.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the urlconnectionType used by the urlconnection element      -->

    <xs:complexType name="urlconnectionType">
        <xs:annotation>
            <xs:documentation>Specifies a Uniform Resource Locator (URL) connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the Uniform Resource Locator (URL) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this Uniform Resource Locator (URL) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="url" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the Uniform Resource Locator (URL) name.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the usbType used by the usb element      -->

    <xs:complexType name="usbType">
        <xs:annotation>
            <xs:documentation>Specifies a USB connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the USB connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this USB connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="productid" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the USB product id.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="usage" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the USB usage.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="usagepage" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the USB usage page.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="vendorid" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Specifies the USB vendor id.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the valueType used by the value element      -->

    <xs:complexType mixed="true" name="valueType">
        <xs:annotation>
            <xs:documentation>Specifies a value.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation>Description of the value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="boolean" type="booleanType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="byte" type="byteType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Byte value (8 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="bytes" type="bytesType">
                    <xs:annotation>
                        <xs:documentation>Specifies bytes.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="character" type="characterType">
                    <xs:annotation>
                        <xs:documentation>Specifies a character value (16 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="double" type="doubleType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Double value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="float" type="floatType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Float value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="int" type="intType">
                    <xs:annotation>
                        <xs:documentation>Specifies an Integer value (32 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="list" type="listType">
                    <xs:annotation>
                        <xs:documentation>Specifies list data.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="long" type="longType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Long value (64 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="long" type="longType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Long value (64 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="map" type="mapType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Map value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="short" type="shortType">
                    <xs:annotation>
                        <xs:documentation>Specifies a Short value (16 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="string" type="stringType">
                    <xs:annotation>
                        <xs:documentation>Specifies a String value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:element name="value" type="valueType"/>
<!-- Define the providerType used by the provider element      -->

    <xs:complexType name="providerType">
        <xs:annotation>
            <xs:documentation>Specifies the provider name. Eclipse.org is an example of a provider.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the vendorType used by the vendor element      -->

    <xs:complexType name="vendorType">
        <xs:annotation>
            <xs:documentation>Specifies the vendor name. IBM is an example of a vendor.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the versionType used by the version element      -->

    <xs:simpleType name="versionType">
        <xs:annotation>
            <xs:documentation>Specifies the version level. The version level should be one to three numbers separated by a period. For example, 1.0.0 is a valid version number.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="([0-9])+(.([0-9])+)?(.([0-9])+)?"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>



Copyright (c) 2008 IBM. See license in Legal section. 2008-07-29 Device Kit XML Reference 1.1.0