<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui.navigator">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ui.navigator" id="viewer" name="Common Viewer Configuration"/>
      </appInfo>
      <documentation>
         &lt;p&gt;
The &lt;b&gt;viewer&lt;/b&gt; element defines the configuration for a common viewer. The extension
may provide a custom popup menu id, override whether the viewer provides link with
editor support, provides a filter dialog, and/or provides an &quot;Available customizations&quot; 
dialog. In addition, nested configuration elements give full control over the structure
and behavior of the popup context menu.
&lt;p&gt;
&lt;b&gt;viewerContentBinding&lt;/b&gt; binds defined content extensions (through the &lt;b&gt;navigatorContent&lt;/b&gt; 
extension point) to viewers (defined through the 
&lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension point). Any content 
extension bound to a viewer is described as &lt;i&gt;visible&lt;/i&gt;. A
content service (&lt;code&gt;org.eclipse.ui.navigator.INavigatorContentService&lt;/code&gt;)
will not return any extensions which are not visible for
its viewer id.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="viewerContentBinding" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="viewerActionBinding" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="dragAssistant"/>
         </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="viewer">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="id"/>
         </appInfo>
         <documentation>
            Provides basic configuration to establish the characteristics of a viewer. Clients must also define an &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension to create the view part.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="popupMenu" minOccurs="0" maxOccurs="1"/>
            <element ref="options" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="viewerId" type="string" use="required">
            <annotation>
               <documentation>
                  The id that matches the id provides in an &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="popupMenuId" type="string">
            <annotation>
               <documentation>
                  The popupMenuId of the defined viewer. If not specified, the popupMenuId defaults to the id of the viewer. Clients may specify only the &quot;popupMenuId&quot; OR a &lt;b&gt;popupMenu&lt;/b&gt; element, but not both. The default list of insertion points is declared in the documentation for the &lt;b&gt;popupMenu&lt;/b&gt; element.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="viewerContentBinding">
      <annotation>
         <documentation>
            Clients must define one or more &lt;b&gt;viwerContentBinding&lt;/b&gt; elements to describe which content extensions and common filters are &lt;i&gt;visible&lt;/i&gt; to the viewer. A content extension or common filter is &lt;i&gt;visible&lt;/i&gt; if the id of the content extension or common filter matches an &lt;b&gt;includes&lt;/b&gt; statement under a &lt;b&gt;viewerContentBinding&lt;/b&gt; and is not excluded by an &lt;b&gt;excludes&lt;/b&gt; statement. If a content extension or common filter is not &lt;i&gt;visible&lt;/i&gt; to a viewer, then the extension will never be asked for content by a content service for that viewer or be presented to the user in the available filters dialog. 
&lt;br&gt;&lt;br&gt;
Clients may define an &lt;b&gt;includes&lt;/b&gt; element to select which extensions are &lt;i&gt;visible&lt;/i&gt; to the viewer, and similarly an &lt;b&gt;excludes&lt;/b&gt; element for extensions that should not be made &lt;i&gt;visible&lt;/i&gt; to the viewer. Clients may further define the extensions that should be explicitly queried for root elements (through  ITreeContentProvider.getElements()) by the &quot;isRoot&quot; attribute. If one or more &lt;b&gt;contentExtension&lt;/b&gt; elements have &quot;isRoot&quot; set to true within the &lt;b&gt;includes&lt;/b&gt; statement, only those extensions will be queried for root elements. The &quot;isRoot&quot; attribute has no effect for exclusions.
&lt;br&gt;&lt;br&gt;
A viewer may have multiple viewerContentBindings defined, and their includes/excludes statements will be aggregated to produce the final behavior.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="includes" minOccurs="0" maxOccurs="1"/>
            <element ref="excludes" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="viewerId" type="string" use="required">
            <annotation>
               <documentation>
                  There should be a corresponding &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension that corresponds to this Id. That extension should specify an instance of &lt;code&gt;org.eclipse.ui.navigator.CommonNavigator&lt;/code&gt;.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="viewerActionBinding">
      <annotation>
         <documentation>
            Clients must define which action providers are visible to their viewer. Clients may define an &lt;b&gt;includes&lt;/b&gt; element to select which extensions are visible to the viewer, and  similarly an &lt;b&gt;excludes&lt;/b&gt; element for extensions that should not be made visible to the viewer. 
