<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.service.policy.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.wst.service.policy.ui" id="servicePolicyUI" name="Service policy UI"/>
      </appInfo>
      <documentation>
         This extension allows extenders to add service policy UI operations for the
         service policies that they have added.
      </documentation>
   </annotation>

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

   <element name="servicePolicyUI">
      <annotation>
         <documentation>
            This extension is intended for extenders who want to add UI operations to the Service policies that they have defined.
         </documentation>
      </annotation>
      <complexType>
         <choice>
            <element ref="operation" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="quickFix" minOccurs="0" maxOccurs="unbounded"/>
         </choice>
      </complexType>
   </element>

   <element name="descriptor">
      <annotation>
         <documentation>
            A descriptor for this Service policy operation or action.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="description" type="string">
            <annotation>
               <documentation>
                  A description of this service operation.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="shortName" type="string">
            <annotation>
               <documentation>
                  The short name of this service operation.  Note: if a short name is not specified it is defaulted to the value of the long name.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="longName" type="string">
            <annotation>
               <documentation>
                  The long name of this service operation.  Note: if a long name attribute is not specified it is defaulted to the shortName value.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="contextHelpId" type="string">
            <annotation>
               <documentation>
                  The context help id for this service operation if it is required.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="iconpath" type="string">
            <annotation>
               <documentation>
                  A plugin relative path to some icon file for this service operation.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="operation">
      <annotation>
         <documentation>
            Defines a Service policy operation.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="descriptor"/>
            <element ref="enabled" minOccurs="0" maxOccurs="1"/>
            <choice>
               <element ref="enumeration"/>
               <element ref="selection"/>
               <element ref="complex"/>
            </choice>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  This unique id of this service operation.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="policyPattern" type="string" use="required">
            <annotation>
               <documentation>
                  The attribute specifies which service polices this operation is associated with.  Any Java regular expression may be specified.  This expression will be used to match the ids of all known service policy ids.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="workspaceOnly" type="boolean">
            <annotation>
               <documentation>
                  This attribute indicates if this operation is only to be used in the workspace preference page.  If this attribute is not specified it is defaulted to false.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="enumeration">
      <annotation>
         <documentation>
            This element defines the enumeration that this operation is associated with.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The id of this enumeration.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="selection">
      <annotation>
         <documentation>
            This element indicates that the service policy operation is associated with a some kind of UI boolean selection.  All service policies that are associated with this operation should use the org.eclipse.wst.service.policy.booleanEnum enumeration.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="icon" type="boolean">
            <annotation>
               <documentation>
                  This boolean attribute indicates that the boolean selection should be rendered via an icon.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="complex">
      <annotation>
         <documentation>
            This element indicates that this operation is complex to render and persist.  The launchClass attribute can be used to launch a dialog to set more complex data.  The extender will need to call the service policy platform API to persist data on each policy as required.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="launchClass" type="string" use="required">
            <annotation>
               <documentation>
                  A class that can be used to launch a dialog.  The class specified must implement the ILaunchOperation interface.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="enabled">
      <annotation>
         <documentation>
            Indicates if this operation is enabled/grayed out or not in the UI.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="enabledClass" type="string">
            <annotation>
               <documentation>
                  The class specified in the attribute much implement the IEnableOperation interface.  This class allows extenders to provide a more complex logic for when the operation should be enabled or not.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="multiselect" type="string">
            <annotation>
               <documentation>
                  Indicates if this operation allows multiple selection of policy objects or not.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="quickFix">
      <annotation>
         <documentation>
            This element allows extenders to add quick fixes to the Service policy UI frameworks.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="action" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="pluginId" type="string" use="required">
            <annotation>
               <documentation>
                  The plugin id that the enclosed quick fix actions apply to.  This is the id that will match the plugin id from the IStatus of a ServicePolicy object.

               </documentation>
            </annotation>
         </attribute>
         <attribute name="code" type="string" use="required">
            <annotation>
               <documentation>
                  The code that the enclosed quick fix actions apply to.  This is the code that will match the code from the IStatus of a ServicePolicy object.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="action">
      <annotation>
         <documentation>
            The element is used to add a quick fix action.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="descriptor"/>
         </sequence>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The class that the framework will call for a particular quick fix action.  This class must implement the IQuickFixAction interface.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         [Enter extension point usage example here.]
      </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>
         
      </documentation>
   </annotation>

</schema>
