<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.sse.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.wst.sse.ui" id="reconcileValidator" name="reconcileValidator"/>
      </appInfo>
      <documentation>
         This extension point is provided to allow clients to contribute a content/partition dependent as-you-type validator for the SSE Editor via extension point.

   Required plugins are:
   org.eclipse.wst.sse.ui
   org.eclipse.wst.validation
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="validator"/>
         </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="validator">
      <complexType>
         <sequence>
            <element ref="contentTypeIdentifier" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="scope" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="partitionType">
      <complexType>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="contentTypeIdentifier">
      <complexType>
         <sequence>
            <element ref="partitionType" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Example demonstrating how HTMLValidator contributes to as-you-type validation
in the source editor.

&lt;extension
           point=&quot;org.eclipse.wst.sse.ui.extensions.reconcileValidator&quot;&gt;
        &lt;validator
              scope=&quot;total&quot;
              class=&quot;org.eclipse.wst.validation.html.HTMLValidator&quot;
              id=&quot;org.eclipse.wst.validation.htmlreconcilevalidator&quot;&gt;
           &lt;contentTypeIdentifier
                 id=&quot;org.eclipse.wst.html.core.htmlsource&quot;&gt;
              &lt;partitionType
                    id=&quot;org.eclipse.wst.html.DEFAULT_HTML&quot;&gt;
              &lt;/partitionType&gt;
           &lt;/contentTypeIdentifier&gt;
           &lt;contentTypeIdentifier
                 id=&quot;org.eclipse.jst.jsp.core.jspsource&quot;&gt;
              &lt;partitionType
                    id=&quot;org.eclipse.wst.html.DEFAULT_HTML&quot;&gt;
              &lt;/partitionType&gt;
           &lt;/contentTypeIdentifier&gt;
        &lt;/validator&gt;
&lt;/extension&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Example demonstrating how HTMLValidator contributes to as-you-type validation
in the source editor.

&lt;pre&gt;
&lt;extension
        point=&quot;org.eclipse.wst.sse.ui.extensions.reconcileValidator&quot;&gt;
        &lt;validator
              scope=&quot;total&quot;
              class=&quot;org.eclipse.wst.validation.html.HTMLValidator&quot;
              id=&quot;org.eclipse.wst.validation.htmlreconcilevalidator&quot;&gt;
           &lt;contentTypeIdentifier
                 id=&quot;org.eclipse.wst.html.core.htmlsource&quot;&gt;
              &lt;partitionType
                    id=&quot;org.eclipse.wst.html.DEFAULT_HTML&quot;&gt;
              &lt;/partitionType&gt;
           &lt;/contentTypeIdentifier&gt;
           &lt;contentTypeIdentifier
                 id=&quot;org.eclipse.jst.jsp.core.jspsource&quot;&gt;
              &lt;partitionType
                    id=&quot;org.eclipse.wst.html.DEFAULT_HTML&quot;&gt;
              &lt;/partitionType&gt;
           &lt;/contentTypeIdentifier&gt;
        &lt;/validator&gt;
&lt;/extension&gt;
&lt;/pre&gt;

&lt;ul&gt;
 &lt;li&gt;
  &lt;b&gt;extension&lt;/b&gt;
  &lt;ul&gt;
   &lt;li&gt;
    &lt;b&gt;point&lt;/b&gt; 
    - org.eclipse.wst.sse.ui.extensions.reconcileValidator
   &lt;/li&gt;
  &lt;/ul&gt;
 &lt;/li&gt;
 
 &lt;li&gt;
  &lt;b&gt;validator&lt;/b&gt;
  &lt;ul&gt;
    &lt;li&gt;
     &lt;b&gt;scope&lt;/b&gt; - [total | partial] describes what 
                  area of the document is validated each
             time validate is called on the IValidator 
             (for performance purposes)
      &lt;/li&gt;
      &lt;li&gt;&lt;b&gt;class&lt;/b&gt;  - the implementation class of IValidator&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;id&lt;/b&gt;  - the unique id for the validator being contributed&lt;/li&gt;
   &lt;/ul&gt;
  &lt;/li&gt;
 
  &lt;li&gt;
   &lt;b&gt;contentTypeIdentifier&lt;/b&gt;
   &lt;ul&gt;
    &lt;li&gt;
     &lt;b&gt;id&lt;/b&gt; - the id of an IContentType on which this 
         IValidator can operate.
                 This string is contributed via the
              &lt;code&gt;org.eclipse.core.runtime.ContentTypes&lt;/code&gt;
              extension point.
      &lt;/li&gt;
     &lt;/ul&gt;
    &lt;/li&gt;
   &lt;li&gt;
   &lt;b&gt;partition&lt;/b&gt;          
   &lt;ul&gt;
    &lt;li&gt;&lt;b&gt;id&lt;/b&gt; - the id of a PartitionType
          &lt;code&gt;org.eclipse.jface.text.ITypedRegion#getType()&lt;/code&gt;
          on which this as-you-type IValidator can operate.
      &lt;/li&gt;
     &lt;/ul&gt;
    &lt;/li&gt;
    
&lt;/ul&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         Currently there is no supplied implementation for IValidator.
      </documentation>
   </annotation>

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

</schema>
