diff --git a/doc/img/jdd-1.jpg b/doc/img/jdd-1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e39ec73bc5da76679f97dad6a44d0b29f8e8826
Binary files /dev/null and b/doc/img/jdd-1.jpg differ
diff --git a/doc/specs.md b/doc/specs.md
index 2fbd59bf03a465ac85175b2ea3b7c40cdb69a52d..2c18c94ac11a0b575cee9266f72da17d57381da4 100644
--- a/doc/specs.md
+++ b/doc/specs.md
@@ -1,117 +1,143 @@
-# Symbologies variables
 
-Les couches mapserver sont générées avec une symbologie par défaut.
+# Menu administration des cartes
 
-Un menu (studio) permet de les éditer et de stocker les symbologies variables en base.
+## 1. Jeux de données
 
-La symbologie variable peut être associée à un calque (valeur par défaut) ou à une carte (deuxième valeur par défaut).
-* Il faudra pour cela la modéliser au niveau de deux tables différentes.
-* Le format utilisé doit être évolutif car les possibilités de personnalisation se multiplieront avec le temps, pour cela nous préconisons le format JSON.
+Menu dans lequel l'administrateur peut déclarer les différentes sources de données (Postgres, WMS, XYZ etc..)
 
-Lorsque l'utilisateur demande une carte un fonction PHP va lire les différentes symbologies variables (JSON) et générer un mapfile spécifique privé qui sera utilisé lors de la consultation.
+Dans ce menu il peut tester la source de donnée et l'afficher (mini-PgAdmin, GetCapabilities etc.)
 
+Ce menu s'affiche sous forme d'arbre dans qui servira de point d'entrée à la création de couches, publications etc.
 
-# Menu administration des cartes
+![img](img/jdd-1.jpg)
 
-## 1. Sources de données
+L'interface d'ajout d'une nouvelle source de données est à définir.
 
-Menu dans lequel l'administrateur peut déclarer les différentes sources de données (Postgres, WMS, XYZ etc..)
+En modification, l'administrateur voit un arbre avec comme point de départ l'ensemble des couches de données, en fonction du type la structure sera différente.
 
-Dans ce menu il peut tester la source de donnée et l'afficher (mini-PgAdmin, GetCapabilities etc.)
+L'interface est à ce moment divisé avec l'arbre à gauche et des potentiels formulaires à droite.
 
 
-### 1.1. Source de données Postgres
+### 1.1. JDD Postgres (Connexion publique)
 
-À ce moment un mini-pgadmin s'affiche, ce dernier est modélisé par un arbre
+#### Formulaire d'ajout/modification
 
 * Server
 * Port
 * Login
 * Pass
 
-Arbre :
+#### Structure
 
 * Dbs
   * Schémas
     * Tables
+        * Couches
+        * Publications
     * Vues
 
-Sur chaque table un bouton administration affiche une modale avec les différentes actions d'administration
-* Infos
-    * Nom table
-    * Schéma
-    * Propriétaire
-* Droits
-    * Privilège (select, insert, update, delete)
-* Données
-* Apperçu carto
+#### Modification table/vue
+
+Au clic sur une table/vue on affiche les infos sur le formulaire (nom, propriétaire, schéma, commentaire)
+
+L'interface reste à dinir mais on peut envisager dans ce formulaire un onglet permet de visualiser les colonnes et un onglet permet la gestion des droits.
+
+On peut également imaginer un onglet pour la visualisation des données (carto ou attributaires)
+
+
+#### Couches
+
+À partir de la table il est possible de créer une ou plusieurs couches.
+
+Au clic sur une couche il faudra afficher le formulaire de cette dernière mentionné dans les chapitres suivants.
+
+Il est possible également de supprimer la couche.
+
+
+#### Publications
+
+Une publication est une couche qui sera publiée dans un flux WMS ou WFS pour l'utiliser dans une application tierce.
+
+L'interface est quasiment le même que pour les couches, à l'exception du formulaire qui est différent.
+
+
+### 1.2. JDD Interne (Connexion privée)
+
+Basé sur postgres, utilise le même socle que la connexion postgres publique.
 
-Une checkbox permet de sélectionner la table
+À l'installation de l'application la connexion interne est créée, elle utilise le compte u_vitis pour son administration, et les couches qui en découleront utiliseront la connexion de l'utilisateur.
 
-Un bouton permet en fonction des tables sélectionnées de créer les calques associés.
+La source de données interne se comporte comme la source de données de type Postgres définie ci-dessus à quelques exceptions près.
 
-### 1.2. Source de données WMS/WMTS/XYZ/OSM
+* La source de données interne ne peut faire de publications.
+* Seules les couches du JDD interne peuvent être interrogeables sous la forme de formulaires
+* Doit-on autoriser le modification des droits des tables pour une connexion publique ?
 
-L'application fait un GetCapabilities permettant d'afficher un arbre.
 
-Sur chaque couche une checkbox permet la sélection.
+### 1.3. JDD Fichier
 
-Un bouton permet en fonction des couches sélectionnées de créer les calques associés.
+Le formulaire consiste à spécifier le chemin vers le dossier.
 
-### 1.3. Source de données Fichier
+L'abre consiste à la navigation dans ce dossier.
 
-Il faut décider d'un dossier où seront stockés les fichiers (dossier shared ?)
+Sur les fichiers de type SIG (ECW, Tiff ...) il est comme sur Postgres possible de créer des couches ou des publications
 