&lt;br&gt;&lt;br&gt;
A viewer may have multiple &lt;b&gt;viewerActionBinding&lt;/b&gt;s defined, and their &lt;b&gt;includes&lt;/b&gt;/&lt;b&gt;excludes&lt;/b&gt; statements will be aggregated to produce the final behavior.
&lt;br&gt;&lt;br&gt;
For &lt;b&gt;actionProvider&lt;/b&gt; definitions which are not nested under a &lt;b&gt;navigatorContent&lt;/b&gt; definition, clients may specify a custom id. If clients do not specify an id, the id defaults to &quot;org.eclipse.ui.navigator.actionProvider.X&quot;. For clients that wish to pick up &lt;b&gt;actionProvider&lt;/b&gt;s with no specific id, clients must define a &lt;b&gt;viewerActionBinding&lt;/b&gt; for the default id. See the examples section for how this is done.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="includes" minOccurs="0" maxOccurs="1"/>
            <element ref="excludes" minOccurs="0" maxOccurs="1"/>
         </sequence>
         <attribute name="viewerId" type="string" use="required">
            <annotation>
               <documentation>
                  There should be a corresponding &lt;b&gt;org.eclipse.ui.views&lt;/b&gt; extension that corresponds to this Id. That extension should specify an instance of &lt;code&gt;org.eclipse.ui.navigator.CommonNavigator&lt;/code&gt;.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="includes">
      <annotation>
         <documentation>
            Define a set of patterns that should be included when looking for content extensions for the viewer that matches the &quot;viewerId&quot; attribute. When the includes and excludes statements intersect, the includes statement will be given precedence.
         </documentation>
      </annotation>
      <complexType>
         <choice>
            <sequence>
               <element ref="contentExtension" minOccurs="1" maxOccurs="unbounded"/>
            </sequence>
            <sequence>
               <element ref="actionExtension" minOccurs="1" maxOccurs="unbounded"/>
            </sequence>
         </choice>
      </complexType>
   </element>

   <element name="excludes">
      <annotation>
         <documentation>
            Define a set of patterns that should be excluded when looking for content extensions for the viewer that matches the &quot;viewerId&quot; attribute. When the includes and excludes statements intersect, the includes statement will be given precedence.
         </documentation>
      </annotation>
      <complexType>
         <choice>
            <sequence>
               <element ref="contentExtension" minOccurs="1" maxOccurs="unbounded"/>
            </sequence>
            <sequence>
               <element ref="actionExtension" minOccurs="1" maxOccurs="unbounded"/>
            </sequence>
         </choice>
      </complexType>
   </element>

   <element name="contentExtension">
      <annotation>
         <documentation>
            Indicates the id (or matching pattern) of a content extension that should be queried by &lt;code&gt;ITreeContentProvider.getElements()&lt;/code&gt; or &lt;code&gt;ITreeContentProvider.getChildren()&lt;/code&gt;
for the root of the viewer or a common filter that should be available to the user in the &quot;Available Filters&quot; dialog.
&lt;br&gt;&lt;br&gt;
Clients may specify &quot;isRoot&quot; to select specific root extensions to override 
the extensions which would otherwise be enabled for the viewer input element
(based on the matching &lt;b&gt;triggerPoints&lt;/b&gt; expression for the viewer input element). 
&lt;br&gt;&lt;br&gt;
See the documentation for &lt;b&gt;viewerContentBinding&lt;/b&gt; for more information.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="pattern" type="string" use="required">
            <annotation>
               <documentation>
                  Content extensions may be selected exactly by using their content extension id. Clients may also use a regular expression pattern to select any content extensions that have ids that match the pattern. 
&lt;p&gt;
Patterns are regular expressions which match unique identifiers. Please see the Java(tm) Platform documentation for &lt;code&gt;java.util.regex.Pattern&lt;/code&gt; for further details.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="isRoot" type="boolean">
            <annotation>
               <documentation>
                  A value of true indicates the content extension will provide root content, and override the default &lt;b&gt;triggerPoints&lt;/b&gt; expressions defined in the bound content extensions for a given viewer.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="actionExtension">
      <annotation>
         <documentation>
            Indicates that the action extension that should be given opportunities
