Eclipse.org Eclipse.org Device Kit

dkml.xsd schema

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

<xs:schema xmlns:xml="http://www.w3.org/XML/1998/namespace"
        xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
        elementFormDefault="qualified" attributeFormDefault="unqualified" xml:lang="en">
<!--         <xs:import namespace="http://www.w3.org/XML/1998/namespace"             schemaLocation="xml.xsd"/>          <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>      -->

    <xs:element name="dkml" type="dkmlType">
        <xs:annotation>
            <xs:documentation xml:lang="en"><![CDATA[Specifies the root element of a Device Kit                 &lt;b&gt;D&lt;/b&gt;evice &lt;b&gt;K&lt;/b&gt;it &lt;b&gt;L&lt;/b&gt;anguage (dkml) document.]]>
            </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the AttributeFormatType       -->

    <xs:attribute name="lang" type="xs:string"/>
    <xs:simpleType name="AttributeFormatType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="binary">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the format is decimal (0-9).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hex">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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:attributeGroup name="AttributeXmlLangGroup">
        <xs:attribute ref="lang"/>
    </xs:attributeGroup>
<!-- Define the UserMessageBaseGroup       -->

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

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

    <xs:simpleType name="AttributeCustomType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the custom type as boolean.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as boolean array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as byte (8 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as byte array (8 bits each).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="char">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as char (16 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="char[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as char array (16 bits each).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom data is a double (Double).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom data is a double array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom data is a float (Float).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom data is a float array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the custom type as int (32 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as int array (32 bits each).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="long">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the custom type as long (64 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="long[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as long array (64 bits each).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="short">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as short (16 bits).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="short[]">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the custom type as short array (16 bits each).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="String">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the custom type as String.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeIdCustomGroup       -->

    <xs:attributeGroup name="AttributeIdCustomGroup">
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attribute name="name" type="xs:string">
            <xs:annotation>
                <xs:documentation xml:lang="en">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 xml:lang="en">Required. The type of the custom variable.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="defaultvalue" type="xs:string">
            <xs:annotation>
                <xs:documentation xml:lang="en">The default value to assign the variable.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="required" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies if required by the configuration.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="access" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">If true, a class field, get method, and set method will be generated for the variable. If not specified, the default is true (changed in Version 1.2.0).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeNameGroup       -->

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

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

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

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

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

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

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

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

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

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

    <xs:attributeGroup name="AttributeIdImplementationServiceBundleGroup">
        <xs:attributeGroup ref="AttributeIdImplementationServiceGroup"/>
        <xs:attribute name="bundle" type="xs:string">
            <xs:annotation>
                <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the Open Services Gateway Initiative (OSGi) bundle symbolic id.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceBundleLazyGroup       -->

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

    <xs:attributeGroup name="AttributeIdImplementationServiceBundleLazyAbstractGroup">
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyGroup"/>
        <xs:attribute default="false" name="abstract" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies an abstract implementation class. The default is false.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="createmethod" type="xs:boolean" default="false">
            <xs:annotation>
                <xs:appinfo>1.0.0</xs:appinfo>
                <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the implementation superclass name.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeIdImplementationServiceBundleSuperclassGroup       -->

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

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

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

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

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

    <xs:simpleType name="AttributeSimpleParameterType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ascii">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is American National Standard Code for Information Interchange (ASCII).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="asciiz">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a zero terminated American National Standard Code for Information Interchange (ASCII).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bit">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a single bit.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the parameter data is a boolean array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies that the parameter data is an array of bytes.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the parameter data is a double array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the parameter data is a float array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hexascii">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a HEX (base 16) number in American National Standard Code for Information Interchange (ASCII).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hexstring">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies that the parameter data is an American National Standard Code for Information Interchange (ASCII) number.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="nstring">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a numeric string.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="numericstring">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is numeric string.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="short">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the parameter data is a string .</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ubyte">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies that the parameter data is an unsigned short (16 bits). An unsigned value ranges from 0 to 65535.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeParametersType       -->

    <xs:simpleType name="AttributeParametersType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Array">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies that the parameter will be an instance of the Map interface.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="AttributeDataType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="bit">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a single bit.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a boolean (Boolean).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a boolean array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="byte">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a 8 bits signed byte (Byte). 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 xml:lang="en">Specifies that the parameter data is a 8 bits signed byte 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 xml:lang="en">Specifies that the parameter data is an array of bytes. A signed byte ranges in value between -128 and 127. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a double (Double).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="double[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a double array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a float (Float).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="float[]">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a float array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="int">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a 32 bits signed integer (Integer). 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 xml:lang="en">Specifies that the parameter data is a 32 bits signed integer 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 xml:lang="en">Specifies that the parameter data is a 64 bits signed long (Long). 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 xml:lang="en">Specifies that the parameter data is a 64 bits signed long array. A signed long ranges in value between -9223372036854775808 and 9223372036854775807.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="short">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a 16 bits signed short (Number). A signed short ranges in value between -32768 and 32767.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is a string.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ubyte">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is an 7 bits unsigned byte (Number). An unsigned byte ranges in value between 0 and 255. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ubytes">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is an 8 bits unsigned byte array.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="uint">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is an 32 bits unsigned integer (Number).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ulong">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is an 64 bits unsigned long (Long).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ushort">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter data is an 16 bits unsigned short (Number). An unsigned value ranges from 0 to 65535.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Array">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies that the parameter will be an instance of the Map interface.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Number">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter will is a Number.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FloatingPoint">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the parameter will is a floating point number.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
<!-- Define the AttributeSimpleCardinalityType       -->

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

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

    <xs:attributeGroup name="AttributeConfigurationGroup">
        <xs:attribute name="cardinality" type="AttributeSimpleCardinalityType">
            <xs:annotation>
                <xs:appinfo>1.0.0</xs:appinfo>
                <xs:documentation xml:lang="en">Specifies the cardinality type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="size" type="xs:integer">
            <xs:annotation>
                <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the configuration type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="defaultvalue" type="xs:string">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies the configuration default value.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="required" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies if configuration value if required.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
<!-- Define the AttributeSimpleMeasurementType       -->

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

    <xs:complexType name="adapterType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a adapter.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the adapter history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the device(s) or adapter to be used by the adapter. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the device used by the adapter.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
        <xs:attribute default="false" name="get" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies to generate get methods. The default is false unless abstract or lazy.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the adaptertestType used by the adaptertest element       -->

    <xs:complexType name="adaptertestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies an adapter test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the adapter test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the adapter test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this adapter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex adapter test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this adapter test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface adapter test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentType used by the agent element       -->

    <xs:complexType name="agentType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a agent.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the agent history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="agentparent" type="agentparentType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Agent parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="agentuses" type="agentusesType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Agent uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="exportservice"
                        type="exportserviceType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the device(s) or agent to be used by the agent. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="agentmodel" type="agentmodelType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the device(s) or agent to be used by the agent. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the device used by the agent.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a signal supported by this device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentmodelType used by the agent element       -->

    <xs:complexType name="agentmodelType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies an agent model.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the agent model.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the agent model history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the device(s) or agent to be used by the agent. </xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="0" name="device" type="deviceType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentserviceType used by the agentservice element       -->

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

    <xs:complexType name="agenttestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies an agent test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the agent test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the agent test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex agent test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this agent test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface agent test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the agentmodeltestType used by the agenttest element       -->

    <xs:complexType name="agentmodeltestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies an agent model test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the agent model test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the agent model history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface agnet model test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the asciiType used by the ascii element       -->

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

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

    <xs:complexType name="bundleType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the binaryType used by the binary element       -->

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

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

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

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

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

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

    <xs:complexType name="commandType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> The command tag denotes an action that can be performed by the hardware device. Usually, a message must be sent to the hardware device to cause the action to be performed. When an application requests a command to be executed, the software device requests the transport to send the command message to the hardware device. For example, you might use the command tag to send a message to a radio to &quot;"turn volume up&quot;" or &quot;"turn on power&quot;". The commands that the device should define are hardware specific. As such, the command set for a radio differs from the command set for a car bus. Also, the command set might vary based on the company that built the device. To send effective commands to hardware, be sure to use the hardware specifications from the manufacturer. Some commands can be executed with a parameter that will be encoded into the message before it is sent to the hardware device. The message that represent the command are defined in a message tag.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the command description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the command history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Defines if this command is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the command data units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the command data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the commandrefType used by the commandref element       -->

    <xs:complexType name="commandrefType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a command reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the commandsType used by the commands element       -->

    <xs:complexType name="commandsType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> The commands tag enables you to couple commands together. You can use the commands tag to execute a series of commands in sequence. This tag can have multiple command children. Use the idref attribute to reference the actual commands under the commands tag. The value of &quot;"idref&quot;" corresponds to the id of a previously defined command. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the commands description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the commands history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the commands units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a sleep command.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the commandreceivedType used by the commandreceived element       -->

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

    <xs:complexType name="concreteType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> 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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the concrete device history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter 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 xml:lang="en">Specifies if a command message can be received from the concrete device. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="initializemeasurements"
                    type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies that the concrete device should initialize the measurements.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="key" type="xs:ID">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the defined pids.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="protocol">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the concrete device protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Defines a group supported by this concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the name of a package to be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element maxOccurs="1" minOccurs="1" ref="receiver">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the receiver transport used by the concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="transport" type="transportType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the transport used by the concrete device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="transportservice"
                        type="transportserviceType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the name of the Open Services Gateway Initiative (OSGi) transport service to be used by the device.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udp" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) transport. Please, use the udptransport element instead of the udp element.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udptransport" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the concretetestType used by the concretetest element       -->

    <xs:complexType name="concretetestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a concrete device test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the concrete test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the concrete device test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this concrete device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex concrete device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this concrete device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="concrete" type="concreteType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface concrete test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the configurationType used by the configuration element       -->

    <xs:complexType name="configurationType" mixed="true">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en"> If content value is true, then this is a configuration control. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Description of the configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the configuration history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the configuration units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="enum" type="enumType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a enumeration option configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="minimum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the minimum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maximum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the maximum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeConfigurationGroup"/>
    </xs:complexType>
<!-- Define the connectionType used by the connection element       -->

    <xs:complexType name="connectionType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the connection history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the connectionserviceType used by the connectionservice element       -->

    <xs:complexType name="connectionserviceType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a connection service to be used by the transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the connection service.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the connection service history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this connection service.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the connectiontestType used by the connectiontest element       -->

    <xs:complexType name="connectiontestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies an connection test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the connection test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the connection test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface connection test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the customparameterType used by the customparameter element       -->

    <xs:complexType name="customparameterType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a custom parameter.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the custom parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the custom parameter history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="displayname"
                    type="displaynameType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the custom parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the custom parameter units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this custom parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="enum" type="enumType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a enumeration option configuration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="minimum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the minimum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maximum" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the maximum value.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdCustomGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the dataType used by the data element       -->

    <xs:complexType name="dataType" id="dataType" abstract="false" mixed="false">
        <xs:annotation>
            <xs:documentation xml:lang="en">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 sub tags of data include those that specify where to place the data within the message and a series of transforms that manipulate the data&apos;'s data. You can set the units of the data with the units tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the data.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the data history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Defines if this data item is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the data units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the data key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="enum" type="enumType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a enumeration.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element name="length" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the data length in <b>bits</b>. See the <a href=&quot;"sizeElement.html&quot;">size</a> element to specify the data length in bytes. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="size" type="xs:unsignedInt">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the data size in <b>bytes</b>. See the <a href=&quot;"lengthElement.html&quot;">length</a> element to specify the data length in bits. </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element name="minimum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="maximum" type="xs:string">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="data" type="dataType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the data to execute the command.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeDataType">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies the data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="AttributeNameGroup"/>
    </xs:complexType>
<!-- Define the databitsType used by the databits element       -->

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

    <xs:complexType name="descriptionType" mixed="true">
        <xs:annotation>
            <xs:documentation xml:lang="en">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:attributeGroup ref="AttributeXmlLangGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the displaynameType used by the displayname element       -->

    <xs:complexType name="displaynameType" mixed="true">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies the display name of the parent element.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeXmlLangGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the deprecatedType used by the deprecated element       -->

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

    <xs:complexType name="deviceType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> 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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the device history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deviceparent" type="deviceparentType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Device parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="commandreceived"
                    type="commandreceivedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the defined pids.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="priority" type="priorityType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the device execution priority.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="protocol">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the device protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="command" type="commandType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a command reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurementref"
                        type="measurementrefType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a measurement reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signalref" type="signalrefType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the Open Services Gateway Initiative (OSGi) transport service name.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udp" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) transport. Please, use the udptransport element instead of the udp element.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udptransport" type="udptransportType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
        <xs:attribute default="false" name="get" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies to generate get methods. The default is false unless abstract or lazy.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the deviceIDREFType       -->

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

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

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

    <xs:complexType name="devicetestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a device test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the device test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" name="device" type="deviceType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface device test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the doubleType used by the double element       -->

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

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

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

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

    <xs:complexType name="managedfactorybundleType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the fileType used by the file element       -->

    <xs:complexType name="fileType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a file connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the file connection history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="inputpath" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the output file name.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the filterType used by the filter element       -->

    <xs:complexType name="filterType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the filter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the filter history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the message filter (Bit off - ignore, Bit on - compare).</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the filtersType used by the filters element       -->

    <xs:complexType name="filtersType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a group of filters.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the filters description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the filters history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the filter.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:element name="filter" type="filterType"/>
<!-- Define the floatType used by the float element       -->

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

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

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

    <xs:complexType name="groupType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> 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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the group.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the group history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurement"
                        type="measurementType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the name of the package of be imported.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the importType used by the import element       -->

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

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

    <xs:complexType name="bigintegerType">
        <xs:annotation>
            <xs:appinfo>1.2.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies big integer data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the bigdecimalType used by the int element       -->

    <xs:complexType name="bigdecimalType">
        <xs:annotation>
            <xs:appinfo>1.2.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies big decimal data.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attributeGroup ref="AttributeIdFormatGroup"/>
                <xs:attributeGroup ref="AttributeIdrefGroup"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the intType used by the int element       -->

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

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

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

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

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

    <xs:complexType name="managedbundleType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the maximumType used by the maximum element       -->

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

    <xs:complexType name="measurementType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> The measurement tag denotes a logical property of the hardware device. This logical property is usually stored in the hardware device and requires that commands to be sent to the device to read (readcommand tag) or write (writecommand tag) the value of the measurement. The signal tag is used to define the signal that will be triggered when the value of the measurement is sent by the hardware device. Hardware devices vary on how the measurements are implemented. Some hardware devices only support the reading of measurement values and do not support writing new values via messages. Other hardware devices support both reading and writing of the measurement. Some hardware devices support notification of the signal message when the value changes while other hardware device require that a read message be sent to get the measurement value. See the hardware device specifications to determine the correct tags that must be defined by this device.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the measurement description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the measurement history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Defines if this measurement is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the measurement message.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="data" type="dataType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Defines the parent measurement.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:choice maxOccurs="unbounded" minOccurs="0">
                    <xs:element maxOccurs="1" minOccurs="1" name="field" type="xs:string">
                        <xs:annotation>
                            <xs:appinfo>1.1.0</xs:appinfo>
                            <xs:documentation xml:lang="en">Specifies the field name to use on the receiving measurement. </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                        <xs:annotation>
                            <xs:appinfo>1.0.0</xs:appinfo>
                            <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the measurement units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="value" type="valueType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="minimum" type="minimumType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="negative" type="negativeType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Negate the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="not" type="notType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Logical not of a boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="scale" type="scaleType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a numeric scale value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="shift" type="shiftType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies an integer shift value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="translate" type="translateType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the measurement data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="false" name="listen" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the measurement supports setValue. If both the setvalue and setwrite attributes are false, then the measurement is a read only measurement. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="error" type="xs:boolean">
            <xs:annotation>
                <xs:appinfo>1.1.0</xs:appinfo>
                <xs:documentation xml:lang="en">Specifies the measurement can report an error. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the measurementrefType used by the measurementref element       -->

    <xs:complexType name="measurementrefType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a measurement reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the measurementReferenceType used by the measurement element       -->

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

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

    <xs:complexType name="messageReferenceType">
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the stringmessage element       -->

    <xs:element name="stringmessage" substitutionGroup="message">
        <xs:annotation>
            <xs:appinfo>1.2.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a string message. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the utf8message element       -->

    <xs:element name="utf8message" substitutionGroup="message">
        <xs:annotation>
            <xs:appinfo>1.2.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a utf8 string message. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the asciimessage element       -->

    <xs:element name="asciimessage" substitutionGroup="message">
        <xs:annotation>
            <xs:appinfo>1.2.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a ASCII string message. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the messagesType used by the messages element       -->

    <xs:complexType name="messagesType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a group of messages.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the messages description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the messages history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the message.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the methodType used by the method element       -->

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

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

    <xs:complexType name="monitorType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies monitor test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the monitor test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the monitor test history.</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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeMonitortimeGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the mostType used by the most element       -->

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

    <xs:complexType name="multicastType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a multicast transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the multicast transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the multicast transport history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the multicast packet size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the multiplexType used by the multiplex element       -->

    <xs:complexType name="multiplexType" mixed="true">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en"> If content value is true, then this is a multiplex object. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Description of the multiplex object.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the multiplex history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this multiplex.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeConfigurationGroup"/>
    </xs:complexType>
<!-- Define the negativeType used by the negative element       -->

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

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

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

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

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

    <xs:element name="block" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a block. A block is similar to a parameter as it is defines an important part of the message but the value of the block is not reported external to the message when decoding the message. You can think of a block as an internal parameter needed to encode/decode a message. For example, a length block might be used to determine the length for a string in a message. The string parameter would be exposed to the user of the message but the length block would not be exposed since you can determine the length of the string based on the value of the string parameter. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="blockType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the constantblock element       -->

    <xs:element name="constantblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a constant block. A constant block is used to define part of the message that does not change. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the reserveblock element       -->

    <xs:element name="reserveblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a reserve block. A reserve block defines a part of the message that is reserved for future use. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the versionblock element       -->

    <xs:element name="versionblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a version block. A version block defines a part of the message contains version information. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the idblock element       -->

    <xs:element name="idblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a id block. A id block defines a part of the message contains id information. </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="identifierblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a identifierblock block. A identifier block defines a part of the message contains identifier information. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the typeblock element       -->

    <xs:element name="typeblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a type block. A type block defines a part of the message contains type information. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the countblock element       -->

    <xs:element name="countblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a count block. A count block defines a part of the message contains count information. A count block can used to define the number of elements in a list parameter. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the lengthblock element       -->

    <xs:element name="lengthblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a length in bits block. The contents of the block is the length in bits. The value of the length block can be used to specify the length of a string or set of bits/bytes. </xs:documentation>
        </xs:annotation>
<!--           <xs:complexType>              <xs:complexContent>                  <xs:extension base="parameterType">                      <xs:attributeGroup ref="AttributeTargetGroup"/>                        </xs:extension>                                     </xs:complexContent>                           </xs:complexType>                          -->

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

    <xs:element name="sizeblock" substitutionGroup="lengthblock">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a length in bytes block. The contents of the block is the length in bytes (each byte is 8 bits). The value of the size block can be used to specify the size of a string or byte array </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the segmentlengthblock element       -->

    <xs:element name="segmentlengthblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a segment length in bits block. The segment length block defines the lengh in bits of the segment. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the segmentsizeblock element       -->

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

    <xs:element name="messagelengthblock" substitutionGroup="block">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a message length in bits block. The message length block defines the lengh in bits of the message. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the messagesizeblock element       -->

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

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

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

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

    <xs:element name="variablelengthparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a variable length parameter. Normally, a lengthblock or sizeblock should be defined to specify the size of the variable length parameter. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="parameterType">
                    <xs:sequence maxOccurs="1" minOccurs="0">
                        <xs:element ref="lengthblock"/>
                        <xs:element ref="parameter"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
<!-- Define the listparameter element       -->

    <xs:element name="listparameter" substitutionGroup="multiparameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a list parameter. Normally, a countblock would be needed to specify the number of items in the list. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the mapparameter element       -->

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

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

    <xs:element name="utf8stringparameter" substitutionGroup="parameter">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a UTF-8 string parameter. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the stringparameter element       -->

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

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

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

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

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

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

    <xs:complexType name="parametersType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> Message can contain multiple parameters. The parameters tag enables you to set multiple parameters for a message. This tag can have multiple parameter children. The idref attribute references the parameters in the parameters tag. The value of &quot;"idref&quot;" corresponds to the id of a previously defined parameter. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the parameters description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the parameters history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the parameters units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the unique parameters key.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="1">
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the parameter.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="parameters" type="parametersType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies the parameters.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attribute name="type" type="AttributeParametersType">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies the data type of parameters.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the parityType used by the parity element       -->

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

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

    <xs:complexType name="pidsType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> The pids tag enables you to define the set of pid supported. The idref attribute references the pids in the pids tag. The value of &quot;"idref&quot;" corresponds to the id of a previously defined pids. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the pids description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the pids history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the pids units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the pid.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the playbackType used by the playback element       -->

    <xs:complexType name="playbackType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies playback test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the playback test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the playback test history.</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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the priorityType used by the priority element       -->

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

    <xs:complexType name="randomaccessfileType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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 xml:lang="en">Description of the random access file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the random access file connection history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this random access file connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex random access file.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="name" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the file path name.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the responsetimeoutType used by the responsetimeout element       -->

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

    <xs:complexType name="queuelengthType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies the queue length size.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedInt"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the maxchannelsType used by the maxchannels element       -->

    <xs:complexType name="maxchannelsType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies the maximum number of channels allowed.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:unsignedInt"/>
        </xs:simpleContent>
    </xs:complexType>
<!-- Define the readsizeType used by the readsize element       -->

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

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

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

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

    <xs:complexType mixed="true" name="scaleType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a scale transform.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the scale.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the scale history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this scale.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the segmentType used by the segment element       -->

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

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

    <xs:complexType name="sendType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">The send tag specifies the message(s) to send. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the send description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the send history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a sleep time.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the serialType used by the serial element       -->

    <xs:complexType name="serialType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a serial port (RS232) connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the serial connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the serial history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this serial connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex serial connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="baudrate" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the serial port communication port. This value starts at 1.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="databits" type="databitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the serial port write timeout value in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the stringType used by the string element       -->

    <xs:complexType name="stringType" mixed="true">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies string data.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element name="encoding" type="xs:string">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies string encoding.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the occursminimumType used by the occursminimum element       -->

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

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

    <xs:complexType name="optionalType" mixed="true">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en"> If content value is true, then this is a optional item. 0 or 1 are valid.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Description of the optional item.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the optional history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this optional item.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the profile used by the profile element       -->

    <xs:complexType name="profileType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> 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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the profile history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="profileparent" type="profileparentType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Profile parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="profileuses" type="profileusesType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a command group.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="group" type="groupType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the device used by the profile.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleLazyAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
        <xs:attribute default="false" name="get" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies to generate get methods. The default is false unless abstract or lazy.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the profilerefType used by the profileref element       -->

    <xs:complexType name="profilerefType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a profile reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a command reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurementref"
                        type="measurementrefType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a measurement reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signalref" type="signalrefType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a signal reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the profileparentType used by the profileparent element       -->

    <xs:complexType name="profileparentType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a profile reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the profile reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the profile parent history.</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 xml:lang="en">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 xml:lang="en">Specifies profile parent.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the profileusesType used by the profileuses element       -->

    <xs:complexType name="profileusesType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a profile reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the profile reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the profile uses history.</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 xml:lang="en">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 xml:lang="en">Specifies profile uses.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the agentrefType used by the agentref element       -->

    <xs:complexType name="agentrefType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a agent reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the agent reference.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies a command reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="measurementref"
                        type="measurementrefType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a measurement reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="signalref" type="signalrefType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a signal reference.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the agentparentType used by the agentparent element       -->

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

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

    <xs:complexType name="profiletestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies an profile test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the profile test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the profile test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this profile.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex profile test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this profile test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface profile test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the protocol used by the protocol element       -->

    <xs:complexType name="protocolType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en"> The protocol tag is used to denote the interface to a hardware protocol. The command tags denote the actions that are supported by the hardware protocol. The signals tags denote the events that are supported by the hardware protocol. The measurement tags denote the properties supported by the hardware protocol. Use the transportprotocol tag to specify the protocol’s transport. You can specify the Open Services Gateway Initiative (OSGi) protocol and transport class implementation with the transportprotocol tag. </xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the protocol history.</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 xml:lang="en">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 xml:lang="en">Hardware specification documentation for this protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="specreference"
                    type="specreferenceType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specification reference for this protocol.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
<!--                  <xs:element maxOccurs="1" minOccurs="0" ref="block">                     <xs:annotation>                         <xs:appinfo>1.1.0</xs:appinfo>                         <xs:documentation xml:lang="en">Specifies a block used                             by the protocol.</xs:documentation>                     </xs:annotation>                 </xs:element>                   -->

                <xs:element maxOccurs="1" minOccurs="0" ref="segment">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a segment used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="choicesegment">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a segment.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" ref="filter">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a filter used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" ref="message">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a message used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" ref="parameter">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a parameter used by the protocol.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="protocol" type="protocolType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
        </xs:annotation>
    </xs:element>
<!-- Define the shiftType used by the shift element       -->

    <xs:complexType mixed="true" name="shiftType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a shift transform.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the shift.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the shift history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this shift.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the shiftTypeContent       -->

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

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

    <xs:complexType name="signalType">
        <xs:annotation>
            <xs:documentation xml:lang="en"> 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="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the signal description.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the signal history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="optional" type="optionalType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Defines if this signal is optional.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="units" type="unitsType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the signal units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="deprecated" type="deprecatedType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the data when the signal triggers.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:sequence maxOccurs="1" minOccurs="0">
                        <xs:element maxOccurs="1" minOccurs="1" name="signal" type="signalType">
                            <xs:annotation>
                                <xs:documentation xml:lang="en">Specifies the signal to listen. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element maxOccurs="1" minOccurs="1" name="field" type="xs:string">
                            <xs:annotation>
                                <xs:documentation xml:lang="en">Specifies the field name to use on the receiving signal. </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:choice>
                <xs:element maxOccurs="1" minOccurs="0" name="messages" type="messagesType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the pid for this signal.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="parameter">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies a message parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="parameters" type="parametersType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the maximum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="minimum" type="minimumType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the minimum value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="negative" type="negativeType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Negate the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="not" type="notType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Logical not of a boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="scale" type="scaleType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Scale the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="shift" type="shiftType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Shift the value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="translate" type="translateType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the signal data type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="true" name="trigger" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en">Specifies the signal supports trigger. The default is true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
<!-- Define the signalrefType used by the signalref element       -->

    <xs:complexType name="signalrefType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a signal reference.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
    </xs:complexType>
<!-- Define the sleepType used by the sleep element       -->

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

    <xs:complexType name="specType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies the hardware specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the specification.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the specification history.</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 xml:lang="en">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 xml:lang="en">Comment about the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specdate" type="specdateType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Date of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="spectitle" type="spectitleType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Title of the protoocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specurl" type="specurlType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Url of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specvendor" type="specvendorType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Vendor of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specversion" type="specversionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Version of the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the speccommentType used by the speccomment element       -->

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

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

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

    <xs:complexType name="specreferenceType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a reference to the protocol specification documentation.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">The protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="specsection" type="specsectionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">The reference to section in the protocol specification documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the spectitleType used by the spectitle element       -->

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

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

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

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

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

    <xs:complexType name="tcpipType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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 xml:lang="en">Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote host name. The "host" element has been replaced with the "remotehost" to be more consistent with the "udp" element. In future versions the "host" element may not be supported so developers should use the "remotehost" element. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) local host.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) linger value. A value of -1 specifies to use the default values. A value of zero specifies no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readtimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) read timeout in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the tcpipmultiplexType used by the tcpipmultiplex element       -->

    <xs:complexType name="tcpipmultiplexType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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 xml:lang="en">Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP multiplex history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote host name. The "host" element has been replaced with the "remotehost" to be more consistent with the "udp" element. In future versions the "host" element may not be supported so developers should use the "remotehost" element. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) local host.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) linger value. A value of -1 specifies to use the default values. A value of zero specifies no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readtimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) read timeout in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the sslType used by the ssl tcpip element       -->

    <xs:complexType name="sslType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP SSL history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="host" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="linger" type="xs:integer">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL linger value. A value of -1 specifies to use the default values. A value of zero speciifes no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readtimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL read timeout in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the sslmultiplexType used by the multiplex SSL TCP/IP element       -->

    <xs:complexType name="sslmultiplexType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a Multiplex Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Multiplex Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP SLL multiplex history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="host" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="linger" type="xs:integer">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL linger value. A value of -1 specifies to use the default values. A value of zero speciifes no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readtimeout" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL read timeout in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the tcpipserverType used by the tcpipserver element       -->

    <xs:complexType name="tcpipserverType">
        <xs:annotation>
            <xs:documentation xml:lang="en">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 xml:lang="en">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="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP server history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex TCP/IP server.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local host.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="port" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server port. The "port" element has been replaced with the "localport" element to be more constant with "udpserver". Future versions may remove the "port" element so developers should use the "localport" element. </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="linger" type="xs:integer">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) linger value. A value of -1 specifies to use the default values. A value of zero specifies no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the tcpipservermultiplexType used by the tcpipservermultiplex element       -->

    <xs:complexType name="tcpipservermultiplexType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a Multiplex 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 xml:lang="en">Description of the Multiplex Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP server multiplex history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex TCP/IP server.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local host.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maxchannels" type="maxchannelsType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server maximum number of channels.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="linger" type="xs:integer">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) linger value. A value of -1 specifies to use the default values. A value of zero specifies no linger. A value greater than zero is the milliseconds linger value. See the Socket class for more details.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the sslserverType used by the tcpipserver element       -->

    <xs:complexType name="sslserverType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP SSL server history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex SSL TCP/IP server.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="port" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maxchannels" type="maxchannelsType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server maximum number of channels.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the sslservermultiplexType used by the sslservermultiplex element       -->

    <xs:complexType name="sslservermultiplexType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element maxOccurs="1" minOccurs="0" name="description" type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the TCP/IP SSL server multiplex history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex SSL TCP/IP server.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) server local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="port" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maxchannels" type="maxchannelsType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server maximum number of channels.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the testagentType used by the testagent element       -->

    <xs:complexType name="testagentType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies an test agent.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the test agent.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the test agent history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="unbounded" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="0" name="profileref" type="profilerefType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies the profile to be tested.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="profile" type="profileType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the profile to be tested.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="UserMessageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the swtType used by the swt element       -->

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

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

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

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

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

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

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

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

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

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

    <xs:complexType mixed="true" name="translateType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies the translate (add) value.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the translate.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the translate history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this translate.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdFormatImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the transportType used by the transport element       -->

    <xs:complexType name="transportType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the transport history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Specification reference for this transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies a custom parameter.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="noactivitytimeout"
                    type="noactivitytimeoutType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">Response timeout out value in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="retrytime" type="retrytimeType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Retry time value in milliseconds.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="transmitretries"
                    type="transmitretriesType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Transmit retries value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="message" type="messageType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the connection(s) or transport to be used by the transport. If multiple connections are specified, the first connection is the default connection.</xs:documentation>
                </xs:annotation>
                <xs:element maxOccurs="1" minOccurs="1" name="connection" type="connectionType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies an connection to be used by the transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="connectionservice"
                        type="connectionserviceType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies the connection to be used by the transport.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="echo" type="echoType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies an echo connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="file" type="fileType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a file connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="gpio" type="gpioType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="ssl" type="sslType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="sslserver" type="sslserverType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udp" type="udpType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udpserver" type="udpserverType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="tcpipmultiplex" type="tcpipmultiplexType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="tcpipservermultiplex"
                        type="tcpipservermultiplexType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="sslmultiplex" type="sslmultiplexType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="sslservermultiplex"
                        type="sslservermultiplexType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a Transmission Control Protocol/Internet Protocol (TCP/IP) SSL server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udpmultiplex" type="udpmultiplexType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="udpservermultiplex"
                        type="udpservermultiplexType">
                    <xs:annotation>
                        <xs:appinfo>1.1.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) server connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="urlconnection" type="urlconnectionType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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 xml:lang="en">Specifies a USB connection.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="1" minOccurs="0" name="transportservice"
                        type="transportserviceType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">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="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleSuperclassAbstractGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGlobalGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
    <xs:element name="transport" type="transportType"/>
<!-- Define the transportserviceType used by the transportservice element       -->

    <xs:complexType name="transportserviceType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) transport service name.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Open Services Gateway Initiative (OSGi) transport service.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the transport server history.</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 xml:lang="en">Specifies that the contents of this element should be marked as deprecated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the transporttestType used by the transporttest element       -->

    <xs:complexType name="transporttestType">
        <xs:annotation>
            <xs:appinfo>1.0.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a transport test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the transport test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a playback test. Currently, not supported.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="swt" type="swtType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a Standard Widget Toolkit (SWT) user interface transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcase" type="testcaseType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
    <xs:element name="transporttest" type="transporttestType"/>
    <xs:element name="receiver" substitutionGroup="transport">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Defines a receiver transport. </xs:documentation>
        </xs:annotation>
    </xs:element>
<!-- Define the receivertestType used by the receivertest element       -->

    <xs:complexType name="receivertestType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a receiver transport test.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of receiver transport test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the receiver transport test history.</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 xml:lang="en">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 xml:lang="en">Specifies the provider.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the current 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 xml:lang="en">Specifies an implementing vendor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="incubation" type="incubationType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">If the contents of this element is true, then this is an incubation project.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="spec" type="specType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Hardware specification documentation for this device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex receiver test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="customparameter"
                    type="customparameterType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies a custom parameter for this receiver test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="send" type="sendType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the message(s) to send during the test.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="1" ref="receiver">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the receiver transport to be tested.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="testcount" type="testcountType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies a junit testcase.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="bundle" type="bundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedbundle" type="managedbundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="managedfactorybundle"
                    type="managedfactorybundleType">
                <xs:annotation>
                    <xs:appinfo>1.0.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies an Open Services Gateway Initiative (OSGi) managed factory bundle should be created.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationServiceBundleGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
        <xs:attributeGroup ref="PackageBaseGroup"/>
        <xs:attributeGroup ref="ExecutionEnvironments"/>
        <xs:attributeGroup ref="AttributeOldGroup"/>
    </xs:complexType>
<!-- Define the udpType used by the udp element       -->

    <xs:complexType name="udpType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the User Diagram Protocol (UDP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the UDP history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this User Diagram Protocol (UDP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex UDP connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the udpmultiplexType used by the udpmultiplex element       -->

    <xs:complexType name="udpmultiplexType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a Multiplex User Diagram Protocol (UDP) connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Multiplex User Diagram Protocol (UDP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the UDP multiplex history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this User Diagram Protocol (UDP) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex UDP connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) connection local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the udpserverType used by the udpserver element       -->

    <xs:complexType name="udpserverType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) server connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the User Diagram Protocol (UDP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the UDP server history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this User Diagram Protocol (UDP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex UDP server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maxchannels" type="maxchannelsType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server maximum number of channels.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the udpservermultiplexType used by the udpservermultiplex element       -->

    <xs:complexType name="udpservermultiplexType">
        <xs:annotation>
            <xs:appinfo>1.1.0</xs:appinfo>
            <xs:documentation xml:lang="en">Specifies a Multiplex User Diagram Protocol (UDP) server connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Multiplex User Diagram Protocol (UDP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the UDP server multiplex history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this User Diagram Protocol (UDP) server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex UDP server connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection remote host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remoteport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection remote port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localhost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection local host name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="localport" type="xs:unsignedInt">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server connection local port.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="maxchannels" type="maxchannelsType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server maximum number of channels.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="readsize" type="readsizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server read size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="writesize" type="writesizeType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the User Datagram Protocol (UDP) server write size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the udptransportType used by the udptransport element       -->

    <xs:complexType name="udptransportType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a User Diagram Protocol (UDP) transport.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the User Diagram Protocol (UDP) transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the UDP transport history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this User Diagram Protocol (UDP) transport.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="1" maxOccurs="1" minOccurs="0" name="multiplex" type="multiplexType">
                <xs:annotation>
                    <xs:appinfo>1.1.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies that this is a multiplex UDP.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="remotehost" type="xs:string">
                <xs:annotation>
                    <xs:documentation xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the User Datagram Protocol (UDP) packet size in bytes.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the unitsType used by the units element       -->

    <xs:complexType mixed="true" name="unitsType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies the units of a parameter or measurement element.</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="1" minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the units history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this units.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the urlconnectionType used by the urlconnection element       -->

    <xs:complexType name="urlconnectionType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a Uniform Resource Locator (URL) connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the Uniform Resource Locator (URL) connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the URL connection history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the Uniform Resource Locator (URL) name.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the usbType used by the usb element       -->

    <xs:complexType name="usbType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a USB connection.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the USB connection.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the USB connection history.</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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">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 xml:lang="en">Specifies the USB vendor id.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
<!-- Define the valueType used by the value element       -->

    <xs:complexType mixed="true" name="valueType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies a value.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0" maxOccurs="1">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="history" type="historyType">
                <xs:annotation>
                    <xs:appinfo>1.2.0</xs:appinfo>
                    <xs:documentation xml:lang="en">Specifies the value history.</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 xml:lang="en">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 xml:lang="en">Specification reference for this value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice maxOccurs="1" minOccurs="0">
                <xs:element maxOccurs="unbounded" minOccurs="1" name="ascii" type="asciiType">
                    <xs:annotation>
                        <xs:appinfo>1.2.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies a set of ASCII characters (8 bits) value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="bigdecimal" type="bigdecimalType">
                    <xs:annotation>
                        <xs:appinfo>1.2.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies an BigDecimal value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="biginteger" type="bigintegerType">
                    <xs:annotation>
                        <xs:appinfo>1.2.0</xs:appinfo>
                        <xs:documentation xml:lang="en">Specifies an BigInteger value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="boolean" type="booleanType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Boolean value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="byte" type="byteType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Byte value (8 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="bytes" type="bytesType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies bytes.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="character" type="characterType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a character value (16 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="double" type="doubleType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Double value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="float" type="floatType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Float value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="int" type="intType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies an Integer value (32 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="list" type="listType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies list data.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="long" type="longType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Long value (64 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="map" type="mapType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Map value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="short" type="shortType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a Short value (16 bits).</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="string" type="stringType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">Specifies a String value.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdImplementationGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
    <xs:element name="value" type="valueType"/>
<!-- Define the providerType used by the provider element       -->

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

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

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

    <xs:complexType name="historyType">
        <xs:annotation>
            <xs:documentation xml:lang="en">Specifies the history documentation.</xs:documentation>
        </xs:annotation>
        <xs:sequence minOccurs="0">
            <xs:element maxOccurs="unbounded" minOccurs="0" name="description"
                    type="descriptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Description of the history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="provider" type="providerType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Specifies the provider history.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element maxOccurs="1" minOccurs="0" name="version" type="versionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Version of the history documentation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attributeGroup ref="AttributeIdGroup"/>
        <xs:attributeGroup ref="AttributeIdrefGroup"/>
    </xs:complexType>
</xs:schema>


id element
"dataType" <xs:complexType>
element id
<xs:complexType> "dataType"

Copyright (c) 2009 IBM. See license in Legal section. 2009-01-22 Device Kit XML Reference 1.2.0