Plugin Config XSD Draft

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">

  <xsd:element name="config">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element maxOccurs="1" minOccurs="0" name="Authentication" type="Authentication"/>
        <xsd:element maxOccurs="1" minOccurs="0" name="Connection" type="Connection"/>
        <xsd:element maxOccurs="1" minOccurs="0" name="Localization" type="Localization"/>
        <xsd:element maxOccurs="1" minOccurs="0" name="Ressources" type="Ressources"/>
        <!-- <xsd:element maxOccurs="1" minOccurs="0" name="AdvancedOptions" type="AdvancedOptions"/> -->
      </xsd:sequence>
      <xsd:attribute name="version" type="xsd:integer"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:complexType name="Authentication">
    <xsd:sequence>
      <xsd:element name="Username" type="xsd:string" />
      <xsd:element name="Password" type="xsd:string" />
      <xsd:element name="Reference" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Localization">
    <xsd:sequence>
      <xsd:element name="Encoding" type="xsd:string" />
      <xsd:element name="Timezone" type="xsd:string" />
      <xsd:element name="Language" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Ressources">
    <xsd:sequence>
      <xsd:element name="Name" type="xsd:string" />
      <xsd:element name="MIME" type="xsd:string" />
      <xsd:element name="ObjFormat" type="xsd:string" />
      <xsd:element name="Path" type="xsd:string" />
      <xsd:element name="Url" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="ConnectionBluetooth">
    <xsd:sequence>
      <xsd:element name="MAC" type="xsd:string" />
      <xsd:element name="RFCommChannel" type="xsd:integer" />
      <xsd:element name="SDPUUID" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="ConnectionUSB">
    <xsd:sequence>
      <xsd:element name="VendorID" type="xsd:string" />
      <xsd:element name="ProductID" type="xsd:string" />
      <xsd:element name="Interface" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="ConnectionNetwork">
    <xsd:sequence>
      <xsd:element name="Address" type="xsd:string" />
      <xsd:element name="Port" type="xsd:integer" />
      <xsd:element name="Protocol" type="xsd:string" />
      <xsd:element name="DNSSD" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="ConnectionSerial">
    <xsd:sequence>
      <xsd:element name="Speed" type="xsd:integer" />
      <xsd:element name="DeviceNode" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Connection">
    <xsd:sequence>
      <xsd:element name="Bluetooth" type="ConnectionBluetooth" />
      <xsd:element name="USB" type="ConnectionUSB" />
      <xsd:element name="IrDA" type="ConnectionIrDA" />
      <xsd:element name="Network" type="ConnectionNetwork" />
      <xsd:element name="Serial" type="ConnectionSerial" />
    </xsd:sequence>
  </xsd:complexType>

<!--
  <xsd:complexType name="AdvancedOptions">
    <xsd:sequence>
    <!-- TODO: self declaring schema -->
    </xsd:sequence>
  </xsd:complexType>
-->

</xsd:schema>