Changeset 2526

Show
Ignore:
Timestamp:
11/07/03 19:39:55 (5 years ago)
Author:
msdoc
Message:

- added auto projections (JM)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/branch-4-0/mapserver_docs/wms-server-howto.xml

    r2520 r2526  
    44<!-- $Id$ --> 
    55<article> 
    6   <articleinfo> 
    7     <title>Mapserver WMS Server HOWTO - Version 4.0</title> 
    8     <author> 
    9       <firstname>Jeff</firstname> 
    10       <surname>McKenna</surname> 
    11       <affiliation> 
    12         <orgname>DM Solutions Group Inc.</orgname> 
    13         <address> 
    14           <email>mckenna@dmsolutions.ca</email> 
    15         </address> 
    16       </affiliation> 
    17     </author> 
    18     <date>2003-11-07</date> 
    19     <abstract> 
    20       <!-- a short description of the contents of the doc --> 
    21       <para> 
     6        <articleinfo> 
     7                <title>Mapserver WMS Server HOWTO - Version 4.0</title> 
     8                <author> 
     9                        <firstname>Jeff</firstname> 
     10                        <surname>McKenna</surname> 
     11                        <affiliation> 
     12                                <orgname>DM Solutions Group Inc.</orgname> 
     13                                <address> 
     14                                        <email>mckenna@dmsolutions.ca</email> 
     15                                </address> 
     16                        </affiliation> 
     17                </author> 
     18                <date>2003-11-07</date> 
     19                <abstract> 
     20                        <!-- a short description of the contents of the doc --> 
     21                        <para> 
    2222                 This document describes the procedures for setting up an OGC compliant Web Map Server (WMS) through 
    2323          the use of MapServer v3.5 (and later).   
    2424      </para> 
    25       <para>Last Updated: 2003-11-07</para> 
    26     </abstract> 
    27   </articleinfo> 
    28   <sect1 id="intro"> 
    29     <title>Introduction</title> 
    30     <para> 
     25                        <para>Last Updated: 2003-11-07</para> 
     26                </abstract> 
     27        </articleinfo> 
     28        <sect1 id="intro"> 
     29                <title>Introduction</title> 
     30                <para> 
    3131            A WMS (or Web Map Server) allows for use of data from several different servers, and enables for the creation of a 
    3232        network of Map Servers from which clients can build customized maps.   
    33       The following documentation is based on the <ulink url="http://www.opengis.org/techno/specs/01-047r2.pdf"> 
     33      The following documentation is based on the <ulink url="http://www.opengis.org/docs/01-047r2.pdf"> 
    3434                Open GIS Consortium's (OGC) Web Map Server Interfaces Implementation Specification v1.1.0</ulink>.  
    3535    </para> 
    36     <para> 
     36                <para> 
    3737      MapServer v3.5 or more recent is required to implement WMS features.  At the time this document was written, Mapserver 
    3838         supports the following WMS versions: 1.0.0, 1.0.7, and 1.1.0 (a.k.a. 1.0.8). 
    3939    </para> 
    40     <para> 
     40                <para> 
    4141             This document assumes that you are already familiar with certain aspects of MapServer: 
    4242          </para> 
    43     <itemizedlist> 
    44       <listitem> 
    45         <para> 
     43                <itemizedlist> 
     44                        <listitem> 
     45                                <para> 
    4646                      MapServer application development and setting up .map files.  
    4747                </para> 
    48       </listitem> 
    49       <listitem> 
    50         <para> 
     48                        </listitem> 
     49                        <listitem> 
     50                                <para> 
    5151          Familiarity with the WMS spec would be an asset. A link to the WMS specification document is included in 
    5252          the <link linkend="links">"WMS-Related Information"</link> section below. 
    5353        </para> 
    54       </listitem> 
    55     </itemizedlist> 
    56     <sect2 id="howitworks"> 
    57       <title>How does a WMS Work</title> 
    58       <para> 
     54                        </listitem> 
     55                </itemizedlist> 
     56                <sect2 id="howitworks"> 
     57                        <title>How does a WMS Work</title> 
     58                        <para> 
    5959        WMS servers interact with their clients via the HTTP protocol.  In most cases, 
    6060        a WMS server is a CGI program.  This is also the case with MapServer.      
    6161      </para> 
    62       <para> 
     62                        <para> 
    6363        The WMS specification defines a number of request types, and for each of  
    6464        them a set of query parameters and associated behaviors.  A WMS-compliant  
    6565        server MUST be able to handle at least the following 2 types of WMS requests: 
    6666      </para> 
    67       <orderedlist> 
    68         <listitem> 
    69           <para> 
    70             <emphasis>GetCapabilities:</emphasis> return an XML document with metadata of the Web Map 
     67                        <orderedlist> 
     68                                <listitem> 
     69                                        <para> 
     70                                                <emphasis>GetCapabilities:</emphasis> return an XML document with metadata of the Web Map 
    7171            Server's information       
    7272          </para> 
    73         </listitem> 
    74         <listitem> 
    75           <para> 
    76             <emphasis>GetMap:</emphasis> return an image of a map according to the user's needs. 
    77           </para> 
    78         </listitem> 
    79       </orderedlist> 
    80       <para> 
     73                                </listitem> 
     74                                <listitem> 
     75                                        <para> 
     76                                                <emphasis>GetMap:</emphasis> return an image of a map according to the user's needs. 
     77          </para> 
     78                                </listitem> 
     79                        </orderedlist> 
     80                        <para> 
    8181        And support for the following types is optional: 
    8282      </para> 
    83       <orderedlist continuation="continues"> 
    84         <listitem> 
    85           <para> 
    86             <emphasis>GetFeatureInfo:</emphasis> return info about feature(s) at a query (mouse click)  
     83                        <orderedlist continuation="continues"> 
     84                                <listitem> 
     85                                        <para> 
     86                                                <emphasis>GetFeatureInfo:</emphasis> return info about feature(s) at a query (mouse click)  
    8787              location.  MapServer supports 3 types of responses to this request: 
    8888          </para> 
    89           <orderedlist> 
    90             <listitem> 
    91               <para> 
     89                                        <orderedlist> 
     90                                                <listitem> 
     91                                                        <para> 
    9292                  Text/plain output with attribute info. 
    9393              </para> 
    94             </listitem> 
    95             <listitem> 
    96               <para> 
     94                                                </listitem> 
     95                                                <listitem> 
     96                                                        <para> 
    9797                  Text/html output using MapServer query templates specified in the CLASS template parameter. 
    9898                  The MIME type returned by the Class templates defaults to text/html and can be controlled using the 
    9999                  metadata  <link linkend="mime_type">"wms_feature_info_mime_type"</link>. 
    100100              </para> 
    101             </listitem> 
    102             <listitem> 
    103               <para> 
     101                                                </listitem> 
     102                                                <listitem> 
     103                                                        <para> 
    104104                Gml features. 
    105105              </para> 
    106             </listitem> 
    107           </orderedlist> 
    108         </listitem> 
    109         <listitem> 
    110           <para> 
    111             <emphasis>DescribeLayer:</emphasis> return an XML description of one or more map layers.  This 
     106                                                </listitem> 
     107                                        </orderedlist> 
     108                                </listitem> 
     109                                <listitem> 
     110                                        <para> 
     111                                                <emphasis>DescribeLayer:</emphasis> return an XML description of one or more map layers.  This 
    112112                applies only to SLD WMS servers and is not currently supported by  
    113113                MapServer. 
    114114          </para> 
    115         </listitem> 
    116       </orderedlist> 
    117       <para> 
     115                                </listitem> 
     116                        </orderedlist> 
     117                        <para> 
    118118        With respect to MapServer specifically, it is the "mapserv" CGI program that 
    119119        knows how to handle WMS requests.  So setting up a WMS server with MapServer 
     
    121121        appropriate metadata in it.  This is covered in the rest of this document. 
    122122      </para> 
    123     </sect2> 
    124     <sect2 id="links"> 
    125       <title>Links to WMS-Related Information</title> 
    126       <itemizedlist> 
    127         <listitem> 
    128           <para> 
     123                </sect2> 
     124                <sect2 id="links"> 
     125                        <title>Links to WMS-Related Information</title> 
     126                        <itemizedlist> 
     127                                <listitem> 
     128                                        <para> 
    129129            The Mapserver WMS Client HOWTO: 
    130130            <ulink url="http://mapserver.gis.umn.edu/doc/wms-client-howto.html"> 
    131131            http://mapserver.gis.umn.edu/doc/wms-client-howto.html</ulink> 
    132           </para> 
    133         </listitem> 
    134         <listitem> 
    135           <para> 
     132                                        </para> 
     133                                </listitem> 
     134                                <listitem> 
     135                                        <para> 
    136136            Open GIS Consortium (OGC) Home Page: 
    137137              <ulink url="http://www.opengis.org/">http://www.opengis.org/</ulink> 
    138           </para> 
    139         </listitem> 
    140         <listitem> 
    141           <para> 
     138                                        </para> 
     139                                </listitem> 
     140                                <listitem> 
     141                                        <para> 
    142142            WMS 1.0.0 specification: 
    143               <ulink url="http://www.opengis.org/techno/specs/00-028.pdf"> 
    144             http://www.opengis.org/techno/specs/00-028.pdf</ulink> 
    145           </para> 
    146         </listitem> 
    147         <listitem> 
    148           <para> 
     143              <ulink url="http://www.opengis.org/docs/00-028.pdf"> 
     144            http://www.opengis.org/docs/00-028.pdf</ulink> 
     145                                        </para> 
     146                                </listitem> 
     147                                <listitem> 
     148                                        <para> 
    149149            WMS 1.1.0 specification: 
    150               <ulink url="http://www.opengis.org/techno/specs/01-047r2.pdf"> 
    151             http://www.opengis.org/techno/specs/01-047r2.pdf</ulink> 
    152           </para> 
    153         </listitem> 
    154         <listitem> 
    155           <para> 
     150              <ulink url="http://www.opengis.org/docs/01-047r2.pdf"> 
     151            http://www.opengis.org/docs/01-047r2.pdf</ulink> 
     152                                        </para> 
     153                                </listitem> 
     154                                <listitem> 
     155                                        <para> 
     156            WMS 1.1.1 specification: 
     157              <ulink url="http://www.opengis.org/docs/01-068r2.pdf"> 
     158            http://www.opengis.org/docs/01-068r2.pdf</ulink> 
     159                                        </para> 
     160                                </listitem>                              
     161                                <listitem> 
     162                                        <para> 
    156163            WMS-Dev mailing list and archive: 
    157164              <ulink url="http://www.intl-interfaces.net/mailman/listinfo/wms-dev"> 
    158165            http://www.intl-interfaces.net/mailman/listinfo/wms-dev</ulink> 
    159           </para> 
    160         </listitem> 
    161         <listitem> 
    162           <para> 
     166                                        </para> 
     167                                </listitem> 
     168                                <listitem> 
     169                                        <para> 
    163170            WMS FAQ: 
    164171              <ulink url="http://www.intl-interfaces.net/cookbook/WMS/faq/faqw.py?req=home"> 
    165172            http://www.intl-interfaces.net/cookbook/WMS/faq/faqw.py?req=home</ulink> 
    166           </para> 
    167         </listitem> 
    168         <listitem> 
    169           <para> 
     173                                        </para> 
     174                                </listitem> 
     175                                <listitem> 
     176                                        <para> 
    170177            WMS XML Capabilities validator: 
    171178              <ulink url="http://www.digitalearth.gov/wmt/xml/validator.html"> 
    172179            http://www.digitalearth.gov/wmt/xml/validator.html</ulink> 
    173           </para> 
    174         </listitem> 
    175         <listitem> 
    176           <para> 
     180                                        </para> 
     181                                </listitem> 
     182                                <listitem> 
     183                                        <para> 
    177184            WMS Cookbook: 
    178185              <ulink url="http://www.intl-interfaces.net/cookbook/WMS/"> 
    179186            http://www.intl-interfaces.net/cookbook/WMS/</ulink> 
    180           </para> 
    181         </listitem> 
    182       </itemizedlist> 
    183     </sect2> 
    184   </sect1> 
    185   <!-- Section1: Integration or developing  an application--> 
    186   <sect1 id="settingup"> 
    187     <title>Setting Up a WMS Server Using Mapserver</title> 
    188     <sect2 id="install"> 
    189       <title>Install the Required Software</title> 
    190       <para> 
     187                                        </para> 
     188                                </listitem> 
     189                        </itemizedlist> 
     190                </sect2> 
     191        </sect1> 
     192        <!-- Section1: Integration or developing  an application--> 
     193        <sect1 id="settingup"> 
     194                <title>Setting Up a WMS Server Using Mapserver</title> 
     195                <sect2 id="install"> 
     196                        <title>Install the Required Software</title> 
     197                        <para> 
    191198        WMS requests are handled by the "mapserv" CGI program.  Not all versions of the 
    192199        mapserv program do include WMS support (it is included by default when you  
     
    195202        use the "-v" command-line switch and look for "SUPPORTS=WMS_SERVER". 
    196203      </para> 
    197       <example> 
    198         <title>On Unix:</title> 
    199         <programlisting> 
     204                        <example> 
     205                                <title>On Unix:</title> 
     206                                <programlisting> 
    200207   $ ./mapserv -v 
    201208   MapServer version 3.5 (pre-alpha) OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP  
     
    203210   INPUT=GDAL INPUT=SHAPEFILE        
    204211        </programlisting> 
    205       </example> 
    206       <example> 
    207         <title>On Windows:</title> 
    208         <programlisting> 
     212                        </example> 
     213                        <example> 
     214                                <title>On Windows:</title> 
     215                                <programlisting> 
    209216   C:\apache\cgi-bin> mapserv -v 
    210217   MapServer version 3.5 (pre-alpha) OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP 
     
    212219   INPUT=GDAL INPUT=SHAPEFILE 
    213220        </programlisting> 
    214       </example> 
    215     </sect2> 
    216     <sect2 id="mapfile"> 
    217       <title>Setup a Mapfile For Your WMS</title> 
    218       <para> 
     221                        </example> 
     222                </sect2> 
     223                <sect2 id="mapfile"> 
     224                        <title>Setup a Mapfile For Your WMS</title> 
     225                        <para> 
    219226        Each instance of WMS server that you setup needs to have its own mapfile. 
    220227        It is just a regular MapServer mapfile in which some parameters and some  
     
    222229        to produce a valid GetCapabilites output. 
    223230      </para> 
    224       <para> 
     231                        <para> 
    225232        Here is the list of parameters and metadata items that usually optional with 
    226233        MapServer, but are required (or strongly recommended) for a WMS configuration: 
    227234      </para> 
    228       <para> 
     235                        <para> 
    229236        At the map level: 
    230237      </para> 
    231       <itemizedlist> 
    232         <listitem> 
    233           <para> 
     238                        <itemizedlist> 
     239                                <listitem> 
     240                                        <para> 
    234241            Map NAME 
    235242          </para> 
    236         </listitem> 
    237         <listitem> 
    238           <para> 
     243                                </listitem> 
     244                                <listitem> 
     245                                        <para> 
    239246            Map PROJECTION 
    240247          </para> 
    241         </listitem> 
    242         <listitem> 
    243           <para> 
     248                                </listitem> 
     249                                <listitem> 
     250                                        <para> 
    244251            Map Metadata (in the WEB Object): 
    245252          </para> 
    246           <itemizedlist> 
    247             <listitem> 
    248               <para> 
     253                                        <itemizedlist> 
     254                                                <listitem> 
     255                                                        <para> 
    249256                wms_title 
    250257              </para> 
    251             </listitem> 
    252             <listitem> 
    253               <para> 
     258                                                </listitem> 
     259                                                <listitem> 
     260                                                        <para> 
    254261                wms_onlineresource 
    255262              </para> 
    256             </listitem> 
    257             <listitem> 
    258               <para> 
     263                                                </listitem> 
     264                                                <listitem> 
     265                                                        <para> 
    259266                wms_srs (unless PROJECTION object is defined using "init=epsg:...") 
    260267              </para> 
    261             </listitem> 
    262           </itemizedlist> 
    263         </listitem> 
    264       </itemizedlist> 
    265       <para> 
     268                                                </listitem> 
     269                                        </itemizedlist> 
     270                                </listitem> 
     271                        </itemizedlist> 
     272                        <para> 
    266273        And for each layer: 
    267274      </para> 
    268       <itemizedlist> 
    269         <listitem> 
    270           <para> 
     275                        <itemizedlist> 
     276                                <listitem> 
     277                                        <para> 
    271278            Layer NAME 
    272279          </para> 
    273         </listitem> 
    274         <listitem> 
    275           <para> 
     280                                </listitem> 
     281                                <listitem> 
     282                                        <para> 
    276283            Layer PROJECTION 
    277284          </para> 
    278         </listitem> 
    279         <listitem> 
    280           <para> 
     285                                </listitem> 
     286                                <listitem> 
     287                                        <para> 
    281288            Layer Metadata 
    282289          </para> 
    283           <itemizedlist> 
    284             <listitem> 
    285               <para> 
     290                                        <itemizedlist> 
     291                                                <listitem> 
     292                                                        <para> 
    286293                wms_title 
    287294              </para> 
    288             </listitem> 
    289             <listitem> 
    290               <para> 
     295                                                </listitem> 
     296                                                <listitem> 
     297                                                        <para> 
    291298                wms_srs (optional since the layers inherit the map's SRS value) 
    292299              </para> 
    293             </listitem> 
    294           </itemizedlist> 
    295         </listitem> 
    296       </itemizedlist> 
    297       <para> 
     300                                                </listitem> 
     301                                        </itemizedlist> 
     302                                </listitem> 
     303                        </itemizedlist> 
     304                        <para> 
    298305        Let's go through each of these paramters in more detail: 
    299306      </para> 
    300       <itemizedlist> 
    301         <listitem> 
    302           <para> 
     307                        <itemizedlist> 
     308                                <listitem> 
     309                                        <para> 
    303310            Map Name and wms_title: 
    304311          </para> 
    305           <para> 
     312                                        <para> 
    306313            WMS Capabilities requires a Name and a Title tag for every layer.  The 
    307314              Map's NAME and wms_title metadata will be used to set the root layer's 
     
    309316              WMS context corresponds to the whole mapfile. 
    310317          </para> 
    311         </listitem> 
    312         <listitem> 
    313           <para> 
     318                                </listitem> 
     319                                <listitem> 
     320                                        <para> 
    314321            Layer Name and wms_title metadata: 
    315322          </para> 
    316           <para> 
     323                                        <para> 
    317324            Every individual layer needs its own unique name and title. 
    318325              Layer names are also used in GetMap and GetFeatureInfo requests to refer 
    319326              to layers that should be included in the map output and in the query. 
    320327          </para> 
    321         </listitem> 
    322         <listitem id="projection_srs"> 
    323           <para> 
     328                                </listitem> 
     329                                <listitem id="projection_srs"> 
     330                                        <para> 
    324331            Map PROJECTION and wms_srs metadata: 
    325332          </para> 
    326           <para> 
     333                                        <para> 
    327334            WMS servers have to advertise the projection in which they are able to 
    328335              serve data using EPSG projection codes (see  
     
    331338              Recent versions of the PROJ4 library come with a table of EPSG  
    332339              initialization codes and allow users to define a projection like this:                    </para> 
    333           <programlisting> 
     340                                        <programlisting> 
    334341   PROJECTION 
    335342      "init=epsg:4269" 
    336343   END     
    337344          </programlisting> 
    338             <para> 
     345                                        <para> 
    339346             (Note that "epsg" has to be in lowercase when used in the PROJ4 'init' directive.)  
    340347            </para> 
    341           <para> 
     348                                        <para> 
    342349            If the MAP PROJECTION block is provided in the format "init=epsg:xxxx" then 
    343350            MapServer will also use this information to generate a &lt;BoundingBox&gt; tag for 
     
    345352            element of WMS capabilities, but it is good practice to allow MapServer to include it when possible. 
    346353          </para> 
    347           <para> 
     354                                        <para> 
    348355            The above is sufficient for MapServer to recognize the EPSG code and 
    349356              include it in SRS tags in the capabilities output (wms_srs metadata is not 
     
    354361              definition of the data's projection. 
    355362          </para> 
    356           <para> 
     363                                        <para> 
    357364            Here is an example of a server whose data is in an Lambert Conformal Conic 
    358365              projection (for which there is no EPSG code).  It's capabilities output 
     
    360367              PROJECTION object is set to the real projection that the data is in: 
    361368          </para> 
    362           <programlisting> 
     369                                        <programlisting> 
    363370   NAME DEMO 
    364371   ... 
     
    383390   ... 
    384391          </programlisting> 
    385         </listitem> 
    386         <listitem> 
    387           <para> 
     392                <para> 
     393          In addition to EPSG:xxxx projections, a WMS server can advertize projections in the AUTO:xxxx namespace.  AUTO projections 42001 to 42005 are internally supported by MapServer.  However, AUTO projections are useful only with smart WMS clients, since the client needs to define the projection parameters in the WMS requests to the server.  For more information see Annex E of the <ulink url="http://www.opengis.org/docs/01-068r2.pdf">WMS 1.1.1 specification</ulink> and section 6.5.5.2 of the same document.  See also the <link linkend="FAQ">FAQ</link> on AUTO projections at the end of this document.  
     394                </para> 
     395                                </listitem> 
     396                                <listitem> 
     397                                        <para> 
    388398            Layer PROJECTION and wms_srs metadata: 
    389399          </para> 
    390           <para> 
     400                                        <para> 
    391401            By default in the WMS context, layers inherit the SRS or their parent layer 
    392402              (the map's projection in the MapServer case).  For this reason it is not 
     
    394404              for every layer. 
    395405          </para> 
    396           <para> 
     406                                        <para> 
    397407            However, if your server wants to advertise multiple projections, then at least 
    398408              a PROJECTION object is required in every layer, otherwise the layers won't 
     
    400410              MapServer. 
    401411          </para> 
    402           <para> 
     412                                        <para> 
    403413            Layer PROJECTION and wms_srs metadata are defined exactly the same way as 
    404414              the map's PROJECTION and wms_srs metadata. 
    405415          </para> 
    406           <para> 
     416                                        <para> 
    407417            For vector layers, if a PROJECTION block is provided in the format "init=epsg:xxxx" then 
    408418            MapServer will also use this information to generate a &lt;BoundingBox&gt; tag for 
     
    410420            element of WMS capabilities, but it is good practice to allow MapServer to include it when possible. 
    411421          </para> 
    412         </listitem> 
    413         <listitem id="wms_onlineresource"> 
    414           <para> 
     422                                </listitem> 
     423                                <listitem id="wms_onlineresource"> 
     424                                        <para> 
    415425            The "wms_onlineresource" metadata: 
    416426          </para> 
    417           <para> 
     427                                        <para> 
    418428            The wms_onlineresource metadata is set in the map's web object metadata and 
    419429              specifies the URL that should be used to access your server.  This is 
     
    423433              recommended that you provide the wms_onlineresource metadata. 
    424434          </para> 
    425           <para> 
    426             See section 6.2.1 of the <ulink url="http://www.opengis.org/techno/specs/01-047r2.pdf"> 
     435                                        <para> 
     436            See section 6.2.1 of the <ulink url="http://www.opengis.org/docs/01-047r2.pdf"> 
    427437            WMS 1.1.0 specification</ulink> for the whole story about 
    428438              the online resource URL.  Basically, what you need is a complete HTTP URL 
     
    430440              parameter, and and terminated by "?" or "&amp;". 
    431441          </para> 
    432           <para> 
     442                                        <para> 
    433443            Here is a valid online resource URL: 
    434444          </para> 
    435           <programlisting> 
     445                                        <programlisting> 
    436446   http://my.host.com/cgi-bin/mapserv?map=mywms.map&amp; 
    437447          </programlisting> 
    438           <para> 
     448                                        <para> 
    439449            By creating a wrapper script on the server it is possible to hide the  
    440450              "map=" parameter from the URL and then your server's online resource  
    441451              URL could be something like: 
    442452          </para> 
    443           <programlisting> 
     453                                        <programlisting> 
    444454   http://my.host.com/cgi-bin/mywms? 
    445455          </programlisting> 
    446           <para> 
     456                                        <para> 
    447457            This is covered in more detail in the section <link linkend="onlineresourceurl"> 
    448458            "More About the Online Resource URL"</link> below. 
    449459          </para> 
    450         </listitem> 
    451       </itemizedlist> 
    452     </sect2> 
    453     <sect2 id="test"> 
    454       <title>Test Your WMS Server</title> 
    455       <sect3 id="val_capabilities"> 
    456         <title>Validate the Capabilities Metadata</title> 
    457         <para> 
     460                                </listitem> 
     461                        </itemizedlist> 
     462                </sect2> 
     463                <sect2 id="test"> 
     464                        <title>Test Your WMS Server</title> 
     465                        <sect3 id="val_capabilities"> 
     466                                <title>Validate the Capabilities Metadata</title> 
     467                                <para> 
    458468          OK, now that we've got a mapfile, we have to check the XML capabilities  
    459469          returned by our server to make sure nothing is missing. 
    460470        </para> 
    461         <para> 
     471                                <para> 
    462472          Using a web browser, access your server's online resource URL to which you 
    463473          add the parameter "REQUEST=GetCapabilities" to the end, e.g. 
    464474        </para> 
    465         <programlisting> 
     475                                <programlisting> 
    466476   http://my.host.com/cgi-bin/mapserv?map=mywms.map&amp;REQUEST=GetCapabilities 
    467477        </programlisting> 
    468         <para> 
     478                                <para> 
    469479          This should return a document of MIME type application/vnd.ogc.wms_xml, so  
    470480          your browser is likely going to prompt you to save the file.  Save it and  
    471481          open it in a text editor (Emacs, Notepad, etc.) 
    472482        </para> 
    473         <para> 
     483                                <para> 
    474484          If you get an error message in the XML output then take necessary actions.   
    475485          Common problems and solutions are listed in the <link linkend="FAQ">FAQ</link> at the end of this  
    476486          document. 
    477487        </para> 
    478         <para> 
     488                                <para> 
    479489          If everything went well, you should have a complete XML capabilities document. 
    480490          Search it for the word "WARNING"... MapServer inserts XML comments starting 
     
    484494          otherwise things are likely not going to work. 
    485495        </para> 
    486       </sect3> 
    487       <sect3 id="val_getmap"> 
    488         <title>Test With a GetMap Request</title> 
    489         <para> 
     496                        </sect3> 
     497                        <sect3 id="val_getmap"> 
     498                                <title>Test With a GetMap Request</title> 
     499                                <para> 
    490500          OK, now that we know that our server can produce a valid XML GetCapabilities 
    491501          response we should test the GetMap request.  
    492502        </para> 
    493         <para> 
     503                                <para> 
    494504          Simply adding <filename>"VERSION=1.1.0&amp;REQUEST=GetMap"</filename> to your server's URL should  
    495505          generate a map with the default map size and all the layers with STATUS ON or 
    496506          DEFAULT displayed, e.g. 
    497507        </para> 
    498         <programlisting> 
     508                                <programlisting> 
    499509   http://my.host.com/cgi-bin/mapserv?map=mywms.map&amp;VERSION=1.1.0&amp;REQUEST=GetMap 
    500510        </programlisting> 
    501         <para> 
     511                                <para> 
    502512          (Note that this works with MapServer's WMS interface even if it would be an 
    503513          incomplete GetMap request according to the WMS spec.  It lacks several  
     
    505515          it is good enough.) 
    506516        </para> 
    507       </sect3> 
    508       <sect3 id="val_client"> 
    509         <title>Test with a Real Client</title> 
    510         <para> 
     517                        </sect3> 
     518                        <sect3 id="val_client"> 
     519                                <title>Test with a Real Client</title> 
     520                                <para> 
    511521          If you have access to a WMS client, then register your new server's online 
    512522          resource with it and you should be off and running. 
    513523        </para> 
    514         <para> 
     524                                <para> 
    515525          If you don't have your own WMS client installed already, here are a few pointers:  
    516526        </para> 
    517         <itemizedlist> 
    518           <listitem> 
    519             <para> 
     527                                <itemizedlist> 
     528                                        <listitem> 
     529                                                <para> 
    520530             MapServer itself can be used as a WMS client, see the  
    521531             <ulink url="http://mapserver.gis.umn.edu/doc/wms-client-howto.html">WMS Client HOWTO<