<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>

<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->

<html xmlns    = "http://www.w3.org/1999/xhtml"
      xmlns:xi = "http://www.w3.org/2001/XInclude"
      xml:lang = "fr">

  <head>
    <title>Introduction à Apache SIS</title>
    <meta charset="UTF-8"/>
    <link rel="stylesheet" type="text/css" href="../book.css"/>
    <script src="../toc.js">/* highlighter */</script>
  </head>
  <body>
    <nav>
      <p>Table des matières</p>
      <!-- TOC -->
    </nav>

    <main>
      <p style="margin-top:30pt; font-size:30pt; font-weight:900; text-align:center">
        Introduction à Apache SIS™
      </p>
      <div class="warning" style="position:sticky; top:0; font-size:18px; padding:32px; border-width:3px">
        Cette page est une traduction de la version anglaise du guide.
        Cette traduction n’est pas maintenue et peut être obsolète.
        Pour des informations plus à jour, voir la <a href="../en/developer-guide.html">version anglaise</a>.
      </div>
      <xi:include href="introduction/index.html"/>
      <xi:include href="overview/DataAccess.html"/>
      <xi:include href="coverage/index.html"/>
      <xi:include href="geometry/index.html"/>
      <xi:include href="referencing/index.html"/>
      <xi:include href="storage/index.html"/>
      <xi:include href="utility/index.html"/>
      <xi:include href="annexes/geoapi/index.html"/>
      <xi:include href="annexes/tests/index.html"/>
      <xi:include href="annexes/design/index.html"/>
    </main>
  </body>
</html>