-L'admin a la possibilité d'uploader des gros gros fichiers dans ce dossier.
+* Dossier1
+  * SousDossier1
+    * monfichier.ecw
+        * Couches
+        * Publications
+    * monfichier.pdf
 
-Pour la création de la source de données on affiche le treeview du contenu du dossier et l'admin sélectionne son fichier.
+Faut-il afficher les fichiers non SIG ?
 
-L'administrateur peut quand même saisir manuellement un chemin d'accès au fichier
+Faut-il rendre possible l'administration complète ? créer des dossiers, uploader des gros fichiers, supprimer etc.
 
 
-## 2. Calques
+### 1.4. JDD WMS
+### 1.5. JDD WMTS
+### 1.6. JDD XYZ
+### 1.7. JDD OSM
 
-Un calque unisuqe peut être crée depuis cet espace, l'ajout par lot se fait depuis les sources de données
 
-Un bouton permet de sélectionner plusieurs calques et publier une carte
 
-### 2.1. Flux externes
 
-Pour l'utilisation d'un flux externe l'administration sera très basique et demandera peu d'efforts
+## 2. Couches
 
-* Titre : texte avec espaces, accents etc. à afficher sur l'interface
-* Source de donnée : non modifiable
+Ce menu ressemble et procure les mêmes fonctionnalités que le menu JDD, il s'agit ici d'un espace avec un point de vue différent où ne seront affichées que les couches.
 
-### 2.2. Flux postgres
+L'illustration peut se faire sous la forme d'une grille comme on en a l'habitude.
 
-Pour l'utilisation d'un flux postgres, plusieurs opérations automatiques seront à effectuer en fonction des différents événements.
+Faut-il implémenter le regroupement par thématique ?
 
-* Création symbologie par défaut
-* Préremplissage champs bdd
+Différents types de couches à identifier en fonction du type de JDD utilisé, en fonction du type certaines champs et sections du formulaire seront présents
 
-Le formulaire est disposé de la sorte :
-* Section générale
-* Section symbologie
-* Formulaires
+* Couches vMap internes : utilisant le JDD interne, permettent l'édition de la symbologie ainsi que l'édition de formulaires
+* Couches vMap publiques : utilisent un JDD Postgres publique, permettent l'édition de la symbologie
+* Couches vMap fichier : utilisent un JDD type fichier
+* Couches type flux : utilisent des flux WMS/WMTS...
 
-#### 2.2.1. Section générale
+
+### 2.1. Section général
 
 Général
-* Nom : texte avec espaces, accents etc. à afficher sur l'interface
-* Source de donnée : non modifiable
-* flux_id : (non visible) texte sans accents ni espaces généré automatiquement [Nom]_[id]
-* Source : liste déroulante avec possibilité d'ajout
-* Interrogeable (oui/non)
+* Nom : texte avec espaces, accents etc. à afficher sur l'interface - dispo pour tous les types
+* JDD : non modifiable - dispo pour tous les types
+* Source : liste déroulante avec possibilité d'ajout - dispo pour tous les types
 
 Accès à la donnée
-* Schéma : liste déroulante remplie par défaut
-* Table : liste déroulante remplie par défaut
-* Colonne identifiant : liste déroulante remplie par défaut
-* Colonne géométrique : liste déroulante remplie par défaut
-* Type de géométrique : liste déroulante remplie par défaut (Point, Ligne, Polygone, Multi-types)
-* Système de coordonnées : liste déroulante remplie par défaut
-
-Fonctionnalités d'interrogation
+* flux_id : texte sans accents ni espaces - dispo pour les type flux
+* Base de données - dispo pour types Postgres
+* Schéma - dispo pour types Postgres
+* Table - dispo pour types Postgres
+* Colonne identifiant - dispo pour types Postgres
+* Colonne géométrique - dispo pour types Postgres
+* Type de géométrique (Point, Ligne, Polygone, Multi-types) - dispo pour types Postgres
+* Système de coordonnées - dispo pour types Postgres
+* Chemin vers le fichier - dispo pour type vMap fichier
+
+Fonctionnalités d'interrogation - Uniquement pour type vMap interne
+* Interrogeable (oui/non)
 * Disponible en recherche localisation (Oui/Non)
     * Colonne de recherche pour la localisation
     * Champ à afficher pour la localisation
@@ -131,11 +157,11 @@ Fonctionnalités d'interrogation
 * Champ à afficher pour la sélection multiple
 
 
-#### 2.2.2. Section symbologie
+### 2.2. Section symbologie
 
-Symbologie qui sera appliquée par défaut sur le calque
+Dispo pour vMap interne et vMap public
 
-Les champs sont les suivants
+Symbologie qui sera appliquée par défaut sur le calque
 
 * Label (Oui/Non)
     * Champ à utiliser pour le label
@@ -160,51 +186,98 @@ Il faut aussi pouvoir éditer et supprimer les conditions.
 
 Une carte lui permet de prévisualiser ses modifications.
 
-#### 2.2.3. Section formulaires
+### 2.3. Section formulaires
+
+Dispo pour vMap interne uniquement
 
 Studio
 
 
-### 2.3. Flux fichiers
 
 
+## 3. Cartes
+
+Une carte est à voir comme une "application" qui permettrait de gérer une certaine problématique métier, elle est définie par des infos fixes ainsi que par des relations.
 
+Bien que les cartes soient listés dans une grille de la partie admin, leur édition nécessite un interface carto qui permettra d'avoir un rendu en temps réel.
 
+### 3.1. Infos générales
 
+* Nom
+* Description
+* Coordsys
+* Viniette
+* Ordre
+* Thème
+* Étendue
 
