<?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"/>
         </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>
         <sequence>
         </sequence>
         <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>