to contribute to the context menu and action bars. 
&lt;br&gt;&lt;br&gt;          
See the documentation for &lt;b&gt;viewerActionBinding&lt;/b&gt; for more information.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="pattern" type="string" use="required">
            <annotation>
               <documentation>
                  Content extensions may be selected exactly by using their content extension id. Clients may also use a regular expression pattern to select any content extensions that have ids that match the pattern. 
&lt;p&gt;
Patterns are regular expressions which match unique identifiers. Please see the Java(tm) Platform documentation for &lt;code&gt;java.util.regex.Pattern&lt;/code&gt; for further details.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="popupMenu">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="id"/>
         </appInfo>
         <documentation>
            A popupMenu element may only be defined if the &quot;popupMenuId&quot; attribute of the 
&lt;b&gt;viewer&lt;/b&gt; element is not specified. 
&lt;br&gt;&lt;br&gt;
The &lt;b&gt;popupMenu&lt;/b&gt; element allows further customization of the context menu associated 
with the viewer. For the options to be applied correctly, an instance of the viewer
must delegate to a &lt;code&gt;org.eclipse.ui.navigator.NavigatorActionService&lt;/code&gt;, which behaves
like a normal &lt;code&gt;org.eclipse.ui.ActionGroup&lt;/code&gt;. See the documentation for this API class
for more information on exploiting this functionality. For clients that use an 
instance of &lt;code&gt;org.eclipse.ui.navigator.CommonNavigator&lt;/code&gt; do not need to do any extra work. 
&lt;br&gt;&lt;br&gt;
A &lt;b&gt;popupMenu&lt;/b&gt; declares one or more &lt;b&gt;insertionPoints&lt;/b&gt; that will be used by contributors to 
organize their contributions into a meaningful, more user-friendly, consistent list. 
&lt;br&gt;
If clients only specify the &quot;popupMenuId&quot; attribute of the &lt;b&gt;viewer&lt;/b&gt; element, then the
set of &lt;b&gt;insertionPoints&lt;/b&gt; used by the context menu will default to the following list 
in the given order:
&lt;br&gt;
&lt;pre&gt;
&quot;group.new&quot;             separator=&quot;true&quot;
&quot;group.goto&quot;            
&quot;group.open&quot;            separator=&quot;true&quot;
&quot;group.openWith&quot;
&quot;group.show&quot;            separator=&quot;true&quot;
&quot;group.edit&quot;            separator=&quot;true&quot;
&quot;group.reorganize&quot;
&quot;group.port&quot;
&quot;group.generate&quot;        separator=&quot;true&quot;
&quot;group.search&quot;          separator=&quot;true&quot;
&quot;group.build&quot;           separator=&quot;true&quot;
&quot;additions&quot;             separator=&quot;true&quot; 
&quot;group.properties&quot;      separator=&quot;true&quot;
&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;
Clients that wish to refer to these values programmatically may use the corresponding constants in &lt;code&gt;org.eclipse.ui.navigator.ICommonMenuConstants&lt;/code&gt;. 
&lt;br&gt;&lt;br&gt;
Clients that wish to customize their menus are encouraged to start with this list and add or remove insertion points as necessary. Clients are also
encouraged to follow the pattern of beginning each group name with &quot;group.&quot;. 
&lt;br&gt;&lt;br&gt;
If the &lt;b&gt;popupMenu&lt;/b&gt; element is specified and contains NO &lt;b&gt;insertionPoint&lt;/b&gt; children elements, then the context menu will have no published insertion points. Of course, programmatic clients are not restricted from adding their own insertion points as necessary. Clients defining viewers are encouraged to publish their insertion points for documentation purposes and clarity for downstream extensions to their viewers/navigators, or to explicitly document which insertion points are considered API and which are considered internal.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="insertionPoint" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  The id of the menu. Has the same function as the &quot;popupMenuId&quot; attribute of &lt;b&gt;viewer&lt;/b&gt;, but if a &lt;b&gt;popupMenu&lt;/b&gt; nested element is used, you must use this &quot;popupMenuId&quot; attribute and NOT specify the &quot;popupMenuId&quot; of &lt;b&gt;viewer&lt;/b&gt;.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="allowsPlatformContributions" type="boolean">
            <annotation>
               <documentation>
                  A value of &lt;b&gt;true&lt;/b&gt; will register the declared &lt;b&gt;popupMenu&lt;/b&gt; (by id) for object or viewer contributions as declared by the &lt;b&gt;org.eclipse.ui.popupMenus&lt;/b&gt; extension point. A value of &lt;b&gt;false&lt;/b&gt; will restrict the popupMenu to programmatic contributions as declared by &lt;code&gt;org.eclipse.ui.navigator.CommonActionProviders&lt;/code&gt; (see &lt;b&gt;org.eclipse.ui.navigator.navigatorContent/actionProvider&lt;/b&gt; and &lt;b&gt;org.eclipse.ui.navigator.navigatorContent/navigatorContent/actionProvider&lt;/b&gt;).
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="insertionPoint">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="name"/>
         </appInfo>
         <documentation>
            Defines an insertion point for the context menu. Indcludes the name of the point for clients to refer to, and whether the insertion point should be rendered as a separator or a group marker.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  Indicates the name of the insertion point. Clients will use the name to refer to the insertion point as part of a menu path when providing either programmatic contributions via &lt;code&gt;org.eclipse.ui.navigator.CommonActionProvider&lt;/code&gt; or declarative contributions via the &lt;b&gt;org.eclipse.ui.popupMenus&lt;/b&gt; extension point.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="separator" type="boolean">
            <annotation>
               <documentation>
                  A value of true will cause the insertion point to be represented as a bar in the menu. This allows clients to visually group items in the context menu, based on their relevance to the user. By default, the value is &lt;b&gt;false&lt;/b&gt;.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="options">
      <annotation>
         <documentation>
            Provide options to the viewer to custom how it is presented to the user. See &lt;code&gt;org.eclipse.ui.navigator.INavigatorViewerDescriptor&lt;/code&gt; for the available properties.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="property" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
      </complexType>
   </element>

   <element name="property">
      <annotation>
         <documentation>
            Provide a name=value pair. The value will be provided as-is to the viewer (so empty strings will be propagated as empty strings). See &lt;code&gt;org.eclipse.ui.navigator.INavigatorViewerDescriptor&lt;/code&gt; for the available properties and their descriptions.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="value" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="dragAssistant">
      <annotation>
         <documentation>
            A Drag and Drop assistant provides lightweight hook to supply extra transfer types and logic to set the drag data. This element is not required as the basic &lt;b&gt;org.eclipse.ui.navigator.CommonViewer&lt;/b&gt; provides a &lt;b&gt;org.eclipse.jface.util.LocalSelectionTransfer&lt;/b&gt; type. 
