<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.scout.sdk" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.scout.sdk" id="targetPackage" name="targetPackage"/>
      </appInfo>
      <documentation>
         Extension Point to define target packages and their default value.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="targetPackage" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="targetPackage">
      <annotation>
         <documentation>
            defines a target package where new scout elements will be created.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The id of the package to reference a package
               </documentation>
            </annotation>
         </attribute>
         <attribute name="default" type="string" use="required">
            <annotation>
               <documentation>
                  The default to use when nothing else is configured for a bundle.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="bundleType" type="string" use="required">
            <annotation>
               <documentation>
                  Specifies for which type of bundle this package should be valid.
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.scout.sdk.runtimeBundles/bundle/@type"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         3.9.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;extension
         point=&quot;org.eclipse.scout.sdk.targetPackage&quot;&gt;
      &lt;targetPackage
            default=&quot;.ui.desktop&quot;
            bundleType=&quot;CLIENT&quot;
            id=&quot;client.desktop&quot;&gt;
      &lt;/targetPackage&gt;
      &lt;targetPackage
            default=&quot;.ui.desktop.outlines&quot;
            bundleType=&quot;CLIENT&quot;
            id=&quot;client.outline&quot;&gt;
      &lt;/targetPackage&gt;
      &lt;targetPackage
            default=&quot;.ui.desktop.outlines.pages&quot;
            bundleType=&quot;CLIENT&quot;
            id=&quot;client.page&quot;&gt;
      &lt;/targetPackage&gt;
      &lt;targetPackage
            default=&quot;&quot;
            bundleType=&quot;CLIENT&quot;
            id=&quot;client.form&quot;&gt;
      &lt;/targetPackage&gt;
&lt;/extension&gt;
      </documentation>
   </annotation>




</schema>