-## 3. Cartes
+### 3.2. Couches
+
+* Ajout/suppression de couches à la carte
+* Organisation avec ordre et thématiques
+* Couches visibles/invisibles par défaut
+
+Pour les couches de type vMap
+* Pour chaque couche il est possible de définir une symbologie propre à la carte
+* Pour chaque couche il est possible d'activer/desactiver la partie interrogation
+
+### 3.3. Outils
+
+Dans cette version de vMap il est possible de configurer les coutils disponibles pour la carte
+
+* Nom de la carte
+* Projection en cours
+* Slider de zoom
+* Boutons zoom
+* Carte de supervision
+* Échelle graphique
+* Échelle numérique
+* Position de la souris
+* Sources
 
-Affichage d'une grille des cartes permettant de superviser, et supprimer des cartes.
+* Localisation suivant/précédent
+* Localisation GPS
+* Localisation X/Y
+* Localisation position initiale
+* Localisation recherche
+* Localisation étendue max
+* Comparaison de cartes
+* Raifraichissement des couches
+* URL de la carte en cours
+* Mesures
+* Impressions
 
-L'administrateur peut aussi éditer ou ajouter une carte, à ce moment il se trouve redirigé vers le mode cartographique en mode création d'une carte.
 
-Sur le mode carto tout le monde peut créer des cartes, pour des raisons de sécurité une propertie ou un privilège permettent de bloquer cette fonctionnalité à certains utilisateurs.
+### 3.4. Droits
 
-### 3.1. Gestion des calques
+Affectation de groupes d'utilisateurs à la carte
 
-Une fois sur l'interface carto l'utilisateur peut gérer les calques de sa carte.
 
-#### 3.1.1. Ajout d'un calque
 
-L'utilisateur peut ajouter un calque à sa carte, à ce moment un espace lui permet de sélectionner un ou plusieurs calques dans la liste des calques disponibles en base.
 
-Une évolution possible serait de lui donner la possibilité d'ajouter des calques non présents en base, pour cela ces derniers doivent être de type externe. L'interface peut s'inspirer de vMap 2019 qui propose déjà cette fonctionnalité.
 
-#### 3.1.2. Organisation des calques
+# Menu publication
 
-L'utilisateur peut modifier l'ordre des calques ainsi que créer des thématiques pour les regrouper.
+## 1. Publications
 
-La suppression d'un calque est également à implémenter.
+## 2. Flux
 
-#### 3.1.3. Modification de la symbologie
 
-Bien que les calques de type Postgres ont déjà une symbologie par défaut, l'utilisateur peut la surcharger pour cette carte uniquement.
 
 
-### 3.2. Publication des cartes
 
-Une fois la carte terminée du point de vue de l'utilisateur, ce dernier peut la sauvegarder/publier.
 
-Le bouton sauvegarder/publier affiche un espace lui permettant de saisir un nom, une description.
 
-Si l'utilisateur est administrateur il peut associer des groupes à cette carte, à ce moment la carte sera disponible pour les utilisateurs de ce groupe.
+
+# Symbologies variables
+
+Les couches mapserver sont générées avec une symbologie par défaut.
+
+Un menu (studio) permet de les éditer et de stocker les symbologies variables en base.
+
+La symbologie variable peut être associée à un calque (valeur par défaut) ou à une carte (deuxième valeur par défaut).
+* Il faudra pour cela la modéliser au niveau de deux tables différentes.
+* Le format utilisé doit être évolutif car les possibilités de personnalisation se multiplieront avec le temps, pour cela nous préconisons le format JSON.
+
+Lorsque l'utilisateur demande une carte un fonction PHP va lire les différentes symbologies variables (JSON) et générer un mapfile spécifique privé qui sera utilisé lors de la consultation.
+
diff --git a/mcd/Propositions vMap 2021_v2.pptx b/mcd/Propositions vMap 2021_v2.pptx
new file mode 100644
index 0000000000000000000000000000000000000000..15bc744bc44a5cd13f9776b8aa2b2a94f3798308
Binary files /dev/null and b/mcd/Propositions vMap 2021_v2.pptx differ
diff --git a/mcd/vmap_2021.dbm b/mcd/vmap_2021.dbm
index 30ae9e0e4634e9fbae5f97d4bdcabd7fbe747277..c7e56ccb9a2898dd80082641235c899a81ca9169 100644
--- a/mcd/vmap_2021.dbm
+++ b/mcd/vmap_2021.dbm
@@ -3,7 +3,7 @@
 CAUTION: Do not modify this file unless you know what you are doing.
          Unexpected results may occur if the code is changed deliberately.
 -->
-<dbmodel pgmodeler-ver="0.9.2" last-position="89,0" last-zoom="1" max-obj-count="14"
+<dbmodel pgmodeler-ver="0.9.2" last-position="0,0" last-zoom="0.75" max-obj-count="20"
 	 default-owner="postgres">
 <database name="new_database" is-template="false" allow-conns="true">
 </database>
@@ -15,125 +15,92 @@ CAUTION: Do not modify this file unless you know what you are doing.
 	<role name="postgres"/>
 </schema>
 
-<table name="datasource" layer="0" collapse-mode="2" max-obj-count="20">
+<table name="datasource" layer="0" collapse-mode="2" max-obj-count="18">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="120" y="80"/>
+	<position x="20" y="60"/>
 	<column name="datasource_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
 	<column name="name">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
 	<column name="description">
