<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ltk.ui.refactoring">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ltk.ui.refactoring" id="statusContextViewers" name="Refactoring Status Context Viewers"/>
      </appInfo>
      <documentation>
         This extension point is used to define a special viewer capable to present the context of a refactoring status entry to the user. The reader of the extension point provides the following predefined variables which can be accessed during expression evaluation using the &amp;lt;with variable=&quot;...&quot;/&amp;gt; tag:
&lt;p&gt;
&lt;dl&gt;
  &lt;dt&gt;context&lt;/dt&gt;
  &lt;dd&gt;the context object managed by the refactoring status entry that is to be presented
      in the user interface.&lt;/dd&gt;
&lt;/dl&gt;
&lt;/p&gt;
Variables can be accessed using the &amp;lt;with variable=&quot;...&quot;/&amp;gt; expression. The default variable used during expression evaluation is bound to the context variable.
      </documentation>
   </annotation>

   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="statusContextViewer" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional identifier of the extension instance.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="statusContextViewer">
      <complexType>
         <all>
            <element ref="enablement"/>
         </all>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  unique identifier for the status context viewer.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the name of the class that provides the implementation.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ltk.ui.refactoring.IStatusContextViewer"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The example below contributes a status context viewer for FileStatusContext objects.

&lt;pre&gt;
   &lt;extension point=&quot;org.eclipse.ltk.ui.refactoring.statusContextViewers&quot;&gt;
      &lt;statusContextViewer
            class=&quot;org.eclipse.ltk.internal.ui.refactoring.FileStatusContextViewer&quot;
            id=&quot;org.eclipse.ltk.internal.ui.refactoring.fileStatusContextViewer&quot;&gt;
         &lt;enablement&gt;
            &lt;instanceof value=&quot;org.eclipse.ltk.core.refactoring.FileStatusContext&quot;/&gt;
         &lt;/enablement&gt;
      &lt;/statusContextViewer&gt;
   &lt;/extension&gt;
 &lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         3.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The contributed class must extend &lt;code&gt;org.eclipse.ltk.ui.refactoring.IStatusContextViewer&lt;/code&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2001, 2004 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>

</schema>
