<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.xsl.launching.jaxp" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema plugin="org.eclipse.wst.xsl.launching.jaxp" id="processor" name="XSLT Processor"/>
      </appinfo>
      <documentation>
         Contribute a Java XSLT processor instance (e.g. Xalan 2.7.0). The extension point primarily defines the classpath to be used when launching an XSLT transformation.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appinfo>
            <meta.element />
         </appinfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="processor" 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="processor">
      <annotation>
         <appinfo>
            <meta.element labelAttribute="label"/>
         </appinfo>
         <documentation>
            An instance of a JAXP-compliant XSLT processor
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  A unique id for this processor instance
               </documentation>
            </annotation>
         </attribute>
         <attribute name="label" type="string" use="required">
            <annotation>
               <documentation>
                  A label for this instance to be displayed in the UI
               </documentation>
               <appinfo>
                  <meta.attribute translatable="true"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="processorTypeId" type="string" use="required">
            <annotation>
               <documentation>
                  The id for the processor type
               </documentation>
            </annotation>
         </attribute>
         <attribute name="classpath" type="string" use="required">
            <annotation>
               <documentation>
                  The classpath to use when this processor is launched
               </documentation>
            </annotation>
         </attribute>
         <attribute name="debuggerId" type="string">
            <annotation>
               <documentation>
                  The id of a debugger to associate with the processor
               </documentation>
            </annotation>
         </attribute>
         <attribute name="supports" type="string" use="required">
            <annotation>
               <documentation>
                  A comma-separated list of supported XSLT versions e.g. 1.0,2.0
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>


   <annotation>
      <appinfo>
         <meta.section type="examples"/>
      </appinfo>
      <documentation>
         &lt;pre&gt;
   &lt;extension
         point=&quot;org.eclipse.wst.xsl.jaxp.launching.processor&quot;&gt;
      &lt;!-- An adopter can specify the ${eclipse_orbit: } variable to indicate which eclipse
           bundle should be added to the class path. --&gt;
      &lt;processor
      classpath=&quot;${eclipse_orbit:org.apache.xalan};${eclipse_orbit:org.apache.xml.serializer};${eclipse_orbit:org.apache.bcel};${eclipse_orbit:java_cup.runtime}&quot;
            id=&quot;org.eclipse.wst.xsl.launching.xalan.processor&quot;
            label=&quot;%processor.label.1&quot;
            processorTypeId=&quot;org.eclipse.wst.xsl.xalan.processorType&quot;
            debuggerId=&quot;org.eclipse.wst.xsl.xalan.debugger&quot;
            supports=&quot;1.0&quot;&gt;
      &lt;/processor&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>



   <annotation>
      <appinfo>
         <meta.section type="copyright"/>
      </appinfo>
      <documentation>
         Copyright (c) 2007 Chase Technology Ltd - &lt;a href=&quot;http://www.chasetechnology.co.uk&quot;&gt;http://www.chasetechnology.co.uk&lt;/a&gt;.&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>