-		<type name="smallint" length="0"/>
+		<type name="text" length="0"/>
 	</column>
-	<column name="type">
-		<type name="smallint" length="0"/>
+	<column name="datasourcetype_id">
+		<type name="integer" length="0"/>
+		<comment><![CDATA[postgres_interne
+postgres_publique
+directory
+flux_wms
+flux_wmts
+flux_xyz
+flux_osm]]></comment>
 	</column>
 	<column name="pg_database">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
 	<column name="pg_server">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
 	<column name="pg_port">
-		<type name="smallint" length="0"/>
+		<type name="integer" length="0"/>
 	</column>
 	<column name="pg_login">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
 	<column name="pg_password">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
-	<column name="directory">
-		<type name="smallint" length="0"/>
+	<column name="directory_path">
+		<type name="text" length="0"/>
 		<comment><![CDATA[Dossier racine où seraient entreposés plusieurs fichiers (shp, Raster..)]]></comment>
 	</column>
 	<column name="flux_url">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="flux_key">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="255"/>
 	</column>
 	<column name="flux_type_version">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="flux_type_type">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
 	<column name="flux_options">
-		<type name="smallint" length="0"/>
+		<type name="text" length="0"/>
+		<comment><![CDATA[JSON contenant les différentes options du flux, cela peut être par exemple la matrice pour le WMTS
+]]></comment>
 	</column>
 	<column name="flux_login">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
 	<column name="flux_password">
-		<type name="smallint" length="0"/>
+		<type name="varchar" length="100"/>
 	</column>
 	<constraint name="pk_datasource_id" type="pk-constr" table="s_vmap_2021.datasource">
 		<columns names="datasource_id" ref-type="src-columns"/>
 	</constraint>
 </table>
 
-<table name="layer" layer="0" collapse-mode="2" max-obj-count="55">
+<table name="layer" layer="0" collapse-mode="2" max-obj-count="13">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="460" y="80"/>
+	<position x="440" y="60"/>
 	<column name="layer_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
-	<column name="flux_id">
-		<type name="smallint" length="0"/>
-		<comment><![CDATA[Sans espace, sans accent...]]></comment>
-	</column>
 	<column name="name">
 		<type name="smallint" length="0"/>
 		<comment><![CDATA[Avec accents, espaces...]]></comment>
 	</column>
