<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.debug">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jdt.debug" id="javaLogicalStructures" name="Java Logical Structures"/>
      </appInfo>
      <documentation>
         This extension point allows developers to define a logical structure for Java objects of a specified type. The logical value is created by evaluating the provided code snippet.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="javaLogicalStructure"/>
         </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>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="javaLogicalStructure">
      <complexType>
         <sequence>
            <element ref="variable"/>
         </sequence>
         <attribute name="type" type="string" use="required">
            <annotation>
               <documentation>
                  Fully qualified name of the type.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="subtypes" type="boolean" use="default" value="true">
            <annotation>
               <documentation>
                  specify if this Java logical structure should be used also for the objects of a subtype of the specified type, or only for the objects of the specified type. This attribute is optional, the default value is &lt;code&gt;true&lt;/code&gt;.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="value" type="string">
            <annotation>
               <documentation>
                  The code snippet to evaluate to create the logical value. This attribute is optional, if unspecified, the extension must declare one or more variables.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="description" type="string" use="required">
            <annotation>
               <documentation>
                  a description of this logical structure.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="variable">
      <annotation>
         <documentation>
            One variable of the logical value for the object of this type.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  The name of the variable which will be created
               </documentation>
            </annotation>
         </attribute>
         <attribute name="value" type="string" use="required">
            <annotation>
               <documentation>
                  The code snippet which will be evaluated as the value of the variable
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Following is an example of a Java logical structure extension point with two structures:

&lt;p&gt;
&lt;pre&gt;
&lt;extension point=&quot;org.eclipse.jdt.debug.javaLogicalStructures&quot;&gt;
  &lt;javaLogitalStructure
      subtypes=&quot;true&quot;
      value=&quot;return entrySet().toArray();&quot;
      type=&quot;java.util.Map&quot;/&gt;
  &lt;javaLogitalStructure
      subtypes=&quot;true&quot;
      type=&quot;java.util.Map$Entry&quot;&gt;
    &lt;variable
      value=&quot;return getKey();&quot;
      name=&quot;key&quot;/&gt;
    &lt;variable
      value=&quot;return getValue();&quot;
      name=&quot;value&quot;/&gt;
  &lt;/javaLogitalStructure&gt;
&lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;

In the example above a Map is translated into its entries and a Map$Entry is translated into its key and value.
      </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>

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