<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.gmf.runtime.emf.clipboard.core" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.gmf.runtime.emf.clipboard.core" id="clipboardSupport" name="Clipboard Support"/>
      </appInfo>
      <documentation>
         Providers of EMF meta-models can implement extensions on this point
to provide support for copying EMF objects to and pasting them from
the system clipboard.  The clipboard support allows extensions to
implement fairly complex metamodel-specific semantics for copy/paste
operations, where some relationships between model elements need
special treatment.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="factory" 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>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="factory">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="nsURI"/>
         </appInfo>
         <documentation>
            Registers an implementation of the
&lt;code&gt;IClipboardSupportFactory&lt;/code&gt; interface that can create
objects that provide metamodel-specific copy/paste semantics for
EMF objects.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="nsURI" type="string">
            <annotation>
               <documentation>
                  Either the nsURI or the policy attribute needs to be used.  Namespace URI identifying the EPackage for which the extension provides an &lt;code&gt;IClipboardSupportFactory&lt;/code&gt; implementation.
The EPackage represents an EMF metamodel.
WARNING: DO NOT USE.  Providing an nsURI does not support the full extensibility capabilities of the ClipboardSupport extension point. Providing a policy class is the recommended approach.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  Fully-qualified name of a class implementing the
&lt;code&gt;IClipboardSupportFactory&lt;/code&gt; interface.  This class will
only be loaded and instantiated when needed to copy an EMF object
to the clipboard or when pasting from the clipboard.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.gmf.runtime.emf.clipboard.core.IClipboardSupportFactory"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="priority" use="default" value="medium">
            <annotation>
               <documentation>
                  Indicates the priority relative to other factories registered for
the same metamodel.  The default is medium.

This attribute is &lt;b&gt;deprecated&lt;/b&gt;; a new context-based approach
will be devised soon.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="lowest">
                  </enumeration>
                  <enumeration value="low">
                  </enumeration>
                  <enumeration value="medium">
                  </enumeration>
                  <enumeration value="high">
                  </enumeration>
                  <enumeration value="highest">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="policy" type="string">
            <annotation>
               <documentation>
                  Either the nsURI or the policy attribute needs to be used.  Providing a policy class supports the full extensibility capabilities of the ClipboardSupport extension point and is the recommended approach.  The policy class is used to answer whether or not the provider provides for an object, without causing plug-ins to be activated (the policy class needs to be placed in a package that will not cause the plugin to load to support this).
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.gmf.runtime.emf.clipboard.core.IClipboardSupportPolicy"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         To register a clipboard support factory for the EMF Library example
model:
&lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.gmf.runtime.emf.clipboard.core.clipboardSupport&quot;&gt;
      &lt;factory
            nsURI=&quot;http:///org/eclipse/emf/examples/library.ecore&quot;
            class=&quot;com.example.emf.library.clipboard.LibraryClipboardSupportFactory&quot;&gt;
      &lt;/factory&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>


   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2005, 2009  IBM Corporation and others.&lt;br&gt;
 All rights reserved. This program and the accompanying materials 
 are made available under the terms of the Eclipse Public License v1.0 
 which accompanies this distribution, and is available at 
 &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Classes registered on this extension point must implement the
&lt;code&gt;org.eclipse.gmf.runtime.emf.clipboard.core.IClipboardSupportFactory&lt;/code&gt;
interface.  A support factory is responsible for creating
&lt;code&gt;IClipboardSupport&lt;/code&gt;s for the packages on which it is
registered on this extension point.
      </documentation>
   </annotation>

</schema>