-	<column name="active">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="definition_json">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="definition_mapserver">
+	<column name="datasource_id">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="is_definition_json">
-		<type name="boolean" length="0"/>
-		<comment><![CDATA[Si c'est Oui : on utilise le studio
-Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></comment>
-	</column>
 	<column name="datemaj">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="tableschema">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="tablename">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="tableidfield">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="tablegeomfield">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="extent">
-		<type name="smallint" length="0"/>
-	</column>
 	<column name="source_id">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="coordsys_id">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="ms_geomtype_id">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="datasource_id">
-		<type name="smallint" length="0"/>
+	<column name="extent">
+		<type name="text" length="0"/>
 	</column>
 	<column name="min_layer_scale">
 		<type name="smallint" length="0"/>
@@ -141,114 +108,103 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	<column name="max_layer_scale">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="is_queriable">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="enable_location">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="location_search_field">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="location_placeholder">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="location_result_field">
+	<column name="active">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="location_search_mode">
-		<type name="smallint" length="0"/>
-		<comment><![CDATA[Type de recherche (début, milieu, fin de chaîne ou "texte plain" de postgresql)]]></comment>
+	<column name="flayer_id">
+		<type name="integer" length="0"/>
+		<comment><![CDATA[Flux de type externe]]></comment>
 	</column>
-	<column name="enable_map_selection">
-		<type name="smallint" length="0"/>
+	<column name="vlayer_id">
+		<type name="integer" length="0"/>
+		<comment><![CDATA[Couche interne]]></comment>
 	</column>
-	<column name="map_selection_buffer">
+	<constraint name="pk_layer_id" type="pk-constr" table="s_vmap_2021.layer">
+		<columns names="layer_id" ref-type="src-columns"/>
+	</constraint>
+</table>
+
+<table name="map" layer="0" collapse-mode="2" max-obj-count="31">
+	<schema name="s_vmap_2021"/>
+	<role name="postgres"/>
+	<position x="1440" y="100"/>
+	<column name="map_id" not-null="true">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="enable_data_grid">
+	<column name="name">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="data_grid_json_columns">
+	<column name="description">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="min_edition_scale">
+	<column name="extent">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="max_edition_scale">
+	<column name="catalog_index">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="form_title">
+	<column name="thumbnail">
 		<type name="smallint" length="0"/>
 	</column>
-	<column name="form_display_size">
-		<type name="smallint" length="0"/>
+	<column name="enable_mapname_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="form_insert_size">
-		<type name="smallint" length="0"/>
+	<column name="enable_coordsys_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="form_update_size">
-		<type name="smallint" length="0"/>
+	<column name="enable_zoom_slider_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="enable_clone">
-		<type name="smallint" length="0"/>
+	<column name="enable_zoom_btn_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="enable_automatically_edit">
-		<type name="smallint" length="0"/>
+	<column name="enable_overview_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="enable_multi_edit">
-		<type name="smallint" length="0"/>
+	<column name="enable_graphic_scale_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="multi_select_field">
-		<type name="smallint" length="0"/>
+	<column name="enable_numeric_scale_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="default_form_json_def">
-		<type name="smallint" length="0"/>
+	<column name="enable_mouse_position_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="default_form_js_def">
-		<type name="smallint" length="0"/>
+	<column name="enable_sources_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="published_form_json_def">
-		<type name="smallint" length="0"/>
+	<column name="enable_location_prev_next_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="published_form_js_def">
-		<type name="smallint" length="0"/>
+	<column name="enable_location_GPS_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="custom_form_json_def">
-		<type name="smallint" length="0"/>
+	<column name="enable_location_xy_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="custom_form_js_def">
-		<type name="smallint" length="0"/>
+	<column name="enable_location_initial_position_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="is_background_layer">
+	<column name="enable_location_search_tool">
 		<type name="boolean" length="0"/>
 	</column>
-	<constraint name="pk_layer_id" type="pk-constr" table="s_vmap_2021.layer">
-		<columns names="layer_id" ref-type="src-columns"/>
-	</constraint>
-</table>
-
-<table name="map" layer="0" collapse-mode="2" max-obj-count="7">
-	<schema name="s_vmap_2021"/>
-	<role name="postgres"/>
-	<position x="1560" y="160"/>
-	<column name="map_id" not-null="true">
-		<type name="smallint" length="0"/>
+	<column name="enable_location_max_extent_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="name">
-		<type name="smallint" length="0"/>
+	<column name="enable_compare_map_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="description">
-		<type name="smallint" length="0"/>
+	<column name="enable_refresh_layers_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="extent">
-		<type name="smallint" length="0"/>
+	<column name="enable_map_url_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="catalog_index">
-		<type name="smallint" length="0"/>
+	<column name="enable_measure_tool">
+		<type name="boolean" length="0"/>
 	</column>
-	<column name="thumbnail">
-		<type name="smallint" length="0"/>
+	<column name="enable_print_tool">
+		<type name="boolean" length="0"/>
 	</column>
 	<constraint name="map_pk" type="pk-constr" table="s_vmap_2021.map">
 		<columns names="map_id" ref-type="src-columns"/>
@@ -258,7 +214,7 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 <table name="source" layer="0" collapse-mode="2" max-obj-count="2">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="140" y="480"/>
+	<position x="880" y="400"/>
 	<column name="source_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
@@ -273,7 +229,7 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 <table name="coordsys" layer="0" collapse-mode="2" max-obj-count="6">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="900" y="700"/>
+	<position x="880" y="980"/>
 	<column name="coordsys_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
@@ -294,28 +250,10 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	</constraint>
 </table>
 
-<table name="wms_srs" layer="0" collapse-mode="2" max-obj-count="3">
-	<schema name="s_vmap_2021"/>
-	<role name="postgres"/>
-	<position x="900" y="520"/>
-	<column name="wms_srs_id" not-null="true">
-		<type name="serial" length="0"/>
-	</column>
-	<column name="layer_id">
-		<type name="smallint" length="0"/>
-	</column>
-	<column name="coordsys_id">
-		<type name="smallint" length="0"/>
-	</column>
-	<constraint name="wms_srs_pk" type="pk-constr" table="s_vmap_2021.wms_srs">
-		<columns names="wms_srs_id" ref-type="src-columns"/>
-	</constraint>
-</table>
-
 <table name="ms_geomtype" layer="0" collapse-mode="2" max-obj-count="3">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="900" y="360"/>
+	<position x="880" y="840"/>
 	<column name="ms_geomtype_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
@@ -330,27 +268,30 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	</constraint>
 </table>
 
-<table name="layer_map" layer="0" collapse-mode="2" max-obj-count="7">
+<table name="layer_map" layer="0" collapse-mode="2" max-obj-count="8">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="1200" y="160"/>
+	<position x="1080" y="100"/>
 	<column name="layer_map_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
 	<column name="layer_id">
-		<type name="smallint" length="0"/>
+		<type name="integer" length="0"/>
 	</column>
 	<column name="map_id">
-		<type name="smallint" length="0"/>
+		<type name="integer" length="0"/>
 	</column>
 	<column name="definition_json">
-		<type name="smallint" length="0"/>
+		<type name="text" length="0"/>
 	</column>
 	<column name="layer_index">
-		<type name="smallint" length="0"/>
+		<type name="integer" length="0"/>
 	</column>
 	<column name="layer_visible">
-		<type name="smallint" length="0"/>
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="layer_queriable">
+		<type name="boolean" length="0"/>
 	</column>
 	<constraint name="layer_map_pk" type="pk-constr" table="s_vmap_2021.layer_map">
 		<columns names="layer_map_id" ref-type="src-columns"/>
@@ -360,7 +301,7 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 <table name="msservice" layer="0" collapse-mode="2" max-obj-count="8">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="1560" y="420"/>
+	<position x="1460" y="700"/>
 	<column name="msservice_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
@@ -390,7 +331,7 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 <table name="msservice_layer" layer="0" collapse-mode="2" max-obj-count="3">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="1200" y="420"/>
+	<position x="1100" y="520"/>
 	<column name="msservice_layer_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
@@ -408,7 +349,7 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 <table name="msdebuglevel" layer="0" collapse-mode="2" max-obj-count="2">
 	<schema name="s_vmap_2021"/>
 	<role name="postgres"/>
-	<position x="1560" y="660"/>
+	<position x="1820" y="740"/>
 	<column name="msdebuglevel_id" not-null="true">
 		<type name="serial" length="0"/>
 	</column>
@@ -420,6 +361,241 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	</constraint>
 </table>
 
+<table name="datasourcetype" layer="0" collapse-mode="2" max-obj-count="3">
+	<schema name="s_vmap_2021"/>
+	<role name="postgres"/>
+	<position x="20" y="400"/>
+	<column name="datasourcetype_id">
+		<type name="serial" length="0"/>
+	</column>
+	<column name="key">
+		<type name="varchar" length="255"/>
+	</column>
+	<column name="label">
+		<type name="varchar" length="255"/>
+	</column>
+</table>
+
+<table name="vlayer" layer="0" collapse-mode="2" max-obj-count="46">
+	<schema name="s_vmap_2021"/>
+	<role name="postgres"/>
+	<position x="420" y="560"/>
+	<column name="vlayer_id" not-null="true">
+		<type name="serial" length="0"/>
+	</column>
+	<column name="definition_json">
+		<type name="text" length="0"/>
+	</column>
+	<column name="definition_mapserver">
+		<type name="text" length="0"/>
+	</column>
+	<column name="is_definition_json">
+		<type name="boolean" length="0"/>
+		<comment><![CDATA[Si c'est Oui : on utilise le studio
+Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></comment>
+	</column>
+	<column name="database">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="schema">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="table">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="filepath">
+		<type name="text" length="0"/>
+	</column>
+	<column name="idfield">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="geomfield">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="coordsys_id">
+		<type name="integer" length="0"/>
+	</column>
+	<column name="ms_geomtype_id">
+		<type name="integer" length="0"/>
+	</column>
+	<column name="is_queriable">
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="enable_location">
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="location_search_field">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="location_placeholder">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="location_result_field">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="location_search_mode_id">
+		<type name="varchar" length="100"/>
+		<comment><![CDATA[Type de recherche (début, milieu, fin de chaîne ou "texte plain" de postgresql)]]></comment>
+	</column>
+	<column name="enable_map_selection">
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="map_selection_buffer">
+		<type name="float8" length="0"/>
+	</column>
+	<column name="enable_data_grid">
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="data_grid_json_columns">
+		<type name="text" length="0"/>
+		<comment><![CDATA[Mappage entre les colonnes, les libéllés, si elles sont disponibles en recherche etc.]]></comment>
+	</column>
+	<column name="min_edition_scale">
+		<type name="numeric" length="0"/>
+	</column>
+	<column name="max_edition_scale">
+		<type name="numeric" length="0"/>
+	</column>
+	<column name="form_title">
+		<type name="varchar" length="255"/>
+	</column>
+	<column name="form_display_size_id">
+		<type name="integer" length="0"/>
+	</column>
+	<column name="form_insert_size_id">
+		<type name="integer" length="0"/>
+	</column>
+	<column name="form_update_size_id">
+		<type name="integer" length="0"/>
+	</column>
+	<column name="enable_clone">
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="enable_automatically_edit">
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="enable_multi_edit">
+		<type name="boolean" length="0"/>
+	</column>
+	<column name="multi_select_field">
+		<type name="varchar" length="100"/>
+	</column>
+	<column name="default_form_json_def">
+		<type name="text" length="0"/>
+	</column>
+	<column name="default_form_js_def">
+		<type name="text" length="0"/>
+	</column>
+	<column name="published_form_json_def">
+		<type name="text" length="0"/>
+	</column>
+	<column name="published_form_js_def">
+		<type name="text" length="0"/>
+	</column>
+	<column name="custom_form_json_def">
+		<type name="text" length="0"/>
+	</column>
+	<column name="custom_form_js_def">
+		<type name="text" length="0"/>
+	</column>
+	<column name="is_background_layer">
+		<type name="boolean" length="0"/>
+	</column>
+	<constraint name="pk_vlayer_id" type="pk-constr" table="s_vmap_2021.vlayer">
+		<columns names="vlayer_id" ref-type="src-columns"/>
+	</constraint>
+</table>
+
+<table name="flayer" layer="0" collapse-mode="2" max-obj-count="7">
+	<schema name="s_vmap_2021"/>
+	<role name="postgres"/>
+	<position x="180" y="560"/>
+	<column name="flayer_id" not-null="true">
+		<type name="serial" length="0"/>
+	</column>
+	<column name="name">
+		<type name="varchar" length="255"/>
+		<comment><![CDATA[Nom à utiliser dans le flux (sans accents, espaces etc.)]]></comment>
+	</column>
+	<column name="matrix_set">
+		<type name="varchar" length="255"/>
+	</column>
+	<column name="style">
+		<type name="varchar" length="255"/>
+	</column>
+	<column name="format">
+		<type name="varchar" length="255"/>
+	</column>
+	<column name="options">
+		<type name="text" length="0"/>
+		<comment><![CDATA[Options complémentaires en JSON]]></comment>
+	</column>
+	<constraint name="flayer_pk" type="pk-constr" table="s_vmap_2021.flayer">
+		<columns names="flayer_id" ref-type="src-columns"/>
+	</constraint>
+</table>
+
+<table name="searchmode" layer="0" collapse-mode="2" max-obj-count="3">
+	<schema name="s_vmap_2021"/>
+	<role name="postgres"/>
+	<position x="880" y="1160"/>
+	<column name="searchmode_id" not-null="true">
+		<type name="serial" length="0"/>
+	</column>
+	<column name="key">
+		<type name="varchar" length="100"/>
+		<comment><![CDATA[start, end, middle, plain]]></comment>
+	</column>
+	<column name="label">
+		<type name="varchar" length="100"/>
+	</column>
+	<constraint name="locationsearchmode_pk" type="pk-constr" table="s_vmap_2021.searchmode">
+		<columns names="searchmode_id" ref-type="src-columns"/>
+	</constraint>
+</table>
+
+<table name="formsize" layer="0" collapse-mode="2" max-obj-count="3">
+	<schema name="s_vmap_2021"/>
+	<role name="postgres"/>
+	<position x="880" y="700"/>
+	<column name="formsize_id" not-null="true">
+		<type name="serial" length="0"/>
+	</column>
+	<column name="key">
+		<type name="varchar" length="30"/>
+	</column>
+	<column name="label">
+		<type name="varchar" length="100"/>
+	</column>
+	<constraint name="formsize_pk" type="pk-constr" table="s_vmap_2021.formsize">
+		<columns names="formsize_id" ref-type="src-columns"/>
+	</constraint>
+</table>
+
+<table name="map_group" layer="0" collapse-mode="2" max-obj-count="3">
+	<schema name="s_vmap_2021"/>
+	<role name="postgres"/>
+	<position x="1880" y="100"/>
+	<column name="map_group_id" not-null="true">
+		<type name="serial" length="0"/>
+	</column>
+	<column name="map_id">
+		<type name="integer" length="0"/>
+	</column>
+	<column name="group_id">
+		<type name="integer" length="0"/>
+	</column>
+	<constraint name="map_group_pk" type="pk-constr" table="s_vmap_2021.map_group">
+		<columns names="map_group_id" ref-type="src-columns"/>
+	</constraint>
+</table>
+
+<constraint name="fk_datasourcetype_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.datasourcetype" table="s_vmap_2021.datasource">
+	<columns names="datasourcetype_id" ref-type="src-columns"/>
+	<columns names="datasourcetype_id" ref-type="dst-columns"/>
+</constraint>
+
 <constraint name="fk_datasource_id" type="fk-constr" comparison-type="MATCH FULL"
 	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.datasource" table="s_vmap_2021.layer">
 	<columns names="datasource_id" ref-type="src-columns"/>
@@ -432,28 +608,16 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	<columns names="source_id" ref-type="dst-columns"/>
 </constraint>
 
-<constraint name="fk_coordsys_id" type="fk-constr" comparison-type="MATCH FULL"
-	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.coordsys" table="s_vmap_2021.layer">
-	<columns names="coordsys_id" ref-type="src-columns"/>
-	<columns names="coordsys_id" ref-type="dst-columns"/>
-</constraint>
-
-<constraint name="fk_geomtype_id" type="fk-constr" comparison-type="MATCH FULL"
-	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.ms_geomtype" table="s_vmap_2021.layer">
-	<columns names="ms_geomtype_id" ref-type="src-columns"/>
-	<columns names="ms_geomtype_id" ref-type="dst-columns"/>
-</constraint>
-
-<constraint name="fk_layer_id" type="fk-constr" comparison-type="MATCH FULL"
-	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.layer" table="s_vmap_2021.wms_srs">
-	<columns names="layer_id" ref-type="src-columns"/>
-	<columns names="layer_id" ref-type="dst-columns"/>
+<constraint name="fk_flayer_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.flayer" table="s_vmap_2021.layer">
+	<columns names="flayer_id" ref-type="src-columns"/>
+	<columns names="flayer_id" ref-type="dst-columns"/>
 </constraint>
 
-<constraint name="fk_coordsys_id" type="fk-constr" comparison-type="MATCH FULL"
-	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.coordsys" table="s_vmap_2021.wms_srs">
-	<columns names="coordsys_id" ref-type="src-columns"/>
-	<columns names="coordsys_id" ref-type="dst-columns"/>
+<constraint name="fk_vlayer_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.vlayer" table="s_vmap_2021.layer">
+	<columns names="vlayer_id" ref-type="src-columns"/>
+	<columns names="vlayer_id" ref-type="dst-columns"/>
 </constraint>
 
 <constraint name="fk_layer_id" type="fk-constr" comparison-type="MATCH FULL"
@@ -486,10 +650,46 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	<columns names="msservice_id" ref-type="dst-columns"/>
 </constraint>
 
-<constraint name="fk_layer_id" type="fk-constr" comparison-type="MATCH FULL"
-	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.layer" table="s_vmap_2021.msservice_layer">
-	<columns names="layer_id" ref-type="src-columns"/>
-	<columns names="layer_id" ref-type="dst-columns"/>
+<constraint name="fk_coordsys_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.coordsys" table="s_vmap_2021.vlayer">
+	<columns names="coordsys_id" ref-type="src-columns"/>
+	<columns names="coordsys_id" ref-type="dst-columns"/>
+</constraint>
+
+<constraint name="fk_geomtype_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.ms_geomtype" table="s_vmap_2021.vlayer">
+	<columns names="ms_geomtype_id" ref-type="src-columns"/>
+	<columns names="ms_geomtype_id" ref-type="dst-columns"/>
+</constraint>
+
+<constraint name="location_search_mode_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.searchmode" table="s_vmap_2021.vlayer">
+	<columns names="location_search_mode_id" ref-type="src-columns"/>
+	<columns names="searchmode_id" ref-type="dst-columns"/>
+</constraint>
+
+<constraint name="fk_forn_display_size" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.formsize" table="s_vmap_2021.vlayer">
+	<columns names="form_display_size_id" ref-type="src-columns"/>
+	<columns names="formsize_id" ref-type="dst-columns"/>
+</constraint>
+
+<constraint name="fk_form_insert_size_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.formsize" table="s_vmap_2021.vlayer">
+	<columns names="form_insert_size_id" ref-type="src-columns"/>
+	<columns names="formsize_id" ref-type="dst-columns"/>
+</constraint>
+
+<constraint name="fk_form_update_size_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.formsize" table="s_vmap_2021.vlayer">
+	<columns names="form_update_size_id" ref-type="src-columns"/>
+	<columns names="formsize_id" ref-type="dst-columns"/>
+</constraint>
+
+<constraint name="fk_map_id" type="fk-constr" comparison-type="MATCH FULL"
+	 upd-action="NO ACTION" del-action="NO ACTION" ref-table="s_vmap_2021.map" table="s_vmap_2021.map_group">
+	<columns names="map_id" ref-type="src-columns"/>
+	<columns names="map_id" ref-type="dst-columns"/>
 </constraint>
 
 <relationship name="rel_layer_datasource" type="relfk" layer="0"
@@ -502,26 +702,6 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	 dst-table="s_vmap_2021.source" reference-fk="fk_source_id"
 	 src-required="false" dst-required="false"/>
 
-<relationship name="rel_layer_coordsys" type="relfk" layer="0"
-	 src-table="s_vmap_2021.layer"
-	 dst-table="s_vmap_2021.coordsys" reference-fk="fk_coordsys_id"
-	 src-required="false" dst-required="false"/>
-
-<relationship name="rel_layer_ms_geomtype" type="relfk" layer="0"
-	 src-table="s_vmap_2021.layer"
-	 dst-table="s_vmap_2021.ms_geomtype" reference-fk="fk_geomtype_id"
-	 src-required="false" dst-required="false"/>
-
-<relationship name="rel_wms_srs_layer" type="relfk" layer="0"
-	 src-table="s_vmap_2021.wms_srs"
-	 dst-table="s_vmap_2021.layer" reference-fk="fk_layer_id"
-	 src-required="false" dst-required="false"/>
-
-<relationship name="rel_wms_srs_coordsys" type="relfk" layer="0"
-	 src-table="s_vmap_2021.wms_srs"
-	 dst-table="s_vmap_2021.coordsys" reference-fk="fk_coordsys_id"
-	 src-required="false" dst-required="false"/>
-
 <relationship name="rel_layer_map_layer" type="relfk" layer="0"
 	 src-table="s_vmap_2021.layer_map"
 	 dst-table="s_vmap_2021.layer" reference-fk="fk_layer_id"
@@ -537,11 +717,6 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	 dst-table="s_vmap_2021.msservice" reference-fk="fk_msservice_id"
 	 src-required="false" dst-required="false"/>
 
-<relationship name="rel_msservice_layer_layer" type="relfk" layer="0"
-	 src-table="s_vmap_2021.msservice_layer"
-	 dst-table="s_vmap_2021.layer" reference-fk="fk_layer_id"
-	 src-required="false" dst-required="false"/>
-
 <relationship name="rel_msservice_msdebuglevel" type="relfk" layer="0"
 	 src-table="s_vmap_2021.msservice"
 	 dst-table="s_vmap_2021.msdebuglevel" reference-fk="fk_msdebuglevel_id"
@@ -552,4 +727,54 @@ Si c'est Non : l'utilisateur a basculé sur l'édition manuelle du mapfile]]></c
 	 dst-table="s_vmap_2021.coordsys" reference-fk="fk_coordsys_id"
 	 src-required="false" dst-required="false"/>
 
+<relationship name="rel_datasource_datasourcetypes" type="relfk" layer="0"
+	 src-table="s_vmap_2021.datasource"
+	 dst-table="s_vmap_2021.datasourcetype" reference-fk="fk_datasourcetype_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_layer_cp_coordsys" type="relfk" layer="0"
+	 src-table="s_vmap_2021.vlayer"
+	 dst-table="s_vmap_2021.coordsys" reference-fk="fk_coordsys_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_layer_cp_ms_geomtype" type="relfk" layer="0"
+	 src-table="s_vmap_2021.vlayer"
+	 dst-table="s_vmap_2021.ms_geomtype" reference-fk="fk_geomtype_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_layer_vlayer" type="relfk" layer="0"
+	 src-table="s_vmap_2021.layer"
+	 dst-table="s_vmap_2021.vlayer" reference-fk="fk_vlayer_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_layer_flayer" type="relfk" layer="0"
+	 src-table="s_vmap_2021.layer"
+	 dst-table="s_vmap_2021.flayer" reference-fk="fk_flayer_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_vlayer_searchmode" type="relfk" layer="0"
+	 src-table="s_vmap_2021.vlayer"
+	 dst-table="s_vmap_2021.searchmode" reference-fk="location_search_mode_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_vlayer_formsize" type="relfk" layer="0"
+	 src-table="s_vmap_2021.vlayer"
+	 dst-table="s_vmap_2021.formsize" reference-fk="fk_forn_display_size"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_vlayer_formsize1" type="relfk" layer="0"
+	 src-table="s_vmap_2021.vlayer"
+	 dst-table="s_vmap_2021.formsize" reference-fk="fk_form_insert_size_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_vlayer_formsize2" type="relfk" layer="0"
+	 src-table="s_vmap_2021.vlayer"
+	 dst-table="s_vmap_2021.formsize" reference-fk="fk_form_update_size_id"
+	 src-required="false" dst-required="false"/>
+
+<relationship name="rel_map_group_map" type="relfk" layer="0"
+	 src-table="s_vmap_2021.map_group"
+	 dst-table="s_vmap_2021.map" reference-fk="fk_map_id"
+	 src-required="false" dst-required="false"/>
+
 </dbmodel>