<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.help.base">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.help.base" id="luceneAnalyzer" name="Lucene Analyzer"/>
      </appInfo>
      <documentation>
         This extension point is used to register text analyzers for use by help when indexing and searching documentation.
&lt;p&gt;
Help exploits capabilities of the Lucene search engine, that allows indexing of token streams (streams of words).
Analyzers create tokens from the character stream.  They examine text content and provide tokens for use with the index.
The text stream can be tokenized in many unique ways.  A trivial analyzer can tokenize streams at white space,
a different one can perform filtering of tokens, based on the application needs.
Since the documentation is mostly human-readable text, it is desired that analyzers used by the help system
perform language and grammar aware tokenization and normalization of indexed text.
For some languages, the quality of search increases significantly if stop word removal and stemming is performed
on the indexed text.
&lt;p&gt;
The analyzer contributed to this extension point will override the one provided by the Eclipse help system for a given locale.
&lt;/p&gt;
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="analyzer" minOccurs="0" 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="analyzer">
      <complexType>
         <attribute name="locale" type="string" use="required">
            <annotation>
               <documentation>
                  a string identifying locale for which the supplied analyzer is
to bue sued.
If two letters, language is provided, and the analyzer will be
available to all locales of that language.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified name of the Java class extending &lt;samp&gt;org.apache.lucene.analysis.Analyzer&lt;/samp&gt;.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.apache.lucene.analysis.Analyzer"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         3.0 (originally added in release 2.0 as org.eclipse.help.luceneAnalyzer)
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         Following is an example of Lucene Analyzer configuration:

&lt;p&gt;
&lt;pre&gt;
 &lt;extension id=&quot;com.xyx.XYZ&quot; point=&quot;org.eclipse.help.base.luceneAnalyzer&quot;&gt;
  &lt;analyzer locale=&quot;ll_CC&quot; class=&quot;com.xyz.ll_CCAnalyzer&quot;/&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The value of the &lt;samp&gt;locale&lt;/samp&gt; attribute must represent either a five- or two-charcter locale string.
If the analyzer is configured for a language by specifying two-letter language designation, the analyzer is
going to be used for all locales of this language.  If the analyzer is configured that matchs a five-character
locale, it is going to be used instead.
&lt;p&gt;
The value of the &lt;samp&gt;class&lt;/samp&gt; attribute must represent a class that extends &lt;samp&gt;org.apache.lucene.analysis.Analyzer&lt;/samp&gt;.
It is recommended that this analyzer performs lowercase filtering for languages where it is possible to increase
number of search hits by making search case-sensitive.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         The Eclipse help system provides analyzers for all languages. For English and German, the analyzers perform stop word filtering, lowercase filtering, and stemming. For all the other languages the supplied analyzer only performs lowercase filtering.
      </documentation>
   </annotation>

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