&lt;br&gt;&lt;br&gt;
&lt;b&gt;
Clients should only define this extension in lightweight plugins with shallow dependency trees. The drag assistants must be loaded up front when the viewer is created, which will force the load of affected plugins. 
&lt;/b&gt;
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  Provide an implementation of &lt;code&gt;org.eclipse.ui.navigator.CommonDragAdapterAssistant&lt;/code&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ui.navigator.CommonDragAdapterAssistant"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="viewerId" type="string" use="required">
            <annotation>
               <documentation>
                  Associate this drag assistant with a particular viewer id.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         &lt;p&gt;
The following example configures the popup menu id for a viewer.      
&lt;p&gt;
&lt;pre&gt;

   &lt;extension
         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
      &lt;viewer 
         id=&quot;org.eclipse.testViewer&quot; 
         popupMenuId=&quot;org.eclipse.testViewer#PopupMenu&quot;/&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
Since the &lt;b&gt;popupMenu&lt;/b&gt; child element of viewer is not used in the above example, the default set of
&lt;b&gt;insertionPoints&lt;/b&gt; will be used. This set is defined as follows. See the documentation for
the &lt;b&gt;popupMenu&lt;/b&gt; element for more information.
&lt;p&gt;
&lt;pre&gt;
&quot;group.new&quot;             separator=&quot;true&quot;
&quot;group.goto&quot;            
&quot;group.open&quot;            separator=&quot;true&quot;
&quot;group.openWith&quot;
&quot;group.show&quot;            separator=&quot;true&quot;
&quot;group.edit&quot;            separator=&quot;true&quot;
&quot;group.reorganize&quot;
&quot;group.port&quot;
&quot;group.generate&quot;        separator=&quot;true&quot;
&quot;group.search&quot;          separator=&quot;true&quot;
&quot;group.build&quot;           separator=&quot;true&quot;
&quot;additions&quot;             separator=&quot;true&quot; 
&quot;group.properties&quot;      separator=&quot;true&quot;
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
The following example demonstrates a viewer configuration which declares custom
&lt;b&gt;popupMenu/insertionPoints&lt;/b&gt;, but restricts object and viewer contributions
with the &quot;allowsPlatformContributions&quot; attribute. Clients may only contribute
to the defined menu via &lt;code&gt;org.eclipse.ui.navigator.CommonActionProvider&lt;/code&gt;s declared
for the viewer (either top-level or associated with content extensions). 
&lt;p&gt;
Note that the &quot;popupMenuId&quot; attribute is not concurrently specified with the 
&lt;b&gt;popupMenu&lt;/b&gt; element. Only one or the other, but not both, is a valid configuration.
&lt;p&gt;
&lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
       &lt;viewer
             viewerId=&quot;org.eclipse.ui.navigator.resourceContent&quot;&gt;
          &lt;popupMenu
                allowsPlatformContributions=&quot;false&quot;
                id=&quot;org.eclipse.ui.navigator.resourceContent#PopupMenu&quot;&gt;  
             &lt;insertionPoint name=&quot;group.new&quot;/&gt;
             &lt;insertionPoint
                   name=&quot;group.open&quot;
                   separator=&quot;true&quot;/&gt;
             &lt;insertionPoint name=&quot;group.openWith&quot;/&gt;             
             &lt;insertionPoint
                   name=&quot;group.port&quot;
                   separator=&quot;true&quot;/&gt; 
             &lt;insertionPoint
                   name=&quot;additions&quot;
                   separator=&quot;true&quot;/&gt;              
             &lt;insertionPoint
                   name=&quot;group.properties&quot;
                   separator=&quot;true&quot;/&gt;
          &lt;/popupMenu&gt;
       &lt;/viewer&gt;
       &lt;viewerContentBinding 
             viewerId=&quot;org.eclipse.ui.navigator.resourceContent&quot;&gt;
            &lt;includes&gt;
                &lt;contentExtension pattern=&quot;org.eclipse.ui.navigator.resourceContent&quot; /&gt;
            &lt;/includes&gt;
       &lt;/viewerContentBinding&gt;
   &lt;/extension&gt;

