<?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="sourcevalidation" name="sourcevalidation"/>
      </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.sourcevalidation&quot;&gt;
        &lt;validator
              scope=&quot;total&quot;
              class=&quot;org.eclipse.wst.validation.html.HTMLValidator&quot;
              id=&quot;org.eclipse.wst.validation.htmlsourcevalidator&quot;&gt;
           &lt;contentTypeIdentifier
                 id=&quot;org.eclipse.wst.html.core.htmlsource&quot;&gt;
              &lt;partitionType
                    id=&quot;org.eclipse.wst.html.HTML_DEFAULT&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.HTML_DEFAULT&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.sourcevalidation&quot;&gt;
        &lt;validator
              scope=&quot;total&quot;
              class=&quot;org.eclipse.wst.validation.html.HTMLValidator&quot;
              id=&quot;org.eclipse.wst.validation.htmlsourcevalidator&quot;&gt;
           &lt;contentTypeIdentifier
                 id=&quot;org.eclipse.wst.html.core.htmlsource&quot;&gt;
              &lt;partitionType
                    id=&quot;org.eclipse.wst.html.HTML_DEFAULT&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.HTML_DEFAULT&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.sourcevalidation
   &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.
          These partition type definitions may be found in:
          
          &lt;code&gt;org.eclipse.wst.sse.core.text.IStructuredPartitionTypes&lt;/code&gt;
          &lt;code&gt;org.eclipse.wst.xml.core.text.IXMLPartitionTypes&lt;/code&gt;
          &lt;code&gt;org.eclipse.wst.html.core.text.IHTMLPartitionTypes&lt;/code&gt;
          &lt;code&gt;org.eclipse.jst.jsp.core.text.IJSPPartitionTypes&lt;/code&gt;
          &lt;code&gt;org.eclipse.wst.dtd.core.text.IDTDPartitionTypes&lt;/code&gt;
          &lt;code&gt;org.eclipse.wst.css.core.text.ICSSPartitionTypes&lt;/code&gt;
      &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>
