<?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="runtimeBundles" name="runtimeBundles"/>
      </appInfo>
      <documentation>
         Extension Point defining all Scout Runtime bundles and their possible type definition.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence minOccurs="0" maxOccurs="unbounded">
            <element ref="bundle"/>
         </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="bundle">
      <annotation>
         <documentation>
            definition of a scout runtime bundle
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="ref" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="symbolicName" type="string" use="required">
            <annotation>
               <documentation>
                  the symbolic name of the scout runtime bundle (e.g. &apos;org.eclipse.scout.rt.client&apos;).
               </documentation>
            </annotation>
         </attribute>
         <attribute name="type" type="string">
            <annotation>
               <documentation>
                  if the runtime bundle described by the symbolic name defines a scout bundle type, this type is defined here. The scout bundle graph will then use this type when calculating the graph nodes.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="order" type="string">
            <annotation>
               <documentation>
                  must be given if &apos;type&apos; is given as well.
defines the priority in which this type defining bundle should be parsed.
E.g.:
A bundle in the workspace having the following type defining dependencies:
- org.eclipse.scout.rt.shared
- org.eclipse.scout.rt.client
In this case the client dependency is stronger than the shared dependency defining this bundle as type &apos;CLIENT&apos;.
The bundle graph searches through the type defining bundles in ascending order. Therefore &apos;CLIENT&apos; must have a lower order than shared giving it a higher priority.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="ref">
      <annotation>
         <documentation>
            References to other types that are included in the current bundle type
         </documentation>
      </annotation>
      <complexType>
         <attribute name="type" type="string" use="required">
            <annotation>
               <documentation>
                  A referenced type. A runtime bundle that is asked for having a specific type will answer with &quot;yes&quot; for its own type and all that are referenced to its own type (direct or indirect).
               </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.runtimeBundles&quot;&gt;
      &lt;bundle
            order=&quot;1000&quot;
            symbolicName=&quot;org.eclipse.scout.rt.client&quot;
            type=&quot;CLIENT&quot;&gt;
      &lt;/bundle&gt;
      &lt;bundle
            order=&quot;1200&quot;
            symbolicName=&quot;org.eclipse.scout.rt.shared&quot;
            type=&quot;SHARED&quot;&gt;
      &lt;/bundle&gt;
      &lt;bundle
            symbolicName=&quot;org.eclipse.scout.commons&quot;&gt;
      &lt;/bundle&gt;
&lt;/extension&gt;
      </documentation>
   </annotation>




</schema>