&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
The following example declares that one content extension (id: &quot;org.eclipse.ui.navigator.resourceContent&quot;) is bound to a viewer matching the id &quot;org.eclipse.ui.navigator.resourceContent&quot;. (In this example the content extension and viewer ids match, but this is not required.) Further, any content extension with an id that begins with &quot;org.eclipse.ui.navigator.tests.&quot;
will be ignored. 
&lt;p&gt;
&lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
       &lt;viewerContentBinding 
             viewerId=&quot;org.eclipse.ui.navigator.resourceContent&quot;&gt;
            &lt;includes&gt;
                &lt;contentExtension pattern=&quot;org.eclipse.ui.navigator.resourceContent&quot; /&gt;
            &lt;/includes&gt;
            &lt;excludes&gt;
                &lt;contentExtension pattern=&quot;org.eclipse.ui.navigator.tests.*&quot; /&gt;
            &lt;/excludes&gt;
       &lt;/viewerContentBinding&gt;
   &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
The following example declares a &lt;b&gt;viewerActionBinding&lt;/b&gt; for all &lt;b&gt;actionProvider&lt;/b&gt;s (not 
nested under a &lt;b&gt;navigatorContent&lt;/b&gt; extension) that match the regular expression
&quot;org.acme.actions.*&quot; but not &quot;org.acme.actions.tests.*&quot;. This expression 
will make any &lt;b&gt;actionProvider&lt;/b&gt; whose id begins with &quot;org.acme.actions.&quot; but not &quot;org.acme.actions.tests.&quot; &lt;i&gt;visible&lt;/i&gt; to the viewer with the id &quot;org.acme.viewer&quot;.
Of course, the &lt;b&gt;viewerActionBindings&lt;/b&gt; only apply to &lt;b&gt;actionProvider&lt;/b&gt; elements that 
are not nested under a &lt;b&gt;navigatorContent&lt;/b&gt; element. The &lt;i&gt;visibility&lt;/i&gt; of nested 
&lt;b&gt;actionProvider&lt;/b&gt; elements is controlled by &lt;b&gt;viewerContentBindings&lt;/b&gt; for the enclosing
&lt;b&gt;navigatorContent&lt;/b&gt; element.
&lt;p&gt;
&lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
       &lt;viewerActionBinding 
             viewerId=&quot;org.acme.viewer&quot;&gt;
            &lt;includes&gt;
                &lt;actionExtension pattern=&quot;org.acme.actions.*&quot; /&gt;
            &lt;/includes&gt;
            &lt;excludes&gt;
                &lt;actionExtension pattern=&quot;org.acme.actions.tests.*&quot; /&gt;
            &lt;/excludes&gt;
       &lt;/viewerActionBinding&gt;
   &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
