<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="file:///E:/GRID/plugin/plugin_general.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="file:///E:/GRID/plugin/plugin_general.xsd" elementFormDefault="unqualified" attributeFormDefault="unqualified">
  <xs:element name="DesktopPlugin">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="type">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="APP_VIEWER"/>
              <xs:enumeration value="FILE_VIEWER"/>
              <xs:enumeration value="TOOL"/>
              <xs:enumeration value="JOB_INPUT"/>
              <xs:enumeration value="JOB_PROCESS"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <!--  Unique ID of the plug-in  -->
        <xs:element name="symbolicName" type="xs:normalizedString"/>
        <!--  Plug-in  general information-->
        <xs:element name="info">
          <xs:annotation>
            <xs:documentation>Migrating Desktop Tool Plugin definition</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <!--  Short name of the plug-in  -->
              <xs:element name="name" type="xs:normalizedString"/>
              <!--  Plug-in  description -->
              <xs:element name="description" type="xs:normalizedString"/>
              <!-- Plug-in supplier -->
              <xs:element name="vendor" type="xs:normalizedString"/>
              <!-- Plug-in version -->
              <xs:element name="version" type="xs:normalizedString"/>
              <!-- Plug-in icon image in base64 -->
              <xs:element name="iconImageBase64" type="xs:base64Binary" minOccurs="0"/>
              <!-- Last modification date-->
              <xs:element name="modificationDate" type="xs:date"/>
              <!-- Properties of the plug-in container window-->
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="window" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <!-- Container window title-->
              <xs:element name="title" type="xs:normalizedString"/>
              <!-- Container window horizontal size-->
              <xs:element name="sizeX" type="xs:positiveInteger" default="400"/>
              <!-- Container window vertical size-->
              <xs:element name="sizeY" type="xs:positiveInteger" default="300"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <!-- List of plugin bundles -->
        <xs:element name="pluginBundles">
          <xs:complexType>
            <xs:sequence>
              <!-- Main bundle with bundle activator-->
              <xs:element name="mainBundle" type="xs:normalizedString"/>
              <!-- List of bundles required by main bundle-->
              <xs:element name="bundle" type="xs:normalizedString" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="pluginProperties" minOccurs="0" >
          <xs:complexType>
            <xs:sequence>
              <xs:element name="property" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:attribute name="name" type="xs:normalizedString"/>
                  <xs:attribute name="value" type="xs:normalizedString"/>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="fileExtensions" minOccurs="0">
          <!-- Required for FILE_VIEWER-->
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ext" type="xs:normalizedString" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="infrastructure" default="gLite" minOccurs="0" maxOccurs="unbounded">
          <!-- Required for JOB_PROCESS JOB_INPUT-->
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="gLite"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="appSymbolicName" type="xs:normalizedString" minOccurs="0"/>
        <!-- Required for JOB_INPUT APP_VIEWER-->
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
