<?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="Source Validation"/>
      </appInfo>
      <documentation>
         This extension point is provided to allow clients to contribute a validator (&lt;code&gt;org.eclipse.wst.validation.internal.provisional.core.IValidator&lt;/code&gt;)
for as-you-type (source) validation.&lt;br&gt;

If your validator can handle &quot;partial document&quot; validation, it should also implement ISourceValidator.  The validate call on ISourceValidator gets passed an IRegion representation of the part of the document that&apos;s dirty.&lt;br&gt;

This should be much more efficient than validating the entire file each time someone types.&lt;br&gt;

The validator is enabled for specific content type/partition combinations.&lt;br&gt;

Required plugins are:&lt;br&gt;
   org.eclipse.wst.sse.ui&lt;br&gt;
   org.eclipse.wst.validation
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="validator"/>
         </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="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>
         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
      </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;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;/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;/contentTypeIdentifier&gt;
      &lt;/validator&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
&lt;p&gt;
Using ISourceValidator
&lt;/p&gt;
&lt;p&gt;
If your validator can handle &quot;partial document&quot; validation, it should  implement ISourceValidator.  
&lt;/p&gt;
&lt;p&gt;
The validate call on ISourceValidator gets passed an IRegion of the document which represents just the part that&apos;s dirty.  This should be much more efficient than validating the entire file each time someone types.
&lt;/p&gt;
&lt;p&gt;
ISourceValidator has its &quot;connect(IDocument doc)&quot; method called when it&apos;s hooked up to the document (when the editor is opened), and &quot;disconnect(IDocument doc)&quot; called when the editor is closed, where any &quot;unhooking&quot; should take place.
&lt;/p&gt;
      </documentation>
   </annotation>

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