Eclipse.org Eclipse.org

dkml.xsd schema

Device Kit Attributes Elements XML Reference

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="dkml" type="dkmlType">
        <xs:annotation>
            <xs:documentation>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>
    <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>
    <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>
    <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 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>
    <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="idref.html">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>
    <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="id.html">id</a> attribute. The matching <a href="id.html">id</a> attribute must be specified before the idref attribute can be used.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <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="id.html">id</a> attribute. The matching <a href="id.html">id</a> attribute must be specified before the idref attribute can be used.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <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 hardware's specification are in hexadecimal format, this attribute should be set to "hex".</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="PackageBaseGroup">
        <xs:attribute name="packagebase" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the start of the generated code's package. That is, any code that Device Kit generates will be in a package starting with this value. A common value is "com.<i>company-name</i>".</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>3.4.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>
    <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>
    <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>
    <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>
    <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 Stardard Code for Intormation 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 Stardard Code for Intormation 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>3.0.0</xs:appinfo>
                    <xs:documentation>Specifies that the parameter data is a HEX (base 16) number in American National Stardard Code for Intormation Interchange (ASCII).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hexstring">
                <xs:annotation>
                    <xs:appinfo>3.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 Stardard Code for Intormation 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>
    <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="AttributeSimpleCardinalityType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Scalar">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Sepcifies 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> Sepcifies 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> Sepcifies that the cardinality value is vector.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="AttributeSimpleConfigurationType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Byte">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation> Sepcifies 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> Sepcifies 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> Sepcifies 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> Sepcifies 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> Sepcifies 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> Sepcifies 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> Sepcifies 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>
    <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:attributeGroup>
    <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> Sepcifies 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>
    <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="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 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="1" 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. If multiple connections are specified, the first connection is the default connection.</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>3.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>3.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>3.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: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>
    <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="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>3.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="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>3.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>3.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>3.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:complexType>
    <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="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 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: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. If multiple connections are specified, the first connection is the default connection.</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. If multiple connections are specified, the first connection is the default connection.</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:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>3.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>3.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>3.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:complexType>
    <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="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. If multiple connections are specified, the first connection is the default connection.</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>3.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>3.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>3.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:complexType>
    <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>
    <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="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>3.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="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:complexType>
    <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="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="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:complexType>
    <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>
    <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>
    <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>
    <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>
    <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: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="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <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>
    <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="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>3.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>3.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>3.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>3.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>3.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>3.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" 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>3.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:attribute name="packagebase" type="xs:string">
            <xs:annotation>
                <xs:documentation>Specifies the start of the generated code's package. That is, any code that Device Kit generates will be in a package starting with this value. A common value is "com.<i>company-name</i>".</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <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 "turn volume up" or "turn on power". 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="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>
    <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>
    <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 "idref" 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="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>
    <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>
    <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="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 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.</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: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="1" 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: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="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 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="udpType">
                    <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>3.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>3.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>3.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:complexType>
    <xs:complexType name="concretetestType">
        <xs:annotation>
            <xs:appinfo>3.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="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="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:complexType>
    <xs:complexType name="configurationType">
        <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:simpleContent>
            <xs:extension base="xs:boolean">
                <xs:attributeGroup ref="AttributeConfigurationGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="connectionType">
        <xs:annotation>
            <xs:documentation>Specifies a connection 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.</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="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation>Specification reference for this connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>3.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>3.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>3.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="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <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>
    <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="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>3.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="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:complexType>
    <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="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="AttributeIdCustomGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <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'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="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="size.html">length</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="length.html">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="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="AttributeSimpleParameterType">
            <xs:annotation>
                <xs:documentation>Specifies the data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <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>
    <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>
    <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>
    <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="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 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: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="1" 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="udpType">
                    <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>3.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>3.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>3.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: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>
    <xs:complexType name="deviceIDREFType">
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:complexType name="devicetestType">
        <xs:annotation>
            <xs:appinfo>3.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="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="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>3.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>3.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>3.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:complexType>
    <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>
    <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>
    <xs:complexType mixed="true" name="enumType">
        <xs:annotation>
            <xs:documentation> Use the enum tag to specify a enum. </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 enum.</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 enum.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <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>
    <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>
    <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 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>
    <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>
    <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: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>
    <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>
    <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>
    <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="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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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 siganl 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 determain 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="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="unbounded" minOccurs="0" name="parameter" type="parameterType">
                        <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:complexType>
    <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>
    <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 siganl 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 determain the correct tags that must be defined by this device.</xs:documentation>
        </xs:annotation>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:complexType name="messageType">
        <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 (MOST), 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 Stardard Code for Intormation 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="1">
                <xs:element maxOccurs="unbounded" minOccurs="1" name="ascii" type="asciiType">
                    <xs:annotation>
                        <xs:documentation>Specifies a set of ASCII character (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: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" name="parameter" type="parameterType">
                    <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: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:complexType name="messageReferenceType">
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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>
    <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'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="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="index.html">offset</a> element to specify the parameter offset 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="offset.html">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="size.html">length</a> element to specify the parameter length in bytes. </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>. See the <a href="length.html">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:documentation>Specifies a enum 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: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 mulitple parameter children. The idref attribute references the parameters in the parameters tag. The value of "idref" 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="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:element maxOccurs="unbounded" minOccurs="1" name="parameter" type="parameterType">
                <xs:annotation>
                    <xs:documentation>Specifies the parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </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>
    <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>
    <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'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="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="length.html">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>
    <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 "idref" 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="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>
    <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>
    <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>
    <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 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>
    <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>
    <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>
    <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>
    <xs:complexType name="sendType">
        <xs:annotation>
            <xs:appinfo>3.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>
    <xs:complexType name="serialType">
        <xs:annotation>
            <xs:documentation>Specifies a serial port 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 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 com 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>
    <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>
    <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="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 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="1" 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>3.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>3.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>3.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: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>
    <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>
    <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>
    <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>
    <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="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>3.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="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>3.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>3.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>3.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:complexType>
    <xs:complexType mixed="true" name="shiftType">
        <xs:annotation>
            <xs:documentation>Specifies a shitf 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>
    <xs:complexType name="shiftTypeContent">
        <xs:simpleContent>
            <xs:extension base="xs:integer"/>
        </xs:simpleContent>
    </xs:complexType>
    <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>
    <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="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: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" name="parameter" type="parameterType">
                <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>
    <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>
    <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>
    <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 hardware 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 hardware 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 hardware specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specvendor" type="specvendorType">
                <xs:annotation>
                    <xs:documentation>Vendor the hardware 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 hardware specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:complexType name="speccommentType">
        <xs:annotation>
            <xs:documentation>Specifies a comment about the hardware 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>
    <xs:complexType name="specdateType">
        <xs:annotation>
            <xs:documentation>Specifies the date of the hardware 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>
    <xs:complexType name="specsectionType">
        <xs:annotation>
            <xs:documentation>Specifies the section in the hardware 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>
    <xs:complexType name="specreferenceType">
        <xs:annotation>
            <xs:documentation>Specifies a reference to 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 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 hardware 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 hardware specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:complexType name="spectitleType">
        <xs:annotation>
            <xs:documentation>Specifies the title of the hardware 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>
    <xs:complexType name="specvendorType">
        <xs:annotation>
            <xs:documentation>Specifies the vendor of the hardware 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>
    <xs:complexType name="specversionType">
        <xs:annotation>
            <xs:documentation>Specifies the version of the hardware 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>
    <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>
    <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) 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="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 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) read timeout in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <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 maxOccurs="1" minOccurs="0" name="port" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation>Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) port.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <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="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation>Hardware specification documentation for this test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="profile" type="profileType">
                <xs:annotation>
                    <xs:documentation>Specifies the profile to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <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>3.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>3.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>3.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:complexType>
    <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:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdImplementationSuperclassGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <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>
    <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>
    <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>
    <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>
    <xs:complexType name="testexecutewriteType">
        <xs:annotation>
            <xs:documentation> If content value is true, then the test class will executeWrite each measuremnt. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="testreadType">
        <xs:annotation>
            <xs:documentation> If content value is true, then the test class will read each measuremnt. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:boolean"/>
        </xs:simpleContent>
    </xs:complexType>
    <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>
    <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>
    <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="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 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 timeoutout 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="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="0" name="connectionservice"
                        type="connectionserviceType">
                    <xs:annotation>
                        <xs:documentation>Specifies the connection 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="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>3.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>3.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>3.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:complexType>
    <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>
    <xs:complexType name="transporttestType">
        <xs:annotation>
            <xs:appinfo>3.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="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>3.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="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>3.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>3.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>3.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:complexType>
    <xs:complexType name="udpType">
        <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 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>
    <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>
    <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>
    <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>
    <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: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>
    <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>
    <xs:simpleType name="versionType">
        <xs:annotation>
            <xs:documentation>Specifies the version level. The version level should be one to three numbers seperated 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) IBM 2007 Device Kit XML Reference 1.0.0