<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.wst.server.core">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.wst.server.core" id="serverTypes" name="Server Types"/>
      </appInfo>
      <documentation>
         This extension point is used to provide support for a new server type.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="serverType" minOccurs="1" maxOccurs="unbounded"/>
         </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="serverType">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  unique identifier for the server type
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  a translatable name used to identify this server type
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="description" type="string" use="required">
            <annotation>
               <documentation>
                  a translatable description of this server type
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  specifies the fully qualified name of the Java class that extends &lt;samp&gt;org.eclipse.wst.server.core.model.ServerDelegate&lt;/samp&gt;.
Server instances of this type will delegate to instances of this class. Delegates must also have a public 0-arg constructor
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.wst.server.core.model.ServerDelegate"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="behaviourClass" type="string">
            <annotation>
               <documentation>
                  specifies the fully qualified name of the Java class that implements &lt;samp&gt;org.eclipse.wst.server.core.model.ServerBehaviourDelegate&lt;/samp&gt;.
Server instances of this type will delegate to instances of this class. Delegates must also have a public 0-arg constructor
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.wst.server.core.model.ServerBehaviourDelegate"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="hasConfiguration" type="boolean">
            <annotation>
               <documentation>
                  true if this server has server configuration files
               </documentation>
            </annotation>
         </attribute>
         <attribute name="runtimeTypeId" type="string" use="required">
            <annotation>
               <documentation>
                  the runtime type id that this server type corresponds to
               </documentation>
            </annotation>
         </attribute>
         <attribute name="launchConfigId" type="string">
            <annotation>
               <documentation>
                  the launch configuration id for the launch configuration that is able to start this server
               </documentation>
            </annotation>
         </attribute>
         <attribute name="supportsRemoteHosts" type="boolean">
            <annotation>
               <documentation>
                  true if this server type can work with remote host names, false if this server type can only work on localhost. if unspecified, false is assumed
               </documentation>
            </annotation>
         </attribute>
         <attribute name="runtime" type="boolean">
            <annotation>
               <documentation>
                  true if this server requires a runtime, and false otherwise
               </documentation>
            </annotation>
         </attribute>
         <attribute name="launchModes" type="string">
            <annotation>
               <documentation>
                  a comma separated list of the launch modes that this server supports
               </documentation>
            </annotation>
         </attribute>
         <attribute name="initialState" type="string">
            <annotation>
               <documentation>
                  the intial state of the server, either &quot;started&quot;, or &quot;stopped&quot;. if this attribute is not specified, the server state will be &quot;unknown&quot;
               </documentation>
            </annotation>
         </attribute>
         <attribute name="startTimeout" type="string">
            <annotation>
               <documentation>
                  the timeout value that the tool will wait for the server to be started. The default is 2 minutes
               </documentation>
            </annotation>
         </attribute>
         <attribute name="stopTimeout" type="string">
            <annotation>
               <documentation>
                  the timeout value that the tool will wait for the server to be stopped. The default is 2 minutes
               </documentation>
            </annotation>
         </attribute>
         <attribute name="startBeforePublish" type="boolean">
            <annotation>
               <documentation>
                  boolean value &quot;true&quot; or &quot;false&quot; to specify whether the server needs to be started for publishing to occur. If &quot;true&quot;, the server will be started on every call to publish() before executing the publish code
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         1.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a server type extension point:

&lt;pre&gt;
   &lt;extension 
         point=&quot;org.eclipse.wst.server.core.serverTypes&quot;&gt;
      &lt;serverType
            id=&quot;com.example.serverType&quot;
            name=&quot;%serverTypeName&quot;
            description=&quot;%serverTypeDescription&quot;
            supportsRemoteHosts=&quot;true&quot;
            runtime=&quot;true&quot;
            initialState=&quot;stopped&quot;
            hasConfiguration=&quot;true&quot;
            launchConfigId=&quot;com.example.launchConfigurationType&quot;
            runtimeTypeId=&quot;com.example.runtime&quot;
            class=&quot;com.example.ExampleServerDelegate&quot;
            behaviourClass=&quot;com.example.ExampleServerBehaviourDelegate&quot;/&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         Value of the attribute &lt;b&gt;class&lt;/b&gt; must be a fully qualified name of a Java class that extends the abstract class &lt;code&gt;org.eclipse.wst.server.core.model.ServerDelegate&lt;/code&gt; and has a public 0-arg constructor.

Value of the attribute &lt;b&gt;behaviourClass&lt;/b&gt; must be a fully qualified name of a Java class that extends the abstract class &lt;code&gt;org.eclipse.wst.server.core.model.ServerBehaviourDelegate&lt;/code&gt; and has a public 0-arg constructor.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </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>
