<?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="runtimeClasses" name="runtimeClasses"/>
      </appInfo>
      <documentation>
         Extension Point to define runtime classes based on the corresponding runtime interface.
For each interface a set of (priorized) default classes implementing the interface can be provided.
These classes will then be used by default when creating new scout elements using the scout sdk.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence minOccurs="1" maxOccurs="unbounded">
            <element ref="element"/>
         </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="element">
      <annotation>
         <documentation>
            Defines a runtime class element.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="default" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="interface" type="string" use="required">
            <annotation>
               <documentation>
                  Specifies the runtime interface of the possible classes.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="default">
      <annotation>
         <documentation>
            Specifies a possible default value (a Class implementing the interface).
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  A class implementing the interface given in &apos;interface&apos;.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="priority" type="string">
            <annotation>
               <documentation>
                  Specifies the priority of this default class. The class with the highest priority of all classes on the classpath for a bundle will be selected by default when creating new elements using the scout sdk.
               </documentation>
            </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.runtimeClasses&quot;&gt;
      &lt;element
            interface=&quot;org.eclipse.scout.rt.client.ui.form.fields.stringfield.IStringField&quot;&gt;
         &lt;default
               class=&quot;org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField&quot;&gt;
         &lt;/default&gt;
      &lt;/element&gt;
      &lt;element
            interface=&quot;org.eclipse.scout.rt.client.ui.basic.activitymap.IActivityMap&quot;&gt;
         &lt;default
               class=&quot;org.eclipse.scout.rt.client.ui.basic.activitymap.AbstractActivityMap&quot;&gt;
         &lt;/default&gt;
         &lt;default
               class=&quot;org.eclipse.scout.rt.extension.client.ui.basic.activitymap.AbstractExtensibleActivityMap&quot;
               priority=&quot;10&quot;&gt;
         &lt;/default&gt;
      &lt;/element&gt;
&lt;/extension&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiinfo"/>
      </appInfo>
      <documentation>
         [Enter API information here.]
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         [Enter information about supplied implementation of this extension point.]
      </documentation>
   </annotation>


</schema>
