<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/css/serviceDocs.xsl"?>
<application 
      xmlns="http://research.sun.com/wadl/2006/10" 
      xmlns:lm="http://lifemapper.org"
      xmlns:xhtml="http://www.w3.org/1999/xhtml" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://research.sun.com/wadl/2006/10 wadl200610.xsd">
   
   <!-- Grammars -->
   <grammars>
      <include href="serviceRequest.xsd" />
      <include href="serviceResponse.xsd" />
   </grammars>

   <!-- Resources -->
   <resources base="http://lifemapper.org/">
      <doc xml:lang="en" title="Resources">
         The Lifemapper services are accessed via a HTTP client such as a web
         browser.  A note about this documentation: names enclosed in brackets
         (such as {userId}) are template parameters.  These parameters should
         be filled in when accessing a service.  For example, instead of 
         accessing http://lifemapper.org/services/{userId}/models/{interface},
         you would use http://lifemapper.org/services/lm2/models/xml where 
         "lm2" is the user id and "xml" is the interface to return.  
         Additionally, query parameter names and values are case-sensitive.
      </doc>

      <resource path="services/{userId}/{interface}">
         <doc xml:lang="en" title="Base Services Resource">
            If you do not specify a specific service end-point, a list of 
            available services will be returned.  If you specify a userId, the
            links generated will include it.  If you do not, the links 
            generated will be for the lm2 user.  The list can be returned as
            an ATOM feed, a JSON object, or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               services should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will cause the list
                  of services to be returned as an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will cause the list 
                  of services to be returned as a JSON object.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will cause the list
                  of services to be returned as an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listServices">
            <doc xml:lang="en" title="List Available Lifemapper Services">
               The only action available from the base service end-point lists
               the available services.
            </doc>
            <request>
               <doc xml:lang="en" title="List Service Request">
                  The request for this service is a simple HTTP GET.  It does 
                  not take any additional query parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="List Service Response">
                  The services response can return an ATOM feed, JSON object,
                  or XML document based on the value of the interface template
                  parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/algoparams/{interface}">
         <doc xml:lang="en" title="Algorithm Parameters Resource">
            The "algoparams" service (without a specific algorithm parameters
            id) allows you to post a new algorithm parameter set or list 
            available algorithm parameter sets.  The response of this service
            will match the "interface" parameter and may be an ATOM feed, a 
            JSON object, or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               algorithm parameters should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will cause the list
                  of algorithm parameters sets to be returned as an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will cause the list
                  of algorithm parameter sets to be returned as a JSON object.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will cause the list
                  of algorithm parameter sets to be returned as an XML 
                  document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listAlgoParams">
            <doc xml:lang="en" title="List Algorithm Parameter Sets">
               Calling this service with a GET request will return a list of
               algorithm parameter sets that match the query parameters you
               specify.
            </doc>
            <request>
               <doc xml:lang="en" title="List Algorithm Parameters Request">
                  A request to the algorithm parameter set listing service 
                  takes multiple optional query parameters.  You can use these
                  query parameters to narrow your results to what you are 
                  interested in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="perPage" 
                      default="100" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Per Page">
                     The "perPage" query parameter specifies the number of  
                     results to return per page.  If this parameter is not 
                     specified, 100 results will be returned per page. The 
                     maximum number of results per page is 100.
                  </doc>
               </param>
               <param name="page" 
                      default="0" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Page">
                     The "page" query parameter specifies the number of the 
                     page of results to return.  Results will be paged based
                     on the perPage parameter.  Page number start with zero so 
                     the first time a result set is visited page=0 should be 
                     used.  The response will contain urls for the first, 
                     last, and (when applicable) previous and next pages of 
                     results.<xhtml:br />
                     Results returned will be the records: [page * perPage] to
                     [((page + 1) * perPage) -1].
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only 
                     algorithm parameter sets for that algorithm will be 
                     returned.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will return 
                        algorithm parameter sets for the Artificial Neural
                        Networks Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will return 
                        algorithm parameter sets for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will return 
                        algorithm parameter sets for the Bioclimatic Envelope
                        Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will return
                        algorithm parameter sets for the Climate Space Model 
                        (Broken Stick Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will return
                        algorithm parameter sets for the Genetic Algorithm for
                        Rule-set Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will return
                        algorithm parameter sets for the GARP Best Subsets
                        Algorithm (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will return
                        algorithm parameter sets for the Environmental Distance
                        Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will return
                        algorithm parameter sets for the Genetic Algorithm for
                        Rule-set Production Algorithm (GARP - openModeller 
                        implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will return
                        algorithm parameter sets for the GARP Best Subsets
                        Algorithm (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will return 
                        algorithm parameter sets for the Maximum Entropy
                        Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will return 
                        algorithm parameter sets for the Support Vector 
                        Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="paramsType" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Params Type">
                     The "paramsType" query parameter specifies what type of
                     algorithm parameter sets to return. Note that this is 
                     particularly useful for returning all available algorithms
                     by specifying that paramsType = "default".
                  </doc>
                  <option value="default">
                     <doc xml:lang="en" title="Default">
                        Setting paramsType to "default" will set the response 
                        to only return default algorithm parameter sets.
                     </doc>
                  </option>
                  <option value="unique">
                     <doc xml:lang="en" title="Unique">
                        Setting paramsType to "unique" will not limit the 
                        algorithm parameter sets returned.
                     </doc>
                  </option>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="List Algorithm Parameters Response">
                  The algorithm parameters list service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlANN">
            <doc xml:lang="en" 
                 title="Post An Artificial Neural Networks Algorithm Parameter Set">
               Calling this service with a POST request will attempt to post
               an algorithm parameter set for the Artificial Neural Networks
               algorithm from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="Algorithm Parameters Set Post Request">
                  A request to post an Artificial Neural Networks algorithm 
                  parameter set from url parameters must include multiple 
                  query parameters.  Query parameter descriptions (except for 
                  algorithmCode) are taken from the openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="ANN" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the Artificial Neural Networks
                     algorithm, this must be set to "ANN".
                  </doc>
               </param>
               <param name="choice" 
                      required="true" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Choice">
                     The "choice" query parameter specifies which training 
                     method to use for the Artificial Neural Networks 
                     algorithm.  Set to 0 to train by epoch, set to 1 to train 
                     by minimum error.  The value must be 0 or 1.
                  </doc>
               </param>
               <param name="epoch" 
                      required="true" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="epoch">
                     The "epoch" query parameter determines when training will 
                     stop when training by epoch.  When the number of 
                     iterations exceeds epochs, training will stop.  The value 
                     must be greater than or equal to 1.
                  </doc>
               </param>
               <param name="hiddenlayerneurons" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="hiddenlayerneurons">
                     The "hiddenlayerneurons" query parameter specifies the
                     number of neurons in the hidden layer (additional 
                     layer to the input and output layers, not connected 
                     externally).  Must be greater than or equal to 1.
                  </doc>
               </param>
               <param name="learningrate" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="learningrate">
                     The "learningrate" query parameter controls the size of 
                     weight and bias changes during learning.  Must be between 
                     0.0 and 1.0 (inclusive).
                  </doc>
               </param>
               <param name="minimumerror" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="minimumerror">
                     The "minimumerror" query parameter is the minimum mean 
                     square error of the epoch.  Square root of the sum of 
                     squared differences between network targets and actual 
                     outputs divided by number of patterns.  Must be between 
                     0.0 and 0.5 (inclusive).
                  </doc>
               </param>
               <param name="momentum" 
                      required="true" 
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="momentum">
                     The "momentum" query parameter simply adds a fraction m of 
                     the previous weight update to the current one.  The 
                     momentum parameter is used to prevent the system from 
                     converging to a local minimum or saddle point.  A high 
                     momentum parameter can also help to increase the speed of 
                     convergence of the system.  However, setting the momentum 
                     parameter too high can create a risk of overshooting the 
                     minimum, which can cause the system to become unstable.  A 
                     momentum coefficient that is too low cannot reliably avoid 
                     local minima, and can also slow down the training of the 
                     system.  Must be between 0.0 and 1.0.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlAQUAMAPS">
            <doc xml:lang="en" 
                 title="Post An Aquamaps Algorithm Parameters Set">
               Calling this service with a POST request will attempt to post
               an algorithm parameter set for the Aquamaps algorithm from 
               query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="Aquamaps Algorithm Parameters Set Post Request">
                  A request to post an Aquamaps algorithm parameter set from
                  url parameters must include multiple query parameters.  Query 
                  parameter descriptions (except for algorithmCode) are taken 
                  from the openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="AQUAMAPS" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the Aquamaps algorithm, this 
                     must be set to "AQUAMAPS".
                  </doc>
               </param>
               <param name="usedepthrange" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="usedepthrange">
                     The "usedepthrange" query parameter specifies if depth
                     range provided by experts (if available) when calculating 
                     probabilities.  Value must be 0 for no, or 1 for yes.
                  </doc>
               </param>
               <param name="usedistancetoland" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="usedistancetoland">
                     The "usedistancetoland" query parameter specifies if the 
                     distance to land envelope when calculating probabilities.
                     Value must be 0 for no, or 1 for yes.
                  </doc>
               </param>
               <param name="useiceconcentration" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="useiceconcentration">
                     The "useiceconcentration" query parameter specifies if ice
                     concentration should be used when calculating 
                     probabilities.  Value must be 0 for no, or 1 for yes.
                  </doc>
               </param>
               <param name="useprimaryproduction" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="useprimaryproduction">
                     The "useprimaryproduction" query parameter specifies if 
                     the primary production envelope should be used when 
                     calculating probabilities.  Value must be 0 for no, or 1 
                     for yes.
                  </doc>
               </param>
               <param name="usesalinity" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="usesalinity">
                     The "usesalinity" query parameter specifies if the 
                     salinity envelope should be used when calculating 
                     probabilities.  Value must be 0 for no, or 1 for yes.
                  </doc>
               </param>
               <param name="usesurfacelayers" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="usesurfacelayers">
                     The "usesurfacelayers" query parameter specifies if 
                     surface layers should be used in calculating probability
                     (1 = yes, 0 = no, -1 = let the algorithm decide).  If -1, 
                     aquamaps will try to find the species' depth range in its 
                     internal database.  If the minimum depth is equal to or 
                     less than 200m, then aquamaps will use sea surface layers 
                     for temperature and salinity.  Otherwise it will use 
                     bottom layers.  This parameter can be used to force 
                     aquamaps to use surface or bottom layers.
                  </doc>
               </param>
               <param name="usetemperature" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="usetemperature">
                     The "usetemperature" query parameter specifies if the 
                     temperature envelope should be used when calculating 
                     probabilities.  Value must be 0 for no, 1 for yes.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlBIOCLIM">
            <doc xml:lang="en" title="Post A Bioclim Algorithm Parameters Set">
               Calling this service with a POST request will attempt to post
               an algorithm parameter set for the Bioclimatic Envelope 
               algorithm from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="Bioclim Algorithm Parameters Set Post Request">
                  A request to post a Bioclimatic Envelope algorithm parameter
                  set from url parameters must include the 
                  "standarddeviationcutoff" query parameter.  The 
                  standarddeviationcutoff parameter description is taken from 
                  the openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="BIOCLIM"
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the Bioclimatic Envelope
                     algorithm, this must be set to "BIOCLIM".
                  </doc>
               </param>
               <param name="standarddeviationcutoff" 
                      required="true"
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="standarddeviationcutoff">
                     The "standarddeviationcutoff" query parameter specifies
                     the standard deviation cutoff for all bioclimatic 
                     envelopes.  Examples of (fraction of inclusion, parameter 
                     value) are: (50.0%, 0.674); (68.3%, 1.000); (90.0%, 
                     1.645); (95.0%, 1.960); (99.7%, 3.000).  Value must be 
                     greater than or equal to 0.0.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlCSMBS">
            <doc xml:lang="en" 
                 title="Post A Climate Space Model Algorithm Parameters Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the Climate Space Model algorithm
               from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="CSMBS Algorithm Parameters Set Post Request">
                  A request to post a Climate Space Model algorithm parameter 
                  set from url parameters must include multiple query 
                  parameters.  Query parameter descriptions (except for 
                  algorithmCode) are taken from the openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="CSMBS" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the Climate Space Model
                     algorithm (Broken Stick Implementation), this must be set 
                     to "CSMBS".
                  </doc>
               </param>
               <param name="mincomponents" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="mincomponents">
                     The "mincomponents" query parameter specifies the minimum
                     number of components that the model must have.  If not 
                     enough components are selected, the model produced will 
                     be erroneous or fail.  Usually, three or more components 
                     are acceptable.  The value must be between 1 and 20 
                     (inclusive).
                  </doc>
               </param>
               <param name="randomisations" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="randomisations">
                     The "randomisations" query parameter specifies the number
                     of eigenvalues to generate from randomly 'shuffled' 
                     environment data.  The Broken-Stick method of selecting 
                     the number of components to keep is carried out by 
                     randomizing the row order of each column in the 
                     environmental matrix and then obtaining the eigenvalue for
                     the randomized matrix.  This is repeatedly carried out for 
                     the amount of times specified by this value.  The value 
                     must be between 1 and 1000 (inclusive).
                  </doc>
               </param>
               <param name="standarddeviations" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="standarddeviations">
                     The "standarddeviations" query parameter specifies the 
                     number of standard deviations added to the randomized 
                     eigenvalue.  When all the eigenvalues for the 'shuffled'
                     environmental matrix have been summed this number of 
                     standard deviations is added to the mean of the 
                     eigenvalues.  Any components whose eigenvalues are above 
                     this threshold are retained.  The value must be between
                     -10.0 and 10.0 (inclusive).
                  </doc>
               </param>
               <param name="verbosedebugging" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="verbosedebugging">
                     The "verbosedebugging" query parameter specifies if 
                     openModeller should use verbose debugging for this 
                     algorithm.  If it is turned on (when set to 1), extremely
                     verbose diagnostics will be generated.  When it is set to
                     0, these diagnostics will not be generated.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlDGGARP">
            <doc xml:lang="en" 
                 title="Post A Desktop Garp Algorithm Parameters Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the GARP algorithm (DesktopGARP
               implementation) from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="DG_GARP Algorithm Parameters Set Post Request">
                  A request to post a GARP (DesktopGARP implementation) 
                  algorithm parameter set from url parameters must include
                  multiple query parameters.  Query parameter descriptions 
                  (except for algorithmCode) are taken from the openModeller 
                  source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="DG_GARP" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the GARP algorithm 
                     (DesktopGARP implementation), this must be set to 
                     "DG_GARP".
                  </doc>
               </param>
               <param name="convergencelimit" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="convergencelimit">
                     The "convergencelimit" query parameter defines the 
                     convergence value that makes the algorithm stop (before 
                     reaching maxgenerations).  Value must be between 0.0 and 
                     1.0 (inclusive).
                  </doc>
               </param>
               <param name="maxgenerations" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="maxgenerations">
                     The "maxgenerations" query parameter specifies the maximum
                     number of iterations (generations) run by the Genetic 
                     Algorithm.  Value must be greater than or equal to 1.
                  </doc>
               </param>
               <param name="populationsize" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="populationsize">
                     The "populationsize" query parameter specifies the maximum
                     number of rules to be kept in solution.  Value must be 
                     between 1 and 500 (inclusive).
                  </doc>
               </param>
               <param name="resamples" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="resamples">
                     The "resamples" query parameter specifies the number of 
                     points sampled (with replacement) used to test rules.
                     Value must be between 1 and 100000 (inclusive).
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlDGGARPBS">
            <doc xml:lang="en" 
                 title="Post A Desktop Garp Best Subsets Algorithm Parameter Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the GARP Best Subsets algorithm 
               (DesktopGARP implementation) from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="DG_GARP_BS Algorithm Parameters Set Post Request">
                  A request to post a GARP Best Subsets (DesktopGARP 
                  implementation) algorithm parameter set from url parameters 
                  must include multiple query parameters.  Query parameter 
                  descriptions (except for algorithmCode) are taken from the 
                  openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="DG_GARP_BS" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the GARP Best Subsets 
                     algorithm (DesktopGARP implementation), this must be set 
                     to "DG_GARP_BS".
                  </doc>
               </param>
               <param name="commissionsamplesize" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="commissionsamplesize">
                     The "commissionsamplesize" query parameter specifies the
                     number of samples used to calculate commission error.  
                     Value must be greater than or equal to 1.0.
                  </doc>
               </param>
               <param name="commissionthreshold" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="commissionthreshold">
                     The "commissionthreshold" query parameter specifies the 
                     percentage of distribution of models to be taken regarding 
                     commission error.  Value must be between 0.0 and 100.0
                     (inclusive).
                  </doc>
               </param>
               <param name="convergencelimit" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="convergencelimit">
                     The "convergencelimit" query parameter defines the 
                     convergence value that makes the algorithm stop (before 
                     reaching maxgenerations).  Value must be between 0.0 and 
                     1.0 (inclusive).
                  </doc>
               </param>
               <param name="hardomissionthreshold" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="hardomissionthreshold">
                     The "hardomissionthreshold" query parameter specifies the 
                     maximum acceptable omission error.  Set to 100.0% to use
                     only soft omission.  Value must be between 0.0 and 100.0
                     (inclusive)
                  </doc>
               </param>
               <param name="maxgenerations" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="maxgenerations">
                     The "maxgenerations" query parameter specifies the maximum
                     number of iterations (generations) run by the Genetic 
                     Algorithm.  Value should be greater than or equal to 1.
                  </doc>
               </param>
               <param name="maxthreads" 
                      fixed="1"
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="maxthreads">
                     The "maxthreads" query parameter specifies the maximum 
                     number of threads of execution to run simultaneously.  At 
                     this time, this parameter should be set to 1.
                  </doc>
               </param>
               <param name="modelsunderomissionthreshold" 
                      required="true"
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="modelsunderomissionthreshold">
                     The "modelsunderomissionthreshold" query parameter 
                     specifies the minimum number of models below omission 
                     threshold.  Value must be between 0 and 10000 (inclusive).
                  </doc>
               </param>
               <param name="populationsize" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="populationsize">
                     The "populationsize" query parameter specifies the maximum
                     number of rules to be kept in solution.  Value should be 
                     between 1 and 500 (inclusive).
                  </doc>
               </param>
               <param name="resamples" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="resamples">
                     The "resamples" query parameter indicates the number of 
                     points sampled (with replacement) used to test rules.  
                     Value must be between 1 and 1000000 (inclusive).
                  </doc>
               </param>
               <param name="totalruns" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="totalruns">
                     The "totalruns" query parameter is the maximum number of 
                     GARP runs to be performed.  Value must be between 0 and 
                     10000 (inclusive).
                  </doc>
               </param>
               <param name="trainingproportion" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="trainingproportion">
                     The "trainingproportion" query parameter is the proportion 
                     of the occurrence data to be used to train the models.  
                     Value should be between 0.0 and 100.0 (inclusive).
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlENVDIST">
            <doc xml:lang="en" 
                 title="Post An Environmental Distance Algorithm Parameter Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the Environmental Distance algorithm
               from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="ENVDIST Algorithm Parameters Set Post Request">
                  A request to post a Environmental Distance algorithm 
                  parameter set from url parameters must include multiple query 
                  parameters.  Query parameter descriptions (except for 
                  algorithmCode) are taken from the openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="ENVDIST" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the Environmental Distance 
                     algorithm, this must be set to "ENVDIST".
                  </doc>
               </param>
               <param name="distance" 
                      required="true" 
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="distance">
                     The "distance" query parameter sets the maximum distance 
                     to the reference in the environmental space, above which 
                     the conditions are considered unsuitable for presence.  
                     Since 1 corresponds to the biggest possible distance 
                     between any two points in the environmental space, setting 
                     the maximum distance to this value means that all points 
                     in the environmental space will have an associated 
                     probability.  The probability of presence for points that 
                     fall within the range of the maximum distance is inversely 
                     proportional to the distance to the reference point 
                     (linear decay).  Value should be between 0.0 and 1.0 
                     (inclusive).
                  </doc>
               </param>
               <param name="distancetype" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="distancetype">
                     The "distancetype" query parameter determines the metric 
                     used to calculate distances.  Must be one of these:
                     1 = Euclidean, 2 = Mahalanobis, 3 = Manhattan / Gower,
                     4 = Chebyshev.
                  </doc>
               </param>
               <param name="nearpointstogetmean" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="nearpointstogetmean">
                     The "nearpointstogetmean" query parameter specifies the 
                     nearest 'n' points whose mean value will be the reference
                     when calculating environmental distances.  When set to 1,
                     distance will be measured to the closest point, which is
                     the same behavior of the minimum distance algorithm.  When
                     set to 0, distances will be measured to the average of all
                     presence points, which is the same behavior of the 
                     distance to average algorithm.  Intermediate values
                     between 1 and the total number of presence points are now 
                     accepted.  Value should be greater than or equal to zero.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or xml document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlGARP">
            <doc xml:lang="en" title="Post A GARP Algorithm Parameters Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the GARP algorithm (openModeller
               implementation) from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="GARP Algorithm Parameters Set Post Request">
                  A request to post a GARP (openModeller implementation) 
                  algorithm parameter set from url parameters must include
                  multiple query parameters.  Query parameter descriptions 
                  (except for algorithmCode) are taken from the openModeller 
                  source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="GARP" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the GARP algorithm 
                     (openModeller implementation), this must be set to "GARP".
                  </doc>
               </param>
               <param name="convergencelimit" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="convergencelimit">
                     The "convergencelimit" query parameter defines the 
                     convergence value that makes the algorithm stop (before 
                     reaching maxgenerations).  Value should be between 0.0 and 
                     1.0 (inclusive).
                  </doc>
               </param>
               <param name="maxgenerations" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="maxgenerations">
                     The "maxgenerations" query parameter specifies the maximum 
                     number of iterations (generations) run by Genetic 
                     Algorithm.  Value must be greater than or equal to 1.
                  </doc>
               </param>
               <param name="populationsize" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="populationsize">
                     The "populationsize" query parameter determines the 
                     maximum number of rules to be kept in solution.  Value 
                     must be between 1 and 500 (inclusive).
                  </doc>
               </param>
               <param name="resamples" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="resamples">
                     The "resamples" query parameter specifies the number of 
                     points sampled (with replacement) used to test rules.  
                     Value must be between 1 and 100000 (inclusive).
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlGARPBS">
            <doc xml:lang="en" 
                 title="Post A Garp Best Subsets Algorithm Parameter Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the GARP Best Subsets algorithm 
               (openModeller implementation) from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="GARP_BS Algorithm Parameters Set Post Request">
                  A request to post a GARP Best Subsets (openModeller 
                  implementation) algorithm parameter set from url parameters 
                  must include multiple query parameters.  Query parameter 
                  descriptions (except for algorithmCode) are taken from the 
                  openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="GARP_BS" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the GARP Best Subsets 
                     algorithm (openModeller implementation), this must be set 
                     to "GARP_BS".
                  </doc>
               </param>
               <param name="commissionsamplesize" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="commissionsamplesize">
                     The "commissionsamplesize" query parameter specifies the
                     number of samples used to calculate commission error.  
                     Value must be greater than or equal to 1.0.
                  </doc>
               </param>
               <param name="commissionthreshold" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="commissionthreshold">
                     The "commissionthreshold" query parameter specifies the 
                     percentage of distribution of models to be taken regarding 
                     commission error.  Value must be between 0.0 and 100.0 
                     (inclusive).
                  </doc>
               </param>
               <param name="convergencelimit" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="convergencelimit">
                     The "convergencelimit" query parameter defines the 
                     convergence value that makes the algorithm stop (before 
                     reaching maxgenerations).  Value must be between 0.0 and 
                     1.0 (inclusive).
                  </doc>
               </param>
               <param name="hardomissionthreshold" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="hardomissionthreshold">
                     The "hardomissionthreshold" query parameter determines the
                     maximum acceptable omission error.  Set to 100% to use
                     only soft omission.  Value should be between 0.0 and 100.0
                     (inclusive).
                  </doc>
               </param>
               <param name="maxgenerations" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="maxgenerations">
                     The "maxgenerations" query parameter specifies the maximum
                     number of iterations (generations) run by the Genetic 
                     Algorithm.  Value should be greater than or equal to 1.
                  </doc>
               </param>
               <param name="maxthreads" 
                      fixed="1"
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="maxthreads">
                     The "maxthreads" query parameter specifies the maximum 
                     number of threads of execution to run simultaneously.  At 
                     this time, this parameter should be set to 1.
                  </doc>
               </param>
               <param name="modelsunderomissionthreshold" 
                      required="true"
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="modelsunderomissionthreshold">
                     The "modelsunderomissionthreshold" query parameter 
                     specifies the minimum number of models below omission 
                     threshold.  Value should be between 0 and 10000 
                     (inclusive).
                  </doc>
               </param>
               <param name="populationsize" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="populationsize">
                     The "populationsize" query parameter sets the maximum 
                     number of rules to be kept in solution.  Value must be  
                     between 1 and 500 (inclusive).
                  </doc>
               </param>
               <param name="resamples" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="resamples">
                     The "resamples" query parameter specifies the number of 
                     points sampled (with replacement) used to test rules.  
                     Value must be between 1 and 100000 (inclusive).
                  </doc>
               </param>
               <param name="totalruns" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="totalruns">
                     The "totalruns" query parameter sets the maximum number of 
                     GARP runs to be performed.  Value must be between 0 and 
                     10000 (inclusive).
                  </doc>
               </param>
               <param name="trainingproportion" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="trainingproportion">
                     The "trainingproportion" query parameter specifies the 
                     proportion of the occurrence data to be used to train the
                     models.  Value must be in range 0.0 to 100.0 (inclusive).
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlMAXENT">
            <doc xml:lang="en" 
                 title="Post A Maximum Entropy Algorithm Parameters Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the Maximum Entropy algorithm from
               query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="MAXENT Algorithm Parameters Set Post Request">
                  A request to post a Maximum Entropy algorithm parameter set 
                  from url parameters must include multiple query parameters.  
                  Query parameter descriptions (except for algorithmCode) are 
                  taken from the openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="MAXENT" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the Maximum Entropy algorithm, 
                     this must be set to "MAXENT".
                  </doc>
               </param>
               <param name="gaussianpriorsmoothingcoeficient" 
                      required="true"
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="gaussianpriorsmoothingcoeficient">
                     The "gaussianpriorsmoothingcoeficient" query parameter 
                     sets the Gaussian Prior Smoothing Coeficient (variance) 
                     for the Maximum Entropy algorithm.  Zero turns off 
                     Gaussian Prior Smoothing.  The value should be greater 
                     than or equal to 0.0.
                  </doc>
               </param>
               <param name="hingefeature" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="hingefeature">
                     The "hingefeature" query parameter specifies if the 
                     training system should use the hinge feature or not.
                     This feature is derived from continuous environmental 
                     variables.  Set to 1 to have the training system use the 
                     hinge feature, 0 to disable it.  It is 0 when the variable
                     has a value below the convergence threshold and it's like
                     the linear feature, otherwise.
                  </doc>
               </param>
               <param name="linearfeature" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="linearfeature">
                     The "linearfeature" query parameter specifies if the 
                     training algorithm should use continuous environmental 
                     variables values.  Set to 1 to enable, 0 to disable.
                  </doc>
               </param>
               <param name="numberofiterations" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="numberofiterations">
                     The "numberofiterations" query parameter specifies the 
                     number of iterations the Maximum Entropy algorithm should 
                     use.  This value should be greater than or equal to 1.
                  </doc>
               </param>
               <param name="numberofpseudoabsences" 
                      required="true"
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="numberofpseudoabsences">
                     The "numberofpseudoabsences" query parameter determines 
                     the number of pseudo-absences to be generated (when no 
                     absences have been provided).  Value should be greater 
                     than or equal to 1.
                  </doc>
               </param>
               <param name="productfeature" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="productfeature">
                     The "productfeature" query parameter determines if the 
                     training algorithm uses the product of continuous 
                     environmental variables.  Set to 1 to have the training 
                     algorithm use the product of continuous environmental 
                     variables, 0 otherwise.
                  </doc>
               </param>
               <param name="quadraticfeature" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="quadraticfeature">
                     The "quadraticfeature" query parameter determines if the 
                     training algorithm uses the square of continuous 
                     environmental variables. Set to 1 to have the training 
                     algorithm use the product of continuous environmental 
                     variables, 0 otherwise.
                  </doc>
               </param>
               <param name="terminatetolerance" 
                      required="true" 
                      style="query"
                      type="xsd:decimal">
                  <doc xml:lang="en" title="terminatetolerance">
                     The "terminatetolerance" query parameter specifies the 
                     tolerance for detecting model convergence.  Value should 
                     be a decimal value between negative infinity and positive
                     infinity.
                  </doc>
               </param>
               <param name="thresholdfeature" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="thresholdfeature">
                     The "tresholdfeature" query parameter is a binary feature.
                     It depends on convergence threshold.  It is 1 when the 
                     variable has value greater than the convergence threshold 
                     and is 0 otherwise.
                  </doc>
               </param>
               <param name="trainingmethod" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="trainingmethod">
                     The "trainingmethod" query parameter specifies the 
                     training method (gis or lbfgs) to be used to estimate 
                     maximum entropy parameters.
                  </doc>
                  <option value="gis">
                     <doc xml:lang="en" title="GIS Training Method">
                        Generalized Iterative Scaling
                     </doc>
                  </option>
                  <option value="lbfgs">
                     <doc xml:lang="en" title="LBFGS Training Method">
                        Limited-Memory Variable Metric
                     </doc>
                  </option>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamsSetFromUrlSVM">
            <doc xml:lang="en" title="Post A SVM Algorithm Parameters Set">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set for the Support Vector Machines 
               algorithm from query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="SVM Algorithm Parameters Set Post Request">
                  A request to post a Support Vector Machines algorithm 
                  parameter set from url parameters must include multiple query 
                  parameters.  Query parameter descriptions (except for 
                  algorithmCode) are taken from the openModeller source code.
               </doc>
               <param name="algorithmCode" 
                      fixed="SVM" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies the 
                     algorithm this algorithm parameter set is for.  To post an
                     algorithm parameter set for the Support Vector Machines 
                     algorithm, this must be set to "SVM".
                  </doc>
               </param>
               <param name="coef0" 
                      required="true" 
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="coef0">
                     The "coef0" query parameter specifies Coef0 in the kernel 
                     function (only for polynomial kernels).  Value must be 
                     decimal between negative infinity and positive infinity.
                  </doc>
               </param>
               <param name="cost" 
                      required="true" 
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="cost">
                     The "cost" query parameter specifies the cost to be used
                     (only for C-SVC types).  Value should be greater than or 
                     equal to 0.001.
                  </doc>
               </param>
               <param name="degree" 
                      required="true" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="degree">
                     The "degree" query parameter specifies the degree in the 
                     kernel function (only for polynomial kernels).  Value 
                     should be greater than or equal to 0.
                  </doc>
               </param>
               <param name="gamma" 
                      required="true" 
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="gamma">
                     The "gamma" query parameter specifies Gamma in the kernel
                     function (only for polynomial and radial basis kernels).  
                     When set to 0.0, the default value will actually be 1/k, 
                     where k is the number of layers.  Value should be a 
                     decimal between negative infinity and positive infinity.
                  </doc>
               </param>
               <param name="kerneltype" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="kerneltype">
                     The "kerneltype" query parameter specifies the type of 
                     kernel function to use.
                  </doc>
                  <option value="0">
                     <doc xml:lang="en" title="Linear Function">
                        Setting kerneltype to 0 tells the algorithm to use a 
                        linear kernel function: u' * v
                     </doc>
                  </option>
                  <option value="1">
                     <doc xml:lang="en" title="Polynomial Function">
                        Setting the kerneltype to 1 tells the algorithm to use
                        a polynomial kernel function: 
                        (gamma*u'*v + coef0) ^ degree
                     </doc>
                  </option>
                  <option value="2">
                     <doc xml:lang="en" title="Radial Function">
                        Setting the kerneltype to 2 tells the algorithm to use
                        a radial basis function: exp(-gamma * |u - v|^2)
                     </doc>
                  </option>
               </param>
               <param name="nu" 
                      required="true" 
                      style="query" 
                      type="xsd:decimal">
                  <doc xml:lang="en" title="nu">
                     The "nu" query parameter specifies the value of Nu (only 
                     for Nu-SVC and one-class SVM).  Value should be between  
                     0.001 and 1.0 (inclusive).
                  </doc>
               </param>
               <param name="numberofpseudoabsences" 
                      required="true"
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="numberofpseudoabsences">
                     The "numberofpseudoabsences" query parameter specifies the
                     number of pseudo-absences to be generated (only for C-SVC
                     and Nu-SVC when no absences have been provided).  When
                     absences are needed, a zero parameter will default to the
                     same number of presences.  Value should be greater than
                     or equal to 0.
                  </doc>
               </param>
               <param name="probabilisticoutput" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="probabilisticoutput">
                     The "probabilisticoutput" query parameter indicates if the 
                     output should be a probability instead of a binary 
                     response (only available for C-SVC and Nu-SVC).  Value 
                     should be 0 or 1.
                  </doc>
               </param>
               <param name="svmtype" 
                      required="true" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="svmtype">
                     The "svmtype" query parameter specifies the type of SVM 
                     that the algorithm should use.
                  </doc>
                  <option value="0">
                     <doc xml:lang="en" title="C-SVC">
                        Setting svmtype to 0 will use C-SVC
                     </doc>
                  </option>
                  <option value="1">
                     <doc xml:lang="en" title="Nu-SVC">
                        Setting svmtype to 1 will use Nu-SVC
                     </doc>
                  </option>
                  <option value="2">
                     <doc xml:lang="en" title="One-class SVM">
                        Setting svmtype to 2 will use one-class SVM
                     </doc>
                  </option>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postAlgoParamSetFromBody">
            <doc xml:lang="en" 
                 title="Post An Algorithm Parameters Set From Message Body">
               Calling this service with a POST request will attempt to post an
               algorithm parameter set from the body of a POST request.  The
               POST body should be an XML document.
            </doc>
            <request>
               <doc xml:lang="en" title="Algorithm Parameters Post Request">
                  The body of the request should be XML containing all 
                  necessary parameters for posting an algorithm parameter set.
               </doc>
               <representation mediaType="application/xml">
                  <doc xml:lang="en" title="XML request">
                     The XML body of the request should be a requestType 
                     element defined at: <xhtml:a 
                     href="http://lifemapper.org/schemas/serviceRequest.xsd">
                     http://lifemapper.org/schemas/serviceRequest.xsd
                     </xhtml:a>.  You can view a sample algorithm parameter
                     post request at: <xhtml:a 
                     href="/samples/sampleAlgoParamsRequest.xml">
                     http://lifemapper.org/samples/sampleAlgoParamsRequest.xml
                     </xhtml:a>.  The parameters element should contain all 
                     of the parameters required for the algorithm.  View the
                     documentation for posting an algorithm parameter set from
                     url parameters for the algorithm you are interested in to
                     see the required parameters.
                  </doc>
               </representation>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Post Response">
                  The algorithm parameters post service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/algoparams/count/{interface}">
         <doc xml:lang="en" title="Count Algorithm Parameters Sets Resource">
            The "algoparams" service with "count" specified allows you to count
            the number of algorithm parameter sets that can be returned for a 
            set of query parameters.  The response of this service will match 
            the "interface" parameter and may be an ATOM feed, a JSON object, 
            or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects counted will be owned by this user.  To count 
               generally available items the public userId, "lm2", should be 
               used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the count of 
               algorithm parameters should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will cause the 
                  count of algorithm parameters sets to be returned as an ATOM 
                  feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will cause the 
                  count of algorithm parameter sets to be returned as a JSON 
                  object.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will cause the count
                  of algorithm parameter sets to be returned as an XML 
                  document.
               </doc>
            </option>
         </param>
         <method name="GET" id="countAlgoParams">
            <doc xml:lang="en" title="Count Algorithm Parameters Sets">
               Calling this service with a GET request will count algorithm 
               parameter sets that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="Count Algorithm Parameters Sets Request">
                  A request to the algorithm parameter set counting service 
                  takes multiple optional query parameters.  You can use these
                  query parameters to narrow your results to what you are 
                  interested in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only 
                     algorithm parameter sets for that algorithm will be 
                     counted.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will count 
                        algorithm parameter sets for the Artificial Neural
                        Networks Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will count 
                        algorithm parameter sets for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will count 
                        algorithm parameter sets for the Bioclimatic Envelope
                        Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will count
                        algorithm parameter sets for the Climate Space Model 
                        (Broken Stick Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will count
                        algorithm parameter sets for the Genetic Algorithm for
                        Rule-set Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will count
                        algorithm parameter sets for the GARP Best Subsets
                        Algorithm (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will count
                        algorithm parameter sets for the Environmental Distance
                        Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will count
                        algorithm parameter sets for the Genetic Algorithm for
                        Rule-set Production Algorithm (GARP - openModeller 
                        implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will count
                        algorithm parameter sets for the GARP Best Subsets
                        Algorithm (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will count 
                        algorithm parameter sets for the Maximum Entropy
                        Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will count 
                        algorithm parameter sets for the Support Vector 
                        Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="paramsType" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Params Type">
                     The "paramsType" query parameter specifies what type of
                     algorithm parameter sets to count. Note that this is 
                     particularly useful for counting all available algorithms
                     by specifying that paramsType = "default".
                  </doc>
                  <option value="default">
                     <doc xml:lang="en" title="Default">
                        Setting paramsType to "default" will set the response 
                        to only count default algorithm parameter sets.
                     </doc>
                  </option>
                  <option value="unique">
                     <doc xml:lang="en" title="Unique">
                        Setting paramsType to "unique" will not limit the 
                        algorithm parameter sets counted.
                     </doc>
                  </option>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Count Algorithm Parameters Sets Response">
                  The algorithm parameters count service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/algoparams/{itemId}/{interface}">
         <doc xml:lang="en" title="Individual Algorithm Parameters Set Resource">
            The "algoparams" service with the algorithm parameter id (itemId)
            specified will return a specific algorithm parameter set.  The 
            interface parameter specifies how the algorithm parameter set will
            be returned.  Available options are an ATOM feed, a JSON object, or
            XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="itemId" 
                required="true" 
                style="template" 
                type="xsd:integer">
            <doc xml:lang="en" title="Item ID for Algorithm Parameters Sets">
               The itemId parameter should be set to the id number of the
               algorithm parameter set to be returned.  This number is returned
               when an algorithm parameter set is posted or it can be found by
               listing algorithm parameter sets and narrowing down the results
               via query parameters.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the algorithm
               parameter set should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will cause the
                  algorithm parameter set to be returned as an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will cause the 
                  algorithm parameter set to be returned as a JSON object.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will cause the 
                  algorithm parameter set to be returned as an XML document.
               </doc>
            </option>
         </param>
         
         <method name="GET" id="getAlgoParamSet">
            <doc xml:lang="en" 
                 title="Get An Algorithm Parameters Set">
               Calling this service with a GET request will return a specific
               algorithm parameter set whose id matches the itemId specified in
               the url.
            </doc>
            <request>
               <doc xml:lang="en" title="Algorithm Parameters Set Request">
                  A request to the get individual algorithm parameter set 
                  service does not take any additional query parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="Algorithm Parameters Set Response">
                  The get individual algorithm parameter set service response
                  can return an ATOM feed, JSON object, or XML document based
                  on the value of the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="404">
                  <doc xml:lang="en" title="Not Found">
                     If the item specified by the "itemId" template parameter
                     cannot be found, a HTTP 404 error (Not Found) will be 
                     returned.  The response will be an HTML document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/experiments/{interface}">
         <doc xml:lang="en" title="Experiments Resource">
            The "experiments" service (without a specific experiment id) allows
            you to post a new experiment or list available experiments.  The
            response of this service will match the "interface" parameter and
            may be an ATOM feed, a JSON object, or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               experiments should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON object.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listExperiments">
            <doc xml:lang="en" title="List Experiments">
               Calling this service with a GET request will return a list of
               experiments that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="List Experiments Request">
                  A request to the experiment listing service takes multiple
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="perPage" 
                      default="100" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Per Page">
                     The "perPage" query parameter specifies the number of  
                     results to return per page.  If this parameter is not 
                     specified, 100 results will be returned per page. The 
                     maximum number of results per page is 100.
                  </doc>
               </param>
               <param name="page" 
                      default="0" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Page">
                     The "page" query parameter specifies the number of the 
                     page of results to return.  Results will be paged based
                     on the perPage parameter.  Page number start with zero so 
                     the first time a result set is visited page=0 should be 
                     used.  The response will contain urls for the first, 
                     last, and (when applicable) previous and next pages of 
                     results.<xhtml:br />
                     Results returned will be the records: [page * perPage] to
                     [((page + 1) * perPage) -1].
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only 
                     experiments whose algorithm parameter set uses that 
                     algorithm will be returned.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will return 
                        experiments for the Artificial Neural Networks 
                        Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will return 
                        experiments for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will return 
                        experiments for the Bioclimatic Envelope Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will return
                        experiments for the Climate Space Model (Broken Stick 
                        Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will return
                        experiments for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will return
                        experiments for the GARP Best Subsets
                        Algorithm (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will return
                        experiments for the Environmental Distance Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will return
                        experiments for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - openModeller 
                        implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will return
                        experiments for the GARP Best Subsets Algorithm 
                        (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will return 
                        experiments for the Maximum Entropy Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will return 
                        experiments for the Support Vector Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="algorithmParametersId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Algorithm Parameters Id">
                     The "algorithmParametersId" query parameter specifies that
                     only experiments generated using that algorithm parameters
                     set will be returned.  This number should be the id number 
                     of the algorithm parameter set you would like to use.
                  </doc>
               </param>
               <param name="occurrenceSetId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Occurrence Set Id">
                     The "occurrenceSetId" query parameter specifies that only
                     experiments generated using the points from that 
                     occurrence set will be returned.  This number should be 
                     the id number of the occurrence set that you would like to
                     use.
                  </doc>
               </param>
               <param name="status" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Status">
                     The "status" query parameter limits the number of 
                     experiments to those that match that status.  The 
                     common status to use is 35 which represents a completed
                     model.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="List Experiments Response">
                  The experiments list service response can return an ATOM 
                  feed, JSON object, or XML document based on the value of the
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postExperimentFromUrl">
            <doc xml:lang="en" title="Post An Experiment From Url Parameters">
               Calling this service with a POST request will attempt to post an
               experiment from url query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="Post Experiment From Url Request">
                  A request to post an experiment from url parameters must 
                  include multiple query parameters.
               </doc>
               <param name="algorithmParametersId" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Algorithm Parameters Id">
                     The "algorithmParametersId" query parameter determines the 
                     algorithm parameter set to use for the experiment. This
                     parameter set will determine what algorithm is used to 
                     generate the model and what parameter values to use.
                  </doc>
               </param>
               <param name="occurrenceSetId" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Occurrence Set Id">
                     The "occurrenceSetId" query parameter determines the 
                     occurrence set to be used to provide points for the model.
                     This parameter is required if a species is not specified.
                  </doc>
               </param>
               <param name="modelScenario" 
                      required="true" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Model Scenario">
                     The "modelScenario" query parameter specifies what 
                     environmental scenario to use when generating the model. 
                     The value of this parameter should be the id number of the 
                     scenario to use.
                  </doc>
               </param>
               <param name="projectionScenario" 
                      repeating="true" 
                      required="true"
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Projection Scenario">
                     The "projectionScenario" query parameter specifies the 
                     scenario to use when generating a projection.  The value 
                     of the "projectionScenario" parameter should be the id 
                     number of the scenario to be used for a projection.
                     Please note that this scenario must be compatible with the
                     scenario specified by the "modelScenario" parameter.  To
                     determine what scenarios are compatible with the specified
                     model scenario, use the scenarios list service and set the
                     "matchingScenario" query parameter equal to the value used
                     for modelScenario.  For example, if Scenario 32 is used
                     for the model scenario, you would find the compatible 
                     scenarios at: <xhtml:a 
                     href="/services/lm2/scenarios/?matchingScenario=32">
                     http://lifemapper.org/services/lm2/scenarios/?matchingScenario=32.
                     </xhtml:a>
                     <xhtml:br /><xhtml:br />
                     The "projectionScenario" query parameter is repeatable,
                     meaning you can specify multiple projection scenarios by
                     repeating the parameter.  For example, you can specify 
                     that a projection should be created for scenario 1 and 
                     scenario 2 by using 
                     "&amp;projectionScenario=1&amp;projectionScenario=2".
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Post Experiment From Url Response">
                  The experiment post service response can be an ATOM feed, 
                  JSON object, or XML document based on the value of the 
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postExperimentFromBody">
            <doc xml:lang="en" title="Post An Experiment From Message Body">
               Calling this service with a POST request will attempt to post
               an experiment from the body of a POST request.  The POST body 
               should be an XML document.
            </doc>
            <request>
               <doc xml:lang="en" title="Experiment Post Request">
                  The body of the request should be XML containing all
                  necessary parameters for posting an experiment.
               </doc>
               <representation mediaType="application/xml">
                  <doc xml:lang="en" title="XML Request">
                     The XML body of the request should be a requestType 
                     element defined at: <xhtml:a 
                     href="http://lifemapper.org/schemas/serviceRequest.xsd">
                     http://lifemapper.org/schemas/serviceRequest.xsd
                     </xhtml:a>.  You can view a sample experiment post request 
                     at: <xhtml:a 
                     href="/samples/sampleExperimentRequest.xml">
                     http://lifemapper.org/samples/sampleExperimentRequest.xml
                     </xhtml:a>.  The parameters element should contain all 
                     of the parameters required for the experiment.
                  </doc>
               </representation>
            </request>
            <response>
               <doc xml:lang="en" title="Experiment Post Response">
                  The experiment post service response can return an ATOM feed,
                  JSON object, or XML document based on the value of the 
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/experiments/count/{interface}">
         <doc xml:lang="en" title="Count Experiments Resource">
            The "experiments" service (with count specified) allows you to 
            count available experiments.  The response of this service will 
            match the "interface" parameter and may be an ATOM  feed, a JSON 
            object, or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects counted will be owned by this user.  To get 
               generally available items the public userId, "lm2", should be 
               used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the count of 
               experiments should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON object.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="countExperiments">
            <doc xml:lang="en" title="Count Experiments">
               Calling this service with a GET request will return a count of
               experiments that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="Count Experiments Request">
                  A request to the experiment counting service takes multiple
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only 
                     experiments whose algorithm parameter set uses that 
                     algorithm will be counted.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will count 
                        experiments for the Artificial Neural Networks 
                        Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will count 
                        experiments for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will count 
                        experiments for the Bioclimatic Envelope Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will count
                        experiments for the Climate Space Model (Broken Stick 
                        Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will count
                        experiments for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will count
                        experiments for the GARP Best Subsets Algorithm 
                        (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will count
                        experiments for the Environmental Distance Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will count
                        experiments for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - openModeller 
                        implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will count
                        experiments for the GARP Best Subsets Algorithm 
                        (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will count 
                        experiments for the Maximum Entropy Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will count 
                        experiments for the Support Vector Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="algorithmParametersId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Algorithm Parameters Id">
                     The "algorithmParametersId" query parameter specifies that
                     only experiments generated using that algorithm parameters
                     set will be counted.  This number should be the id number 
                     of the algorithm parameter set you would like to use.
                  </doc>
               </param>
               <param name="occurrenceSetId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Occurrence Set Id">
                     The "occurrenceSetId" query parameter specifies that only
                     experiments generated using the points from that 
                     occurrence set will be counted.  This number should be 
                     the id number of the occurrence set that you would like to
                     use.
                  </doc>
               </param>
               <param name="status" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Status">
                     The "status" query parameter limits the number of 
                     experiments to those that match that status.  The 
                     common status to use is 35 which represents a completed
                     model.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Count Experiments Response">
                  The experiments count service response can return an ATOM 
                  feed, JSON object, or XML document based on the value of the
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>

      <resource path="services/{userId}/experiments/{itemId}/{interface}">
         <doc xml:lang="en" title="Individual Experiment Resource">
            The "experiments" service with the experiment id (itemId) specified
            will return a specific experiment.  The interface parameter
            specifies how the experiment will be returned.  Available options
            are an ATOM feed, a JSON object, a KML document, or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="itemId" 
                required="true" 
                style="template" 
                type="xsd:integer">
            <doc xml:lang="en" title="Item ID For Experiments">
               The itemId parameter should be set to the id number of the
               experiment to be returned.  This number is returned when an 
               experiment is posted or it can be found by listing experiments 
               and narrowing down the results via query parameters.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the experiment 
               should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="kml">
               <doc xml:lang="en" title="Kml Interface">
                  Setting the interface parameter to "kml" will set the 
                  response to return a KML document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="getExperiment">
            <doc xml:lang="en" title="Get An Experiment">
               Calling this service with a GET request will return a specific
               experiment whose id matches the itemId specified in the url.
            </doc>
            <request>
               <doc xml:lang="en" title="Get Experiment Request">
                  A request to the get individual experiment service does not
                  take any additional parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="Get Experiment Response">
                  The get individual experiment service response can return an
                  ATOM feed, JSON object, KML document, or XML document based
                  on the value of the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation 
                              mediaType="application/vnd.google-earth.kml+xml">
                  <doc xml:lang="en" title="KML Response">
                     If the interface template parameter is set to "kml" a KML
                     document will be returned.  The content-type of the KML
                     document is application/vnd.google-earth.kml+xml.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="404">
                  <doc xml:lang="en" title="Not Found">
                     If the item specified by the "itemId" template parameter
                     cannot be found, a HTTP 404 error (Not Found) will be 
                     returned.  The response will be an HTML document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/layers/{interface}">
         <doc xml:lang="en" title="Layers Resource">
            The "layers" service (without a specific layer id) allows you to 
            list available layers.  The response of this service will match the
            "interface" parameter and may be an ATOM feed, a JSON object, or
            xml.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               layers should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listLayers">
            <doc xml:lang="en" title="List Layers">
               Calling this service with a GET request will return a list of
               layers that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="List Layers Request">
                  A request to the layers listing service takes multiple 
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested 
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="perPage" 
                      default="100" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Per Page">
                     The "perPage" query parameter specifies the number of  
                     results to return per page.  If this parameter is not 
                     specified, 100 results will be returned per page. The 
                     maximum number of results per page is 100.
                  </doc>
               </param>
               <param name="page" 
                      default="0" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Page">
                     The "page" query parameter specifies the number of the 
                     page of results to return.  Results will be paged based
                     on the perPage parameter.  Page number start with zero so 
                     the first time a result set is visited page=0 should be 
                     used.  The response will contain urls for the first, 
                     last, and (when applicable) previous and next pages of 
                     results.<xhtml:br />
                     Results returned will be the records: [page * perPage] to
                     [((page + 1) * perPage) -1].
                  </doc>
               </param>
               <param name="scenarioId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Scenario Id">
                     The "scenarioId" query parameter specifies the scenario 
                     that all returned layers should belong to.  The value of 
                     this parameter should be the id of the scenario to return
                     layers for.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="List Layers Response">
                  The layers list service response can return an ATOM feed, 
                  JSON object, or XML document based on the value of the 
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         
         <method name="POST" id="postLayerFromBody">
            <doc xml:lang="en" title="Post Layer from Request Body">
               Calling this service with a POST request will attempt to post an
               environmental layer from encoded url parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="Post layer request">
                  A request to post an environment layer must include multiple
                  query parameters.
               </doc>
               <param name="name"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Name">
                     The "name" query parameter sets the name to be used for 
                     environment layer.
                  </doc>
               </param>
               <param name="title"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Title">
                     The "title" query parameter sets the title to be used for
                     the environment layer.  This will be displayed when the 
                     layer is returned in listing results.
                  </doc>
               </param>
               <param name="valUnits"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Value Units">
                     The "valUnits" query parameter indicates the units for the
                     value in each cell.  For example, if your layer contains
                     temperature data, this might be set to "degrees celsius".
                  </doc>
               </param>
               <param name="startDate"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Start Date">
                     The "startDate" query parameter specifies the start of the
                     date range that the layer values were measured.  The 
                     format of this parameter should be ISO 8601.  You can find
                     a reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="endDate"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer End Date">
                     The "endDate" query parameter specifies the end of the
                     date range that the layer values were measured.  The 
                     format of this parameter should be ISO 8601.  You can find
                     a reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="units"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Cell Units">
                     The "units" query parameter specifies the units used when
                     specifiying the size of each cell.  Common values are dd 
                     (for decimal degrees) or m (for meters).
                  </doc>
               </param>
               <param name="epsgcode"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer EPSG Code">
                     The "epsgcode" query parameter specifies the EPSG code of 
                     the projection performed on the raster.
                  </doc>
               </param>
               <param name="keyword" 
                      repeating="true" 
                      required="false"
                      style="query" 
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Keyword">
                     The "keyword" query parameter specifies a keyword to be 
                     associated with a scenario.  This is a repeatable 
                     parameter, meaning that you can specify multiple keywords 
                     for a scenario by appending another "keyword=" to the url.  
                     For example, to return scenarios that have both keywords 
                     'key1' and 'key2', you would use 
                     "&amp;keyword=key1&amp;keyword=key2".
                  </doc>
               </param>
               <param name="layerType"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Type">
                     The "layerType" query parameter is a text code 
                     indicating the type of environment layer this is.  This is
                     used to determine what other layers it matches up against.
                  </doc>
               </param>
               <param name="description"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Description">
                     The "description" query parameter is the description of 
                     environment layer data.  This can be used to provide 
                     additional explanation of the data.
                  </doc>
               </param>
               <representation mediaType="image/tiff">
                  <doc xml:lang="en" title="Layer Raster">
                     The body of the layer post request can (and should if not 
                     specified as a file) be the raw raster data for the layer.
                  </doc>
               </representation>
            </request>
            <response>
               <doc xml:lang="en" title="Post Environment Layer Response">
                  The layer post service response can return an ATOM feed, a
                  JSON object, or an XML document based on the value of the 
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>

      <resource path="services/{userId}/layers/count/{interface}">
         <doc xml:lang="en" title="Count Layers Resource">
            The "layers" service (without "count" specified) allows you to  
            count available layers.  The response of this service will match 
            the "interface" parameter and may be an ATOM feed, a JSON object, 
            or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects counted will be owned by this user and new
               items posted will belong to this user.  To count generally 
               available items the public userId, "lm2", should be used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the count of 
               layers should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="countLayers">
            <doc xml:lang="en" title="Count Layers">
               Calling this service with a GET request will return a count of
               layers that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="Count Layers Request">
                  A request to the layers counting service takes multiple 
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested 
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="scenarioId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Scenario Id">
                     The "scenarioId" query parameter specifies the scenario 
                     that all counted layers should belong to.  The value of 
                     this parameter should be the id of the scenario to return
                     layers for.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Count Layers Response">
                  The layers count service response can return an ATOM feed, 
                  JSON object, or XML document based on the value of the 
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/layers/{itemId}/{interface}">
         <doc xml:lang="en" title="Get Layer Resource">
            The "layers" service with the layer id (itemId) specified will 
            return a specific layer.  The interface parameter specifies how the
            layer will be returned.  Available options are an ATOM feed, a JSON
            object, a KML document, an image, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="itemId" 
                required="true" 
                style="template" 
                type="xsd:integer">
            <doc xml:lang="en" title="Item ID For Layer">
               The itemId parameter should be set to the id number of the
               layer to be returned.  This number can be found by listing 
               layers and narrowing down the results via query parameters.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the layer 
               should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="kml">
               <doc xml:lang="en" title="Kml Interface">
                  Setting the interface parameter to "kml" will set the 
                  response to return a KML document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="getLayer">
            <doc xml:lang="en" title="Get An Environmental Layer">
               Calling this service with a GET request will return a specific
               layer whose id matches the itemId specified in the url.
            </doc>
            <request>
               <doc xml:lang="en" title="Get Layer Request">
                  A request to the get individual layer service does not take 
                  any additional query parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="Get Layer Response">
                  The get individual layer service response can return an ATOM
                  feed, JSON object, KML document, image, or XML document based 
                  on the value of the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation 
                              mediaType="application/vnd.google-earth.kml+xml">
                  <doc xml:lang="en" title="KML Response">
                     If the interface template parameter is set to "kml" a KML
                     document will be returned.  The content-type of the KML
                     document is application/vnd.google-earth.kml+xml.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="404">
                  <doc xml:lang="en" title="Not Found">
                     If the item specified by the "itemId" template parameter
                     cannot be found, a HTTP 404 error (Not Found) will be 
                     returned.  The response will be an HTML document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/models/{interface}">
         <doc xml:lang="en" title="Models Resource">
            The "models" service (without a specific model id) allows you to
            list available models.  The response of this service will match the
            "interface" parameter and may be an ATOM feed, a JSON object, or 
            XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               models should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listModels">
            <doc xml:lang="en" title="List Models">
               Calling this service with a GET request will return a list of 
               models that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="List Models Request">
                  A request to the models listing service takes multiple 
                  optional query parameters.  You can use these query
                  parameters to narrow your results to what you are interested
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="perPage" 
                      default="100" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Per Page">
                     The "perPage" query parameter specifies the number of  
                     results to return per page.  If this parameter is not 
                     specified, 100 results will be returned per page. The 
                     maximum number of results per page is 100.
                  </doc>
               </param>
               <param name="page" 
                      default="0" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Page">
                     The "page" query parameter specifies the number of the 
                     page of results to return.  Results will be paged based
                     on the perPage parameter.  Page number start with zero so 
                     the first time a result set is visited page=0 should be 
                     used.  The response will contain urls for the first, 
                     last, and (when applicable) previous and next pages of 
                     results.<xhtml:br />
                     Results returned will be the records: [page * perPage] to
                     [((page + 1) * perPage) -1].
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only
                     models whose algorithm parameter set uses that algorithm 
                     will be returned.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will return 
                        models for the Artificial Neural Networks Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will return 
                        models for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will return 
                        models for the Bioclimatic Envelope Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will return
                        models for the Climate Space Model (Broken Stick 
                        Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will return
                        models for the Genetic Algorithm for
                        Rule-set Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will return
                        models for the GARP Best Subsets
                        Algorithm (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will return
                        models for the Environmental Distance Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will return
                        models for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - openModeller 
                        implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will return
                        models for the GARP Best Subsets Algorithm 
                        (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will return 
                        models for the Maximum Entropy Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will return 
                        models for the Support Vector Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="algorithmParametersId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Algorithm Parameters Id">
                     The "algorithmParametersId" query parameter specifies that
                     only models generated using that algorithm parameters
                     set will be returned.  This number should be the id number 
                     of the algorithm parameter set you would like to use.
                  </doc>
               </param>
               <param name="occurrenceSetId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Occurrence Set Id">
                     The "occurrenceSetId" query parameter specifies that only
                     models generated using the points from that occurrence set 
                     will be returned.  This number should be the id number of 
                     the occurrence set that you would like to use.
                  </doc>
               </param>
               <param name="status" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Status">
                     The "status" query parameter will limit the models 
                     returned to only those that have that status.  The common
                     status to use is 35 which represents a completed model.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="List Models Response">
                  The models list service response can return an ATOM feed, 
                  JSON object, or XML document based on the value of the
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>

      <resource path="services/{userId}/models/count/{interface}">
         <doc xml:lang="en" title="Count Models Resource">
            The "models" service (with count specified) allows you to count 
            available models.  The response of this service will match the 
            "interface" parameter and may be an ATOM  feed, a JSON object, or 
            XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects counted will be owned by this user.  To get 
               generally available items the public userId, "lm2", should be 
               used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the count of 
               models should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON object.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="countModels">
            <doc xml:lang="en" title="Count Models">
               Calling this service with a GET request will return a count of
               models that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="Count Models Request">
                  A request to the model counting service takes multiple
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only 
                     models whose algorithm parameter set uses that algorithm 
                     will be counted.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will count models  
                        for the Artificial Neural Networks Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will count 
                        models for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will count 
                        models for the Bioclimatic Envelope Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will count models
                        for the Climate Space Model (Broken Stick 
                        Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will count
                        models for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will count
                        models for the GARP Best Subsets Algorithm 
                        (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will count 
                        models for the Environmental Distance Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will count models 
                        for the Genetic Algorithm for Rule-set Production 
                        Algorithm (GARP - openModeller implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will count 
                        models for the GARP Best Subsets Algorithm 
                        (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will count models
                        for the Maximum Entropy Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will count models 
                        for the Support Vector Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="algorithmParametersId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Algorithm Parameters Id">
                     The "algorithmParametersId" query parameter specifies that
                     only models generated using that algorithm parameters set 
                     will be counted.  This number should be the id number of  
                     the algorithm parameter set you would like to use.
                  </doc>
               </param>
               <param name="occurrenceSetId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Occurrence Set Id">
                     The "occurrenceSetId" query parameter specifies that only
                     models generated using the points from that occurrence set 
                     will be counted.  This number should be the id number of 
                     the occurrence set that you would like to use.
                  </doc>
               </param>
               <param name="status" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Status">
                     The "status" query parameter limits the number of models 
                     to those that match that status.  The common status to use 
                     is 35 which represents a completed model.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Count Models Response">
                  The models count service response can return an ATOM feed, 
                  JSON object, or XML document based on the value of the
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>

      <resource path="services/{userId}/models/{itemId}/{interface}">
         <doc xml:lang="en" title="Get A Model Resource">
            The "models" service with the model id (itemId) specified will 
            return a specific model.  The interface parameter specifies how the
            model will be returned.  Available options are an ATOM feed, a JSON
            object, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="itemId" 
                required="true" 
                style="template" 
                type="xsd:integer">
            <doc xml:lang="en" title="Item ID For Algorithm Parameter Sets">
               The itemId parameter should be set to the id number of the model 
               to be returned.  This number is returned when an experiment is 
               posted (experiment id is the same as model id) or it can be 
               found by listing models and narrowing down the results via query 
               parameters.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the model 
               should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="raw">
               <doc xml:lang="en" title="Raw Interface">
                  Setting the interface parameter to "raw" will set the 
                  response to return the raw XML produced by openModeller.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="getModel">
            <doc xml:lang="en" title="Get A Model">
               Calling this service with a GET request will return a specific
               model whose id matches the itemId specified in the url.
            </doc>
            <request>
               <doc xml:lang="en" title="Get Model Request">
                  A request to the get individual model service does not take
                  any additional query parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="Get Model Response">
                  The get individual model service response can return an ATOM
                  feed, a JSON object, an XML document generated by 
                  openModeller, or a Lifemapper XML document.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation mediaType="application/xml">
                  <doc xml:lang="en" title="RAW XML Response">
                     If the interface template parameter is set to "raw" a 
                     XML document generated by openModeller is returned.  The
                     content-type of the response is application/xml.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="404">
                  <doc xml:lang="en" title="Not Found">
                     If the item specified by the "itemId" template parameter
                     cannot be found, a HTTP 404 error (Not Found) will be 
                     returned.  The response will be an HTML document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>

      <resource path="services/{userId}/occurrences/{interface}">
         <doc xml:lang="en" title="Occurrences Resource">
            The "occurrences" service (without a specific occurrence set id) 
            allows you to list available occurrence sets.  The response of this
            service will match the "interface" template parameter and may be an
            ATOM feed, a JSON object, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               occurrence sets should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listOccurrences">
            <doc xml:lang="en" title="List Occurrence Sets">
               Calling this service with a GET request will return a list of
               occurrence sets that match the specified query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="List Occurrences Request">
                  A request to the occurrences listing service takes multiple 
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="perPage" 
                      default="100" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Per Page">
                     The "perPage" query parameter specifies the number of  
                     results to return per page.  If this parameter is not 
                     specified, 100 results will be returned per page. The 
                     maximum number of results per page is 100.
                  </doc>
               </param>
               <param name="page" 
                      default="0" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Page">
                     The "page" query parameter specifies the number of the 
                     page of results to return.  Results will be paged based
                     on the perPage parameter.  Page number start with zero so 
                     the first time a result set is visited page=0 should be 
                     used.  The response will contain urls for the first, 
                     last, and (when applicable) previous and next pages of 
                     results.<xhtml:br />
                     Results returned will be the records: [page * perPage] to
                     [((page + 1) * perPage) -1].
                  </doc>
               </param>
               <param name="displayName" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Display Name">
                     The "displayName" query parameter specifies that only 
                     occurrence sets with that display name (usually species 
                     name) should be returned.
                  </doc>
               </param>
               <param name="minimumNumberOfPoints" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Minimum Number Of Points">
                     The "minimumNumberOfPoints" query parameter specifies that
                     only occurrence sets with at least this many points should
                     be returned.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="List Occurrences Response">
                  The occurrences list service response can return an ATOM
                  feed, a JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         <method name="POST" id="postOccurrenceSetCSV">
            <doc xml:lang="en" 
                 title="Post Occurrences From Message Body (CSV)">
               Calling this service with a POST request will attempt to post an
               occurrence set from the body of a POST request.  The POST body
               should be in CSV format.
            </doc>
            <request>
               <doc xml:lang="en" title="Post occurrences From CSV request">
                  The body of the request should be CSV containing all of the
                  information for each occurrence point in the set. 
               </doc>
               <param name="displayName" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Display Name">
                     The "displayName" query parameter sets the display name 
                     to be used for the occurrence set.
                  </doc>
               </param>
               <param name="pointsType"
                      fixed="csv"  
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Points Type">
                     The "pointsType" query parameter specifies the type of the
                     points being uploaded.  To post an occurrence set from CSV 
                     points, this must be set to "csv".
                  </doc>
               </param>
               <param name="name"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Name">
                     The "name" query parameter specifies the layer name for 
                     the occurrence set being uploaded.  Layer name must be
                     unique for a user.
                  </doc>
               </param>
               <representation mediaType="text/csv">
                  <doc xml:lang="en" title="CSV Request">
                     Each row in the CSV body of the request represents a 
                     point.  The order of columns should be: Id, Longitude, 
                     Latitude.  A sample request can be found at: <xhtml:a 
                     href="http://lifemapper.org/samples/samplePoints.csv">
                     http://lifemapper.org/samples/samplePoints.csv</xhtml:a>.
                     It is <xhtml:b>strongly</xhtml:b> recommended that you 
                     include a header row with your CSV request.  If it is 
                     omitted, then a very basic request is assumed (localId, 
                     longitude, latitude).  A sample of the minimum required
                     request can be found at: <xhtml:a 
                     href="/samples/samplePointsMin.csv">
                     http://lifemapper.org/samples/samplePointsMin.csv
                     </xhtml:a>.
                  </doc>
               </representation>
            </request>
            <response>
               <doc xml:lang="en" title="Post Occurrences From CSV Response">
                  The occurrence set post service response can return an ATOM
                  feed, JSON object, or XML document based on the value of the
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         <method name="POST" id="postOccurrenceSetShapefile">
            <doc xml:lang="en" 
                 title="Post Occurrences From Message Body (Shapefile)">
               Calling this service with a POST request will attempt to post an
               occurrence set from the body of a POST request.  The POST body
               should be a zip file containing shapefiles.
            </doc>
            <request>
               <doc xml:lang="en" title="Post occurrences From Shapefile request">
                  The body of the request should be a zipped shapefile 
                  containing all of the information for each occurrence point 
                  in the set. 
               </doc>
               <param name="displayName" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Display Name">
                     The "displayName" query parameter sets the display name 
                     to be used for the occurrence set.
                  </doc>
               </param>
               <param name="pointsType"
                      fixed="shapefile"  
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Points Type">
                     The "pointsType" query parameter specifies the type of the
                     points being uploaded.  To post an occurrence set from a 
                     shapefile, this must be set to "shapefile".
                  </doc>
               </param>
               <param name="name"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Name">
                     The "name" query parameter specifies the layer name for 
                     the occurrence set being uploaded.  Layer name must be
                     unique for a user.
                  </doc>
               </param>
               <representation mediaType="application/x-gzip">
                  <doc xml:lang="en" title="Shapefile Request">
                     Each of the files composing the shapefile should be 
                     contained in a zip file.  Each point should have the 
                     following attributes: <xhtml:br />
                     <xhtml:ul>
                        <xhtml:li><xhtml:b>canonical</xhtml:b> - The canonical name of this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>catnum</xhtml:b> - The catalog number of this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>collcode</xhtml:b> - The collection code</xhtml:li>
                        <xhtml:li><xhtml:b>colldate</xhtml:b> - The date this occurrence was collected (modified julian day)</xhtml:li>
                        <xhtml:li><xhtml:b>coll</xhtml:b> - The collector for this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>guid</xhtml:b> - Guid for this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>instcode</xhtml:b> - This institution code providing this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>latitude</xhtml:b> - The latitude of this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>localid</xhtml:b> - The local id of this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>longitude</xhtml:b> - The longitude of this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>modtime</xhtml:b> - The last time this occurrence was modified (modified julian day)</xhtml:li>
                        <xhtml:li><xhtml:b>provider</xhtml:b> - The name of the provider for this occurrence</xhtml:li>
                        <xhtml:li><xhtml:b>resource</xhtml:b> - The name of the resource for this occurrence</xhtml:li>
                     </xhtml:ul>
                  </doc>
               </representation>
            </request>
            <response>
               <doc xml:lang="en" title="Post Occurrences From Shapefile Response">
                  The occurrence set post service response can return an ATOM
                  feed, JSON object, or XML document based on the value of the
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         <method name="POST" id="postOccurrenceSetXML">
            <doc xml:lang="en" 
                 title="Post Occurrences From Message Body (XML)">
               Calling this service with a POST request will attempt to post an
               occurrence set from the body of a POST request.  The POST body
               should be in XML format.
            </doc>
            <request>
               <doc xml:lang="en" title="Post Occurrences From Xml Request">
                  The body of the request should be XML containing all 
                  necessary parameters for posting an occurrence set.
               </doc>
               <param name="pointsType" 
                      fixed="xml" 
                      required="true" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Points Type">
                     The "pointsType" query parameter specifies the type of the
                     points being uploaded.  To post an occurrence set from 
                     XML, this must be set to "xml". 
                  </doc>
               </param>
               <param name="name"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Layer Name">
                     The "name" query parameter specifies the layer name for 
                     the occurrence set being uploaded.  Layer name must be
                     unique for a user.
                  </doc>
               </param>
               <representation mediaType="application/xml">
                  <doc xml:lang="en" title="XML Request">
                     The XML body of the request should be a requestType 
                     element defined at: <xhtml:a 
                     href="http://lifemapper.org/schemas/serviceRequest.xsd">
                     http://lifemapper.org/schemas/serviceRequest.xsd
                     </xhtml:a>.  You can view a sample occurrence set post 
                     request at: <xhtml:a 
                     href="/samples/sampleOccurrencesRequest.xml">
                     http://lifemapper.org/samples/sampleOccurrencesRequest.xml
                     </xhtml:a>.
                  </doc>
               </representation>
            </request>
            <response>
               <doc xml:lang="en" title="Post Occurrences From XML Response">
                  The occurrence set post service response can return an ATOM
                  feed, JSON object, or XML document based on the value of the
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/occurrences/count/{interface}">
         <doc xml:lang="en" title="Count Occurrences Resource">
            The "occurrences" service (with count specified) allows you to 
            count available occurrence sets.  The response of this service will
            match the "interface" template parameter and may be an ATOM feed, a 
            JSON object, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects counted will be owned by this user.  To count 
               generally available items the public userId, "lm2", should be 
               used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the count of 
               occurrence sets should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="countOccurrences">
            <doc xml:lang="en" title="Count Occurrence Sets">
               Calling this service with a GET request will return a count of
               occurrence sets that match the specified query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="Count Occurrences Request">
                  A request to the occurrences counting service takes multiple 
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="displayName" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Display Name">
                     The "displayName" query parameter specifies that only 
                     occurrence sets with that display name (usually species 
                     name) should be counted.
                  </doc>
               </param>
               <param name="minimumNumberOfPoints" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Minimum Number Of Points">
                     The "minimumNumberOfPoints" query parameter specifies that
                     only occurrence sets with at least this many points should
                     be counted.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Count Occurrence Sets Response">
                  The occurrences count service response can return an ATOM
                  feed, a JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>

      <resource path="services/{userId}/occurrences/{itemId}/{interface}">
         <doc xml:lang="en" title="Get An Occurrence Set Resource">
            The "occurrences" service with the occurrence set id (itemId) 
            specified will return a specific occurrence set.  The interface
            parameter specifies how the occurrence set will be returned.  
            Available options are an ATOM feed, comma-separated values, a JSON
            object, a KML document, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="itemId" 
                required="true" 
                style="template" 
                type="xsd:integer">
            <doc xml:lang="en" title="Item ID For Occurrence Sets">
               The itemId parameter should be set to the id number of the
               occurrence set to be returned.  This number is returned when an 
               occurrence set is posted or it can be found by listing 
               occurrence sets and narrowing down the results via query 
               parameters.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the occurrence
               set should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="csv">
               <doc xml:lang="en" title="CSV Interface">
                  Setting the interface parameter to "csv" will set the
                  response to return comma-separated values.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="kml">
               <doc xml:lang="en" title="Kml Interface">
                  Setting the interface parameter to "kml" will set the 
                  response to return a KML document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="getOccurrenceSet">
            <doc xml:lang="en" title="Get An Occurrence Set">
               Calling this service with a GET request will return a specific
               occurrence set whose id matches the itemId specified in the url.
            </doc>
            <request>
               <doc xml:lang="en" title="Get Occurrence Set Request">
                  Getting an occurrence set for any interface
                  does not require additional query parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="Get Occurrence Set Response">
                  The get individual occurrence set service response can return
                  an ATOM feed, comma-separated values, a JSON object, a KML
                  document, an image, or XML document based on the value of the
                  interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="text/csv">
                  <doc xml:lang="en" title="CSV Response">
                     If the interface template parameter is set to "csv" 
                     comma-separated values will be returned.  The content-type
                     of the CSV response is text/csv.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation mediaType="application/vnd.google-earth.kml+xml">
                  <doc xml:lang="en" title="KML Response">
                     If the interface template parameter is set to "kml" a KML
                     document will be returned.  The content-type of the KML
                     document is application/vnd.google-earth.kml+xml.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="404">
                  <doc xml:lang="en" title="Not Found">
                     If the item specified by the "itemId" template parameter
                     cannot be found, a HTTP 404 error (Not Found) will be 
                     returned.  The response will be an HTML document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/projections/{interface}">
         <doc xml:lang="en" title="Projections Resource">
            The "projections" service (without a specific projection id) allows
            you to list available projections.  The response of this service
            will match the "interface" template parameter and may be an ATOM 
            feed, a JSON object, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               projections should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listProjections">
            <doc xml:lang="en" title="List Projections">
               Calling this service with a GET request will return a list of
               projections that match the specified query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="List Projections Request">
                  A request to the projections listing service takes multiple
                  query parameters.  You can use these query parameters to 
                  narrow your results to what you are interested in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="perPage" 
                      default="100" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Per Page">
                     The "perPage" query parameter specifies the number of  
                     results to return per page.  If this parameter is not 
                     specified, 100 results will be returned per page. The 
                     maximum number of results per page is 100.
                  </doc>
               </param>
               <param name="page" 
                      default="0" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Page">
                     The "page" query parameter specifies the number of the 
                     page of results to return.  Results will be paged based
                     on the perPage parameter.  Page number start with zero so 
                     the first time a result set is visited page=0 should be 
                     used.  The response will contain urls for the first, 
                     last, and (when applicable) previous and next pages of 
                     results.<xhtml:br />
                     Results returned will be the records: [page * perPage] to
                     [((page + 1) * perPage) -1].
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only 
                     projections generated from a model whose algorithm 
                     parameter sets uses that algorithm will be returned.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will return 
                        projections for the Artificial Neural Networks 
                        Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will return 
                        projections for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will return 
                        projections for the Bioclimatic Envelope Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will return
                        projections for the Climate Space Model (Broken Stick 
                        Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will return
                        projections for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will return
                        projections for the GARP Best Subsets Algorithm 
                        (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will return
                        projections for the Environmental Distance Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will return
                        projections for the Genetic Algorithm for
                        Rule-set Production Algorithm (GARP - openModeller 
                        implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will return
                        projections for the GARP Best Subsets
                        Algorithm (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will return 
                        projections for the Maximum Entropy Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will return 
                        projections for the Support Vector Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="algorithmParametersId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Algorithm Parameters Id">
                     The "algorithmParametersId" query parameter specifies that
                     only projections generated from models using that 
                     algorithm parameters set will be returned.  This number 
                     should be the id number of the algorithm parameter set you 
                     would like to use.
                  </doc>
               </param>
               <param name="modelId" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Model Id">
                     The "modelId" query parameter specifies that only 
                     projections generated from that model should be returned.  
                     This number should be the id number of the model you would 
                     like to use.
                  </doc>
               </param>
               <param name="occurrenceSetId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Occurrence Set Id">
                     The "occurrenceSetId" query parameter specifies that only 
                     projections generated from models using the points from 
                     that occurrence set will be returned.  This number should 
                     be the id number of the occurrence set that you would like 
                     to use.
                  </doc>
               </param>
               <param name="status" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Status">
                     The "status" query parameter will limit the projections to 
                     those that match that status.  The common number to use is 
                     35, which represents a completed projection. 
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="List Projections Response">
                  The projections list service response can return an ATOM 
                  feed, a JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/projections/count/{interface}">
         <doc xml:lang="en" title="Count Projections Resource">
            The "projections" service (with count specified id) allows you to 
            count available projections.  The response of this service
            will match the "interface" template parameter and may be an ATOM 
            feed, a JSON object, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects counted will be owned by this user.  To count 
               generally available items the public userId, "lm2", should be 
               used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the count of 
               projections should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="countProjections">
            <doc xml:lang="en" title="Count Projections">
               Calling this service with a GET request will return a count of
               projections that match the specified query parameters.
            </doc>
            <request>
               <doc xml:lang="en" title="List Projections Request">
                  A request to the projections counting service takes multiple
                  query parameters.  You can use these query parameters to 
                  narrow your results to what you are interested in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="algorithmCode" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Algorithm Code">
                     The "algorithmCode" query parameter specifies that only 
                     projections generated from a model whose algorithm 
                     parameter sets uses that algorithm will be counted.
                  </doc>
                  <option value="ANN">
                     <doc xml:lang="en" 
                          title="ANN - Artificial Neural Networks">
                        Setting algorithmCode equal to ANN will count  
                        projections for the Artificial Neural Networks 
                        Algorithm.
                     </doc>
                  </option>
                  <option value="AQUAMAPS">
                     <doc xml:lang="en" title="AQUAMAPS - Aquamaps">
                        Setting algorithmCode equal to AQUAMAPS will count
                        projections for the Aquamaps Algorithm.
                     </doc>
                  </option>
                  <option value="BIOCLIM">
                     <doc xml:lang="en" title="BIOCLIM - Bioclimatic Envelope">
                        Setting algorithmCode equal to BIOCLIM will count 
                        projections for the Bioclimatic Envelope Algorithm.
                     </doc>
                  </option>
                  <option value="CSMBS">
                     <doc xml:lang="en"
                          title="CSMBS - Climate Space Model: Broken Stick Implementation">
                        Setting algorithmCode equal to CSMBS will count
                        projections for the Climate Space Model (Broken Stick 
                        Implementation) Algorithm.
                     </doc>
                  </option>
                  <option value="DG_GARP">
                     <doc xml:lang="en" title="DG_GARP - Desktop GARP">
                        Setting algorithmCode equal to DG_GARP will count
                        projections for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - DesktopGARP 
                        implementation).
                     </doc>
                  </option>
                  <option value="DG_GARP_BS">
                     <doc xml:lang="en" 
                          title="DG_GARP_BS - Desktop GARP Best Subsets">
                        Setting algorithmCode equal to DG_GARP_BS will count
                        projections for the GARP Best Subsets Algorithm 
                        (DesktopGARP implementation).
                     </doc>
                  </option>
                  <option value="ENVDIST">
                     <doc xml:lang="en" 
                          title="ENVDIST - Environmental Distance">
                        Setting algorithmCode equal to ENVDIST will count
                        projections for the Environmental Distance Algorithm.
                     </doc>
                  </option>
                  <option value="GARP">
                     <doc xml:lang="en" title="GARP - openModeller GARP">
                        Setting algorithmCode equal to GARP will count
                        projections for the Genetic Algorithm for Rule-set 
                        Production Algorithm (GARP - openModeller 
                        implementation).
                     </doc>
                  </option>
                  <option value="GARP_BS">
                     <doc xml:lang="en"
                          title="GARP_BS - openModeller GARP Best Subsets">
                        Setting algorithmCode equal to GARP_BS will count
                        projections for the GARP Best Subsets Algorithm 
                        (openModeller implementation).
                     </doc>
                  </option>
                  <option value="MAXENT">
                     <doc xml:lang="en" title="MAXENT - Maximum Entropy">
                        Setting algorithmCode equal to MAXENT will count 
                        projections for the Maximum Entropy Algorithm.
                     </doc>
                  </option>
                  <option value="SVM">
                     <doc xml:lang="en" title="SVM - Support Vector Machines">
                        Setting algorithmCode equal to SVM will count 
                        projections for the Support Vector Machines Algorithm.
                     </doc>
                  </option>
               </param>
               <param name="algorithmParametersId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Algorithm Parameters Id">
                     The "algorithmParametersId" query parameter specifies that
                     only projections generated from models using that 
                     algorithm parameters set will be counted.  This number 
                     should be the id number of the algorithm parameter set you 
                     would like to use.
                  </doc>
               </param>
               <param name="modelId" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Model Id">
                     The "modelId" query parameter specifies that only 
                     projections generated from that model should be counted.  
                     This number should be the id number of the model you would 
                     like to use.
                  </doc>
               </param>
               <param name="occurrenceSetId" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Occurrence Set Id">
                     The "occurrenceSetId" query parameter specifies that only 
                     projections generated from models using the points from 
                     that occurrence set will be counted.  This number should 
                     be the id number of the occurrence set that you would like 
                     to use.
                  </doc>
               </param>
               <param name="status" 
                      required="false" 
                      style="query" 
                      type="xsd:integer">
                  <doc xml:lang="en" title="Status">
                     The "status" query parameter will limit the projections to 
                     those that match that status.  The common number to use is 
                     35, which represents a completed projection. 
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Count Projections Response">
                  The projections count service response can return an ATOM 
                  feed, a JSON object, or XML document based on the value of 
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/projections/{itemId}/{interface}">
         <doc xml:lang="en" title="Get A Projection Resource">
            The "projections" service with the projection id (itemId) specified
            will return a specific projection.  The interface parameter 
            specifies how the projection will be returned.  Available options 
            are an ATOM feed, a JSON object, a KML document, or an XML 
            document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="itemId" 
                required="true" 
                style="template" 
                type="xsd:integer">
            <doc xml:lang="en" title="Item ID For Projections">
               The itemId parameter should be set to the id number of the
               projection to be returned.  This number can be found by viewing
               an experiment and noting the projections it contains or it can
               be found by listing projections and narrowing down the results
               via query parameters.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the projection 
               should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="kml">
               <doc xml:lang="en" title="Kml Interface">
                  Setting the interface parameter to "kml" will set the 
                  response to return a KML document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="getProjection">
            <doc xml:lang="en" title="Get A Projection">
               Calling this service with a GET request will return a specific
               projection whose id matches the itemId specified in the url.
            </doc>
            <request>
               <doc xml:lang="en" title="Get Projection Request">
                  The get an individual projection service does not 
                  take any query parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="Get Projection Response">
                  The get individual projection service response can return an 
                  ATOM, JSON object, KML document, image, or XML document 
                  based on the value of the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation 
                              mediaType="application/vnd.google-earth.kml+xml">
                  <doc xml:lang="en" title="KML Response">
                     If the interface template parameter is set to "kml" a KML
                     document will be returned.  The content-type of the KML
                     document is application/vnd.google-earth.kml+xml.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="404">
                  <doc xml:lang="en" title="Not Found">
                     If the item specified by the "itemId" template parameter
                     cannot be found, a HTTP 404 error (Not Found) will be 
                     returned.  The response will be an HTML document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/scenarios/{interface}">
         <doc xml:lang="en" title="Scenarios Resource">
            The "scenarios" service (without a specific scenario id) allows you
            to list available scenarios.  The response of this service will 
            match the "interface" template parameter and may be an ATOM feed, 
            a JSON object, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the list of 
               scenarios should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="listScenarios">
            <doc xml:lang="en" title="List Scenarios">
               Calling this service with a GET request will return a list of
               scenarios that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="List Scenarios Request">
                  A request to the scenarios listing service takes multiple
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested 
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be returned.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="perPage" 
                      default="100" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Per Page">
                     The "perPage" query parameter specifies the number of  
                     results to return per page.  If this parameter is not 
                     specified, 100 results will be returned per page. The 
                     maximum number of results per page is 100.
                  </doc>
               </param>
               <param name="page" 
                      default="0" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Page">
                     The "page" query parameter specifies the number of the 
                     page of results to return.  Results will be paged based
                     on the perPage parameter.  Page number start with zero so 
                     the first time a result set is visited page=0 should be 
                     used.  The response will contain urls for the first, 
                     last, and (when applicable) previous and next pages of 
                     results.<xhtml:br />
                     Results returned will be the records: [page * perPage] to
                     [((page + 1) * perPage) -1].
                  </doc>
               </param>
               <param name="keyword" 
                      repeating="true" 
                      required="false"
                      style="query" 
                      type="xsd:string">
                  <doc xml:lang="en" title="Keyword">
                     The "keyword" query parameter specifies that only 
                     scenarios that have that keyword will be returned.  This 
                     is a repeatable parameter, meaning that you can specify 
                     multiple keywords that a scenario must contain by 
                     appending another "keyword=" to the url.  For example, to 
                     return scenarios that have both keywords 'key1' and 
                     'key2', you would use 
                     "&amp;keyword=key1&amp;keyword=key2".
                  </doc>
               </param>
               <param name="matchingScenario" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Matching Scenario">
                     The "matchingScenario" query parameter will limit the  
                     scenarios returned to only those that are compatible with  
                     this scenario.  This is especially useful when determining 
                     what are valid projection scenarios for a model scenario. 
                     For example, if you wished to use Scenario 32 as the model 
                     scenario, the url <xhtml:a
                     href="/services/lm2/scenarios/?matchingScenario=32">
                     http://lifemapper.org/services/lm2/scenarios/?matchingScenario=32
                     </xhtml:a> would return scenarios that could be used for 
                     projections.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="List Scenarios Response">
                  The scenarios list service response can return an ATOM feed,
                  JSON object, or XML document based on the value of the 
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
         <method name="POST" id="postScenarioFromBody">
         	<doc xml:lang="EN" title="Post a Scenario from Message Body">
         	  Calling this service with a POST request will attempt to post a
         	  climate scenario from the XML contained in the body of the 
         	  request.
         	</doc>
         	<request>
         	  <doc xml:lang="en" title="Post scenario request">
         	     The body of the POST request should include all of the 
         	     parameters necessary to post a scenario in XML.
         	  </doc>
               <representation mediaType="application/xml">
                  <doc xml:lang="en" title="XML Request">
                     The XML body of the request should be a requestType 
                     element defined at: <xhtml:a 
                     href="http://lifemapper.org/schemas/serviceRequest.xsd">
                     http://lifemapper.org/schemas/serviceRequest.xsd
                     </xhtml:a>.  The parameters element should contain all 
                     of the parameters required for the experiment.
                  </doc>
               </representation>
         	</request>
         </method>

         <method name="POST" id="postScenarioFromUrlParameters">
            <doc xml:lang="en" title="Post a Scenario from Url Parameters">
               Calling this service with a POST request will attempt to post a
               climate scenario from encoded url parameters.
            </doc>
         
            <request>
               <doc xml:lang="en" title="Post scenario request">
                  A request to post a climate scenario must include multiple
                  query parameters.
               </doc>
               <param name="code"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Code">
                     The "code" query parameter sets the code to be used for 
                     the climate scenario.
                  </doc>
               </param>
               <param name="title"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Title">
                     The "title" query parameter sets the title to be used for
                     the climate scenario.  This will be displayed when the 
                     layer is returned in listing results.
                  </doc>
               </param>
               <param name="author"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Author">
                     The "author" query parameter indicates the author of this 
                     climate scenario.
                  </doc>
               </param>
               <param name="startDate"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Start Date">
                     The "startDate" query parameter specifies the start of the
                     date range that the scenario's climate layer values were 
                     measured.  The format of this parameter should be ISO 
                     8601.  You can find a reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="endDate"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario End Date">
                     The "endDate" query parameter specifies the end of the
                     date range that the scenario's climate layer values were 
                     measured.  The format of this parameter should be ISO 
                     8601.  You can find a reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="units"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Cell Units">
                     The "units" query parameter specifies the units used when
                     specifiying the size of each cell.  Common values are dd 
                     (for decimal degrees) or m (for meters).
                  </doc>
               </param>
               <param name="epsgcode"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario EPSG Code">
                     The "epsgcode" query parameter specifies the EPSG code of 
                     the projection performed on each raster.
                  </doc>
               </param>
               <param name="keyword" 
                      repeating="true" 
                      required="false"
                      style="query" 
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Keyword">
                     The "keyword" query parameter specifies a keyword to be 
                     associated with a scenario.  This is a repeatable 
                     parameter, meaning that you can specify multiple keywords 
                     for a scenario by appending another "keyword=" to the url.  
                     For example, to return scenarios that have both keywords 
                     'key1' and 'key2', you would use 
                     "&amp;keyword=key1&amp;keyword=key2".
                  </doc>
               </param>
               <param name="description"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Description">
                     The "description" query parameter is the description of 
                     the climate scenario.  This can be used to provide 
                     additional explanation of the data.
                  </doc>
               </param>
               <param name="resolution"
                      required="false"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Resolution">
                     The "resolution" query parameter sets the resolution for
                     the climate scenario.
                  </doc>
               </param>
               <param name="layer"
                      repeating="true"
                      required="true"
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Scenario Layer Id">
                     The "layer" query parameter specifies the id number of a
                     layer to be included in the climate scenario.  This 
                     parameter is repeatable, so many environment layers can be
                     specified.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Post Climate Scenario Response">
                  The scenario post service response can return an ATOM feed, a
                  JSON object, or an XML document based on the value of the 
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="400">
                  <doc xml:lang="en" title="Bad Request">
                     If the post request does not include all of the required
                     parameters, or if any of the parameters are out of range,
                     a HTTP 400 error (Bad Request) will be returned.  The 
                     error document will be returned as an HTML page.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/scenarios/count/{interface}">
         <doc xml:lang="en" title="Count Scenarios Resource">
            The "scenarios" service (with count specified) allows you to count
            available scenarios.  The response of this service will match the  
            "interface" template parameter and may be an ATOM feed, a JSON 
            object, or an XML document.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects counted will be owned by this user.  To get 
               generally available items the public userId, "lm2", should be 
               used.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the count of 
               scenarios should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="countScenarios">
            <doc xml:lang="en" title="Count Scenarios">
               Calling this service with a GET request will return a count of
               scenarios that match the query parameters you specify.
            </doc>
            <request>
               <doc xml:lang="en" title="Count Scenarios Request">
                  A request to the scenarios counting service takes multiple
                  optional query parameters.  You can use these query 
                  parameters to narrow your results to what you are interested 
                  in.
               </doc>
               <param name="afterTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="After Time">
                     The "afterTime" query parameter specifies that only items
                     modified after this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="beforeTime" 
                      required="false" 
                      style="query"
                      type="xsd:string">
                  <doc xml:lang="en" title="Before Time">
                     The "beforeTime" query parameter specifies that only items
                     modified before this time should be counted.  The format 
                     of this parameter should be ISO 8601.  You can find a 
                     reference at <xhtml:a 
                     href="http://www.w3.org/TR/NOTE-datetime">
                     http://www.w3.org/TR/NOTE-datetime</xhtml:a>.  The current
                     versions accepted are complete date (YYYY-MM-DD) and 
                     complete date plus hours, minutes and seconds UTC  
                     (YYYY-MM-DDThh:mm:ssZ) where:<xhtml:br />
                     <xhtml:span class="iso8601">
                        YYYY = four-digit year<xhtml:br />
                        MM = two-digit month (01=January, etc.)<xhtml:br />
                        DD = two-digit day of month<xhtml:br />
                        hh = two digits of hour (00 - 23)<xhtml:br />
                        mm = two digits of minute (00 - 59)<xhtml:br />
                        ss = two digits of second (00 - 59)<xhtml:br />
                     </xhtml:span>
                     For January 15, 2009 at 3:18pm (GMT), you could use the 
                     complete date format and the result would be 
                     2009-01-15T15:18:00Z.  If you just want to specify the 
                     complete date, use 2009-01-15.
                  </doc>
               </param>
               <param name="keyword" 
                      repeating="true" 
                      required="false"
                      style="query" 
                      type="xsd:string">
                  <doc xml:lang="en" title="Keyword">
                     The "keyword" query parameter specifies that only 
                     scenarios that have that keyword will be counted.  This 
                     is a repeatable parameter, meaning that you can specify 
                     multiple keywords that a scenario must contain by 
                     appending another "keyword=" to the url.  For example, to 
                     return scenarios that have both keywords 'key1' and 
                     'key2', you would use 
                     "&amp;keyword=key1&amp;keyword=key2".
                  </doc>
               </param>
               <param name="matchingScenario" 
                      required="false" 
                      style="query"
                      type="xsd:integer">
                  <doc xml:lang="en" title="Matching Scenario">
                     The "matchingScenario" query parameter will limit the  
                     scenarios counted to only those that are compatible with  
                     this scenario.
                  </doc>
               </param>
            </request>
            <response>
               <doc xml:lang="en" title="Count Scenarios Response">
                  The scenarios count service response can return an ATOM feed,
                  JSON object, or XML document based on the value of the 
                  interface parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
      
      <resource path="services/{userId}/scenarios/{itemId}/{interface}">
         <doc xml:lang="en" title="Get An Individual Scenario">
            The "scenarios" service with the scenario id (itemId) specified 
            will return a specific scenario.  The interface parameter specifies
            how the scenario will be returned.  Available options are an ATOM
            feed, a JSON object, or XML.
         </doc>
         <param name="userId" 
                default="lm2" 
                required="true" 
                style="template"
                type="xsd:string">
            <doc xml:lang="en" title="User ID Parameter">
               The userId template parameter is used to indicate ownership of 
               objects.  Objects returned will be owned by this user and new
               items posted will belong to this user.  To get generally 
               available items the public userId, "lm2", should be used.  To 
               post a new item anonymously, use the "anon" userId.
            </doc>
         </param>
         <param name="itemId" 
                required="true" 
                style="template" 
                type="xsd:integer">
            <doc xml:lang="en" title="Item ID For Scenarios">
               The itemId parameter should be set to the id number of the
               scenario to be returned.  This number can be found by listing 
               scenarios and narrowing down the results via query parameters.
            </doc>
         </param>
         <param name="interface" 
                required="true" 
                style="template" 
                type="xsd:string">
            <doc xml:lang="en" title="Interface Parameter">
               The interface parameter specifies what interface the scenario 
               should be returned in.
            </doc>
            <option value="atom">
               <doc xml:lang="en" title="Atom Interface">
                  Setting the interface parameter to "atom" will set the
                  response to return an ATOM feed.
               </doc>
            </option>
            <option value="json">
               <doc xml:lang="en" title="Json Interface">
                  Setting the interface parameter to "json" will set the
                  response to return a JSON document.
               </doc>
            </option>
            <option value="xml">
               <doc xml:lang="en" title="Xml Interface">
                  Setting the interface parameter to "xml" will set the
                  response to return an XML document.
               </doc>
            </option>
         </param>
         <method name="GET" id="getScenario">
            <doc xml:lang="en" title="Get A Scenario">
               Calling this service with a a GET request will return a specific 
               scenario whose id matches the itemId specified in the url.
            </doc>
            <request>
               <doc xml:lang="en" title="Get Scenario Request">
                  A request to get the individual scenario service does not 
                  take any additional query parameters.
               </doc>
            </request>
            <response>
               <doc xml:lang="en" title="Get Scenario Response">
                  The get individual scenario service response can return an 
                  ATOM feed, JSON object, or XML document based on the value of
                  the interface template parameter.
               </doc>
               <representation mediaType="application/atom+xml">
                  <doc xml:lang="en" title="ATOM Response">
                     If the interface template parameter is set to "atom" an 
                     ATOM feed will be returned.  The content-type of the ATOM
                     feed is application/atom+xml.
                  </doc>
               </representation>
               <representation mediaType="application/json">
                  <doc xml:lang="en" title="JSON Response">
                     If the interface template parameter is set to "json" a 
                     JSON object will be returned.  The content-type of the 
                     JSON object is application/json.
                  </doc>
               </representation>
               <representation element="lm:ResponseType"
                               mediaType="application/xml">
                  <doc xml:lang="en" title="XML Response">
                     If the interface template parameter is set to "xml" an XML
                     document will be returned.  The content-type of the XML
                     document is application/xml.  The root element of the 
                     response is lm:ResponseType defined at: 
                     <xhtml:a href="/schemas/serviceResponse.xsd">
                     http://lifemapper.org/schemas/serviceResponse.xsd
                     </xhtml:a>
                  </doc>
               </representation>
               <fault mediaType="text/html" status="403">
                  <doc xml:lang="en" title="Not Authenticated">
                     If a HTTP 403 error (Not Authenticated) is returned, the 
                     user indicated in the url ("userId" template parameter)
                     is not logged in.  To get items available to the public,
                     use the public, "lm2", user.  The response will be an HTML
                     document.
                  </doc>
               </fault>
               <fault mediaType="text/html" status="404">
                  <doc xml:lang="en" title="Not Found">
                     If the item specified by the "itemId" template parameter
                     cannot be found, a HTTP 404 error (Not Found) will be 
                     returned.  The response will be an HTML document.
                  </doc>
               </fault>
            </response>
         </method>
      </resource>
   </resources>
</application>
