<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.emf.facet.widget.celleditors" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="org.eclipse.emf.facet.widget.celleditors" id="compositeEditorFactories" name="Composite cell editor factories"/>
      </appinfo>
      <documentation>
         Use this extension point to provide new composite cell editors factories, that are used to find the right cell editor composite to use for a given type. Each factory handles a single type.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appinfo>
            <meta.element />
         </appinfo>
      </annotation>
      <complexType>
         <sequence minOccurs="1" maxOccurs="unbounded">
            <element ref="compositeEditorFactory"/>
         </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="compositeEditorFactory">
      <annotation>
         <documentation>
            Defines a factory to create composite cell editors for a specific type.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  A factory implementation to create composite cell editors for a specific type handled by the factory. The factory must implement CompositeEditorFactory.
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.emf.facet.widgets.celleditors.ICompositeEditorFactory"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appinfo>
         <meta.section type="since"/>
      </appinfo>
      <documentation>
         0.9.0
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="examples"/>
      </appinfo>
      <documentation>
         &lt;pre&gt;
   &lt;extension point=&quot;org.eclipse.emf.facet.widgets.celleditors.compositeEditorFactories&quot;&gt;
      &lt;compositeEditorFactory class=&quot;org.eclipse.emf.facet.widgets.celleditors.core.composite.factories.CoreIResourceCompositeFactory&quot;/&gt;
      &lt;compositeEditorFactory class=&quot;org.eclipse.emf.facet.widgets.celleditors.core.composite.factories.CoreIFileCompositeFactory&quot;/&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="apiinfo"/>
      </appinfo>
      <documentation>
         &lt;p&gt;
Composite cell editor factories must implement &lt;tt&gt; org.eclipse.emf.facet.widgets.celleditors.core.composite.CompositeEditorFactory&amp;lt;T&amp;gt;&lt;/tt&gt;
&lt;/p&gt;


      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="implementation"/>
      </appinfo>
      <documentation>
         &lt;p&gt;
Look at cell editor implementations in the following packages:&lt;ul&gt;
&lt;li&gt;org.eclipse.emf.facet.widgets.celleditors.core.composite.factories
&lt;li&gt;org.eclipse.emf.facet.widgets.celleditors.ecore.composite
&lt;/ul&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="copyright"/>
      </appinfo>
      <documentation>
         Copyright (c) 2011 Mia-Software and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v2.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v20.html
      </documentation>
   </annotation>

</schema>