The following example makes any actionProvider with no &quot;id&quot; attribute &lt;i&gt;visible&lt;/i&gt;
to the viewer &quot;org.acme.viewer&quot;. The &lt;b&gt;actionProvider&lt;/b&gt;s with no &quot;id&quot; attribute
have a default id of &quot;org.eclipse.ui.navigator.actionProvider.X&quot;. Of course,
the &lt;b&gt;viewerActionBindings&lt;/b&gt; only apply to &lt;b&gt;actionProvider&lt;/b&gt; elements that 
are not nested under a &lt;b&gt;navigatorContent&lt;/b&gt; element. The &lt;i&gt;visibility&lt;/i&gt; of nested 
&lt;b&gt;actionProvider&lt;/b&gt; elements is controlled by &lt;b&gt;viewerContentBinding&lt;/b&gt;s for the enclosing
&lt;b&gt;navigatorContent&lt;/b&gt; element.

&lt;p&gt;
&lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
       &lt;viewerActionBinding 
             viewerId=&quot;org.acme.viewer&quot;&gt;
            &lt;includes&gt;
                &lt;actionExtension pattern=&quot;org.eclipse.ui.navigator.actionProvider.*&quot; /&gt;
            &lt;/includes&gt; 
       &lt;/viewerActionBinding&gt;
   &lt;/extension&gt; 
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;
The following example demonstrates the standard properties available to the viewer.
&lt;/p&gt;
&lt;p&gt;
&lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.ui.navigator.viewer&quot;&gt;
      &lt;viewer
            popupMenuId=&quot;org.eclipse.ui.tests.navigator.TestView#PopupMenu&quot;
            viewerId=&quot;org.eclipse.ui.tests.navigator.TestView&quot;&gt;
         &lt;options&gt; 
            &lt;!-- Hide the &quot;Available Extensions&quot; tab in the &quot;Available Customizations&quot; 
                 dialog (available from the &quot;Filters&quot; action --&gt;
            &lt;property
                  name=&quot;org.eclipse.ui.navigator.hideAvailableExtensionsTab&quot;
                  value=&quot;true&quot;/&gt;
            &lt;!-- Hide the &quot;Available Customizations&quot; dialog completely. This includes hiding the 
              filters and the available content extensions. --&gt;
            &lt;property
                  name=&quot;org.eclipse.ui.navigator.hideAvailableCustomizationsDialog&quot;
                  value=&quot;true&quot;/&gt; 
            &lt;!-- Hide the &quot;Link with Editor&quot; action from the toolbar of the viewer --&gt;
            &lt;property
                  name=&quot;org.eclipse.ui.navigator.hideLinkWithEditorAction&quot;
                  value=&quot;true&quot;/&gt; 
            &lt;!-- Hide the &quot;Collapse All&quot; action from the toolbar of the viewer --&gt;
            &lt;property
                  name=&quot;org.eclipse.ui.navigator.hideCollapseAllAction&quot;
                  value=&quot;true&quot;/&gt;  
         &lt;/options&gt;
      &lt;/viewer&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

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

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

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2002, 2005 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>
