Index: /applications/editors/josm/plugins/opendata/.project
===================================================================
--- /applications/editors/josm/plugins/opendata/.project	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/.project	(revision 30731)
@@ -13,4 +13,5 @@
 	</buildSpec>
 	<natures>
+		<nature>org.sonar.ide.eclipse.core.sonarNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
Index: /applications/editors/josm/plugins/opendata/.settings/org.sonar.ide.eclipse.core.prefs
===================================================================
--- /applications/editors/josm/plugins/opendata/.settings/org.sonar.ide.eclipse.core.prefs	(revision 30731)
+++ /applications/editors/josm/plugins/opendata/.settings/org.sonar.ide.eclipse.core.prefs	(revision 30731)
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+extraProperties=sonar.sources\=src,modules/*/src\r\nsonar.tests\=test/functional,test/performance,test/unit\r\nsonar.exclusions\=includes/**/*.java
+lastAnalysisDate=1413638065029
+projectKey=josm-plugins
+serverUrl=http\://donvip.fr/sonar
+version=2
Index: /applications/editors/josm/plugins/opendata/modules/00_module_dir_template/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/00_module_dir_template/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/00_module_dir_template/build.xml	(revision 30731)
@@ -37,5 +37,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/be.bruxelles/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.bruxelles/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.bruxelles/build.xml	(revision 30731)
@@ -14,5 +14,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/BruxellesConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/BruxellesConstants.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/BruxellesConstants.java	(revision 30731)
@@ -4,15 +4,15 @@
 
 public interface BruxellesConstants {
-	
-	/**
-	 * Source
-	 */
-	public static final String SOURCE_BRUXELLES = "Ville de Bruxelles";
-	
-	/**
-	 * Portal
-	 */
-	public static final String PORTAL_EN = "http://www.brussels.be";
-	public static final String PORTAL_FR = "http://www.bruxelles.be";
-	public static final String PORTAL_NL = "http://www.brussel.be";
+    
+    /**
+     * Source
+     */
+    public static final String SOURCE_BRUXELLES = "Ville de Bruxelles";
+    
+    /**
+     * Portal
+     */
+    public static final String PORTAL_EN = "http://www.brussels.be";
+    public static final String PORTAL_FR = "http://www.bruxelles.be";
+    public static final String PORTAL_NL = "http://www.brussel.be";
 }
Index: /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/BruxellesModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/BruxellesModule.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/BruxellesModule.java	(revision 30731)
@@ -8,7 +8,7 @@
 public class BruxellesModule extends AbstractModule {
 
-	public BruxellesModule(ModuleInformation info) {
-		super(info);
-		handlers.add(BDHandler.class);
+    public BruxellesModule(ModuleInformation info) {
+        super(info);
+        handlers.add(BDHandler.class);
     }
 }
Index: /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/BruxellesDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/BruxellesDataSetHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/BruxellesDataSetHandler.java	(revision 30731)
@@ -11,58 +11,58 @@
 
 public abstract class BruxellesDataSetHandler extends BelgianDataSetHandler implements BruxellesConstants {
-	
-	private Integer localPortalId;
-	
-	public BruxellesDataSetHandler() {
-		init(null, null);
-	}
+    
+    private Integer localPortalId;
+    
+    public BruxellesDataSetHandler() {
+        init(null, null);
+    }
 
-	public BruxellesDataSetHandler(Integer portalId) {
-		init(portalId, null);
-	}
+    public BruxellesDataSetHandler(Integer portalId) {
+        init(portalId, null);
+    }
 
-	public BruxellesDataSetHandler(Integer portalId, Projection singleProjection) {
-		init(portalId, singleProjection);
-	}
+    public BruxellesDataSetHandler(Integer portalId, Projection singleProjection) {
+        init(portalId, singleProjection);
+    }
 
-	public BruxellesDataSetHandler(Integer portalId, Projection singleProjection, String relevantTag) {
-		super(relevantTag);
-		init(portalId, singleProjection);
-	}
+    public BruxellesDataSetHandler(Integer portalId, Projection singleProjection, String relevantTag) {
+        super(relevantTag);
+        init(portalId, singleProjection);
+    }
 
-	public BruxellesDataSetHandler(Integer portalId, String relevantTag) {
-		super(relevantTag);
-		init(portalId, null);
-	}
+    public BruxellesDataSetHandler(Integer portalId, String relevantTag) {
+        super(relevantTag);
+        init(portalId, null);
+    }
 
-	private void init(Integer portalId, Projection singleProjection) {
-		setSingleProjection(singleProjection);
-		this.localPortalId = portalId;
-	}
+    private void init(Integer portalId, Projection singleProjection) {
+        setSingleProjection(singleProjection);
+        this.localPortalId = portalId;
+    }
 
-	@Override
-	public String getSource() {
-		return SOURCE_BRUXELLES;
-	}
+    @Override
+    public String getSource() {
+        return SOURCE_BRUXELLES;
+    }
 
-	@Override
-	public URL getLocalPortalURL() {
-		String basePortal = null;
-		String lang = OdUtils.getJosmLanguage();
-			
-		if (lang.startsWith("fr")) {
-			basePortal = PORTAL_FR;
-		} else if (lang.startsWith("nl")) {
-			basePortal = PORTAL_NL;
-		} else {
-			basePortal = PORTAL_EN;
-		}
+    @Override
+    public URL getLocalPortalURL() {
+        String basePortal = null;
+        String lang = OdUtils.getJosmLanguage();
+            
+        if (lang.startsWith("fr")) {
+            basePortal = PORTAL_FR;
+        } else if (lang.startsWith("nl")) {
+            basePortal = PORTAL_NL;
+        } else {
+            basePortal = PORTAL_EN;
+        }
 
-		try {
-			return new URL(basePortal + "/artdet.cfm?id=" + localPortalId);
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-			return null;
-		}
-	}
+        try {
+            return new URL(basePortal + "/artdet.cfm?id=" + localPortalId);
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/culture/BDHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/culture/BDHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/culture/BDHandler.java	(revision 30731)
@@ -8,19 +8,19 @@
 public class BDHandler extends BruxellesDataSetHandler {
 
-	public BDHandler() {
-		getCsvHandler().setSeparator(",");
-	}
-	
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsCsvFilename(filename, "textfile");
-	}
+    public BDHandler() {
+        getCsvHandler().setSeparator(",");
+    }
+    
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsCsvFilename(filename, "textfile");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			n.put("tourism", "artwork");
-			replace(n, "Description", "name");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            n.put("tourism", "artwork");
+            replace(n, "Description", "name");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/be.datagovbe/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.datagovbe/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.datagovbe/build.xml	(revision 30731)
@@ -14,5 +14,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/DataGovBeConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/DataGovBeConstants.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/DataGovBeConstants.java	(revision 30731)
@@ -4,8 +4,8 @@
 
 public interface DataGovBeConstants {
-	
-	/**
-	 * Source
-	 */
-	public static final String SOURCE_DATAGOVBE = "data.gov.be";
+    
+    /**
+     * Source
+     */
+    public static final String SOURCE_DATAGOVBE = "data.gov.be";
 }
Index: /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/DataGovBeModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/DataGovBeModule.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/DataGovBeModule.java	(revision 30731)
@@ -8,7 +8,7 @@
 public class DataGovBeModule extends AbstractModule {
 
-	public DataGovBeModule(ModuleInformation info) {
-		super(info);
-		handlers.add(ArchitecturalHeritageHandler.class);
+    public DataGovBeModule(ModuleInformation info) {
+        super(info);
+        handlers.add(ArchitecturalHeritageHandler.class);
     }
 }
Index: /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/DataGovDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/DataGovDataSetHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/DataGovDataSetHandler.java	(revision 30731)
@@ -7,35 +7,35 @@
 
 public abstract class DataGovDataSetHandler extends BelgianDataSetHandler implements DataGovBeConstants {
-	
-	public DataGovDataSetHandler() {
-		init(null, null, null, null, null);
-	}
+    
+    public DataGovDataSetHandler() {
+        init(null, null, null, null, null);
+    }
 
-	public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl) {
-		init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, null);
-	}
+    public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl) {
+        init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, null);
+    }
 
-	public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, Projection singleProjection) {
-		init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, singleProjection);
-	}
+    public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, Projection singleProjection) {
+        init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, singleProjection);
+    }
 
-	public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, Projection singleProjection, String relevantTag) {
-		super(relevantTag);
-		init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, singleProjection);
-	}
+    public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, Projection singleProjection, String relevantTag) {
+        super(relevantTag);
+        init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, singleProjection);
+    }
 
-	public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, String relevantTag) {
-		super(relevantTag);
-		init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, null);
-	}
+    public DataGovDataSetHandler(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, String relevantTag) {
+        super(relevantTag);
+        init(portalPathDe, portalPathEn, portalPathFr, portalPathNl, null);
+    }
 
-	private void init(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, Projection singleProjection) {
-		setNationalPortalPath(portalPathDe, portalPathEn, portalPathFr, portalPathNl);
-		setSingleProjection(singleProjection);
-	}
+    private void init(String portalPathDe, String portalPathEn, String portalPathFr, String portalPathNl, Projection singleProjection) {
+        setNationalPortalPath(portalPathDe, portalPathEn, portalPathFr, portalPathNl);
+        setSingleProjection(singleProjection);
+    }
 
-	@Override
-	public String getSource() {
-		return SOURCE_DATAGOVBE;
-	}
+    @Override
+    public String getSource() {
+        return SOURCE_DATAGOVBE;
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/culture/ArchitecturalHeritageHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/culture/ArchitecturalHeritageHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/culture/ArchitecturalHeritageHandler.java	(revision 30731)
@@ -7,16 +7,16 @@
 public class ArchitecturalHeritageHandler extends DataGovDataSetHandler {
 
-	public ArchitecturalHeritageHandler() {
-		super("inventar-des-architektonischen-erbes", "inventory-architectural-heritage", "iventaire-heritage-architectural", "inventaris-bouwkundig-erfgoed");
-	}
+    public ArchitecturalHeritageHandler() {
+        super("inventar-des-architektonischen-erbes", "inventory-architectural-heritage", "iventaire-heritage-architectural", "inventaris-bouwkundig-erfgoed");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzFilename(filename, "dibe(_geheel)?") || acceptsZipFilename(filename, "dibegis") || acceptsShpFilename(filename, "dibe_(gehelen|orgels|relicten)");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzFilename(filename, "dibe(_geheel)?") || acceptsZipFilename(filename, "dibegis") || acceptsShpFilename(filename, "dibe_(gehelen|orgels|relicten)");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO Auto-generated method stub
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO Auto-generated method stub
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/build.xml	(revision 30731)
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <project name="josm-opendata-modules" default="dist" basedir=".">
-	<macrodef name="run_target">
+    <macrodef name="run_target">
         <attribute name="target" />
-		<sequential>
+        <sequential>
             <ant antfile="build.xml" target="@{target}" dir="be.bruxelles"/>
-			<ant antfile="build.xml" target="@{target}" dir="be.datagovbe"/>
-	        <ant antfile="build.xml" target="@{target}" dir="fr.cg41"/>
-	        <ant antfile="build.xml" target="@{target}" dir="fr.datagouvfr"/>
+            <ant antfile="build.xml" target="@{target}" dir="be.datagovbe"/>
+            <ant antfile="build.xml" target="@{target}" dir="fr.cg41"/>
+            <ant antfile="build.xml" target="@{target}" dir="fr.datagouvfr"/>
             <ant antfile="build.xml" target="@{target}" dir="fr.lemans"/>
-	        <ant antfile="build.xml" target="@{target}" dir="fr.paris"/>
-	        <ant antfile="build.xml" target="@{target}" dir="fr.sncf"/>
-	        <ant antfile="build.xml" target="@{target}" dir="fr.toulouse"/>
-		</sequential>
-	</macrodef>
+            <ant antfile="build.xml" target="@{target}" dir="fr.paris"/>
+            <ant antfile="build.xml" target="@{target}" dir="fr.sncf"/>
+            <ant antfile="build.xml" target="@{target}" dir="fr.toulouse"/>
+        </sequential>
+    </macrodef>
     <target name="dist">
         <mkdir dir="../dist"/>
-    	<run_target target="dist"/>
-    	<antcall target="list" />
+        <run_target target="dist"/>
+        <antcall target="list" />
     </target>
     <target name="clean">
@@ -25,11 +25,11 @@
         <run_target target="install"/>
     </target>
-	<target name="list">
-		<mkdir dir="build"/>
-		<javac srcdir="../util" destdir="build" includes="opendata/**" includeantruntime="false" />
-		<java classpath="build" classname="opendata.ModuleListGenerator">
-			<arg line="../"/>
-		</java>
-		<delete dir="build" />
-	</target>
+    <target name="list">
+        <mkdir dir="build"/>
+        <javac srcdir="../util" destdir="build" includes="opendata/**" includeantruntime="false" />
+        <java classpath="build" classname="opendata.ModuleListGenerator">
+            <arg line="../"/>
+        </java>
+        <delete dir="build" />
+    </target>
 </project>
Index: /applications/editors/josm/plugins/opendata/modules/fr.cg41/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.cg41/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.cg41/build.xml	(revision 30731)
@@ -14,5 +14,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/Cg41Constants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/Cg41Constants.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/Cg41Constants.java	(revision 30731)
@@ -5,19 +5,19 @@
 
 public interface Cg41Constants extends FrenchConstants {
-	
-	/**
-	 * Source
-	 */
-	public static final String SOURCE_CG41 = "Conseil général du Loir-et-Cher";
+    
+    /**
+     * Source
+     */
+    public static final String SOURCE_CG41 = "Conseil général du Loir-et-Cher";
 
-	/**
-	 * Icons
-	 */
-	public static final String ICON_CG41_16 = "data.fr.cg41_16.png";
-	public static final String ICON_CG41_24 = "data.fr.cg41_24.png";
-	
-	/**
-	 * Portal
-	 */
-	public static final String PORTAL_CG41 = "http://www.pilote41.fr/geosource/srv/fr/metadata.show?id=";
+    /**
+     * Icons
+     */
+    public static final String ICON_CG41_16 = "data.fr.cg41_16.png";
+    public static final String ICON_CG41_24 = "data.fr.cg41_24.png";
+    
+    /**
+     * Portal
+     */
+    public static final String PORTAL_CG41 = "http://www.pilote41.fr/geosource/srv/fr/metadata.show?id=";
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/Cg41Module.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/Cg41Module.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/Cg41Module.java	(revision 30731)
@@ -9,8 +9,8 @@
 public class Cg41Module extends AbstractModule {
 
-	public Cg41Module(ModuleInformation info) {
-		super(info);
-		handlers.add(ArretsBusHandler.class);
-		handlers.add(ZonesInondablesBrayeHandler.class);
+    public Cg41Module(ModuleInformation info) {
+        super(info);
+        handlers.add(ArretsBusHandler.class);
+        handlers.add(ZonesInondablesBrayeHandler.class);
     }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/Cg41DataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/Cg41DataSetHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/Cg41DataSetHandler.java	(revision 30731)
@@ -9,53 +9,53 @@
 
 public abstract class Cg41DataSetHandler extends FrenchDataSetHandler implements Cg41Constants {
-	
-	public Cg41DataSetHandler(int portalId, String nationalPath) {
-		init(portalId, nationalPath);
-	}
-	
-	public Cg41DataSetHandler(int portalId, String nationalPath, String relevantTag) {
-		super(relevantTag);
-		init(portalId, nationalPath);
-	}
-	
-	public Cg41DataSetHandler(int portalId, String nationalPath, boolean relevantUnion, String ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(portalId, nationalPath);
-	}
+    
+    public Cg41DataSetHandler(int portalId, String nationalPath) {
+        init(portalId, nationalPath);
+    }
+    
+    public Cg41DataSetHandler(int portalId, String nationalPath, String relevantTag) {
+        super(relevantTag);
+        init(portalId, nationalPath);
+    }
+    
+    public Cg41DataSetHandler(int portalId, String nationalPath, boolean relevantUnion, String ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(portalId, nationalPath);
+    }
 
-	public Cg41DataSetHandler(int portalId, String nationalPath, String ... relevantTags) {
-		this(portalId, nationalPath, false, relevantTags);
-	}
+    public Cg41DataSetHandler(int portalId, String nationalPath, String ... relevantTags) {
+        this(portalId, nationalPath, false, relevantTags);
+    }
 
-	public Cg41DataSetHandler(int portalId, String nationalPath, boolean relevantUnion, Tag ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(portalId, nationalPath);
-	}
+    public Cg41DataSetHandler(int portalId, String nationalPath, boolean relevantUnion, Tag ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(portalId, nationalPath);
+    }
 
-	private final void init(int portalId, String nationalPath) {
-		setNationalPortalPath(nationalPath);
-		try {
-			if (portalId > 0) {
-				setLocalPortalURL(PORTAL_CG41 + portalId);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
+    private final void init(int portalId, String nationalPath) {
+        setNationalPortalPath(nationalPath);
+        try {
+            if (portalId > 0) {
+                setLocalPortalURL(PORTAL_CG41 + portalId);
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
 
-	}
+    }
 
-	@Override
-	public String getSource() {
-		return SOURCE_CG41;
-	}
+    @Override
+    public String getSource() {
+        return SOURCE_CG41;
+    }
 
-	@Override
-	public String getLocalPortalIconName() {
-		return ICON_CG41_24;
-	}
+    @Override
+    public String getLocalPortalIconName() {
+        return ICON_CG41_24;
+    }
 
-	@Override
-	public String getDataLayerIconName() {
-		return ICON_CG41_16;
-	}
+    @Override
+    public String getDataLayerIconName() {
+        return ICON_CG41_16;
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/environnement/ZonesInondablesBrayeHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/environnement/ZonesInondablesBrayeHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/environnement/ZonesInondablesBrayeHandler.java	(revision 30731)
@@ -6,16 +6,16 @@
 
 public class ZonesInondablesBrayeHandler extends Cg41DataSetHandler {
-	public ZonesInondablesBrayeHandler() {
-		super(14624, "Zone-inondable-de-la-Braye-au-1-25000-(partie-Loir-et-Cher)-30383255");
-	}
+    public ZonesInondablesBrayeHandler() {
+        super(14624, "Zone-inondable-de-la-Braye-au-1-25000-(partie-Loir-et-Cher)-30383255");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsMifFilename(filename, "aleas_braye");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsMifFilename(filename, "aleas_braye");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO Auto-generated method stub
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO Auto-generated method stub
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/transport/ArretsBusHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/transport/ArretsBusHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/transport/ArretsBusHandler.java	(revision 30731)
@@ -7,16 +7,16 @@
 public class ArretsBusHandler extends Cg41DataSetHandler {
 
-	public ArretsBusHandler() {
-		super(14615, "Points-d'arrêt-du-réseau-de-transport-départemental-\"Route41\"-30383156");
-	}
+    public ArretsBusHandler() {
+        super(14615, "Points-d'arrêt-du-réseau-de-transport-départemental-\"Route41\"-30383156");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "Points_ROUTE41");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "Points_ROUTE41");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO Auto-generated method stub
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO Auto-generated method stub
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/build.xml	(revision 30731)
@@ -14,5 +14,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/DataGouvFrConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/DataGouvFrConstants.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/DataGouvFrConstants.java	(revision 30731)
@@ -5,18 +5,18 @@
 
 public interface DataGouvFrConstants extends FrenchConstants {
-	
-	/**
-	 * Wiki
-	 */
-	public static final String WIKI = "http://wiki.openstreetmap.org/wiki/WikiProject_France/data.gouv.fr";
+    
+    /**
+     * Wiki
+     */
+    public static final String WIKI = "http://wiki.openstreetmap.org/wiki/WikiProject_France/data.gouv.fr";
 
-	/**
-	 * Source
-	 */
-	public static final String SOURCE_DATAGOUVFR = "data.gouv.fr";
-	
-	/**
-	 * Icons
-	 */
-	public static final String ICON_IGN_24 = "data.fr.ign_24.png";
+    /**
+     * Source
+     */
+    public static final String SOURCE_DATAGOUVFR = "data.gouv.fr";
+    
+    /**
+     * Icons
+     */
+    public static final String ICON_IGN_24 = "data.fr.ign_24.png";
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/DataGouvFrModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/DataGouvFrModule.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/DataGouvFrModule.java	(revision 30731)
@@ -22,6 +22,6 @@
 public class DataGouvFrModule extends AbstractModule {
 
-	public DataGouvFrModule(ModuleInformation info) {
-		super(info);
+    public DataGouvFrModule(ModuleInformation info) {
+        super(info);
         handlers.add(Etab1er2ndDegreHandler.class);
         handlers.add(EtabAEFEHandler.class);
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/DataGouvDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/DataGouvDataSetHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/DataGouvDataSetHandler.java	(revision 30731)
@@ -10,44 +10,44 @@
 
 public abstract class DataGouvDataSetHandler extends FrenchDataSetHandler implements DataGouvFrConstants {
-	
-	public DataGouvDataSetHandler() {
-		init(null, null);
-	}
+    
+    public DataGouvDataSetHandler() {
+        init(null, null);
+    }
 
-	public DataGouvDataSetHandler(String portalPath) {
-		init(portalPath, null);
-	}
+    public DataGouvDataSetHandler(String portalPath) {
+        init(portalPath, null);
+    }
 
-	public DataGouvDataSetHandler(String portalPath, Projection singleProjection) {
-		init(portalPath, singleProjection);
-	}
+    public DataGouvDataSetHandler(String portalPath, Projection singleProjection) {
+        init(portalPath, singleProjection);
+    }
 
-	public DataGouvDataSetHandler(String portalPath, Projection singleProjection, String relevantTag) {
-		super(relevantTag);
-		init(portalPath, singleProjection);
-	}
+    public DataGouvDataSetHandler(String portalPath, Projection singleProjection, String relevantTag) {
+        super(relevantTag);
+        init(portalPath, singleProjection);
+    }
 
-	public DataGouvDataSetHandler(String portalPath, String relevantTag) {
-		super(relevantTag);
-		init(portalPath, null);
-	}
+    public DataGouvDataSetHandler(String portalPath, String relevantTag) {
+        super(relevantTag);
+        init(portalPath, null);
+    }
 
-	private void init(String portalPath, Projection singleProjection) {
-		setNationalPortalPath(portalPath);
-		setSingleProjection(singleProjection);
-		setLicense(License.LOOL);
-	}
+    private void init(String portalPath, Projection singleProjection) {
+        setNationalPortalPath(portalPath);
+        setSingleProjection(singleProjection);
+        setLicense(License.LOOL);
+    }
 
-	@Override
-	public String getSource() {
-		return SOURCE_DATAGOUVFR;
-	}
-	
-	protected final void setDownloadFileName(String filename) {
-		try {
-			setDataURL(FRENCH_PORTAL+"var/download/"+filename);
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-	}
+    @Override
+    public String getSource() {
+        return SOURCE_DATAGOUVFR;
+    }
+    
+    protected final void setDownloadFileName(String filename) {
+        try {
+            setDataURL(FRENCH_PORTAL+"var/download/"+filename);
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/administration/GeoFlaHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/administration/GeoFlaHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/administration/GeoFlaHandler.java	(revision 30731)
@@ -19,183 +19,183 @@
 
 public class GeoFlaHandler extends DataGouvDataSetHandler {
-	
-	public GeoFlaHandler() {
-		super();
-		setName("GEOFLA®");
-		getShpHandler().setPreferMultipolygonToSimpleWay(true);
-		try {
-			setLocalPortalURL("http://professionnels.ign.fr/geofla#tab-3");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public String getLocalPortalIconName() {
-		return ICON_IGN_24;
-	}
-
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return isDepartementFile(filename) || isCommuneFile(filename) || isCantonFile(filename) || isArrondissementFile(filename);
-	}
-		
-	protected boolean isDepartementFile(String filename) {
-		return acceptsShpMifFilename(filename, "DEPARTEMENT") || acceptsShpMifFilename(filename, "LIMITE_DEPARTEMENT");
-	}
-
-	protected boolean isCommuneFile(String filename) {
-		return acceptsShpFilename(filename, "COMMUNE") || acceptsShpFilename(filename, "LIMITE_COMMUNE");
-	}
-
-	protected boolean isCantonFile(String filename) {
-		return acceptsShpFilename(filename, "CANTON") || acceptsShpFilename(filename, "LIMITE_CANTON");
-	}
-
-	protected boolean isArrondissementFile(String filename) {
-		return acceptsShpFilename(filename, "ARRONDISSEMENT") || acceptsShpFilename(filename, "LIMITE_ARRONDISSEMENT");
-	}
-
-	@Override
-	public void updateDataSet(DataSet ds) {
-		final String filename = getAssociatedFile().getName();
-		if (isDepartementFile(filename)) {
-			setNationalPortalPath("GEOFLA®-Départements-30383060");
-		} else if (isCommuneFile(filename)) {
-			setNationalPortalPath("GEOFLA®-Communes-30383083");
-		}
-		for (OsmPrimitive p : ds.allPrimitives()) {
-			if (hasKeyIgnoreCase(p, "Id_geofla", "Id_GéoFLA")) {
-				String deptName = WordUtils.capitalizeFully(getAndRemoveIgnoreCase(p, "Nom_dept", "Nom_Département"));
-				if ("Reunion".equals(deptName)) {
-					deptName = "La Réunion";
-				}
-				if (isDepartementFile(filename)) {
-					p.put("name", deptName);
-				} else if (isCommuneFile(filename)) {
-					p.put("name", WordUtils.capitalizeFully(getAndRemoveIgnoreCase(p, "NOM_COMM")));
-					replace(p, "INSEE_COM", "ref:INSEE");
-				}
-				p.put("boundary", "administrative");
-				String nature = getIgnoreCase(p, "Nature");
-				if ("Frontière internationale".equalsIgnoreCase(nature) || "Limite côtière".equalsIgnoreCase(nature)) {
-					p.put("admin_level", "2");
-				} else if ("Limite de région".equalsIgnoreCase(nature)) {
-					p.put("admin_level", "4");
-				} else if (isDepartementFile(filename) || "Limite de département".equalsIgnoreCase(nature)) {
-					p.put("admin_level", "6");
-				} else if(isArrondissementFile(filename) || "Limite d'arrondissement".equalsIgnoreCase(nature)) {
-					p.put("admin_level", "7");
-				} else if(isCommuneFile(filename)) {
-					p.put("admin_level", "8");
-				}
-				if (p instanceof Relation) {
-					p.put("type", "boundary");
-				}
-				LatLon llCentroid = getLatLon(p, deptName, "centroid", "Centroïde");
-				if (llCentroid != null) {
-					Node centroid = new Node(llCentroid);
-					ds.addPrimitive(centroid);
-					//centroid.put("name", p.get("name"));
-					if (p instanceof Relation) {
-						((Relation) p).addMember(new RelationMember("centroid", centroid));
-					}
-				}
-				LatLon llChefLieu = getLatLon(p, deptName, "chf_lieu", "Chef_Lieu");
-				if (llChefLieu != null) {
-					Node chefLieu = new Node(llChefLieu);
-					ds.addPrimitive(chefLieu);
-					//chefLieu.put("Code_chf", getAndRemoveIgnoreCase(p, "Code_chf", "Code_Chef_Lieu"));
-					String name = WordUtils.capitalizeFully(getAndRemoveIgnoreCase(p, "Nom_chf", "Nom_Chef_lieu"));
-					if (isArrondissementFile(filename)) {
-						p.put("name", name);
-					}
-					chefLieu.put("name", name);
-					if (p instanceof Relation) {
-						((Relation) p).addMember(new RelationMember("admin_centre", chefLieu));
-					}
-				}
-			}
-		}
-	}
-	
-	protected static boolean hasKeyIgnoreCase(OsmPrimitive p, String ... strings) {
-		return getIgnoreCase(p, strings) != null;
-	}
-
-	protected static String getIgnoreCase(OsmPrimitive p, String ... strings) {
-		String result = null;
-		for (String s : strings) {
-			if (result == null) result = p.get(s);
-			if (result == null) result = p.get(s.toUpperCase());
-			if (result == null) result = p.get(s.toLowerCase());
-		}
-		return result;
-	}
-
-	protected static void removeIgnoreCase(OsmPrimitive p, String ... strings) {
-		for (String s : strings) {
-			p.remove(s);
-			p.remove(s.toUpperCase());
-			p.remove(s.toLowerCase());
-		}
-	}
-	
-	protected static String getAndRemoveIgnoreCase(OsmPrimitive p, String ... strings) {
-		String result = getIgnoreCase(p, strings);
-		removeIgnoreCase(p, strings);
-		return result;
-	}
-
-	protected static LatLon getLatLon(OsmPrimitive p, String dptName, String shortAttribute, String longAttribute) {
-		String x = getAndRemoveIgnoreCase(p, "X_"+shortAttribute, "Abscisse_"+longAttribute);
-		String y = getAndRemoveIgnoreCase(p, "Y_"+shortAttribute, "Ordonnée_"+longAttribute);
-		if (x != null && y != null) {
-			try {
-				String dptCode = getIgnoreCase(p, "Code_dept", "Code_Département");
-				if (dptCode != null && dptCode.equals("97") && dptName != null) {
-					if (dptName.equals("Guadeloupe")) {
-						dptCode = "971";
-					} else if (dptName.equals("Martinique")) {
-						dptCode = "972";
-					} else if (dptName.equals("Guyane")) {
-						dptCode = "973";
-					} else if (dptName.equals("La Réunion")) {
-						dptCode = "974";
-					} else if (dptName.equals("Mayotte")) {
-						dptCode = "976";
-					} else {
-						System.err.println("Unknown French department: "+dptName);
-					}
-				}
-				return getLatLonByDptCode(new EastNorth(Double.parseDouble(x)*100.0, Double.parseDouble(y)*100.0), dptCode, false);
-			} catch (NumberFormatException e) {
-				System.err.println(e.getMessage());
-			}
-		}
-		return null;
-	}
-	
-	private Pair<String, URL> getGeoflaURL(String name, String urlSuffix) throws MalformedURLException {
-		return new Pair<>(name, new URL("http://professionnels.ign.fr/sites/default/files/"+urlSuffix));
-	}
-
-	@Override
-	public List<Pair<String, URL>> getDataURLs() {
-		List<Pair<String, URL>> result = new ArrayList<>();
-		try {
-			result.add(getGeoflaURL("Départements France métropolitaine et Corse", "GEOFLADept_FR_Corse_AV_L93.zip"));
-			result.add(getGeoflaURL("Départements France entière",                 "FR_DOM_Mayotte_shp_WGS84.zip"));
-			// FIXME: tar.gz files
-			/*result.add(getGeoflaURL("Communes France métropolitaine", "531/266/5312664/GEOFLA_1-1_SHP_LAMB93_FR-ED111.tar.gz"));
-			result.add(getGeoflaURL("Communes Guadeloupe",            "531/265/5312650/GEOFLA_1-1_SHP_UTM20W84_GP-ED111.tar.gz"));
-			result.add(getGeoflaURL("Communes Martinique",            "531/265/5312653/GEOFLA_1-1_SHP_UTM20W84_MQ-ED111.tar.gz"));
-			result.add(getGeoflaURL("Communes Guyane",                "531/265/5312657/GEOFLA_1-1_SHP_UTM22RGFG95_GF-ED111.tar.gz"));
-			result.add(getGeoflaURL("Communes Réunion",               "531/266/5312660/GEOFLA_1-1_SHP_RGR92UTM40S_RE-ED111.tar.gz"));
-			result.add(getGeoflaURL("Communes Mayotte",               "531/275/5312753/GEOFLA_1-1_SHP_RGM04UTM38S_YT-ED111.tar.gz"));*/
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    
+    public GeoFlaHandler() {
+        super();
+        setName("GEOFLA®");
+        getShpHandler().setPreferMultipolygonToSimpleWay(true);
+        try {
+            setLocalPortalURL("http://professionnels.ign.fr/geofla#tab-3");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public String getLocalPortalIconName() {
+        return ICON_IGN_24;
+    }
+
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return isDepartementFile(filename) || isCommuneFile(filename) || isCantonFile(filename) || isArrondissementFile(filename);
+    }
+        
+    protected boolean isDepartementFile(String filename) {
+        return acceptsShpMifFilename(filename, "DEPARTEMENT") || acceptsShpMifFilename(filename, "LIMITE_DEPARTEMENT");
+    }
+
+    protected boolean isCommuneFile(String filename) {
+        return acceptsShpFilename(filename, "COMMUNE") || acceptsShpFilename(filename, "LIMITE_COMMUNE");
+    }
+
+    protected boolean isCantonFile(String filename) {
+        return acceptsShpFilename(filename, "CANTON") || acceptsShpFilename(filename, "LIMITE_CANTON");
+    }
+
+    protected boolean isArrondissementFile(String filename) {
+        return acceptsShpFilename(filename, "ARRONDISSEMENT") || acceptsShpFilename(filename, "LIMITE_ARRONDISSEMENT");
+    }
+
+    @Override
+    public void updateDataSet(DataSet ds) {
+        final String filename = getAssociatedFile().getName();
+        if (isDepartementFile(filename)) {
+            setNationalPortalPath("GEOFLA®-Départements-30383060");
+        } else if (isCommuneFile(filename)) {
+            setNationalPortalPath("GEOFLA®-Communes-30383083");
+        }
+        for (OsmPrimitive p : ds.allPrimitives()) {
+            if (hasKeyIgnoreCase(p, "Id_geofla", "Id_GéoFLA")) {
+                String deptName = WordUtils.capitalizeFully(getAndRemoveIgnoreCase(p, "Nom_dept", "Nom_Département"));
+                if ("Reunion".equals(deptName)) {
+                    deptName = "La Réunion";
+                }
+                if (isDepartementFile(filename)) {
+                    p.put("name", deptName);
+                } else if (isCommuneFile(filename)) {
+                    p.put("name", WordUtils.capitalizeFully(getAndRemoveIgnoreCase(p, "NOM_COMM")));
+                    replace(p, "INSEE_COM", "ref:INSEE");
+                }
+                p.put("boundary", "administrative");
+                String nature = getIgnoreCase(p, "Nature");
+                if ("Frontière internationale".equalsIgnoreCase(nature) || "Limite côtière".equalsIgnoreCase(nature)) {
+                    p.put("admin_level", "2");
+                } else if ("Limite de région".equalsIgnoreCase(nature)) {
+                    p.put("admin_level", "4");
+                } else if (isDepartementFile(filename) || "Limite de département".equalsIgnoreCase(nature)) {
+                    p.put("admin_level", "6");
+                } else if(isArrondissementFile(filename) || "Limite d'arrondissement".equalsIgnoreCase(nature)) {
+                    p.put("admin_level", "7");
+                } else if(isCommuneFile(filename)) {
+                    p.put("admin_level", "8");
+                }
+                if (p instanceof Relation) {
+                    p.put("type", "boundary");
+                }
+                LatLon llCentroid = getLatLon(p, deptName, "centroid", "Centroïde");
+                if (llCentroid != null) {
+                    Node centroid = new Node(llCentroid);
+                    ds.addPrimitive(centroid);
+                    //centroid.put("name", p.get("name"));
+                    if (p instanceof Relation) {
+                        ((Relation) p).addMember(new RelationMember("centroid", centroid));
+                    }
+                }
+                LatLon llChefLieu = getLatLon(p, deptName, "chf_lieu", "Chef_Lieu");
+                if (llChefLieu != null) {
+                    Node chefLieu = new Node(llChefLieu);
+                    ds.addPrimitive(chefLieu);
+                    //chefLieu.put("Code_chf", getAndRemoveIgnoreCase(p, "Code_chf", "Code_Chef_Lieu"));
+                    String name = WordUtils.capitalizeFully(getAndRemoveIgnoreCase(p, "Nom_chf", "Nom_Chef_lieu"));
+                    if (isArrondissementFile(filename)) {
+                        p.put("name", name);
+                    }
+                    chefLieu.put("name", name);
+                    if (p instanceof Relation) {
+                        ((Relation) p).addMember(new RelationMember("admin_centre", chefLieu));
+                    }
+                }
+            }
+        }
+    }
+    
+    protected static boolean hasKeyIgnoreCase(OsmPrimitive p, String ... strings) {
+        return getIgnoreCase(p, strings) != null;
+    }
+
+    protected static String getIgnoreCase(OsmPrimitive p, String ... strings) {
+        String result = null;
+        for (String s : strings) {
+            if (result == null) result = p.get(s);
+            if (result == null) result = p.get(s.toUpperCase());
+            if (result == null) result = p.get(s.toLowerCase());
+        }
+        return result;
+    }
+
+    protected static void removeIgnoreCase(OsmPrimitive p, String ... strings) {
+        for (String s : strings) {
+            p.remove(s);
+            p.remove(s.toUpperCase());
+            p.remove(s.toLowerCase());
+        }
+    }
+    
+    protected static String getAndRemoveIgnoreCase(OsmPrimitive p, String ... strings) {
+        String result = getIgnoreCase(p, strings);
+        removeIgnoreCase(p, strings);
+        return result;
+    }
+
+    protected static LatLon getLatLon(OsmPrimitive p, String dptName, String shortAttribute, String longAttribute) {
+        String x = getAndRemoveIgnoreCase(p, "X_"+shortAttribute, "Abscisse_"+longAttribute);
+        String y = getAndRemoveIgnoreCase(p, "Y_"+shortAttribute, "Ordonnée_"+longAttribute);
+        if (x != null && y != null) {
+            try {
+                String dptCode = getIgnoreCase(p, "Code_dept", "Code_Département");
+                if (dptCode != null && dptCode.equals("97") && dptName != null) {
+                    if (dptName.equals("Guadeloupe")) {
+                        dptCode = "971";
+                    } else if (dptName.equals("Martinique")) {
+                        dptCode = "972";
+                    } else if (dptName.equals("Guyane")) {
+                        dptCode = "973";
+                    } else if (dptName.equals("La Réunion")) {
+                        dptCode = "974";
+                    } else if (dptName.equals("Mayotte")) {
+                        dptCode = "976";
+                    } else {
+                        System.err.println("Unknown French department: "+dptName);
+                    }
+                }
+                return getLatLonByDptCode(new EastNorth(Double.parseDouble(x)*100.0, Double.parseDouble(y)*100.0), dptCode, false);
+            } catch (NumberFormatException e) {
+                System.err.println(e.getMessage());
+            }
+        }
+        return null;
+    }
+    
+    private Pair<String, URL> getGeoflaURL(String name, String urlSuffix) throws MalformedURLException {
+        return new Pair<>(name, new URL("http://professionnels.ign.fr/sites/default/files/"+urlSuffix));
+    }
+
+    @Override
+    public List<Pair<String, URL>> getDataURLs() {
+        List<Pair<String, URL>> result = new ArrayList<>();
+        try {
+            result.add(getGeoflaURL("Départements France métropolitaine et Corse", "GEOFLADept_FR_Corse_AV_L93.zip"));
+            result.add(getGeoflaURL("Départements France entière",                 "FR_DOM_Mayotte_shp_WGS84.zip"));
+            // FIXME: tar.gz files
+            /*result.add(getGeoflaURL("Communes France métropolitaine", "531/266/5312664/GEOFLA_1-1_SHP_LAMB93_FR-ED111.tar.gz"));
+            result.add(getGeoflaURL("Communes Guadeloupe",            "531/265/5312650/GEOFLA_1-1_SHP_UTM20W84_GP-ED111.tar.gz"));
+            result.add(getGeoflaURL("Communes Martinique",            "531/265/5312653/GEOFLA_1-1_SHP_UTM20W84_MQ-ED111.tar.gz"));
+            result.add(getGeoflaURL("Communes Guyane",                "531/265/5312657/GEOFLA_1-1_SHP_UTM22RGFG95_GF-ED111.tar.gz"));
+            result.add(getGeoflaURL("Communes Réunion",               "531/266/5312660/GEOFLA_1-1_SHP_RGR92UTM40S_RE-ED111.tar.gz"));
+            result.add(getGeoflaURL("Communes Mayotte",               "531/275/5312753/GEOFLA_1-1_SHP_RGM04UTM38S_YT-ED111.tar.gz"));*/
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/agriculture/RegistreParcellaireHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/agriculture/RegistreParcellaireHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/agriculture/RegistreParcellaireHandler.java	(revision 30731)
@@ -15,120 +15,120 @@
 
 public class RegistreParcellaireHandler extends DataGouvDataSetHandler {
-	
-	protected static final int PAS_D_INFORMATION = 0;
-	protected static final int BLE_TENDRE = 1;
-	protected static final int MAIS_GRAIN_ET_ENSILAGE = 2;
-	protected static final int ORGE = 3;
-	protected static final int AUTRES_CEREALES = 4;
-	protected static final int COLZA = 5;
-	protected static final int TOURNESOL = 6;
-	protected static final int AUTRES_OLEAGINEUX = 7;
-	protected static final int PROTEAGINEUX = 8;
-	protected static final int PLANTES_A_FIBRES = 9;
-	protected static final int SEMENCES = 10;
-	protected static final int GEL_SURFACES_GELEES_SANS_PRODUCTION = 11;
-	protected static final int GEL_INDUSTRIEL = 12;
-	protected static final int AUTRES_GELS = 13;
-	protected static final int RIZ = 14;
-	protected static final int LEGUMINEUSES_A_GRAINS = 15;
-	protected static final int FOURRAGE = 16;
-	protected static final int ESTIVES_LANDES = 17;
-	protected static final int PRAIRIES_PERMANENTES = 18;
-	protected static final int PRAIRIES_TEMPORAIRES = 19;
-	protected static final int VERGERS = 20;
-	protected static final int VIGNES = 21;
-	protected static final int FRUITS_A_COQUE = 22;
-	protected static final int OLIVIERS = 23;
-	protected static final int AUTRES_CULTURES_INDUSTRIELLES = 24;
-	protected static final int LEGUMES_FLEURS = 25;
-	protected static final int CANNE_A_SUCRE = 26;
-	protected static final int ARBORICULTURE = 27;
-	protected static final int DIVERS = 28;
-	
-	public RegistreParcellaireHandler() {
-		super();
-		setName("Registre Parcellaire Graphique");
-	}
+    
+    protected static final int PAS_D_INFORMATION = 0;
+    protected static final int BLE_TENDRE = 1;
+    protected static final int MAIS_GRAIN_ET_ENSILAGE = 2;
+    protected static final int ORGE = 3;
+    protected static final int AUTRES_CEREALES = 4;
+    protected static final int COLZA = 5;
+    protected static final int TOURNESOL = 6;
+    protected static final int AUTRES_OLEAGINEUX = 7;
+    protected static final int PROTEAGINEUX = 8;
+    protected static final int PLANTES_A_FIBRES = 9;
+    protected static final int SEMENCES = 10;
+    protected static final int GEL_SURFACES_GELEES_SANS_PRODUCTION = 11;
+    protected static final int GEL_INDUSTRIEL = 12;
+    protected static final int AUTRES_GELS = 13;
+    protected static final int RIZ = 14;
+    protected static final int LEGUMINEUSES_A_GRAINS = 15;
+    protected static final int FOURRAGE = 16;
+    protected static final int ESTIVES_LANDES = 17;
+    protected static final int PRAIRIES_PERMANENTES = 18;
+    protected static final int PRAIRIES_TEMPORAIRES = 19;
+    protected static final int VERGERS = 20;
+    protected static final int VIGNES = 21;
+    protected static final int FRUITS_A_COQUE = 22;
+    protected static final int OLIVIERS = 23;
+    protected static final int AUTRES_CULTURES_INDUSTRIELLES = 24;
+    protected static final int LEGUMES_FLEURS = 25;
+    protected static final int CANNE_A_SUCRE = 26;
+    protected static final int ARBORICULTURE = 27;
+    protected static final int DIVERS = 28;
+    
+    public RegistreParcellaireHandler() {
+        super();
+        setName("Registre Parcellaire Graphique");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "RPG_20.._...");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "RPG_20.._...");
+    }
 
-	@Override
-	public ExtendedSourceEntry getMapPaintStyle() {
-		return getMapPaintStyle("Registre Parcellaire Graphique (France)");
-	}
+    @Override
+    public ExtendedSourceEntry getMapPaintStyle() {
+        return getMapPaintStyle("Registre Parcellaire Graphique (France)");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (OsmPrimitive p : ds.allPrimitives()) {
-			String code = p.get("CULT_MAJ");
-			
-			if (code != null && !code.isEmpty()) {
-				replace(p, "NUM_ILOT", "ref:FR:RPG");
-				replace(p, "CULT_MAJ", "code:FR:RPG");
-				
-				switch (Integer.parseInt(code)) {
-				case ARBORICULTURE:
-					p.put("landuse", "forest");
-					break;
-				case FOURRAGE:
-				case PRAIRIES_PERMANENTES:
-				case PRAIRIES_TEMPORAIRES:
-				case ESTIVES_LANDES:
-				case GEL_SURFACES_GELEES_SANS_PRODUCTION:
-				case GEL_INDUSTRIEL:
-				case AUTRES_GELS:
-					p.put("landuse", "meadow");
-					break;
-				case OLIVIERS:
-					p.put("trees", "olive_tree");
-				case VERGERS:
-					p.put("landuse", "orchard");
-					break;
-				case VIGNES:
-					p.put("landuse", "vineyard");
-					break;
-				case PAS_D_INFORMATION:
-				case BLE_TENDRE:
-				case MAIS_GRAIN_ET_ENSILAGE:
-				case ORGE:
-				case AUTRES_CEREALES:
-				case COLZA:
-				case TOURNESOL:
-				case AUTRES_OLEAGINEUX:
-				case PROTEAGINEUX:
-				case PLANTES_A_FIBRES:
-				case SEMENCES:
-				case RIZ:
-				case LEGUMINEUSES_A_GRAINS:
-				case FRUITS_A_COQUE:
-				case AUTRES_CULTURES_INDUSTRIELLES:
-				case LEGUMES_FLEURS:
-				case CANNE_A_SUCRE:
-				case DIVERS:
-				default:
-					p.put("landuse", "farm");
-				}
-			}
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (OsmPrimitive p : ds.allPrimitives()) {
+            String code = p.get("CULT_MAJ");
+            
+            if (code != null && !code.isEmpty()) {
+                replace(p, "NUM_ILOT", "ref:FR:RPG");
+                replace(p, "CULT_MAJ", "code:FR:RPG");
+                
+                switch (Integer.parseInt(code)) {
+                case ARBORICULTURE:
+                    p.put("landuse", "forest");
+                    break;
+                case FOURRAGE:
+                case PRAIRIES_PERMANENTES:
+                case PRAIRIES_TEMPORAIRES:
+                case ESTIVES_LANDES:
+                case GEL_SURFACES_GELEES_SANS_PRODUCTION:
+                case GEL_INDUSTRIEL:
+                case AUTRES_GELS:
+                    p.put("landuse", "meadow");
+                    break;
+                case OLIVIERS:
+                    p.put("trees", "olive_tree");
+                case VERGERS:
+                    p.put("landuse", "orchard");
+                    break;
+                case VIGNES:
+                    p.put("landuse", "vineyard");
+                    break;
+                case PAS_D_INFORMATION:
+                case BLE_TENDRE:
+                case MAIS_GRAIN_ET_ENSILAGE:
+                case ORGE:
+                case AUTRES_CEREALES:
+                case COLZA:
+                case TOURNESOL:
+                case AUTRES_OLEAGINEUX:
+                case PROTEAGINEUX:
+                case PLANTES_A_FIBRES:
+                case SEMENCES:
+                case RIZ:
+                case LEGUMINEUSES_A_GRAINS:
+                case FRUITS_A_COQUE:
+                case AUTRES_CULTURES_INDUSTRIELLES:
+                case LEGUMES_FLEURS:
+                case CANNE_A_SUCRE:
+                case DIVERS:
+                default:
+                    p.put("landuse", "farm");
+                }
+            }
+        }
+    }
 
-	private Pair<String, URL> getRpgURL(String number, String name) throws MalformedURLException {
-		return new Pair<>(number+" - "+name, new URL("http://www.data.gouv.fr/var/download/ign/RPG_2010_"+number+".ZIP"));
-	}
-	
-	@Override
-	public List<Pair<String, URL>> getDataURLs() {
-		List<Pair<String, URL>> result = new ArrayList<>();
-		try {
-			for (FrenchAdministrativeUnit dpt : FrenchAdministrativeUnit.allDepartments) {
-				result.add(getRpgURL(dpt.getCode(), dpt.getName()));
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    private Pair<String, URL> getRpgURL(String number, String name) throws MalformedURLException {
+        return new Pair<>(number+" - "+name, new URL("http://www.data.gouv.fr/var/download/ign/RPG_2010_"+number+".ZIP"));
+    }
+    
+    @Override
+    public List<Pair<String, URL>> getDataURLs() {
+        List<Pair<String, URL>> result = new ArrayList<>();
+        try {
+            for (FrenchAdministrativeUnit dpt : FrenchAdministrativeUnit.allDepartments) {
+                result.add(getRpgURL(dpt.getCode(), dpt.getName()));
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/culture/BibliothequesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/culture/BibliothequesHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/culture/BibliothequesHandler.java	(revision 30731)
@@ -9,21 +9,21 @@
 public class BibliothequesHandler extends DataGouvDataSetHandler {
 
-	public BibliothequesHandler() {
-		super("Adresses-des-bibliothèques-municipales-30382179", lambert93);
-		setName("Bibliothèques municipales");
-		setDownloadFileName("lieux de lecture_geoloc.txt");
-		getCsvHandler().setCharset(OdConstants.ISO8859_15);
-	}
+    public BibliothequesHandler() {
+        super("Adresses-des-bibliothèques-municipales-30382179", lambert93);
+        setName("Bibliothèques municipales");
+        setDownloadFileName("lieux de lecture_geoloc.txt");
+        getCsvHandler().setCharset(OdConstants.ISO8859_15);
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsCsvFilename(filename, "lieux de lecture_geoloc.txt-fr");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsCsvFilename(filename, "lieux de lecture_geoloc.txt-fr");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			n.put("amenity", "library");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            n.put("amenity", "library");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/diplomatie/EtabAEFEHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/diplomatie/EtabAEFEHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/diplomatie/EtabAEFEHandler.java	(revision 30731)
@@ -8,26 +8,26 @@
 public class EtabAEFEHandler extends DataGouvDataSetHandler {
 
-	public EtabAEFEHandler() {
-		super("Géolocalisation-des-établissements-du-réseau-d'enseignement-de-l'AEFE-30382449", wgs84);
-		setName("Établissements du réseau d'enseignement de l'AEFE");
-		setDownloadFileName("ETALAB_MAEE_Extraction_LDAP_geoloc_AEFE_2011-10-13.csv");
-		getCsvHandler().setSeparator(",");
-	}
+    public EtabAEFEHandler() {
+        super("Géolocalisation-des-établissements-du-réseau-d'enseignement-de-l'AEFE-30382449", wgs84);
+        setName("Établissements du réseau d'enseignement de l'AEFE");
+        setDownloadFileName("ETALAB_MAEE_Extraction_LDAP_geoloc_AEFE_2011-10-13.csv");
+        getCsvHandler().setSeparator(",");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsCsvFilename(filename, "ETALAB_MAEE_Extraction_LDAP_geoloc_AEFE_20..-..-..(\\.csv-fr)?");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsCsvFilename(filename, "ETALAB_MAEE_Extraction_LDAP_geoloc_AEFE_20..-..-..(\\.csv-fr)?");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			n.put("amenity", "school");
-			replace(n, "code_etab", "ref");
-			replace(n, "ENTStructureNomCourant", "name:fr");
-			replace(n, "adresse", "addr");
-			replace(n, "ENTStructureSiteWeb", "website");
-			replace(n, "ENTStructureEmail", "contact:email");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            n.put("amenity", "school");
+            replace(n, "code_etab", "ref");
+            replace(n, "ENTStructureNomCourant", "name:fr");
+            replace(n, "adresse", "addr");
+            replace(n, "ENTStructureSiteWeb", "website");
+            replace(n, "ENTStructureEmail", "contact:email");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/AssainissementHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/AssainissementHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/AssainissementHandler.java	(revision 30731)
@@ -20,39 +20,39 @@
 public class AssainissementHandler extends DataGouvDataSetHandler {
 
-	public AssainissementHandler() {
-		super("assainissement-collectif-30381843");
-		setName("Assainissement collectif");
-		setSpreadSheetHandler(new InternalOdsHandler());
-	}
+    public AssainissementHandler() {
+        super("assainissement-collectif-30381843");
+        setName("Assainissement collectif");
+        setSpreadSheetHandler(new InternalOdsHandler());
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsOdsFilename(filename, "Export_ERU_20..");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsOdsFilename(filename, "Export_ERU_20..");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// Implemented in InternalOdsHandler.nodesAdded()
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // Implemented in InternalOdsHandler.nodesAdded()
+    }
 
-	@Override
-	public List<Pair<String, URL>> getDataURLs() {
-		List<Pair<String, URL>> result = new ArrayList<>();
-		try {
-			result.add(new Pair<>("Données 2009", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2.php")));
-			result.add(new Pair<>("Données 2010", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2_2010.php")));
-			result.add(new Pair<>("Données 2011", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2_2011.php")));
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
-	
-	private final class InternalOdsHandler extends DefaultSpreadSheetHandler {
+    @Override
+    public List<Pair<String, URL>> getDataURLs() {
+        List<Pair<String, URL>> result = new ArrayList<>();
+        try {
+            result.add(new Pair<>("Données 2009", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2.php")));
+            result.add(new Pair<>("Données 2010", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2_2010.php")));
+            result.add(new Pair<>("Données 2011", new URL("http://www.assainissement.developpement-durable.gouv.fr/telecharger2_2011.php")));
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+    
+    private final class InternalOdsHandler extends DefaultSpreadSheetHandler {
 
-	    private Node nodeWithKeys;
-	    
-	    private final Set<String> interestingKeys = new HashSet<>();
-	    
+        private Node nodeWithKeys;
+        
+        private final Set<String> interestingKeys = new HashSet<>();
+        
         public InternalOdsHandler() {
             setSheetNumber(1);
@@ -123,4 +123,4 @@
             removeUninterestingTags();
         }
-	}
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/ForetsPubliquesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/ForetsPubliquesHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/ForetsPubliquesHandler.java	(revision 30731)
@@ -17,111 +17,111 @@
 public class ForetsPubliquesHandler extends DataGouvDataSetHandler {
 
-	private static final String PATTERN = "for_publ_v20.._reg(..)";
+    private static final String PATTERN = "for_publ_v20.._reg(..)";
 
-	public ForetsPubliquesHandler() {
-		setName("Forêts publiques");
-	}
-	
-	@Override
-	public boolean acceptsFilename(String filename) {
-		boolean result = acceptsZipFilename(filename, PATTERN) || acceptsShpFilename(filename, PATTERN);
-		if (result) {
-			setNationalPortalPath(findPortalSuffix(filename));
-		}
-		return result;
-	}
-	
-	@Override
-	public boolean acceptsUrl(String url) {
-		boolean result = super.acceptsUrl(url);
-		if (result) {
-			setNationalPortalPath(findPortalSuffix(url));
-		}
-		return result;
-	}
+    public ForetsPubliquesHandler() {
+        setName("Forêts publiques");
+    }
+    
+    @Override
+    public boolean acceptsFilename(String filename) {
+        boolean result = acceptsZipFilename(filename, PATTERN) || acceptsShpFilename(filename, PATTERN);
+        if (result) {
+            setNationalPortalPath(findPortalSuffix(filename));
+        }
+        return result;
+    }
+    
+    @Override
+    public boolean acceptsUrl(String url) {
+        boolean result = super.acceptsUrl(url);
+        if (result) {
+            setNationalPortalPath(findPortalSuffix(url));
+        }
+        return result;
+    }
 
-	private final String findPortalSuffix(CharSequence filename) {
-		Matcher m = Pattern.compile(".*"+PATTERN+"\\....").matcher(filename);
-		if (m.matches()) {
-			String regionCode = m.group(1);
-			if (regionCode.equals("42")) {
-				return "Forêts-publiques-d’Alsace-30378695";
-			} else if (regionCode.equals("72")) {
-				return "Forêts-publiques-d'Aquitaine-30378994";
-			} else if (regionCode.equals("83")) {
-				return "Forêts-publiques-d'Auvergne-30379302";
-			} else if (regionCode.equals("26")) {
-				return "Forêts-publiques-de-Bourgogne-30379206";
-			} else if (regionCode.equals("53")) {
-				return "Forêts-publiques-de-Bretagne-30378874";
-			} else if (regionCode.equals("24")) {
-				return "Forêts-publiques-du-Centre-30379134";
-			} else if (regionCode.equals("21")) {
-				return "Forêts-publiques-de-Champagne-Ardenne-30378853";
-			} else if (regionCode.equals("94")) {
-				return "Forêts-publiques-de-Corse-30379118";
-			} else if (regionCode.equals("43")) {
-				return "Forêts-publiques-de-Franche-Comté-30378652";
-			} else if (regionCode.equals("11")) {
-				return "Forêts-publiques-d’Île-de-France-30378829";
-			} else if (regionCode.equals("91")) {
-				return "Forêts-publiques-de-Languedoc-Roussillon-30379312";
-			} else if (regionCode.equals("74")) {
-				return "Forêts-publiques-du-Limousin-30378844";
-			} else if (regionCode.equals("41")) {
-				return "Forêts-publiques-de-Lorraine-30378675";
-			} else if (regionCode.equals("73")) {
-				return "Forêts-publiques-de-Midi-Pyrénées-30378665";
-			} else if (regionCode.equals("31")) {
-				return "Forêts-publiques-du-Nord-Pas-de-Calais-30379095";
-			} else if (regionCode.equals("25")) {
-				return "Forêts-publiques-de-Basse-Normandie-30378962";
-			} else if (regionCode.equals("23")) {
-				return "Forêts-publiques-de-Haute-Normandie-30379164";
-			} else if (regionCode.equals("52")) {
-				return "Forêts-publiques-des-Pays-de-la-Loire-30378999";
-			} else if (regionCode.equals("22")) {
-				return "Forêts-publiques-de-Picardie-30379389";
-			} else if (regionCode.equals("54")) {
-				return "Forêts-publiques-de-Poitou-Charente-30378900";
-			} else if (regionCode.equals("93")) {
-				return "Forêts-publiques-de-PACA-30379322";
-			} else if (regionCode.equals("82")) {
-				return "Forêts-publiques-de-Rhône-Alpes-30378732";
-			} else {
-				System.err.println("Unknown French region code: "+regionCode);
-			}
-		}
-		return null;
-	}
+    private final String findPortalSuffix(CharSequence filename) {
+        Matcher m = Pattern.compile(".*"+PATTERN+"\\....").matcher(filename);
+        if (m.matches()) {
+            String regionCode = m.group(1);
+            if (regionCode.equals("42")) {
+                return "Forêts-publiques-d’Alsace-30378695";
+            } else if (regionCode.equals("72")) {
+                return "Forêts-publiques-d'Aquitaine-30378994";
+            } else if (regionCode.equals("83")) {
+                return "Forêts-publiques-d'Auvergne-30379302";
+            } else if (regionCode.equals("26")) {
+                return "Forêts-publiques-de-Bourgogne-30379206";
+            } else if (regionCode.equals("53")) {
+                return "Forêts-publiques-de-Bretagne-30378874";
+            } else if (regionCode.equals("24")) {
+                return "Forêts-publiques-du-Centre-30379134";
+            } else if (regionCode.equals("21")) {
+                return "Forêts-publiques-de-Champagne-Ardenne-30378853";
+            } else if (regionCode.equals("94")) {
+                return "Forêts-publiques-de-Corse-30379118";
+            } else if (regionCode.equals("43")) {
+                return "Forêts-publiques-de-Franche-Comté-30378652";
+            } else if (regionCode.equals("11")) {
+                return "Forêts-publiques-d’Île-de-France-30378829";
+            } else if (regionCode.equals("91")) {
+                return "Forêts-publiques-de-Languedoc-Roussillon-30379312";
+            } else if (regionCode.equals("74")) {
+                return "Forêts-publiques-du-Limousin-30378844";
+            } else if (regionCode.equals("41")) {
+                return "Forêts-publiques-de-Lorraine-30378675";
+            } else if (regionCode.equals("73")) {
+                return "Forêts-publiques-de-Midi-Pyrénées-30378665";
+            } else if (regionCode.equals("31")) {
+                return "Forêts-publiques-du-Nord-Pas-de-Calais-30379095";
+            } else if (regionCode.equals("25")) {
+                return "Forêts-publiques-de-Basse-Normandie-30378962";
+            } else if (regionCode.equals("23")) {
+                return "Forêts-publiques-de-Haute-Normandie-30379164";
+            } else if (regionCode.equals("52")) {
+                return "Forêts-publiques-des-Pays-de-la-Loire-30378999";
+            } else if (regionCode.equals("22")) {
+                return "Forêts-publiques-de-Picardie-30379389";
+            } else if (regionCode.equals("54")) {
+                return "Forêts-publiques-de-Poitou-Charente-30378900";
+            } else if (regionCode.equals("93")) {
+                return "Forêts-publiques-de-PACA-30379322";
+            } else if (regionCode.equals("82")) {
+                return "Forêts-publiques-de-Rhône-Alpes-30378732";
+            } else {
+                System.err.println("Unknown French region code: "+regionCode);
+            }
+        }
+        return null;
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (OsmPrimitive p : ds.allPrimitives()) {
-			// For all identified objects (both closed ways and multipolygons)
-			if (p.hasKey("IIDTN_FRT")) {
-				p.put("landuse", "forest");
-				replace(p, "LLIB_FRT", "name");
-			}
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (OsmPrimitive p : ds.allPrimitives()) {
+            // For all identified objects (both closed ways and multipolygons)
+            if (p.hasKey("IIDTN_FRT")) {
+                p.put("landuse", "forest");
+                replace(p, "LLIB_FRT", "name");
+            }
+        }
+    }
 
-	@Override
-	public List<Pair<String, URL>> getDataURLs() {
-		List<Pair<String, URL>> result = new ArrayList<>();
-		try {
-			for (FrenchAdministrativeUnit region : FrenchAdministrativeUnit.allRegions) {
-				if (!region.getCode().startsWith("0")) { // Skip DOM/TOM
-					result.add(getForetURL(region.getCode(), region.getName()));
-				}
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    @Override
+    public List<Pair<String, URL>> getDataURLs() {
+        List<Pair<String, URL>> result = new ArrayList<>();
+        try {
+            for (FrenchAdministrativeUnit region : FrenchAdministrativeUnit.allRegions) {
+                if (!region.getCode().startsWith("0")) { // Skip DOM/TOM
+                    result.add(getForetURL(region.getCode(), region.getName()));
+                }
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
 
-	private Pair<String, URL> getForetURL(String code, String regionName) throws MalformedURLException {
-		return new Pair<>("PublicForests_"+regionName, new URL(FRENCH_PORTAL+"var/download/"+"for_publ_v2011_reg"+code+".zip"));
-	}
+    private Pair<String, URL> getForetURL(String code, String regionName) throws MalformedURLException {
+        return new Pair<>("PublicForests_"+regionName, new URL(FRENCH_PORTAL+"var/download/"+"for_publ_v2011_reg"+code+".zip"));
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/InventaireForestierNationalHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/InventaireForestierNationalHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/InventaireForestierNationalHandler.java	(revision 30731)
@@ -15,84 +15,84 @@
 public class InventaireForestierNationalHandler extends DataGouvDataSetHandler {
 
-	private static final String FORET = "foret";
-	private static final String PEUPLERAIE = "peupleraie";
-	
-	private static final String PATTERN = "placettes_("+FORET+"|"+PEUPLERAIE+")_(20..)";
+    private static final String FORET = "foret";
+    private static final String PEUPLERAIE = "peupleraie";
+    
+    private static final String PATTERN = "placettes_("+FORET+"|"+PEUPLERAIE+")_(20..)";
 
-	public InventaireForestierNationalHandler() {
-		super();
-		setName("Inventaire forestier national");
-	}
-	
-	@Override
-	public boolean acceptsFilename(String filename) {
-		boolean result = acceptsCsvFilename(filename, PATTERN);
-		if (result) {
-			setNationalPortalPath(findPortalSuffix(filename));
-		}
-		return result;
-	}
+    public InventaireForestierNationalHandler() {
+        super();
+        setName("Inventaire forestier national");
+    }
+    
+    @Override
+    public boolean acceptsFilename(String filename) {
+        boolean result = acceptsCsvFilename(filename, PATTERN);
+        if (result) {
+            setNationalPortalPath(findPortalSuffix(filename));
+        }
+        return result;
+    }
 
-	@Override
-	public boolean acceptsUrl(String url) {
-		boolean result = super.acceptsUrl(url);
-		if (result) {
-			setNationalPortalPath(findPortalSuffix(url));
-		}
-		return result;
-	}
+    @Override
+    public boolean acceptsUrl(String url) {
+        boolean result = super.acceptsUrl(url);
+        if (result) {
+            setNationalPortalPath(findPortalSuffix(url));
+        }
+        return result;
+    }
 
-	private final String findPortalSuffix(CharSequence filename) {
-		Matcher m = Pattern.compile(".*"+PATTERN+"\\....").matcher(filename);
-		if (m.matches()) {
-			String type = m.group(1);
-			if (type.equals(FORET)) {
-				switch (Integer.parseInt(m.group(2))) {
-					case 2010: return "Données-points-forêt-2010-30379029";
-					case 2009: return "Données-points-forêt-2009-30378890";
-					case 2008: return "Données-points-forêt-2008-30378754";
-					case 2007: return "Données-points-forêt-2007-30378682";
-					case 2006: return "Données-points-forêt-2006-30379198";
-					case 2005: return "Données-points-forêt-2005-30378933";
-					default: System.err.println("Unknown IFN year: "+m.group(2));
-				}
-			} else if (type.equals(PEUPLERAIE)) {
-				switch (Integer.parseInt(m.group(2))) {
-					case 2010: return "Données-points-peupleraie-2010-30379180";
-					case 2009: return "Données-points-peupleraie-2009-30378848";
-					case 2008: return "Données-points-peupleraie-2008-30378632";
-					case 2007: return "Données-points-peupleraie-2007-30378611";
-					case 2006: return "Données-points-peupleraie-2006-30378633";
-					case 2005: return "Données-points-peupleraie-2005-30378717";
-					default: System.err.println("Unknown IFN year: "+m.group(2));
-				}
-			} else {
-				System.err.println("Unknown IFN type: "+type);
-			}
-		}
-		return null;
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
-	
-	@Override
-	public List<Pair<String, URL>> getDataURLs() {
-		List<Pair<String, URL>> result = new ArrayList<>();
-		try {
-			for (int year = 2010; year >= 2005; year--) {
-				result.add(getIfnURL(year, "Peupleraies", PEUPLERAIE));
-				result.add(getIfnURL(year, "Forêts", FORET));
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
-	
-	private Pair<String, URL> getIfnURL(int year, String name, String type) throws MalformedURLException {
-		return new Pair<>(name+" "+year, new URL("http://www.ifn.fr/spip/IMG/csv/placettes_"+type+"_"+year+".csv"));
-	}
+    private final String findPortalSuffix(CharSequence filename) {
+        Matcher m = Pattern.compile(".*"+PATTERN+"\\....").matcher(filename);
+        if (m.matches()) {
+            String type = m.group(1);
+            if (type.equals(FORET)) {
+                switch (Integer.parseInt(m.group(2))) {
+                    case 2010: return "Données-points-forêt-2010-30379029";
+                    case 2009: return "Données-points-forêt-2009-30378890";
+                    case 2008: return "Données-points-forêt-2008-30378754";
+                    case 2007: return "Données-points-forêt-2007-30378682";
+                    case 2006: return "Données-points-forêt-2006-30379198";
+                    case 2005: return "Données-points-forêt-2005-30378933";
+                    default: System.err.println("Unknown IFN year: "+m.group(2));
+                }
+            } else if (type.equals(PEUPLERAIE)) {
+                switch (Integer.parseInt(m.group(2))) {
+                    case 2010: return "Données-points-peupleraie-2010-30379180";
+                    case 2009: return "Données-points-peupleraie-2009-30378848";
+                    case 2008: return "Données-points-peupleraie-2008-30378632";
+                    case 2007: return "Données-points-peupleraie-2007-30378611";
+                    case 2006: return "Données-points-peupleraie-2006-30378633";
+                    case 2005: return "Données-points-peupleraie-2005-30378717";
+                    default: System.err.println("Unknown IFN year: "+m.group(2));
+                }
+            } else {
+                System.err.println("Unknown IFN type: "+type);
+            }
+        }
+        return null;
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
+    
+    @Override
+    public List<Pair<String, URL>> getDataURLs() {
+        List<Pair<String, URL>> result = new ArrayList<>();
+        try {
+            for (int year = 2010; year >= 2005; year--) {
+                result.add(getIfnURL(year, "Peupleraies", PEUPLERAIE));
+                result.add(getIfnURL(year, "Forêts", FORET));
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+    
+    private Pair<String, URL> getIfnURL(int year, String name, String type) throws MalformedURLException {
+        return new Pair<>(name+" "+year, new URL("http://www.ifn.fr/spip/IMG/csv/placettes_"+type+"_"+year+".csv"));
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/ReservesBiologiquesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/ReservesBiologiquesHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/ReservesBiologiquesHandler.java	(revision 30731)
@@ -7,18 +7,18 @@
 public class ReservesBiologiquesHandler extends DataGouvDataSetHandler {
 
-	public ReservesBiologiquesHandler() {
-		super("Réserves-biologiques-de-métropole-30378855");
-		setName("Réserves biologiques de métropole");
-		setDownloadFileName("ONF_RB_2011_Officielles_L93.zip");
-	}
-	
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsZipFilename(filename, "ONF_RB_20.._Officielles_L93") || acceptsShpFilename(filename, "ONF_RB_20.._Officielles_L93");
-	}
+    public ReservesBiologiquesHandler() {
+        super("Réserves-biologiques-de-métropole-30378855");
+        setName("Réserves biologiques de métropole");
+        setDownloadFileName("ONF_RB_2011_Officielles_L93.zip");
+    }
+    
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsZipFilename(filename, "ONF_RB_20.._Officielles_L93") || acceptsShpFilename(filename, "ONF_RB_20.._Officielles_L93");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/Etab1er2ndDegreHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/Etab1er2ndDegreHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/Etab1er2ndDegreHandler.java	(revision 30731)
@@ -12,44 +12,44 @@
 public class Etab1er2ndDegreHandler extends DataGouvDataSetHandler {
 
-	private class EtabCsvHandler extends DefaultCsvHandler {
-		
-		public EtabCsvHandler() {
-			setCharset(OdConstants.ISO8859_15);
-			setHandlesProjection(true);
-		}
-		
-		@Override
-		public LatLon getCoor(EastNorth en, String[] fields) {
-			return getLatLonByDptCode(en, fields[0].substring(0, 3), false);
-		}
-	}
-	
-	public Etab1er2ndDegreHandler() {
-		super("Géolocalisation-des-établissements-d'enseignement-du-premier-degré-et-du-second-degré-du-ministère-d-30378093");
-		setName("Établissements d'enseignement du premier degré et du second degré");
-		setDownloadFileName("MENJVA_etab_geoloc.csv");
-		setCsvHandler(new EtabCsvHandler());
-	}
-	
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsCsvFilename(filename, "MENJVA_etab_geoloc(\\.csv-fr)?");
-	}
+    private class EtabCsvHandler extends DefaultCsvHandler {
+        
+        public EtabCsvHandler() {
+            setCharset(OdConstants.ISO8859_15);
+            setHandlesProjection(true);
+        }
+        
+        @Override
+        public LatLon getCoor(EastNorth en, String[] fields) {
+            return getLatLonByDptCode(en, fields[0].substring(0, 3), false);
+        }
+    }
+    
+    public Etab1er2ndDegreHandler() {
+        super("Géolocalisation-des-établissements-d'enseignement-du-premier-degré-et-du-second-degré-du-ministère-d-30378093");
+        setName("Établissements d'enseignement du premier degré et du second degré");
+        setDownloadFileName("MENJVA_etab_geoloc.csv");
+        setCsvHandler(new EtabCsvHandler());
+    }
+    
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsCsvFilename(filename, "MENJVA_etab_geoloc(\\.csv-fr)?");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			n.put("amenity", "school");
-			replace(n, "numero_uai", "ref:FR:UAI");
-			replace(n, "appellation_officielle_uai", "name");
-			add(n, "lib_nature", "school:FR", 
-					new String[]{".*MATERNELLE.*", ".*ELEMENTAIRE.*", "COLLEGE.*", "LYCEE.*"}, 
-					new String[]{"maternelle", "élémentaire", "college", "lycée"});
-			n.remove("etat_etablissement"); // Toujours a 1
-			n.remove("nature_uai"); // cle numerique associe au champ lib_nature, redondant, donc
-			n.remove("patronyme_uai"); // deja dans le nom
-			n.remove("sous_fic"); // cycle ? 1 pour ecoles, 3 pour colleges et lycees
-			// Voir http://www.infocentre.education.fr/bcn/domaine/voir/id/31
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            n.put("amenity", "school");
+            replace(n, "numero_uai", "ref:FR:UAI");
+            replace(n, "appellation_officielle_uai", "name");
+            add(n, "lib_nature", "school:FR", 
+                    new String[]{".*MATERNELLE.*", ".*ELEMENTAIRE.*", "COLLEGE.*", "LYCEE.*"}, 
+                    new String[]{"maternelle", "élémentaire", "college", "lycée"});
+            n.remove("etat_etablissement"); // Toujours a 1
+            n.remove("nature_uai"); // cle numerique associe au champ lib_nature, redondant, donc
+            n.remove("patronyme_uai"); // deja dans le nom
+            n.remove("sous_fic"); // cycle ? 1 pour ecoles, 3 pour colleges et lycees
+            // Voir http://www.infocentre.education.fr/bcn/domaine/voir/id/31
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/EtabSupHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/EtabSupHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/EtabSupHandler.java	(revision 30731)
@@ -10,30 +10,30 @@
 public class EtabSupHandler extends DataGouvDataSetHandler {
 
-	private class EtabSupCsvHandler extends InternalCsvHandler {
-		@Override
-		public LatLon getCoor(EastNorth en, String[] fields) {
-			// X/Y sont inversees dans le fichier
-			return wgs84.eastNorth2latlon(new EastNorth(en.north(), en.east()));
-		}
-	}
-	
-	public EtabSupHandler() {
-		super("Etablissements-d'enseignement-supérieur-30382046", wgs84);
-		setName("Établissements d'enseignement supérieur");
-		setDownloadFileName("livraison ETALAB 28 11 2011.xls");
-		setCsvHandler(new EtabSupCsvHandler());
-	}
+    private class EtabSupCsvHandler extends InternalCsvHandler {
+        @Override
+        public LatLon getCoor(EastNorth en, String[] fields) {
+            // X/Y sont inversees dans le fichier
+            return wgs84.eastNorth2latlon(new EastNorth(en.north(), en.east()));
+        }
+    }
+    
+    public EtabSupHandler() {
+        super("Etablissements-d'enseignement-supérieur-30382046", wgs84);
+        setName("Établissements d'enseignement supérieur");
+        setDownloadFileName("livraison ETALAB 28 11 2011.xls");
+        setCsvHandler(new EtabSupCsvHandler());
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsXlsFilename(filename, "livraison ETALAB .. .. 20..(\\.xls-fr)?");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsXlsFilename(filename, "livraison ETALAB .. .. 20..(\\.xls-fr)?");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			replace(n, "NOM_ETABLISSEMENT", "name");
-			n.put("amenity", "university");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            replace(n, "NOM_ETABLISSEMENT", "name");
+            n.put("amenity", "university");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java	(revision 30731)
@@ -21,113 +21,113 @@
 public class EauxDeSurfaceHandler extends DataGouvDataSetHandler {
 
-	private static final String ZIP_PATTERN = "FR(.*)_SW";
-	private static final String SHP_PATTERN = "FR_(.*)_SWB_.W_20......";
-	
-	private static final class WaterAgency {
-		public final String code;
-		public final String name;
-		public final String suffix;
-		public WaterAgency(String code, String name, String suffix) {
-			this.code = code;
-			this.name = name;
-			this.suffix = suffix;
-		}
-	}
-	
-	private static final WaterAgency[] waterAgencies = new WaterAgency[]{
-		new WaterAgency("A",  "Escaut Somme", "Escaut-Somme-30381967"),
-		new WaterAgency("B1", "Meuse", "Meuse-30381855"),
-		new WaterAgency("B2", "Sambre", "Sambre-30381857"),
-		new WaterAgency("C",  "Rhin", "Rhin-30381951"),
-		new WaterAgency("D",  "Rhône Méditerranée", "Rhône-Méditerranée-30382014"),
-		new WaterAgency("E",  "Corse", "Corse-30381905"),
-		new WaterAgency("F",  "Adour Garonne", "Adour-Garonne-30381839"),
-		new WaterAgency("G",  "Loire Bretagne", "Loire-Bretagne-30381904"),
-		new WaterAgency("I",  "Guadeloupe", "Guadeloupe-30381899"),
-		new WaterAgency("J",  "Martinique", "Martinique-30381935"),
-		new WaterAgency("K",  "Guyane", "Guyane-30381988"),
-		new WaterAgency("L",  "La Réunion", "Réunion-30381991"),
-	};
-	
-	public EauxDeSurfaceHandler() {
-		setName("Eaux de surface");
-		setArchiveHandler(new InternalZipHandler());
-	}
-	
-	@Override
-	public boolean acceptsFilename(String filename) {
-		boolean result = acceptsZipFilename(filename, ZIP_PATTERN) || acceptsShpFilename(filename, SHP_PATTERN);
-		if (result) {
-			setNationalPortalPath(findPortalSuffix(filename));
-		}
-		return result;
-	}
-	
-	@Override
-	public boolean acceptsUrl(String url) {
-		boolean result = super.acceptsUrl(url);
-		if (result) {
-			setNationalPortalPath(findPortalSuffix(url));
-		}
-		return result;
-	}
+    private static final String ZIP_PATTERN = "FR(.*)_SW";
+    private static final String SHP_PATTERN = "FR_(.*)_SWB_.W_20......";
+    
+    private static final class WaterAgency {
+        public final String code;
+        public final String name;
+        public final String suffix;
+        public WaterAgency(String code, String name, String suffix) {
+            this.code = code;
+            this.name = name;
+            this.suffix = suffix;
+        }
+    }
+    
+    private static final WaterAgency[] waterAgencies = new WaterAgency[]{
+        new WaterAgency("A",  "Escaut Somme", "Escaut-Somme-30381967"),
+        new WaterAgency("B1", "Meuse", "Meuse-30381855"),
+        new WaterAgency("B2", "Sambre", "Sambre-30381857"),
+        new WaterAgency("C",  "Rhin", "Rhin-30381951"),
+        new WaterAgency("D",  "Rhône Méditerranée", "Rhône-Méditerranée-30382014"),
+        new WaterAgency("E",  "Corse", "Corse-30381905"),
+        new WaterAgency("F",  "Adour Garonne", "Adour-Garonne-30381839"),
+        new WaterAgency("G",  "Loire Bretagne", "Loire-Bretagne-30381904"),
+        new WaterAgency("I",  "Guadeloupe", "Guadeloupe-30381899"),
+        new WaterAgency("J",  "Martinique", "Martinique-30381935"),
+        new WaterAgency("K",  "Guyane", "Guyane-30381988"),
+        new WaterAgency("L",  "La Réunion", "Réunion-30381991"),
+    };
+    
+    public EauxDeSurfaceHandler() {
+        setName("Eaux de surface");
+        setArchiveHandler(new InternalZipHandler());
+    }
+    
+    @Override
+    public boolean acceptsFilename(String filename) {
+        boolean result = acceptsZipFilename(filename, ZIP_PATTERN) || acceptsShpFilename(filename, SHP_PATTERN);
+        if (result) {
+            setNationalPortalPath(findPortalSuffix(filename));
+        }
+        return result;
+    }
+    
+    @Override
+    public boolean acceptsUrl(String url) {
+        boolean result = super.acceptsUrl(url);
+        if (result) {
+            setNationalPortalPath(findPortalSuffix(url));
+        }
+        return result;
+    }
 
-	private String findPortalSuffix(String filename) {
-		for (String pattern : new String[]{ZIP_PATTERN, SHP_PATTERN}) {
-			Matcher m = Pattern.compile(".*"+pattern+"\\....").matcher(filename);
-			if (m.matches()) {
-				for (int i =0; i<waterAgencies.length; i++) {
-					if (waterAgencies[i].code.equals(m.group(1))) {
-						return "Couche-SIG-des-caractéristiques-des-bassins-2010-%3A-eaux-de-surface---"+waterAgencies[i].suffix;
-					}
-				}
-			}
-		}
-		return null;
-	}
+    private String findPortalSuffix(String filename) {
+        for (String pattern : new String[]{ZIP_PATTERN, SHP_PATTERN}) {
+            Matcher m = Pattern.compile(".*"+pattern+"\\....").matcher(filename);
+            if (m.matches()) {
+                for (int i =0; i<waterAgencies.length; i++) {
+                    if (waterAgencies[i].code.equals(m.group(1))) {
+                        return "Couche-SIG-des-caractéristiques-des-bassins-2010-%3A-eaux-de-surface---"+waterAgencies[i].suffix;
+                    }
+                }
+            }
+        }
+        return null;
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO Auto-generated method stub
-	}
-	
-	@Override
-	public List<Pair<String, URL>> getDataURLs() {
-		List<Pair<String, URL>> result = new ArrayList<>();
-		try {
-			for (WaterAgency wa : waterAgencies) {
-				result.add(getDownloadURL(wa));
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO Auto-generated method stub
+    }
+    
+    @Override
+    public List<Pair<String, URL>> getDataURLs() {
+        List<Pair<String, URL>> result = new ArrayList<>();
+        try {
+            for (WaterAgency wa : waterAgencies) {
+                result.add(getDownloadURL(wa));
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
 
-	private Pair<String, URL> getDownloadURL(WaterAgency a) throws MalformedURLException {
-		return new Pair<>("SurfaceWater_"+a.name, new URL("http://www.rapportage.eaufrance.fr/sites/default/files/SIG/FR"+a.code+"_SW.zip"));
-	}
-	
-	private class InternalZipHandler extends DefaultArchiveHandler {
-		@Override
-		public void notifyTempFileWritten(File file) {
-			if (file.getName().matches(SHP_PATTERN.replace("(.*)", "F")+"\\.prj")) { // Adour-Garonne .prj files cannot be parsed because they do not contain quotes... 
-				try {
-					BufferedReader reader = new BufferedReader(new FileReader(file));
-					String line = reader.readLine();
-					reader.close();
-					if (!line.contains("\"")) {
-						for (String term : new String[]{"GCS_ETRS_1989", "D_ETRS_1989", "GRS_1980", "Greenwich", "Degree"}) {
-							line = line.replace(term, "\""+term+"\"");
-						}
-						BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-						writer.write(line);
-						writer.close();
-					}
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		}
-	}
+    private Pair<String, URL> getDownloadURL(WaterAgency a) throws MalformedURLException {
+        return new Pair<>("SurfaceWater_"+a.name, new URL("http://www.rapportage.eaufrance.fr/sites/default/files/SIG/FR"+a.code+"_SW.zip"));
+    }
+    
+    private class InternalZipHandler extends DefaultArchiveHandler {
+        @Override
+        public void notifyTempFileWritten(File file) {
+            if (file.getName().matches(SHP_PATTERN.replace("(.*)", "F")+"\\.prj")) { // Adour-Garonne .prj files cannot be parsed because they do not contain quotes... 
+                try {
+                    BufferedReader reader = new BufferedReader(new FileReader(file));
+                    String line = reader.readLine();
+                    reader.close();
+                    if (!line.contains("\"")) {
+                        for (String term : new String[]{"GCS_ETRS_1989", "D_ETRS_1989", "GRS_1980", "Greenwich", "Degree"}) {
+                            line = line.replace(term, "\""+term+"\"");
+                        }
+                        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+                        writer.write(line);
+                        writer.close();
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/ROEHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/ROEHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/ROEHandler.java	(revision 30731)
@@ -10,33 +10,33 @@
 public class ROEHandler extends DataGouvDataSetHandler {
 
-	public ROEHandler() {
-		super("référentiel-des-obstacles-à-l'écoulement-30381987");
-		setName("Référentiel des Obstacles à l’Écoulement");
-		try {
-			setDataURL("http://www.eaufrance.fr/docs/ROE/donnee_obstacles_ecoulement_v3.zip");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-	}
+    public ROEHandler() {
+        super("référentiel-des-obstacles-à-l'écoulement-30381987");
+        setName("Référentiel des Obstacles à l’Écoulement");
+        try {
+            setDataURL("http://www.eaufrance.fr/docs/ROE/donnee_obstacles_ecoulement_v3.zip");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsMifTabFilename(filename, "roe_version._20......_wlatin1") 
-			|| acceptsShpFilename(filename, "roe_version._20......_system_L93")
-			|| acceptsXlsFilename(filename, "roe_version._20......_wlatin1");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsMifTabFilename(filename, "roe_version._20......_wlatin1") 
+            || acceptsShpFilename(filename, "roe_version._20......_system_L93")
+            || acceptsXlsFilename(filename, "roe_version._20......_wlatin1");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			replace(n, "Id_ROE", "ref:FR:ROE");
-			replace(n, "Nom", "name");
-			n.remove("XL2e"); n.remove("YL2e");
-			n.remove("XL93"); n.remove("YL93");
-			replace(n, "typeCd", "waterway", new String[]{"1.1", "1.2", "1.6"}, new String[]{"dam", "weir", "lock_gate"});
-			replace(n, "typeCd", "man_made", new String[]{"1.3", "1.5"}, new String[]{"dyke", "groyne"});
-			replace(n, "typeCd", "bridge", new String[]{"1.4"}, new String[]{"yes"});
-			n.remove("typeCd");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            replace(n, "Id_ROE", "ref:FR:ROE");
+            replace(n, "Nom", "name");
+            n.remove("XL2e"); n.remove("YL2e");
+            n.remove("XL93"); n.remove("YL93");
+            replace(n, "typeCd", "waterway", new String[]{"1.1", "1.2", "1.6"}, new String[]{"dam", "weir", "lock_gate"});
+            replace(n, "typeCd", "man_made", new String[]{"1.3", "1.5"}, new String[]{"dyke", "groyne"});
+            replace(n, "typeCd", "bridge", new String[]{"1.4"}, new String[]{"yes"});
+            n.remove("typeCd");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/AeroportsHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/AeroportsHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/AeroportsHandler.java	(revision 30731)
@@ -15,59 +15,59 @@
 public class AeroportsHandler extends DataGouvDataSetHandler {
 
-	private static final Pattern COOR_PATTERN = Pattern.compile(
-			"(-?\\p{Digit}+)°\\p{Space}*(\\p{Digit}+)'\\p{Space}*(\\p{Digit}+)\\p{Space}*((Nord|Sud|Est|Ouest)?)", Pattern.CASE_INSENSITIVE);
-	
-	public AeroportsHandler() {
-		super("Aéroports-français-coordonnées-géographiques-30382044");
-		setName("Aéroports");
-		setDownloadFileName("coordonn_es g_ographiques a_roports fran_ais v2.xls");
-		setSpreadSheetHandler(new InternalXlsHandler());
-	}
+    private static final Pattern COOR_PATTERN = Pattern.compile(
+            "(-?\\p{Digit}+)°\\p{Space}*(\\p{Digit}+)'\\p{Space}*(\\p{Digit}+)\\p{Space}*((Nord|Sud|Est|Ouest)?)", Pattern.CASE_INSENSITIVE);
+    
+    public AeroportsHandler() {
+        super("Aéroports-français-coordonnées-géographiques-30382044");
+        setName("Aéroports");
+        setDownloadFileName("coordonn_es g_ographiques a_roports fran_ais v2.xls");
+        setSpreadSheetHandler(new InternalXlsHandler());
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsXlsFilename(filename, "coordonn_es g_ographiques a_roports fran_ais v2");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsXlsFilename(filename, "coordonn_es g_ographiques a_roports fran_ais v2");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			n.put("aeroway", "aerodrome");
-		}
-	}
-	
-	protected class InternalXlsHandler extends DefaultSpreadSheetHandler {
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            n.put("aeroway", "aerodrome");
+        }
+    }
+    
+    protected class InternalXlsHandler extends DefaultSpreadSheetHandler {
 
-		public InternalXlsHandler() {
-			setLineNumber(4);
-			setHandlesProjection(true);
-		}
+        public InternalXlsHandler() {
+            setLineNumber(4);
+            setHandlesProjection(true);
+        }
 
-		@Override
-		public LatLon getCoor(EastNorth en, String[] fields) {
-			Matcher x = COOR_PATTERN.matcher(fields[getXCol()]);
-			Matcher y = COOR_PATTERN.matcher(fields[getYCol()]);
-			if (x.matches() && y.matches() && x.groupCount() >= 4 && y.groupCount() >= 4) {
-				return new LatLon(convertDegreeMinuteSecond(y), convertDegreeMinuteSecond(x));
-			}
-			return null;
-		}
-		
-		protected double convertDegreeMinuteSecond(Matcher m) {
-			Double deg = Double.parseDouble(m.group(1));
-			Double min = Double.parseDouble(m.group(2));
-			Double sec = Double.parseDouble(m.group(3));
-			Double sign = deg < 0 
-					|| (m.groupCount() >= 5 && (m.group(4).equalsIgnoreCase("Sud") || m.group(4).equalsIgnoreCase("Ouest"))) 
-					? -1.0 : +1.0;
-			if (sign < 0) {
-				if (deg > 0) {
-					deg *= sign;
-				}
-				min *= sign;
-				sec *= sign;
-			}
-			return OdUtils.convertDegreeMinuteSecond(deg, min, sec);
-		}
-	}
+        @Override
+        public LatLon getCoor(EastNorth en, String[] fields) {
+            Matcher x = COOR_PATTERN.matcher(fields[getXCol()]);
+            Matcher y = COOR_PATTERN.matcher(fields[getYCol()]);
+            if (x.matches() && y.matches() && x.groupCount() >= 4 && y.groupCount() >= 4) {
+                return new LatLon(convertDegreeMinuteSecond(y), convertDegreeMinuteSecond(x));
+            }
+            return null;
+        }
+        
+        protected double convertDegreeMinuteSecond(Matcher m) {
+            Double deg = Double.parseDouble(m.group(1));
+            Double min = Double.parseDouble(m.group(2));
+            Double sec = Double.parseDouble(m.group(3));
+            Double sign = deg < 0 
+                    || (m.groupCount() >= 5 && (m.group(4).equalsIgnoreCase("Sud") || m.group(4).equalsIgnoreCase("Ouest"))) 
+                    ? -1.0 : +1.0;
+            if (sign < 0) {
+                if (deg > 0) {
+                    deg *= sign;
+                }
+                min *= sign;
+                sec *= sign;
+            }
+            return OdUtils.convertDegreeMinuteSecond(deg, min, sec);
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/PassageNiveauHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/PassageNiveauHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/PassageNiveauHandler.java	(revision 30731)
@@ -9,21 +9,21 @@
 public class PassageNiveauHandler extends DataGouvDataSetHandler {
 
-	public PassageNiveauHandler() {
-		super("Passages-à-niveau-30383135");
-		setName("Passages à niveau");
-		setDownloadFileName("passage_a_niveau.csv");
-		getCsvHandler().setCharset(OdConstants.ISO8859_15);
-	}
+    public PassageNiveauHandler() {
+        super("Passages-à-niveau-30383135");
+        setName("Passages à niveau");
+        setDownloadFileName("passage_a_niveau.csv");
+        getCsvHandler().setCharset(OdConstants.ISO8859_15);
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsCsvFilename(filename, "passage_a_niveau(\\.csv-fr)?");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsCsvFilename(filename, "passage_a_niveau(\\.csv-fr)?");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			n.put("railway", "level_crossing");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            n.put("railway", "level_crossing");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/build.xml	(revision 30731)
@@ -14,5 +14,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansConstants.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansConstants.java	(revision 30731)
@@ -5,13 +5,13 @@
 
 public interface LeMansConstants extends FrenchConstants {
-	
-	/**
-	 * Source
-	 */
-	public static final String SOURCE_LE_MANS = "Le Mans Métropole";
-	
-	/**
-	 * Portal
-	 */
-	public static final String PORTAL = "http://www.lemans.fr/";
+    
+    /**
+     * Source
+     */
+    public static final String SOURCE_LE_MANS = "Le Mans Métropole";
+    
+    /**
+     * Portal
+     */
+    public static final String PORTAL = "http://www.lemans.fr/";
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansModule.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/LeMansModule.java	(revision 30731)
@@ -14,13 +14,13 @@
 public class LeMansModule extends AbstractModule {
 
-	public LeMansModule(ModuleInformation info) {
-		super(info);
-		handlers.add(ServicesCommunautairesMunicipauxHandler.class);
-		handlers.add(CantonsSartheHandler.class);
-		handlers.add(CommunesHandler.class);
-		handlers.add(CodesPostauxHandler.class);
-		handlers.add(CirconscriptionsLegislativesHandler.class);
-		handlers.add(ConseilsQuartiersHandler.class);
-		handlers.add(PointsApportVolontaireHandler.class);
+    public LeMansModule(ModuleInformation info) {
+        super(info);
+        handlers.add(ServicesCommunautairesMunicipauxHandler.class);
+        handlers.add(CantonsSartheHandler.class);
+        handlers.add(CommunesHandler.class);
+        handlers.add(CodesPostauxHandler.class);
+        handlers.add(CirconscriptionsLegislativesHandler.class);
+        handlers.add(ConseilsQuartiersHandler.class);
+        handlers.add(PointsApportVolontaireHandler.class);
     }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CantonsSartheHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CantonsSartheHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CantonsSartheHandler.java	(revision 30731)
@@ -7,20 +7,20 @@
 public class CantonsSartheHandler extends LeMansDataSetHandler {
 
-	public CantonsSartheHandler() {
-		super("F7D936DF-550EA533-37695DD8-29CFF55B");
-		setName("Cantons de la Sarthe");
-		setKmzShpUuid("62DFCA8F-550EA533-7E7BB44A-7D1AA2D4", "62E017CA-550EA533-7E7BB44A-23772121");
-	}
+    public CantonsSartheHandler() {
+        super("F7D936DF-550EA533-37695DD8-29CFF55B");
+        setName("Cantons de la Sarthe");
+        setKmzShpUuid("62DFCA8F-550EA533-7E7BB44A-7D1AA2D4", "62E017CA-550EA533-7E7BB44A-23772121");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzShpFilename(filename, "CANTONS_72") || acceptsZipFilename(filename, "Les cantons de la Sarthe .*");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzShpFilename(filename, "CANTONS_72") || acceptsZipFilename(filename, "Les cantons de la Sarthe .*");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			replace(n, "NOM", "name");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            replace(n, "NOM", "name");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CirconscriptionsLegislativesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CirconscriptionsLegislativesHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CirconscriptionsLegislativesHandler.java	(revision 30731)
@@ -6,18 +6,18 @@
 public class CirconscriptionsLegislativesHandler extends LeMansDataSetHandler {
 
-	public CirconscriptionsLegislativesHandler() {
-		super("F7D06B39-550EA533-37695DD8-95CA6762");
-		setName("Circonscriptions législatives");
-		setKmzShpUuid("64468222-550EA533-7E7BB44A-39A6B127", "6447510C-550EA533-7E7BB44A-9971DB1A");
-	}
+    public CirconscriptionsLegislativesHandler() {
+        super("F7D06B39-550EA533-37695DD8-95CA6762");
+        setName("Circonscriptions législatives");
+        setKmzShpUuid("64468222-550EA533-7E7BB44A-39A6B127", "6447510C-550EA533-7E7BB44A-9971DB1A");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzShpFilename(filename, "CIRCONSCRIPTIONS") || acceptsZipFilename(filename, "Les circonscriptions .*");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzShpFilename(filename, "CIRCONSCRIPTIONS") || acceptsZipFilename(filename, "Les circonscriptions .*");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CodesPostauxHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CodesPostauxHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CodesPostauxHandler.java	(revision 30731)
@@ -6,18 +6,18 @@
 public class CodesPostauxHandler extends LeMansDataSetHandler {
 
-	public CodesPostauxHandler() {
-		super("F758F369-550EA533-37695DD8-84EB87F5");
-		setName("Codes postaux");
-		setKmzShpUuid("6449CF5B-550EA533-7E7BB44A-2DB0261B", "644A524A-550EA533-7E7BB44A-9B34A76A");
-	}
+    public CodesPostauxHandler() {
+        super("F758F369-550EA533-37695DD8-84EB87F5");
+        setName("Codes postaux");
+        setKmzShpUuid("6449CF5B-550EA533-7E7BB44A-2DB0261B", "644A524A-550EA533-7E7BB44A-9B34A76A");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzShpFilename(filename, "CODES_POSTAUX") || acceptsZipFilename(filename, "Les codes postaux .*");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzShpFilename(filename, "CODES_POSTAUX") || acceptsZipFilename(filename, "Les codes postaux .*");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CommunesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CommunesHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/CommunesHandler.java	(revision 30731)
@@ -7,28 +7,28 @@
 public class CommunesHandler extends LeMansDataSetHandler {
 
-	public CommunesHandler() {
-		super("F7B756B1-550EA533-37695DD8-FE094AE7");
-		setName("Communes");
-		setKmzShpUuid("64527774-550EA533-7E7BB44A-FD17EEF0", "6452D942-550EA533-7E7BB44A-C184920B");
-	}
+    public CommunesHandler() {
+        super("F7B756B1-550EA533-37695DD8-FE094AE7");
+        setName("Communes");
+        setKmzShpUuid("64527774-550EA533-7E7BB44A-FD17EEF0", "6452D942-550EA533-7E7BB44A-C184920B");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzShpFilename(filename, "LIMITES_DE_COMMUNES") || acceptsZipFilename(filename, "Les limites de communes .*");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzShpFilename(filename, "LIMITES_DE_COMMUNES") || acceptsZipFilename(filename, "Les limites de communes .*");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (OsmPrimitive p : ds.allPrimitives()) {
-			if (p.hasKey("CODCOM")) {
-				p.put("type", "boundary");
-				p.put("boundary", "administrative");
-				p.put("admin_level", "8");
-				replace(p, "COMMUNE", "name");
-				p.remove("COMMUNE_2");
-				replace(p, "ID", "ref:INSEE");
-				p.remove("CODCOM");
-			}
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (OsmPrimitive p : ds.allPrimitives()) {
+            if (p.hasKey("CODCOM")) {
+                p.put("type", "boundary");
+                p.put("boundary", "administrative");
+                p.put("admin_level", "8");
+                replace(p, "COMMUNE", "name");
+                p.remove("COMMUNE_2");
+                replace(p, "ID", "ref:INSEE");
+                p.remove("CODCOM");
+            }
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ConseilsQuartiersHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ConseilsQuartiersHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ConseilsQuartiersHandler.java	(revision 30731)
@@ -6,18 +6,18 @@
 public class ConseilsQuartiersHandler extends LeMansDataSetHandler {
 
-	public ConseilsQuartiersHandler() {
-		super("F7713FAB-550EA533-37695DD8-A9755461");
-		setName("Conseils de quartiers");
-		setKmzShpUuid("644BD601-550EA533-7E7BB44A-0B649A3D", "644C87D8-550EA533-7E7BB44A-6284E60D");
-	}
+    public ConseilsQuartiersHandler() {
+        super("F7713FAB-550EA533-37695DD8-A9755461");
+        setName("Conseils de quartiers");
+        setKmzShpUuid("644BD601-550EA533-7E7BB44A-0B649A3D", "644C87D8-550EA533-7E7BB44A-6284E60D");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzShpFilename(filename, "CONSEILS_DE_QUARTIER") || acceptsZipFilename(filename, "Les conseils de quartiers .*");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzShpFilename(filename, "CONSEILS_DE_QUARTIER") || acceptsZipFilename(filename, "Les conseils de quartiers .*");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java	(revision 30731)
@@ -14,73 +14,73 @@
 
 public abstract class LeMansDataSetHandler extends FrenchDataSetHandler implements LeMansConstants {
-	
-	private String kmzUuid;
-	private String shpUuid;
-	
-	public LeMansDataSetHandler(String uuid) {
-		init(uuid);
-	}
-	
-	public LeMansDataSetHandler(String uuid, String relevantTag) {
-		super(relevantTag);
-		init(uuid);
-	}
-	
-	public LeMansDataSetHandler(String uuid, boolean relevantUnion, String ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(uuid);
-	}
+    
+    private String kmzUuid;
+    private String shpUuid;
+    
+    public LeMansDataSetHandler(String uuid) {
+        init(uuid);
+    }
+    
+    public LeMansDataSetHandler(String uuid, String relevantTag) {
+        super(relevantTag);
+        init(uuid);
+    }
+    
+    public LeMansDataSetHandler(String uuid, boolean relevantUnion, String ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(uuid);
+    }
 
-	public LeMansDataSetHandler(String uuid, String ... relevantTags) {
-		this(uuid, false, relevantTags);
-	}
+    public LeMansDataSetHandler(String uuid, String ... relevantTags) {
+        this(uuid, false, relevantTags);
+    }
 
-	
-	public LeMansDataSetHandler(String uuid, boolean relevantUnion, Tag ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(uuid);
-	}
+    
+    public LeMansDataSetHandler(String uuid, boolean relevantUnion, Tag ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(uuid);
+    }
 
-	private final void init(String uuid) {
-		try {
-			setLicense(License.ODbL);
-			if (uuid != null && !uuid.isEmpty()) {
-				setLocalPortalURL(PORTAL + "page.do?t=2&uuid=" + uuid);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-	}
-		
-	protected final void setKmzShpUuid(String kmzUuid, String shpUuid) {
-		this.kmzUuid = kmzUuid;
-		this.shpUuid = shpUuid;
-	}
+    private final void init(String uuid) {
+        try {
+            setLicense(License.ODbL);
+            if (uuid != null && !uuid.isEmpty()) {
+                setLocalPortalURL(PORTAL + "page.do?t=2&uuid=" + uuid);
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+    }
+        
+    protected final void setKmzShpUuid(String kmzUuid, String shpUuid) {
+        this.kmzUuid = kmzUuid;
+        this.shpUuid = shpUuid;
+    }
 
-	@Override
-	public String getSource() {
-		return SOURCE_LE_MANS;
-	}
-	
-	/*@Override
-	public URL getLicenseURL() {
-		try {
-			return new URL(PORTAL + "download.do?uuid=3E907F53-550EA533-5AE8381B-44AE9F93");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}*/
+    @Override
+    public String getSource() {
+        return SOURCE_LE_MANS;
+    }
+    
+    /*@Override
+    public URL getLicenseURL() {
+        try {
+            return new URL(PORTAL + "download.do?uuid=3E907F53-550EA533-5AE8381B-44AE9F93");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }*/
 
-	@Override
-	public List<Pair<String, URL>> getDataURLs() {
-		List<Pair<String, URL>> result = new ArrayList<>();
-		try {
-			if (kmzUuid != null && !kmzUuid.isEmpty()) result.add(new Pair<>(getName() + " (KMZ)", new URL(PORTAL + "download.do?uuid=" + kmzUuid)));
-			if (shpUuid != null && !shpUuid.isEmpty()) result.add(new Pair<>(getName() + " (SHP)", new URL(PORTAL + "download.do?uuid=" + shpUuid)));
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    @Override
+    public List<Pair<String, URL>> getDataURLs() {
+        List<Pair<String, URL>> result = new ArrayList<>();
+        try {
+            if (kmzUuid != null && !kmzUuid.isEmpty()) result.add(new Pair<>(getName() + " (KMZ)", new URL(PORTAL + "download.do?uuid=" + kmzUuid)));
+            if (shpUuid != null && !shpUuid.isEmpty()) result.add(new Pair<>(getName() + " (SHP)", new URL(PORTAL + "download.do?uuid=" + shpUuid)));
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/PointsApportVolontaireHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/PointsApportVolontaireHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/PointsApportVolontaireHandler.java	(revision 30731)
@@ -6,18 +6,18 @@
 public class PointsApportVolontaireHandler extends LeMansDataSetHandler {
 
-	public PointsApportVolontaireHandler() {
-		super("F8213494-550EA533-37695DD8-28F0B08D");
-		setName("Points d'apport volontaire");
-		setKmzShpUuid("66972849-550EA533-7E7BB44A-7AB7F366", "66977265-550EA533-7E7BB44A-1859F0AC");
-	}
+    public PointsApportVolontaireHandler() {
+        super("F8213494-550EA533-37695DD8-28F0B08D");
+        setName("Points d'apport volontaire");
+        setKmzShpUuid("66972849-550EA533-7E7BB44A-7AB7F366", "66977265-550EA533-7E7BB44A-1859F0AC");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzShpFilename(filename, "Points d'Apports Volontaires") || acceptsZipFilename(filename, "Les points dapport volontaire .*");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzShpFilename(filename, "Points d'Apports Volontaires") || acceptsZipFilename(filename, "Les points dapport volontaire .*");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ServicesCommunautairesMunicipauxHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ServicesCommunautairesMunicipauxHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/ServicesCommunautairesMunicipauxHandler.java	(revision 30731)
@@ -7,20 +7,20 @@
 public class ServicesCommunautairesMunicipauxHandler extends LeMansDataSetHandler {
 
-	public ServicesCommunautairesMunicipauxHandler() {
-		super("F7F65F15-550EA533-37695DD8-F7A74F05");
-		setName("Services communautaires et municipaux");
-		setKmzShpUuid("66C925DA-550EA533-7E7BB44A-BCF0B629", "66C972AD-550EA533-7E7BB44A-E842FFAD");
-	}
+    public ServicesCommunautairesMunicipauxHandler() {
+        super("F7F65F15-550EA533-37695DD8-F7A74F05");
+        setName("Services communautaires et municipaux");
+        setKmzShpUuid("66C925DA-550EA533-7E7BB44A-BCF0B629", "66C972AD-550EA533-7E7BB44A-E842FFAD");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsKmzShpFilename(filename, "SERVICES_VDM_LMM") || acceptsZipFilename(filename, "Les services de le Mans Métropole et de la Ville du Mans .*");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzShpFilename(filename, "SERVICES_VDM_LMM") || acceptsZipFilename(filename, "Les services de le Mans Métropole et de la Ville du Mans .*");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			replace(n, "NOM", "name");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            replace(n, "NOM", "name");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paca/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paca/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paca/build.xml	(revision 30731)
@@ -14,5 +14,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/build.xml	(revision 30731)
@@ -16,5 +16,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
@@ -96,5 +96,5 @@
                 <attribute name="Module-Date" value="${version.entry.commit.date}"/>
                 <attribute name="Module-Description" value="Paris"/>
-            	<attribute name="Module-Icon" value="images/data.fr.paris_24.png"/>
+                <attribute name="Module-Icon" value="images/data.fr.paris_24.png"/>
                 <!--<attribute name="Module-Link" value="http://wiki.openstreetmap.org/wiki/JOSM/Plugins/OpenData/Paris"/>-->
                 <attribute name="Module-Version" value="${version.entry.commit.revision}"/>
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisConstants.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisConstants.java	(revision 30731)
@@ -4,18 +4,18 @@
 
 public interface ParisConstants {
-		
-	/**
-	 * Source
-	 */
-	public static final String SOURCE = "opendataparis";
-	
-	/**
-	 * Portal
-	 */
-	public static final String PORTAL = "http://opendata.paris.fr/opendata/";
+        
+    /**
+     * Source
+     */
+    public static final String SOURCE = "opendataparis";
+    
+    /**
+     * Portal
+     */
+    public static final String PORTAL = "http://opendata.paris.fr/opendata/";
 
-	/**
-	 * Icons
-	 */
-	public static final String ICON_PARIS_24 = "data.fr.paris_24.png";
+    /**
+     * Icons
+     */
+    public static final String ICON_PARIS_24 = "data.fr.paris_24.png";
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisLicense.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisLicense.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisLicense.java	(revision 30731)
@@ -6,11 +6,11 @@
 public class ParisLicense extends ODbL {
 
-	public ParisLicense() {
-		// TODO: Paris license
-		/*try {
-			setURL(PORTAL + "/la-licence", "fr");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}*/
-	}
+    public ParisLicense() {
+        // TODO: Paris license
+        /*try {
+            setURL(PORTAL + "/la-licence", "fr");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }*/
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisModule.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisModule.java	(revision 30731)
@@ -11,6 +11,6 @@
 public class ParisModule extends AbstractModule {
 
-	public ParisModule(ModuleInformation info) {
-		super(info);
+    public ParisModule(ModuleInformation info) {
+        super(info);
         handlers.add(SanisettesHandler.class);
         handlers.add(ArbresRemarquablesHandler.class);
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisDataSetHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisDataSetHandler.java	(revision 30731)
@@ -11,65 +11,65 @@
 
 public abstract class ParisDataSetHandler extends FrenchDataSetHandler implements ParisConstants {
-	
-	private int documentId;
-	private static final int portletId = 106; // FIXME
-	
-	public ParisDataSetHandler(int documentId) {
-		init(documentId);
-	}
-	
-	public ParisDataSetHandler(int documentId, String relevantTag) {
-		super(relevantTag);
-		init(documentId);
-	}
-	
-	public ParisDataSetHandler(int documentId, boolean relevantUnion, String ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(documentId);
-	}
+    
+    private int documentId;
+    private static final int portletId = 106; // FIXME
+    
+    public ParisDataSetHandler(int documentId) {
+        init(documentId);
+    }
+    
+    public ParisDataSetHandler(int documentId, String relevantTag) {
+        super(relevantTag);
+        init(documentId);
+    }
+    
+    public ParisDataSetHandler(int documentId, boolean relevantUnion, String ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(documentId);
+    }
 
-	public ParisDataSetHandler(int documentId, String ... relevantTags) {
-		this(documentId, false, relevantTags);
-	}
+    public ParisDataSetHandler(int documentId, String ... relevantTags) {
+        this(documentId, false, relevantTags);
+    }
 
-	public ParisDataSetHandler(int documentId, boolean relevantUnion, Tag ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(documentId);
-	}
+    public ParisDataSetHandler(int documentId, boolean relevantUnion, Tag ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(documentId);
+    }
 
-	private final void init(int documentId) {
-		this.documentId = documentId;
-		setLicense(new ParisLicense());
-		try {
-			if (documentId > 0) {
-				setLocalPortalURL(PORTAL + "jsp/site/Portal.jsp?document_id="+documentId + "&portlet_id="+portletId);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-	}
+    private final void init(int documentId) {
+        this.documentId = documentId;
+        setLicense(new ParisLicense());
+        try {
+            if (documentId > 0) {
+                setLocalPortalURL(PORTAL + "jsp/site/Portal.jsp?document_id="+documentId + "&portlet_id="+portletId);
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+    }
 
-	@Override
-	public String getSource() {
-		return SOURCE;
-	}
+    @Override
+    public String getSource() {
+        return SOURCE;
+    }
 
-	@Override
-	public String getLocalPortalIconName() {
-		return ICON_PARIS_24;
-	}
-	
-	protected abstract String getDirectLink();
+    @Override
+    public String getLocalPortalIconName() {
+        return ICON_PARIS_24;
+    }
+    
+    protected abstract String getDirectLink();
 
-	@Override
-	public URL getDataURL() {
-		try {
-			if (documentId > 0) {
-				return new URL(PORTAL + "rating/download/?id_resource="+documentId + "&type_resource=document&url="+getDirectLink());
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
+    @Override
+    public URL getDataURL() {
+        try {
+            if (documentId > 0) {
+                return new URL(PORTAL + "rating/download/?id_resource="+documentId + "&type_resource=document&url="+getDirectLink());
+            }
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisShpHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisShpHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisShpHandler.java	(revision 30731)
@@ -18,68 +18,68 @@
 
 public class ParisShpHandler extends FrenchShpHandler {
-	
-	public final Map<String, Node> nodeMap = new HashMap<>();
-	
-	protected OsmPrimitive dataPrimitive;
-	protected Way closedWay;
-	protected List<Way> ways;
-	public List<Node> nodes;
-	
-	public ParisShpHandler() {
-		setDbfCharset(Charset.forName(OdConstants.CP850));
-	}
-	
-	private Node getNode(EastNorth en, String key) {
-		Node n = nodeMap.get(key);
-		/*if (n == null) {
-			for (Node node : nodes.values()) {
-				if (node.getEastNorth().equalsEpsilon(en, 0.0000001)) {
-					return node;
-				}
-			}
-		}*/
-		return n;
-	}
-	
-	protected Node createOrGetNode(DataSet ds, EastNorth en) {
-		String key = en.getX()+"/"+en.getY();
-		Node n = getNode(en, key);
-		if (n == null) {
-			n = new Node(en);
-			nodeMap.put(key, n);
-			ds.addPrimitive(n);
-		}
-		return n;
-	}
+    
+    public final Map<String, Node> nodeMap = new HashMap<>();
+    
+    protected OsmPrimitive dataPrimitive;
+    protected Way closedWay;
+    protected List<Way> ways;
+    public List<Node> nodes;
+    
+    public ParisShpHandler() {
+        setDbfCharset(Charset.forName(OdConstants.CP850));
+    }
+    
+    private Node getNode(EastNorth en, String key) {
+        Node n = nodeMap.get(key);
+        /*if (n == null) {
+            for (Node node : nodes.values()) {
+                if (node.getEastNorth().equalsEpsilon(en, 0.0000001)) {
+                    return node;
+                }
+            }
+        }*/
+        return n;
+    }
+    
+    protected Node createOrGetNode(DataSet ds, EastNorth en) {
+        String key = en.getX()+"/"+en.getY();
+        Node n = getNode(en, key);
+        if (n == null) {
+            n = new Node(en);
+            nodeMap.put(key, n);
+            ds.addPrimitive(n);
+        }
+        return n;
+    }
 
-	protected final void initFeaturesPrimitives(Set<OsmPrimitive> featurePrimitives) {
-		dataPrimitive = null;
-		closedWay = null;
-		ways = new ArrayList<>();
-		nodes = new ArrayList<>();
-		for (OsmPrimitive p : featurePrimitives) {
-			if (p.hasKeys()) {
-				dataPrimitive = p;
-			}
-			if (p instanceof Way) {
-				Way w = (Way) p;
-				ways.add(w);
-				if (w.isClosed()) {
-					closedWay = w;
-				}
-			} else if (p instanceof Node) {
-				nodes.add((Node) p);
-			}
-		}
-	}
-	
-	protected final void removePrimitives(DataSet result) {
-		for (Way w : ways) {
-			w.setNodes(null);
-			result.removePrimitive(w);
-		}
-		for (Node n : nodes) {
-			result.removePrimitive(n);
-		}
-	}
+    protected final void initFeaturesPrimitives(Set<OsmPrimitive> featurePrimitives) {
+        dataPrimitive = null;
+        closedWay = null;
+        ways = new ArrayList<>();
+        nodes = new ArrayList<>();
+        for (OsmPrimitive p : featurePrimitives) {
+            if (p.hasKeys()) {
+                dataPrimitive = p;
+            }
+            if (p instanceof Way) {
+                Way w = (Way) p;
+                ways.add(w);
+                if (w.isClosed()) {
+                    closedWay = w;
+                }
+            } else if (p instanceof Node) {
+                nodes.add((Node) p);
+            }
+        }
+    }
+    
+    protected final void removePrimitives(DataSet result) {
+        for (Way w : ways) {
+            w.setNodes(null);
+            result.removePrimitive(w);
+        }
+        for (Node n : nodes) {
+            result.removePrimitive(n);
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/deplacements/ElectriciteHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/deplacements/ElectriciteHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/deplacements/ElectriciteHandler.java	(revision 30731)
@@ -7,22 +7,22 @@
 public class ElectriciteHandler extends ParisDataSetHandler {
 
-	public ElectriciteHandler() {
-		super(95);
-		setName("Électricité");
-	}
+    public ElectriciteHandler() {
+        super(95);
+        setName("Électricité");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "electricite") || acceptsZipFilename(filename, "electricite");
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "electricite") || acceptsZipFilename(filename, "electricite");
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 
-	@Override
-	protected String getDirectLink() {
-		return PORTAL+"hn/electricite.zip";
-	}
+    @Override
+    protected String getDirectLink() {
+        return PORTAL+"hn/electricite.zip";
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/environnement/ArbresRemarquablesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/environnement/ArbresRemarquablesHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/environnement/ArbresRemarquablesHandler.java	(revision 30731)
@@ -8,25 +8,25 @@
 public class ArbresRemarquablesHandler extends ParisDataSetHandler {
 
-	public ArbresRemarquablesHandler() {
-		super(107);
-		setName("Arbres remarquables");
-	}
+    public ArbresRemarquablesHandler() {
+        super(107);
+        setName("Arbres remarquables");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "arbres_remarquables") || acceptsZipFilename(filename, "arbres_remarquables_20..");
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			n.put("natural", "tree");
-			replace(n, "ANNEE__PLA", "start_date");
-		}
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "arbres_remarquables") || acceptsZipFilename(filename, "arbres_remarquables_20..");
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            n.put("natural", "tree");
+            replace(n, "ANNEE__PLA", "start_date");
+        }
+    }
 
-	@Override
-	protected String getDirectLink() {
-		return PORTAL+"hn/arbres_remarquables_2011.zip";
-	}
+    @Override
+    protected String getDirectLink() {
+        return PORTAL+"hn/arbres_remarquables_2011.zip";
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/environnement/MobilierVoiePubliqueHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/environnement/MobilierVoiePubliqueHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/environnement/MobilierVoiePubliqueHandler.java	(revision 30731)
@@ -14,116 +14,116 @@
 public class MobilierVoiePubliqueHandler extends ParisDataSetHandler {
 
-	private final InternalShpHandler shpHandler = new InternalShpHandler();
-	
-	public MobilierVoiePubliqueHandler() {
-		super(96);
-		setName("Mobiliers sur voie publique");
-		setShpHandler(shpHandler);
-	}
+    private final InternalShpHandler shpHandler = new InternalShpHandler();
+    
+    public MobilierVoiePubliqueHandler() {
+        super(96);
+        setName("Mobiliers sur voie publique");
+        setShpHandler(shpHandler);
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "environnement") || acceptsZipFilename(filename, "environnement");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "environnement") || acceptsZipFilename(filename, "environnement");
+    }
 
-	@Override
-	protected String getDirectLink() {
-		return PORTAL+"hn/environnement.zip";
-	}
-	
-	private final class InternalShpHandler extends ParisShpHandler {
-		@Override
-		public void notifyFeatureParsed(Object feature, DataSet result,	Set<OsmPrimitive> featurePrimitives) {
-			initFeaturesPrimitives(featurePrimitives);
-			String type = dataPrimitive.get("Libelle");
-			if (type.startsWith("Banc ")) {
-				if (closedWay == null && dataPrimitive instanceof Way && ((Way)dataPrimitive).getNodesCount() > 3) {
-					// Some benches can be converted to closed ways by removing some extra nodes at the beginning
-					Way copy = new Way((Way) dataPrimitive);
-					while (copy.getNodesCount() > 3 && !copy.isClosed()) {
-						copy.removeNode(copy.getNode(0));
-					}
-					if (copy.isClosed()) {
-						closedWay = copy;
-					} else {
-						// Try in the opposite direction (remove nodes from the end)
-						copy = new Way((Way) dataPrimitive);
-						while (copy.getNodesCount() > 3 && !copy.isClosed()) {
-							copy.removeNode(copy.getNode(copy.getNodesCount()-1));
-						}
-						if (copy.isClosed()) {
-							closedWay = copy;
-						}
-					}
-				}
-				if (closedWay != null) {
-					Node bench = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
-					bench.put("amenity", "bench");
-					bench.put("description", type);
-					removePrimitives(result);
-				} else {
-					System.err.println("Bench without closed area: "+type);
-				}
-			} else if (type.startsWith("Poubelle") || type.startsWith("Borne de propreté")) {
-				if (closedWay != null) {
-					Node basket = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
-					basket.put("amenity", "waste_basket");
-					basket.put("description", type);
-					removePrimitives(result);
-				} else {
-					System.err.println("Waste basket without closed area: "+type);
-				}
-			} else if (type.startsWith("Bac à sable")) {
-				if (closedWay == null && dataPrimitive instanceof Way && ((Way)dataPrimitive).getNodesCount() == 2) {
-					// Sandpits are badly built, fix them
-					closedWay = (Way) dataPrimitive;
-					for (Way w : ways) {
-						if (w.getNodesCount() == 4) {
-							Node n1 = w.getNode(1);
-							Node n2 = w.getNode(2);
-							if (closedWay.getNode(1).getCoor().distance(n1.getCoor()) < closedWay.getNode(1).getCoor().distance(n2.getCoor())) {
-								closedWay.addNode(n1);
-								closedWay.addNode(n2);
-							} else {
-								closedWay.addNode(n2);
-								closedWay.addNode(n1);
-							}
-							closedWay.addNode(closedWay.getNode(0));
-							break;
-						}
-					}
-				}
-				if (closedWay != null) {
-					// FIXME: lines commented as "sandpits" in this data set seem to be false data
-					/*Node pg = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
-					pg.put("leisure", "playground");
-					pg.put("playground", "sandpit");
-					pg.put("description", type);*/
-					removePrimitives(result);
-				} else {
-					System.err.println("Sandpit without closed area: "+type);
-				}
-			} else if (type.startsWith("Corbeille florale")) {
-				if (closedWay != null) {
-					Node n = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
-					n.put("man_made", "floral_basket");
-					n.put("description", type);
-					removePrimitives(result);
-				} else {
-					System.err.println("Floral basket without closed area: "+type);
-				}
-			} else if (type.startsWith("Objet sans identification particulière")) {
-				//dataPrimitive.put("FIXME", "unknown object. DO NOT upload as it !");
-				removePrimitives(result);
-			} else {
-				System.err.println("Unsupported object type: "+type);
-			}
-		}
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// Done in notifyFeatureParsed() for drastic performance reasons
-		shpHandler.nodes.clear();
-	}
+    @Override
+    protected String getDirectLink() {
+        return PORTAL+"hn/environnement.zip";
+    }
+    
+    private final class InternalShpHandler extends ParisShpHandler {
+        @Override
+        public void notifyFeatureParsed(Object feature, DataSet result,    Set<OsmPrimitive> featurePrimitives) {
+            initFeaturesPrimitives(featurePrimitives);
+            String type = dataPrimitive.get("Libelle");
+            if (type.startsWith("Banc ")) {
+                if (closedWay == null && dataPrimitive instanceof Way && ((Way)dataPrimitive).getNodesCount() > 3) {
+                    // Some benches can be converted to closed ways by removing some extra nodes at the beginning
+                    Way copy = new Way((Way) dataPrimitive);
+                    while (copy.getNodesCount() > 3 && !copy.isClosed()) {
+                        copy.removeNode(copy.getNode(0));
+                    }
+                    if (copy.isClosed()) {
+                        closedWay = copy;
+                    } else {
+                        // Try in the opposite direction (remove nodes from the end)
+                        copy = new Way((Way) dataPrimitive);
+                        while (copy.getNodesCount() > 3 && !copy.isClosed()) {
+                            copy.removeNode(copy.getNode(copy.getNodesCount()-1));
+                        }
+                        if (copy.isClosed()) {
+                            closedWay = copy;
+                        }
+                    }
+                }
+                if (closedWay != null) {
+                    Node bench = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
+                    bench.put("amenity", "bench");
+                    bench.put("description", type);
+                    removePrimitives(result);
+                } else {
+                    System.err.println("Bench without closed area: "+type);
+                }
+            } else if (type.startsWith("Poubelle") || type.startsWith("Borne de propreté")) {
+                if (closedWay != null) {
+                    Node basket = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
+                    basket.put("amenity", "waste_basket");
+                    basket.put("description", type);
+                    removePrimitives(result);
+                } else {
+                    System.err.println("Waste basket without closed area: "+type);
+                }
+            } else if (type.startsWith("Bac à sable")) {
+                if (closedWay == null && dataPrimitive instanceof Way && ((Way)dataPrimitive).getNodesCount() == 2) {
+                    // Sandpits are badly built, fix them
+                    closedWay = (Way) dataPrimitive;
+                    for (Way w : ways) {
+                        if (w.getNodesCount() == 4) {
+                            Node n1 = w.getNode(1);
+                            Node n2 = w.getNode(2);
+                            if (closedWay.getNode(1).getCoor().distance(n1.getCoor()) < closedWay.getNode(1).getCoor().distance(n2.getCoor())) {
+                                closedWay.addNode(n1);
+                                closedWay.addNode(n2);
+                            } else {
+                                closedWay.addNode(n2);
+                                closedWay.addNode(n1);
+                            }
+                            closedWay.addNode(closedWay.getNode(0));
+                            break;
+                        }
+                    }
+                }
+                if (closedWay != null) {
+                    // FIXME: lines commented as "sandpits" in this data set seem to be false data
+                    /*Node pg = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
+                    pg.put("leisure", "playground");
+                    pg.put("playground", "sandpit");
+                    pg.put("description", type);*/
+                    removePrimitives(result);
+                } else {
+                    System.err.println("Sandpit without closed area: "+type);
+                }
+            } else if (type.startsWith("Corbeille florale")) {
+                if (closedWay != null) {
+                    Node n = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
+                    n.put("man_made", "floral_basket");
+                    n.put("description", type);
+                    removePrimitives(result);
+                } else {
+                    System.err.println("Floral basket without closed area: "+type);
+                }
+            } else if (type.startsWith("Objet sans identification particulière")) {
+                //dataPrimitive.put("FIXME", "unknown object. DO NOT upload as it !");
+                removePrimitives(result);
+            } else {
+                System.err.println("Unsupported object type: "+type);
+            }
+        }
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // Done in notifyFeatureParsed() for drastic performance reasons
+        shpHandler.nodes.clear();
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/EclairagePublicHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/EclairagePublicHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/EclairagePublicHandler.java	(revision 30731)
@@ -13,82 +13,82 @@
 public class EclairagePublicHandler extends ParisDataSetHandler {
 
-	private final InternalShpHandler shpHandler = new InternalShpHandler();
-	
-	public EclairagePublicHandler() {
-		super(94);
-		setName("Éclairage public");
-		setShpHandler(shpHandler);
-	}
+    private final InternalShpHandler shpHandler = new InternalShpHandler();
+    
+    public EclairagePublicHandler() {
+        super(94);
+        setName("Éclairage public");
+        setShpHandler(shpHandler);
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "eclairage_public") || acceptsZipFilename(filename, "eclairage_public");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "eclairage_public") || acceptsZipFilename(filename, "eclairage_public");
+    }
 
-	@Override
-	protected String getDirectLink() {
-		return PORTAL+"hn/eclairage_public.zip";
-	}
-	
-	private final class InternalShpHandler extends ParisShpHandler {
-		
-		@Override
-		public void notifyFeatureParsed(Object feature, DataSet result,	Set<OsmPrimitive> featurePrimitives) {
-			initFeaturesPrimitives(featurePrimitives);
-			if (dataPrimitive == null) {
-				System.err.println("Found no primitive with tags");
-			} else if (closedWay == null) {
-				// ;Objet sans identification particulière pour ce niveau et cette thématique;147;eclairage_public.zip;Niveau 18
-				dataPrimitive.put("FIXME", "This way is not closed and has not been recognized as highway=street_lamp.");
-			} else {
-				Node centroid = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
-				if (!centroid.hasKeys()) {
-					centroid.setKeys(dataPrimitive.getKeys());
-					centroid.put("highway", "street_lamp");
-					replace(centroid, "Libelle", "lamp_model:fr");
-				} else if (centroid.get("lamp_model:fr") != null && (dataPrimitive.get("Libelle") == null || !dataPrimitive.get("Libelle").equals(centroid.get("lamp_model:fr")))) {
-					System.err.println("Found 2 street lamps at the same position with different types: '"+centroid.get("lamp_model:fr")+"' and '"+dataPrimitive.get("Libelle")+"'.");
-				}
-				removePrimitives(result);
-				
-				if (centroid.get("lamp_model:fr") != null) {
-					if (centroid.get("lamp_model:fr").contains("mural") && !centroid.get("lamp_model:fr").contains("au sol")) {
-						centroid.put("lamp_mount", "wall mounted");
-					} else if (centroid.get("lamp_model:fr").contains("au sol") && !centroid.get("lamp_model:fr").contains("mural")) {
-						centroid.put("lamp_mount", "ground");
-					} else {
-						centroid.put("lamp_mount", "pole");
-					}
-					centroid.remove("Info");
-				}
-				
-				/*if (dataPrimitive.get("Info") == null) {
-					System.err.println("Found no primitive with tag 'Info'");
-				} else if (dataPrimitive.get("Info").equals("LEA")) {		//	LEA;Lanterne électrique axiale;2834;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LEL")) {		//	LEL;Lampadaire électrique;61337;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LEM")) {		//	LEM;Lanterne électrique murale;789;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LEMB")) {		//	LEMB;Lanterne électrique murale bord;14727;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LEMRND")) {	//	LEMRND;Lanterne électrique murale renvoi à droite;5635;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LEMRNG")) {	//	LEMRNG;Lanterne électrique murale renvoi à gauche;3822;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LERRND")) {	//	LERRND;Lanterne électrique murale et boite raccord BT renvoi à droite;5657;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LERRNG")) {	//	LERRNG;Lanterne électrique murale et boite raccord BT renvoi à gauche;3377;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("LSO")) {		//	LSO;Lanterne au sol;1337;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("PHO")) {		//	PHO;Poteau horaire;17;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("PPEP")) {		//	PPEP;Poteau provisoire d'éclairage public;181;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("PPR")) {		//	PPR;poteau à projecteur;67;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("PRJ")) {		//	PRJ;Projecteur au sol ou mural;1864;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("PRJRND")) {	//	PRJRND;Projecteur au sol ou mural renvoi à droite;42;eclairage_public.zip;Niveau 18
-				} else if (dataPrimitive.get("Info").equals("PRJRNG")) {	//	PRJRNG;Projecteur au sol ou mural renvoi à gauche;57;eclairage_public.zip;Niveau 18
-				} else {
-					System.err.println("Unsupported Info: "+dataPrimitive.get("Info"));
-				}*/
-			}
-		}
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// Done in notifyFeatureParsed() for drastic performance reasons
-		shpHandler.nodes.clear();
-	}
+    @Override
+    protected String getDirectLink() {
+        return PORTAL+"hn/eclairage_public.zip";
+    }
+    
+    private final class InternalShpHandler extends ParisShpHandler {
+        
+        @Override
+        public void notifyFeatureParsed(Object feature, DataSet result,    Set<OsmPrimitive> featurePrimitives) {
+            initFeaturesPrimitives(featurePrimitives);
+            if (dataPrimitive == null) {
+                System.err.println("Found no primitive with tags");
+            } else if (closedWay == null) {
+                // ;Objet sans identification particulière pour ce niveau et cette thématique;147;eclairage_public.zip;Niveau 18
+                dataPrimitive.put("FIXME", "This way is not closed and has not been recognized as highway=street_lamp.");
+            } else {
+                Node centroid = createOrGetNode(result, Geometry.getCentroid(closedWay.getNodes()));
+                if (!centroid.hasKeys()) {
+                    centroid.setKeys(dataPrimitive.getKeys());
+                    centroid.put("highway", "street_lamp");
+                    replace(centroid, "Libelle", "lamp_model:fr");
+                } else if (centroid.get("lamp_model:fr") != null && (dataPrimitive.get("Libelle") == null || !dataPrimitive.get("Libelle").equals(centroid.get("lamp_model:fr")))) {
+                    System.err.println("Found 2 street lamps at the same position with different types: '"+centroid.get("lamp_model:fr")+"' and '"+dataPrimitive.get("Libelle")+"'.");
+                }
+                removePrimitives(result);
+                
+                if (centroid.get("lamp_model:fr") != null) {
+                    if (centroid.get("lamp_model:fr").contains("mural") && !centroid.get("lamp_model:fr").contains("au sol")) {
+                        centroid.put("lamp_mount", "wall mounted");
+                    } else if (centroid.get("lamp_model:fr").contains("au sol") && !centroid.get("lamp_model:fr").contains("mural")) {
+                        centroid.put("lamp_mount", "ground");
+                    } else {
+                        centroid.put("lamp_mount", "pole");
+                    }
+                    centroid.remove("Info");
+                }
+                
+                /*if (dataPrimitive.get("Info") == null) {
+                    System.err.println("Found no primitive with tag 'Info'");
+                } else if (dataPrimitive.get("Info").equals("LEA")) {        //    LEA;Lanterne électrique axiale;2834;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LEL")) {        //    LEL;Lampadaire électrique;61337;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LEM")) {        //    LEM;Lanterne électrique murale;789;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LEMB")) {        //    LEMB;Lanterne électrique murale bord;14727;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LEMRND")) {    //    LEMRND;Lanterne électrique murale renvoi à droite;5635;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LEMRNG")) {    //    LEMRNG;Lanterne électrique murale renvoi à gauche;3822;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LERRND")) {    //    LERRND;Lanterne électrique murale et boite raccord BT renvoi à droite;5657;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LERRNG")) {    //    LERRNG;Lanterne électrique murale et boite raccord BT renvoi à gauche;3377;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("LSO")) {        //    LSO;Lanterne au sol;1337;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("PHO")) {        //    PHO;Poteau horaire;17;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("PPEP")) {        //    PPEP;Poteau provisoire d'éclairage public;181;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("PPR")) {        //    PPR;poteau à projecteur;67;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("PRJ")) {        //    PRJ;Projecteur au sol ou mural;1864;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("PRJRND")) {    //    PRJRND;Projecteur au sol ou mural renvoi à droite;42;eclairage_public.zip;Niveau 18
+                } else if (dataPrimitive.get("Info").equals("PRJRNG")) {    //    PRJRNG;Projecteur au sol ou mural renvoi à gauche;57;eclairage_public.zip;Niveau 18
+                } else {
+                    System.err.println("Unsupported Info: "+dataPrimitive.get("Info"));
+                }*/
+            }
+        }
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // Done in notifyFeatureParsed() for drastic performance reasons
+        shpHandler.nodes.clear();
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/SanisettesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/SanisettesHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/SanisettesHandler.java	(revision 30731)
@@ -15,91 +15,91 @@
 public class SanisettesHandler extends ParisDataSetHandler {
 
-	public SanisettesHandler() {
-		super(93);
-		setName("Sanisettes");
-		getShpHandler().setCheckNodeProximity(true);
-	}
+    public SanisettesHandler() {
+        super(93);
+        setName("Sanisettes");
+        getShpHandler().setCheckNodeProximity(true);
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "sanisettes") || acceptsZipFilename(filename, "sanisettes");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "sanisettes") || acceptsZipFilename(filename, "sanisettes");
+    }
 
-	private boolean wayBelongsTo(Way a, List<Way> ways) {
-		for (Way b : ways) {
-			if (a.getNode(0).equals(b.getNode(0)) || a.getNode(0).equals(b.getNode(b.getNodesCount()-1))
-			 || a.getNode(a.getNodesCount()-1).equals(b.getNode(0)) || a.getNode(a.getNodesCount()-1).equals(b.getNode(b.getNodesCount()-1))) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	private boolean wayProcessed(Way a, List<List<Way>> waysToCombine) {
-		for (List<Way> ways : waysToCombine) {
-			for (Way b : ways) {
-				if (a.equals(b)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		
-		List<Way> sourceWays = new ArrayList<>(ds.getWays());
-		List<List<Way>> waysToCombine = new ArrayList<>();
-		
-		for (Iterator<Way> it = sourceWays.iterator(); it.hasNext();) {
-			Way w = it.next();
-			it.remove();
-			if (!wayProcessed(w, waysToCombine)) {
-				List<Way> list = new ArrayList<>();
-				list.add(w);
-				boolean finished = false;
-				List<Way> sourceWays2 = new ArrayList<>(sourceWays);
-				while (!finished) {
-					int before = list.size();
-					for (Iterator<Way> it2 = sourceWays2.iterator(); it2.hasNext();) {
-						Way w2 = it2.next();
-						if (wayBelongsTo(w2, list)) {
-							list.add(w2);
-							it2.remove();
-						}
-					}
-					int after = list.size();
-					finished = (after == before);
-				}
-				if (list.size() > 1) {
-					waysToCombine.add(list);
-				}
-			}
-		}
-				
-		for (List<Way> ways : waysToCombine) {
-			try {
-				WayCombiner.combineWays(ways);
-			} catch (UserCancelException e) {
-				return;
-			}
-		}
-		
-		for (Way w : ds.getWays()) {
-			if (w.getNodesCount() <= 3) {
-				ds.removePrimitive(w);
-				for (Node n : w.getNodes()) {
-					ds.removePrimitive(n);
-				}
-			} else {
-				w.put("amenity", "toilets");
-			}
-		}
-	}
+    private boolean wayBelongsTo(Way a, List<Way> ways) {
+        for (Way b : ways) {
+            if (a.getNode(0).equals(b.getNode(0)) || a.getNode(0).equals(b.getNode(b.getNodesCount()-1))
+             || a.getNode(a.getNodesCount()-1).equals(b.getNode(0)) || a.getNode(a.getNodesCount()-1).equals(b.getNode(b.getNodesCount()-1))) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    private boolean wayProcessed(Way a, List<List<Way>> waysToCombine) {
+        for (List<Way> ways : waysToCombine) {
+            for (Way b : ways) {
+                if (a.equals(b)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        
+        List<Way> sourceWays = new ArrayList<>(ds.getWays());
+        List<List<Way>> waysToCombine = new ArrayList<>();
+        
+        for (Iterator<Way> it = sourceWays.iterator(); it.hasNext();) {
+            Way w = it.next();
+            it.remove();
+            if (!wayProcessed(w, waysToCombine)) {
+                List<Way> list = new ArrayList<>();
+                list.add(w);
+                boolean finished = false;
+                List<Way> sourceWays2 = new ArrayList<>(sourceWays);
+                while (!finished) {
+                    int before = list.size();
+                    for (Iterator<Way> it2 = sourceWays2.iterator(); it2.hasNext();) {
+                        Way w2 = it2.next();
+                        if (wayBelongsTo(w2, list)) {
+                            list.add(w2);
+                            it2.remove();
+                        }
+                    }
+                    int after = list.size();
+                    finished = (after == before);
+                }
+                if (list.size() > 1) {
+                    waysToCombine.add(list);
+                }
+            }
+        }
+                
+        for (List<Way> ways : waysToCombine) {
+            try {
+                WayCombiner.combineWays(ways);
+            } catch (UserCancelException e) {
+                return;
+            }
+        }
+        
+        for (Way w : ds.getWays()) {
+            if (w.getNodesCount() <= 3) {
+                ds.removePrimitive(w);
+                for (Node n : w.getNodes()) {
+                    ds.removePrimitive(n);
+                }
+            } else {
+                w.put("amenity", "toilets");
+            }
+        }
+    }
 
-	@Override
-	protected String getDirectLink() {
-		return PORTAL+"hn/sanisettes.zip";
-	}
+    @Override
+    protected String getDirectLink() {
+        return PORTAL+"hn/sanisettes.zip";
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/VolumesBatisHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/VolumesBatisHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/VolumesBatisHandler.java	(revision 30731)
@@ -7,22 +7,22 @@
 public class VolumesBatisHandler extends ParisDataSetHandler {
 
-	public VolumesBatisHandler() {
-		super(80);
-		setName("Volumes bâtis");
-	}
+    public VolumesBatisHandler() {
+        super(80);
+        setName("Volumes bâtis");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "VOL_BATI") || acceptsZipFilename(filename, "VOL_BATI");
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "VOL_BATI") || acceptsZipFilename(filename, "VOL_BATI");
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 
-	@Override
-	protected String getDirectLink() {
-		return PORTAL+"hn/VOL_BATI.zip";
-	}
+    @Override
+    protected String getDirectLink() {
+        return PORTAL+"hn/VOL_BATI.zip";
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/VolumesNonBatisHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/VolumesNonBatisHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/VolumesNonBatisHandler.java	(revision 30731)
@@ -7,22 +7,22 @@
 public class VolumesNonBatisHandler extends ParisDataSetHandler {
 
-	public VolumesNonBatisHandler() {
-		super(106);
-		setName("Volumes non bâtis");
-	}
+    public VolumesNonBatisHandler() {
+        super(106);
+        setName("Volumes non bâtis");
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsShpFilename(filename, "VOL_NBATI") || acceptsZipFilename(filename, "VOL_NBATI");
-	}
-	
-	@Override
-	public void updateDataSet(DataSet ds) {
-		// TODO
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsShpFilename(filename, "VOL_NBATI") || acceptsZipFilename(filename, "VOL_NBATI");
+    }
+    
+    @Override
+    public void updateDataSet(DataSet ds) {
+        // TODO
+    }
 
-	@Override
-	protected String getDirectLink() {
-		return PORTAL+"hn/VOL_NBATI.zip";
-	}
+    @Override
+    protected String getDirectLink() {
+        return PORTAL+"hn/VOL_NBATI.zip";
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.sncf/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.sncf/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.sncf/build.xml	(revision 30731)
@@ -14,5 +14,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
Index: /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfConstants.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfConstants.java	(revision 30731)
@@ -5,19 +5,19 @@
 
 public interface SncfConstants extends FrenchConstants {
-	
-	/**
-	 * Source
-	 */
-	public static final String SOURCE = "SNCF";
-	
-	/**
-	 * Portal
-	 */
-	public static final String PORTAL = "http://opendata-test.tumblr.com/";
+    
+    /**
+     * Source
+     */
+    public static final String SOURCE = "SNCF";
+    
+    /**
+     * Portal
+     */
+    public static final String PORTAL = "http://opendata-test.tumblr.com/";
 
-	/**
-	 * Icons
-	 */
-	public static final String ICON_16 = "data.fr.sncf_16.png";
-	public static final String ICON_24 = "data.fr.sncf_24.png";
+    /**
+     * Icons
+     */
+    public static final String ICON_16 = "data.fr.sncf_16.png";
+    public static final String ICON_24 = "data.fr.sncf_24.png";
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfLicense.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfLicense.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfLicense.java	(revision 30731)
@@ -8,10 +8,10 @@
 public class SncfLicense extends License {
 
-	public SncfLicense() {
-		try {
-			setURL("http://test.data-sncf.com/licence", "fr");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-	}
+    public SncfLicense() {
+        try {
+            setURL("http://test.data-sncf.com/licence", "fr");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfModule.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfModule.java	(revision 30731)
@@ -8,7 +8,7 @@
 public class SncfModule extends AbstractModule {
 
-	public SncfModule(ModuleInformation info) {
-		super(info);
-		handlers.add(EquipementsHandler.class);
+    public SncfModule(ModuleInformation info) {
+        super(info);
+        handlers.add(EquipementsHandler.class);
     }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/EquipementsHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/EquipementsHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/EquipementsHandler.java	(revision 30731)
@@ -9,29 +9,29 @@
 public class EquipementsHandler extends SncfDataSetHandler {
 
-	private class LambertIICsvHandler extends InternalCsvHandler {
-		@Override
-		public LatLon getCoor(EastNorth en, String[] fields) {
-			// Lambert II coordinates offset by 2000000 (see https://fr.wikipedia.org/wiki/Projection_conique_conforme_de_Lambert#Projections_officielles_en_France_métropolitaine)
-			return super.getCoor(new EastNorth(en.getX(), en.getY()-2000000), fields);
-		}
-	}
-	
-	public EquipementsHandler() {
-		super("equipementsgares");
-		setCsvHandler(new LambertIICsvHandler());
-		setSingleProjection(lambert4Zones[1]); // Lambert II
-	}
+    private class LambertIICsvHandler extends InternalCsvHandler {
+        @Override
+        public LatLon getCoor(EastNorth en, String[] fields) {
+            // Lambert II coordinates offset by 2000000 (see https://fr.wikipedia.org/wiki/Projection_conique_conforme_de_Lambert#Projections_officielles_en_France_métropolitaine)
+            return super.getCoor(new EastNorth(en.getX(), en.getY()-2000000), fields);
+        }
+    }
+    
+    public EquipementsHandler() {
+        super("equipementsgares");
+        setCsvHandler(new LambertIICsvHandler());
+        setSingleProjection(lambert4Zones[1]); // Lambert II
+    }
 
-	@Override
-	public boolean acceptsFilename(String filename) {
-		return acceptsCsvXlsFilename(filename, "gare_20......");
-	}
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsCsvXlsFilename(filename, "gare_20......");
+    }
 
-	@Override
-	public void updateDataSet(DataSet ds) {
-		for (Node n : ds.getNodes()) {
-			replace(n, "nom gare", "name");
-			n.put("railway", "station");
-		}
-	}
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            replace(n, "nom gare", "name");
+            n.put("railway", "station");
+        }
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/SncfDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/SncfDataSetHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/SncfDataSetHandler.java	(revision 30731)
@@ -10,52 +10,52 @@
 
 public abstract class SncfDataSetHandler extends FrenchDataSetHandler implements SncfConstants {
-	
-	public SncfDataSetHandler(String portalId) {
-		init(portalId);
-	}
-	
-	public SncfDataSetHandler(String portalId, String relevantTag) {
-		super(relevantTag);
-		init(portalId);
-	}
-	
-	public SncfDataSetHandler(String portalId, boolean relevantUnion, String ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(portalId);
-	}
+    
+    public SncfDataSetHandler(String portalId) {
+        init(portalId);
+    }
+    
+    public SncfDataSetHandler(String portalId, String relevantTag) {
+        super(relevantTag);
+        init(portalId);
+    }
+    
+    public SncfDataSetHandler(String portalId, boolean relevantUnion, String ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(portalId);
+    }
 
-	public SncfDataSetHandler(String portalId, String ... relevantTags) {
-		this(portalId, false, relevantTags);
-	}
-	
-	public SncfDataSetHandler(String portalId, boolean relevantUnion, Tag ... relevantTags) {
-		super(relevantUnion, relevantTags);
-		init(portalId);
-	}
+    public SncfDataSetHandler(String portalId, String ... relevantTags) {
+        this(portalId, false, relevantTags);
+    }
+    
+    public SncfDataSetHandler(String portalId, boolean relevantUnion, Tag ... relevantTags) {
+        super(relevantUnion, relevantTags);
+        init(portalId);
+    }
 
-	private final void init(String portalId) {
-		setLicense(new SncfLicense());
-		if (portalId != null && !portalId.isEmpty()) {
-			try {
-				setLocalPortalURL(PORTAL + portalId);
-			} catch (MalformedURLException e) {
-				e.printStackTrace();
-			}
-		}
-	}
+    private final void init(String portalId) {
+        setLicense(new SncfLicense());
+        if (portalId != null && !portalId.isEmpty()) {
+            try {
+                setLocalPortalURL(PORTAL + portalId);
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
+            }
+        }
+    }
 
-	@Override
-	public String getSource() {
-		return SOURCE;
-	}
+    @Override
+    public String getSource() {
+        return SOURCE;
+    }
 
-	@Override
-	public String getLocalPortalIconName() {
-		return ICON_24;
-	}
+    @Override
+    public String getLocalPortalIconName() {
+        return ICON_24;
+    }
 
-	@Override
-	public String getDataLayerIconName() {
-		return ICON_16;
-	}
+    @Override
+    public String getDataLayerIconName() {
+        return ICON_16;
+    }
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/build.xml
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/build.xml	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/build.xml	(revision 30731)
@@ -15,5 +15,5 @@
     <property name="module.dist.dir" value="../../dist"/>
     <property name="module.jar" value="${module.dist.dir}/${ant.project.name}.jar"/>
-	<!-- conditions -->
+    <!-- conditions -->
     <condition property="resources.exist">
         <available file="resources" type="dir" />
@@ -42,5 +42,5 @@
                 <pathelement location="${josm}"/>
                 <pathelement location="${opendata}"/>
-            	<pathelement location="${utilsplugin2}"/>
+                <pathelement location="${utilsplugin2}"/>
             </classpath>
             <compilerarg value="-Xlint:deprecation"/>
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/acsb/acsb_passengerMobility-v0.3.xsd
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/acsb/acsb_passengerMobility-v0.3.xsd	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/acsb/acsb_passengerMobility-v0.3.xsd	(revision 30731)
@@ -2,9 +2,9 @@
 <!-- edited with XMLSpy v2008 (http://www.altova.com) by Nicholas Knowles Knowles (Kizoom Ltd) -->
 <xsd:schema 
-	xmlns="http://www.ifopt.org.uk/acsb" 
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-	targetNamespace="http://www.ifopt.org.uk/acsb" 
-	elementFormDefault="qualified" 
-	attributeFormDefault="unqualified" version="0.3" id="passengerMobility">
+    xmlns="http://www.ifopt.org.uk/acsb" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    targetNamespace="http://www.ifopt.org.uk/acsb" 
+    elementFormDefault="qualified" 
+    attributeFormDefault="unqualified" version="0.3" id="passengerMobility">
     <xsd:annotation>
         <xsd:appinfo>
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/neptune.xsd
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/neptune.xsd	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/neptune.xsd	(revision 30731)
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- ==========================================================================	-->
-<!--  															-->
-<!-- CERTU														-->
-<!--  															-->
-<!-- projet chouette : Schema XSD										-->
-<!--  															-->
-<!-- neptune.xsd : Description XML du profil NEPTUNE 						-->
-<!--  															-->
-<!-- Version : $Revision: 1.7 $										-->
-<!--  															-->
-<!-- ==========================================================================	-->
+<!-- ==========================================================================    -->
+<!--                                                              -->
+<!-- CERTU                                                        -->
+<!--                                                              -->
+<!-- projet chouette : Schema XSD                                        -->
+<!--                                                              -->
+<!-- neptune.xsd : Description XML du profil NEPTUNE                         -->
+<!--                                                              -->
+<!-- Version : $Revision: 1.7 $                                        -->
+<!--                                                              -->
+<!-- ==========================================================================    -->
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns="http://www.trident.org/schema/trident" 
@@ -19,424 +19,424 @@
 elementFormDefault="qualified" version="1.00">
 
-	<xsd:annotation>
-		<xsd:documentation xml:lang="en">
+    <xsd:annotation>
+        <xsd:documentation xml:lang="en">
 TRIDENT exchange schema.
 Request / Answer schema
 Copyright (c) 2001 TRIDENT consortium, All Rights Reserved.
-		</xsd:documentation>
-	</xsd:annotation>
-	<!--.....Dépendance sur SIRI pour les équipements...-->
-	<xsd:import namespace="http://www.ifopt.org.uk/acsb" 
-	schemaLocation="./acsb/acsb_passengerMobility-v0.3.xsd"/>
-	<xsd:import namespace="http://www.siri.org.uk/siri" 
-	schemaLocation="./siri/siri_facilities-v1.2.xsd"/>
-	<!--.....Inclusion des éléments TRIDENT nécessaires...-->
-	
-	<xsd:include schemaLocation="./trident/trident_Global_schema.xsd"/>
-	<xsd:include schemaLocation="./trident/trident_Location_schema.xsd"/>
-	<xsd:include schemaLocation="./trident/trident_PT_schema.xsd"/>
-	<!-- **************************************************************** -->
-	<xsd:complexType name="ITLType">
-		<xsd:annotation>
-			<xsd:documentation>Interdiction de trafic local</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="areaId" type="TridentIdType"/>
-			<xsd:element name="lineIdShortCut" type="TridentIdType" minOccurs="0"/>
-			<xsd:element name="name" type="xsd:string"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="TimeSlotType">
-		<xsd:annotation>
-			<xsd:documentation>Type pour les fréquences horaire</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="beginningSlotTime" type="xsd:time"/>
-					<xsd:element name="endSlotTime" type="xsd:time"/>
-					<xsd:element name="firstDepartureTimeInSlot" type="xsd:time"/>
-					<xsd:element name="lastDepartureTimeInSlot" type="xsd:time"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="RouteExtension">
-		<xsd:annotation>
-			<xsd:documentation>Extension d'itinéraire qui en précise le sens, aller ou retour</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="wayBack" type="xsd:string"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="StopAreaExtension">
-		<xsd:annotation>
-			<xsd:documentation>Extension de zone d'arrêts qui précise notamment un code tarifaire et un identifiant fonctionnel</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="areaType" type="ChouetteAreaType"/>
-			<xsd:element name="nearestTopicName" type="xsd:string" minOccurs="0"/>
-			<xsd:element name="fareCode" type="xsd:int" minOccurs="0"/>
-			<xsd:element name="registration" type="RegistrationType" minOccurs="0"/>
-			<xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
-			<xsd:element name="accessibilitySuitabilityDetails" minOccurs="0">
-				<xsd:complexType>
-					<xsd:sequence maxOccurs="unbounded">
-						<xsd:group ref="ifopt:UserNeedGroup"/>
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-			<xsd:element name="stairsAvailability" type="xsd:boolean" minOccurs="0"/>
-			<xsd:element name="liftAvailability" type="xsd:boolean" minOccurs="0"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ConnectionLinkExtensionType">
-		<xsd:sequence>
-			<xsd:element name="accessibilitySuitabilityDetails" minOccurs="0">
-				<xsd:complexType>
-					<xsd:sequence maxOccurs="unbounded">
-						<xsd:group ref="ifopt:UserNeedGroup"/>
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="LineExtensionType">
-		<xsd:annotation>
-			<xsd:documentation>Extension de ligne pour l'accessibilité aux PMR</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="stableId" type="xsd:string" minOccurs="0">
-				<xsd:annotation>
-					<xsd:documentation>Identifier of the line whose value will remain unchanged for the all line life time </xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
-			<xsd:element name="accessibilitySuitabilityDetails" minOccurs="0">
-				<xsd:complexType>
-					<xsd:sequence maxOccurs="unbounded">
-						<xsd:group ref="ifopt:UserNeedGroup"/>
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ChouetteFacilityType">
-		<xsd:annotation>
-			<xsd:documentation>Description des equipement situés dans les zones d'arrêt ou les vehicules (via la ligne)</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="facilityLocation" minOccurs="0">
-						<xsd:complexType>
-							<xsd:sequence>
-								<xsd:element name="longitude" type="trd:LongitudeType"/>
-								<xsd:element name="latitude" type="trd:LatitudeType"/>
-								<xsd:element name="longLatType" type="LongLatTypeType"/>
-								<xsd:element name="address" type="trd:AddressType" minOccurs="0"/>
-								<xsd:element name="projectedPoint" type="trd:ProjectedPointType" minOccurs="0"/>
-								<xsd:element name="containedIn" type="trd:TridentIdType"/>
-								<!-- REMARK : The IsContainedBy element refers to Area via Id -->
-							</xsd:sequence>
-						</xsd:complexType>
-					</xsd:element>
-					<xsd:choice>
-						<xsd:annotation>
-							<xsd:documentation>The facility has to be attached to a StopAres (Quay, BoardingPosition or Stop Place), a line (meaning vehicles operating this line), a connection link or a Stop Point on Route (stopPoint))</xsd:documentation>
-						</xsd:annotation>
-						<xsd:element name="stopAreaId" type="trd:TridentIdType"/>
-						<xsd:element name="lineId" type="trd:TridentIdType"/>
-						<xsd:element name="connectionLinkId" type="trd:TridentIdType"/>
-						<xsd:element name="stopPointId" type="trd:TridentIdType"/>
-					</xsd:choice>
-					<xsd:element name="facilityFeature" type="siri:AllFacilitiesFeatureStructure" maxOccurs="unbounded">
-						<xsd:annotation>
-							<xsd:documentation>Description of the feauture of the facility. Several features may be associated to a single facility.</xsd:documentation>
-						</xsd:annotation>
-					</xsd:element>
-					<xsd:element name="name" type="xsd:string" minOccurs="0">
-						<xsd:annotation>
-							<xsd:documentation>Name of the facility</xsd:documentation>
-						</xsd:annotation>
-					</xsd:element>
-					<xsd:element name="description" type="xsd:string" minOccurs="0">
-						<xsd:annotation>
-							<xsd:documentation>Textual description of the facility</xsd:documentation>
-						</xsd:annotation>
-					</xsd:element>
-					<xsd:element name="freeAccess" type="xsd:boolean" minOccurs="0">
-						<xsd:annotation>
-							<xsd:documentation>Is the access restricted or authorised to everybody</xsd:documentation>
-						</xsd:annotation>
-					</xsd:element>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="ChouettePTNetworkType">
-		<xsd:annotation>
-			<xsd:documentation>La strucutre d'échange d'une ligne de transport.
+        </xsd:documentation>
+    </xsd:annotation>
+    <!--.....Dépendance sur SIRI pour les équipements...-->
+    <xsd:import namespace="http://www.ifopt.org.uk/acsb" 
+    schemaLocation="./acsb/acsb_passengerMobility-v0.3.xsd"/>
+    <xsd:import namespace="http://www.siri.org.uk/siri" 
+    schemaLocation="./siri/siri_facilities-v1.2.xsd"/>
+    <!--.....Inclusion des éléments TRIDENT nécessaires...-->
+    
+    <xsd:include schemaLocation="./trident/trident_Global_schema.xsd"/>
+    <xsd:include schemaLocation="./trident/trident_Location_schema.xsd"/>
+    <xsd:include schemaLocation="./trident/trident_PT_schema.xsd"/>
+    <!-- **************************************************************** -->
+    <xsd:complexType name="ITLType">
+        <xsd:annotation>
+            <xsd:documentation>Interdiction de trafic local</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="areaId" type="TridentIdType"/>
+            <xsd:element name="lineIdShortCut" type="TridentIdType" minOccurs="0"/>
+            <xsd:element name="name" type="xsd:string"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="TimeSlotType">
+        <xsd:annotation>
+            <xsd:documentation>Type pour les fréquences horaire</xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="beginningSlotTime" type="xsd:time"/>
+                    <xsd:element name="endSlotTime" type="xsd:time"/>
+                    <xsd:element name="firstDepartureTimeInSlot" type="xsd:time"/>
+                    <xsd:element name="lastDepartureTimeInSlot" type="xsd:time"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="RouteExtension">
+        <xsd:annotation>
+            <xsd:documentation>Extension d'itinéraire qui en précise le sens, aller ou retour</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="wayBack" type="xsd:string"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="StopAreaExtension">
+        <xsd:annotation>
+            <xsd:documentation>Extension de zone d'arrêts qui précise notamment un code tarifaire et un identifiant fonctionnel</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="areaType" type="ChouetteAreaType"/>
+            <xsd:element name="nearestTopicName" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="fareCode" type="xsd:int" minOccurs="0"/>
+            <xsd:element name="registration" type="RegistrationType" minOccurs="0"/>
+            <xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
+            <xsd:element name="accessibilitySuitabilityDetails" minOccurs="0">
+                <xsd:complexType>
+                    <xsd:sequence maxOccurs="unbounded">
+                        <xsd:group ref="ifopt:UserNeedGroup"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="stairsAvailability" type="xsd:boolean" minOccurs="0"/>
+            <xsd:element name="liftAvailability" type="xsd:boolean" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="ConnectionLinkExtensionType">
+        <xsd:sequence>
+            <xsd:element name="accessibilitySuitabilityDetails" minOccurs="0">
+                <xsd:complexType>
+                    <xsd:sequence maxOccurs="unbounded">
+                        <xsd:group ref="ifopt:UserNeedGroup"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="LineExtensionType">
+        <xsd:annotation>
+            <xsd:documentation>Extension de ligne pour l'accessibilité aux PMR</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="stableId" type="xsd:string" minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>Identifier of the line whose value will remain unchanged for the all line life time </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
+            <xsd:element name="accessibilitySuitabilityDetails" minOccurs="0">
+                <xsd:complexType>
+                    <xsd:sequence maxOccurs="unbounded">
+                        <xsd:group ref="ifopt:UserNeedGroup"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="ChouetteFacilityType">
+        <xsd:annotation>
+            <xsd:documentation>Description des equipement situés dans les zones d'arrêt ou les vehicules (via la ligne)</xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="facilityLocation" minOccurs="0">
+                        <xsd:complexType>
+                            <xsd:sequence>
+                                <xsd:element name="longitude" type="trd:LongitudeType"/>
+                                <xsd:element name="latitude" type="trd:LatitudeType"/>
+                                <xsd:element name="longLatType" type="LongLatTypeType"/>
+                                <xsd:element name="address" type="trd:AddressType" minOccurs="0"/>
+                                <xsd:element name="projectedPoint" type="trd:ProjectedPointType" minOccurs="0"/>
+                                <xsd:element name="containedIn" type="trd:TridentIdType"/>
+                                <!-- REMARK : The IsContainedBy element refers to Area via Id -->
+                            </xsd:sequence>
+                        </xsd:complexType>
+                    </xsd:element>
+                    <xsd:choice>
+                        <xsd:annotation>
+                            <xsd:documentation>The facility has to be attached to a StopAres (Quay, BoardingPosition or Stop Place), a line (meaning vehicles operating this line), a connection link or a Stop Point on Route (stopPoint))</xsd:documentation>
+                        </xsd:annotation>
+                        <xsd:element name="stopAreaId" type="trd:TridentIdType"/>
+                        <xsd:element name="lineId" type="trd:TridentIdType"/>
+                        <xsd:element name="connectionLinkId" type="trd:TridentIdType"/>
+                        <xsd:element name="stopPointId" type="trd:TridentIdType"/>
+                    </xsd:choice>
+                    <xsd:element name="facilityFeature" type="siri:AllFacilitiesFeatureStructure" maxOccurs="unbounded">
+                        <xsd:annotation>
+                            <xsd:documentation>Description of the feauture of the facility. Several features may be associated to a single facility.</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0">
+                        <xsd:annotation>
+                            <xsd:documentation>Name of the facility</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="description" type="xsd:string" minOccurs="0">
+                        <xsd:annotation>
+                            <xsd:documentation>Textual description of the facility</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="freeAccess" type="xsd:boolean" minOccurs="0">
+                        <xsd:annotation>
+                            <xsd:documentation>Is the access restricted or authorised to everybody</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="ChouettePTNetworkType">
+        <xsd:annotation>
+            <xsd:documentation>La strucutre d'échange d'une ligne de transport.
 Cette strucuture contient la totalité des données qui décrivent la ligne.</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="PTNetwork" type="trd:PTNetworkType">
-				<xsd:annotation>
-					<xsd:documentation>Le réseau de la ligne</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="GroupOfLine" type="GroupOfLineType" minOccurs="0">
-				<xsd:annotation>
-					<xsd:documentation>Groupe de ligne auquel appartient la ligne décrite</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="Company" type="trd:CompanyType" minOccurs="0" maxOccurs="unbounded">
-				<xsd:annotation>
-					<xsd:documentation>La compagnie de transport qui assure l'exploitation de la ligne.</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="ChouetteArea">
-				<xsd:complexType>
-					<xsd:sequence>
-						<xsd:element name="StopArea" minOccurs="0" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>La liste des zones dons le type figure sur l'extension</xsd:documentation>
-							</xsd:annotation>
-							<xsd:complexType>
-								<xsd:complexContent>
-									<xsd:extension base="StopAreaType">
-										<xsd:sequence>
-											<xsd:element name="StopAreaExtension" type="StopAreaExtension" minOccurs="0"/>
-										</xsd:sequence>
-									</xsd:extension>
-								</xsd:complexContent>
-							</xsd:complexType>
-						</xsd:element>
-						<xsd:element name="AreaCentroid" minOccurs="0" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>Liste de position géographiques</xsd:documentation>
-							</xsd:annotation>
-							<xsd:complexType>
-								<xsd:complexContent>
-									<xsd:extension base="PlaceType"/>
-								</xsd:complexContent>
-							</xsd:complexType>
-						</xsd:element>
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-			<xsd:element name="ConnectionLink" minOccurs="0" maxOccurs="unbounded">
-				<xsd:annotation>
-					<xsd:documentation>La liste de toutes les correspondances sur la ligne.
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="PTNetwork" type="trd:PTNetworkType">
+                <xsd:annotation>
+                    <xsd:documentation>Le réseau de la ligne</xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="GroupOfLine" type="GroupOfLineType" minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>Groupe de ligne auquel appartient la ligne décrite</xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="Company" type="trd:CompanyType" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>La compagnie de transport qui assure l'exploitation de la ligne.</xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="ChouetteArea">
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="StopArea" minOccurs="0" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>La liste des zones dons le type figure sur l'extension</xsd:documentation>
+                            </xsd:annotation>
+                            <xsd:complexType>
+                                <xsd:complexContent>
+                                    <xsd:extension base="StopAreaType">
+                                        <xsd:sequence>
+                                            <xsd:element name="StopAreaExtension" type="StopAreaExtension" minOccurs="0"/>
+                                        </xsd:sequence>
+                                    </xsd:extension>
+                                </xsd:complexContent>
+                            </xsd:complexType>
+                        </xsd:element>
+                        <xsd:element name="AreaCentroid" minOccurs="0" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>Liste de position géographiques</xsd:documentation>
+                            </xsd:annotation>
+                            <xsd:complexType>
+                                <xsd:complexContent>
+                                    <xsd:extension base="PlaceType"/>
+                                </xsd:complexContent>
+                            </xsd:complexType>
+                        </xsd:element>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="ConnectionLink" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>La liste de toutes les correspondances sur la ligne.
 Les correspondances relient un arrêt de la ligne avec un autre arrêt de cette même ligne ou d'une autre ligne.</xsd:documentation>
-				</xsd:annotation>
-				<xsd:complexType>
-					<xsd:complexContent>
-						<xsd:extension base="ConnectionLinkType">
-							<xsd:sequence>
-								<xsd:element name="ConnectionLinkExtension" type="ConnectionLinkExtensionType" minOccurs="0"/>
-							</xsd:sequence>
-						</xsd:extension>
-					</xsd:complexContent>
-				</xsd:complexType>
-			</xsd:element>
-			<xsd:element name="Timetable" type="TimetableType" minOccurs="0" maxOccurs="unbounded">
-				<xsd:annotation>
-					<xsd:documentation>La liste des tableaux de marche.</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="TimeSlot" type="TimeSlotType" minOccurs="0" maxOccurs="unbounded"/>
-			<xsd:element name="ChouetteLineDescription">
-				<xsd:annotation>
-					<xsd:documentation>Structure qui regroupe les autres données de la ligne.
+                </xsd:annotation>
+                <xsd:complexType>
+                    <xsd:complexContent>
+                        <xsd:extension base="ConnectionLinkType">
+                            <xsd:sequence>
+                                <xsd:element name="ConnectionLinkExtension" type="ConnectionLinkExtensionType" minOccurs="0"/>
+                            </xsd:sequence>
+                        </xsd:extension>
+                    </xsd:complexContent>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="Timetable" type="TimetableType" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>La liste des tableaux de marche.</xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="TimeSlot" type="TimeSlotType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="ChouetteLineDescription">
+                <xsd:annotation>
+                    <xsd:documentation>Structure qui regroupe les autres données de la ligne.
 </xsd:documentation>
-				</xsd:annotation>
-				<xsd:complexType>
-					<xsd:sequence>
-						<xsd:element name="Line">
-							<xsd:annotation>
-								<xsd:documentation>La ligne et ses références vers ses itinéraires et son réseau</xsd:documentation>
-							</xsd:annotation>
-							<xsd:complexType>
-								<xsd:complexContent>
-									<xsd:extension base="LineType">
-										<xsd:sequence>
-											<xsd:element name="LineExtension" type="LineExtensionType" minOccurs="0"/>
-										</xsd:sequence>
-									</xsd:extension>
-								</xsd:complexContent>
-							</xsd:complexType>
-						</xsd:element>
-						<xsd:element name="ChouetteRoute" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>La liste de tous les itinéraires de la ligne.</xsd:documentation>
-							</xsd:annotation>
-							<xsd:complexType>
-								<xsd:complexContent>
-									<xsd:extension base="RouteType">
-										<xsd:sequence>
-											<xsd:element name="RouteExtension" type="RouteExtension" minOccurs="0"/>
-										</xsd:sequence>
-									</xsd:extension>
-								</xsd:complexContent>
-							</xsd:complexType>
-						</xsd:element>
-						<xsd:element name="StopPoint" minOccurs="2" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>La liste de tous les arrêts parcourus par les tronçons des itinéraires de ligne.
+                </xsd:annotation>
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="Line">
+                            <xsd:annotation>
+                                <xsd:documentation>La ligne et ses références vers ses itinéraires et son réseau</xsd:documentation>
+                            </xsd:annotation>
+                            <xsd:complexType>
+                                <xsd:complexContent>
+                                    <xsd:extension base="LineType">
+                                        <xsd:sequence>
+                                            <xsd:element name="LineExtension" type="LineExtensionType" minOccurs="0"/>
+                                        </xsd:sequence>
+                                    </xsd:extension>
+                                </xsd:complexContent>
+                            </xsd:complexType>
+                        </xsd:element>
+                        <xsd:element name="ChouetteRoute" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>La liste de tous les itinéraires de la ligne.</xsd:documentation>
+                            </xsd:annotation>
+                            <xsd:complexType>
+                                <xsd:complexContent>
+                                    <xsd:extension base="RouteType">
+                                        <xsd:sequence>
+                                            <xsd:element name="RouteExtension" type="RouteExtension" minOccurs="0"/>
+                                        </xsd:sequence>
+                                    </xsd:extension>
+                                </xsd:complexContent>
+                            </xsd:complexType>
+                        </xsd:element>
+                        <xsd:element name="StopPoint" minOccurs="2" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>La liste de tous les arrêts parcourus par les tronçons des itinéraires de ligne.
 
 </xsd:documentation>
-							</xsd:annotation>
-							<xsd:complexType>
-								<xsd:complexContent>
-									<xsd:extension base="StopPointType"/>
-								</xsd:complexContent>
-							</xsd:complexType>
-						</xsd:element>
-						<xsd:element name="ITL" type="ITLType" minOccurs="0" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>Liste des interdictions de trafic local auxquelles doivent se conformer les voyageurs de la ligne</xsd:documentation>
-							</xsd:annotation>
-						</xsd:element>
-						<xsd:element name="PtLink" type="PTLinkType" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>La liste de tous les tronçons des itinéraires de la ligne.</xsd:documentation>
-							</xsd:annotation>
-						</xsd:element>
-						<xsd:element name="JourneyPattern" type="JourneyPatternType" minOccurs="0" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>La liste de toutes les missions des courses de la ligne.</xsd:documentation>
-							</xsd:annotation>
-						</xsd:element>
-						<xsd:element name="VehicleJourney" type="VehicleJourneyType" minOccurs="0" maxOccurs="unbounded">
-							<xsd:annotation>
-								<xsd:documentation>La liste de toutes les courses de la ligne qui sont effectives pour au moins l'un des tableaux de marche de la ligne.</xsd:documentation>
-							</xsd:annotation>
-						</xsd:element>
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-			<xsd:element name="Facility" type="ChouetteFacilityType" minOccurs="0" maxOccurs="unbounded"/>
-			<xsd:element name="AccessPoint" type="PTAccessPointType" minOccurs="0" maxOccurs="unbounded"/>
-						
-			<xsd:element name="AccessLink" minOccurs="0" maxOccurs="unbounded">
-				<xsd:annotation>
-					<xsd:documentation>La liste de toutes les correspondances sur la ligne.
+                            </xsd:annotation>
+                            <xsd:complexType>
+                                <xsd:complexContent>
+                                    <xsd:extension base="StopPointType"/>
+                                </xsd:complexContent>
+                            </xsd:complexType>
+                        </xsd:element>
+                        <xsd:element name="ITL" type="ITLType" minOccurs="0" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>Liste des interdictions de trafic local auxquelles doivent se conformer les voyageurs de la ligne</xsd:documentation>
+                            </xsd:annotation>
+                        </xsd:element>
+                        <xsd:element name="PtLink" type="PTLinkType" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>La liste de tous les tronçons des itinéraires de la ligne.</xsd:documentation>
+                            </xsd:annotation>
+                        </xsd:element>
+                        <xsd:element name="JourneyPattern" type="JourneyPatternType" minOccurs="0" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>La liste de toutes les missions des courses de la ligne.</xsd:documentation>
+                            </xsd:annotation>
+                        </xsd:element>
+                        <xsd:element name="VehicleJourney" type="VehicleJourneyType" minOccurs="0" maxOccurs="unbounded">
+                            <xsd:annotation>
+                                <xsd:documentation>La liste de toutes les courses de la ligne qui sont effectives pour au moins l'un des tableaux de marche de la ligne.</xsd:documentation>
+                            </xsd:annotation>
+                        </xsd:element>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="Facility" type="ChouetteFacilityType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="AccessPoint" type="PTAccessPointType" minOccurs="0" maxOccurs="unbounded"/>
+                        
+            <xsd:element name="AccessLink" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>La liste de toutes les correspondances sur la ligne.
 Les correspondances relient un arrêt de la ligne avec un autre arrêt de cette même ligne ou d'une autre ligne.</xsd:documentation>
-				</xsd:annotation>
-				<xsd:complexType>
-					<xsd:complexContent>
-						<xsd:extension base="PTAccessLinkType">
-							<xsd:sequence>
-								<xsd:element name="ConnectionLinkExtension" type="ConnectionLinkExtensionType" minOccurs="0"/>
-							</xsd:sequence>
-						</xsd:extension>
-					</xsd:complexContent>
-				</xsd:complexType>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-	<!-- Definition des instances -->
-	<xsd:element name="ChouettePTNetwork" type="ChouettePTNetworkType">
-		<xsd:keyref name="fk_stoppoint_journey" refer="pk_stoppoint">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:JourneyPattern/trd:stopPointList"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:keyref name="fk_route_journey" refer="pk_route">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:JourneyPattern/trd:routeId"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:keyref name="fk_journey_vehicle" refer="pk_journey_pattern">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:journeyPatternId"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:key name="pk_journey_pattern">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:JourneyPattern"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:keyref name="fk_vehicle_timetable" refer="pk_vehicle">
-			<xsd:selector xpath=".//trd:Timetable/trd:vehicleJourneyId"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:keyref name="fk_vehicle_vehicleatstop" refer="pk_vehicle">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:vehicleJourneyAtStop/trd:vehicleJourneyId"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:keyref name="fk_stoppoint_vehicleatstop" refer="pk_stoppoint">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:vehicleJourneyAtStop/trd:stopPointId"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:keyref name="fk_route_vehicle" refer="pk_route">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:routeId"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:keyref name="fk_stoppoint_ptlink" refer="pk_stoppoint">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:PtLink/trd:endOfLink|.//trd:ChouetteLineDescription/trd:PtLink/trd:startOfLink"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:key name="pk_vehicle">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:key name="pk_stoppoint">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:StopPoint"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:key name="pk_ptlink">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:PtLink"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:keyref name="fk_stoparea_centroid" refer="pk_stoparea">
-			<xsd:selector xpath=".//trd:ChouetteArea/trd:AreaCentroid/trd:containedIn"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:keyref name="fk_stoparea_stoppoint" refer="pk_stoparea">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:StopPoint/trd:containedIn"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:key name="pk_stoparea">
-			<xsd:selector xpath=".//trd:ChouetteArea/trd:StopArea"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:keyref name="fk_route_line" refer="pk_route">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:Line/trd:routeId"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-		<xsd:key name="pk_route">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:ChouetteRoute"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:keyref name="fk_line_ptnetwork" refer="pk_line">
-			<xsd:selector xpath=".//trd:PTNetwork"/>
-			<xsd:field xpath="trd:lineId"/>
-		</xsd:keyref>
-		<xsd:key name="pk_line">
-			<xsd:selector xpath=".//trd:ChouetteLineDescription/trd:Line"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:key name="pk_centroid">
-			<xsd:selector xpath=".//trd:ChouetteArea/trd:AreaCentroid"/>
-			<xsd:field xpath="trd:objectId"/>
-		</xsd:key>
-		<xsd:keyref name="fk_centroid_stoparea" refer="pk_centroid">
-			<xsd:selector xpath=".//trd:ChouetteArea/trd:StopArea/trd:centroidOfArea"/>
-			<xsd:field xpath="."/>
-		</xsd:keyref>
-	</xsd:element>
-	<xsd:simpleType name="ChouetteAreaType">
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="Quay"/>
-			<xsd:enumeration value="BoardingPosition"/>
-			<xsd:enumeration value="CommercialStopPoint"/>
-			<xsd:enumeration value="StopPlace"/>
-			<xsd:enumeration value="ITL"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:complexType name="ChouetteRemoveLineType">
-		<xsd:sequence>
-			<xsd:element name="Line" type="LineType"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:element name="ChouetteRemoveLine" type="ChouetteRemoveLineType"/>
+                </xsd:annotation>
+                <xsd:complexType>
+                    <xsd:complexContent>
+                        <xsd:extension base="PTAccessLinkType">
+                            <xsd:sequence>
+                                <xsd:element name="ConnectionLinkExtension" type="ConnectionLinkExtensionType" minOccurs="0"/>
+                            </xsd:sequence>
+                        </xsd:extension>
+                    </xsd:complexContent>
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    <!-- Definition des instances -->
+    <xsd:element name="ChouettePTNetwork" type="ChouettePTNetworkType">
+        <xsd:keyref name="fk_stoppoint_journey" refer="pk_stoppoint">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:JourneyPattern/trd:stopPointList"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:keyref name="fk_route_journey" refer="pk_route">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:JourneyPattern/trd:routeId"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:keyref name="fk_journey_vehicle" refer="pk_journey_pattern">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:journeyPatternId"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:key name="pk_journey_pattern">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:JourneyPattern"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:keyref name="fk_vehicle_timetable" refer="pk_vehicle">
+            <xsd:selector xpath=".//trd:Timetable/trd:vehicleJourneyId"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:keyref name="fk_vehicle_vehicleatstop" refer="pk_vehicle">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:vehicleJourneyAtStop/trd:vehicleJourneyId"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:keyref name="fk_stoppoint_vehicleatstop" refer="pk_stoppoint">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:vehicleJourneyAtStop/trd:stopPointId"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:keyref name="fk_route_vehicle" refer="pk_route">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney/trd:routeId"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:keyref name="fk_stoppoint_ptlink" refer="pk_stoppoint">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:PtLink/trd:endOfLink|.//trd:ChouetteLineDescription/trd:PtLink/trd:startOfLink"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:key name="pk_vehicle">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:VehicleJourney"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:key name="pk_stoppoint">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:StopPoint"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:key name="pk_ptlink">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:PtLink"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:keyref name="fk_stoparea_centroid" refer="pk_stoparea">
+            <xsd:selector xpath=".//trd:ChouetteArea/trd:AreaCentroid/trd:containedIn"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:keyref name="fk_stoparea_stoppoint" refer="pk_stoparea">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:StopPoint/trd:containedIn"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:key name="pk_stoparea">
+            <xsd:selector xpath=".//trd:ChouetteArea/trd:StopArea"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:keyref name="fk_route_line" refer="pk_route">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:Line/trd:routeId"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+        <xsd:key name="pk_route">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:ChouetteRoute"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:keyref name="fk_line_ptnetwork" refer="pk_line">
+            <xsd:selector xpath=".//trd:PTNetwork"/>
+            <xsd:field xpath="trd:lineId"/>
+        </xsd:keyref>
+        <xsd:key name="pk_line">
+            <xsd:selector xpath=".//trd:ChouetteLineDescription/trd:Line"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:key name="pk_centroid">
+            <xsd:selector xpath=".//trd:ChouetteArea/trd:AreaCentroid"/>
+            <xsd:field xpath="trd:objectId"/>
+        </xsd:key>
+        <xsd:keyref name="fk_centroid_stoparea" refer="pk_centroid">
+            <xsd:selector xpath=".//trd:ChouetteArea/trd:StopArea/trd:centroidOfArea"/>
+            <xsd:field xpath="."/>
+        </xsd:keyref>
+    </xsd:element>
+    <xsd:simpleType name="ChouetteAreaType">
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Quay"/>
+            <xsd:enumeration value="BoardingPosition"/>
+            <xsd:enumeration value="CommercialStopPoint"/>
+            <xsd:enumeration value="StopPlace"/>
+            <xsd:enumeration value="ITL"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:complexType name="ChouetteRemoveLineType">
+        <xsd:sequence>
+            <xsd:element name="Line" type="LineType"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:element name="ChouetteRemoveLine" type="ChouetteRemoveLineType"/>
 </xsd:schema>
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_Global_schema.xsd
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_Global_schema.xsd	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_Global_schema.xsd	(revision 30731)
@@ -3,11 +3,11 @@
 <!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Christophe Duquesne (Dryade) -->
 <!--  File: trident_Global_schema.xsd  -->
-	<xsd:schema 
-		xmlns:trd="http://www.trident.org/schema/trident" 
-		xmlns="http://www.trident.org/schema/trident" 
-		xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-		targetNamespace="http://www.trident.org/schema/trident" 
-		elementFormDefault="qualified" 
-		version="2.0">
+    <xsd:schema 
+        xmlns:trd="http://www.trident.org/schema/trident" 
+        xmlns="http://www.trident.org/schema/trident" 
+        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+        targetNamespace="http://www.trident.org/schema/trident" 
+        elementFormDefault="qualified" 
+        version="2.0">
   <xsd:annotation>
     <xsd:documentation xml:lang="en">
@@ -25,7 +25,7 @@
     <xsd:annotation>
       <xsd:documentation>
-	Defines the way an TRIDENT ID has to be built:
-	{PeerID}:{Class name}:{Progressive integer}
-	For example: RATP:Event:12332  or  ATAC:Line:9987
+    Defines the way an TRIDENT ID has to be built:
+    {PeerID}:{Class name}:{Progressive integer}
+    For example: RATP:Event:12332  or  ATAC:Line:9987
       </xsd:documentation>
     </xsd:annotation>
@@ -35,6 +35,6 @@
   </xsd:simpleType>
   <!-- REMARK : The following 2 types are not in the DM: they are technical
-			     types used to ease construction_ it's just a list of
-			     Trident Object Id -->
+                 types used to ease construction_ it's just a list of
+                 Trident Object Id -->
   <xsd:simpleType name="TridentIdGeneralListType">
     <xsd:list itemType="TridentIdType"/>
@@ -61,6 +61,6 @@
     </xsd:sequence>
     <!-- REMARK: This object type is used for requests (to select
-	 a specific Opbject from its Id), "minOccurs" has been set
-	 to "0" for Version to be able to select the current Version
+     a specific Opbject from its Id), "minOccurs" has been set
+     to "0" for Version to be able to select the current Version
       -->
   </xsd:complexType>
@@ -90,5 +90,5 @@
     <xsd:annotation>
       <xsd:documentation>
-	Percentage: decimal between 0 and 100
+    Percentage: decimal between 0 and 100
       </xsd:documentation>
     </xsd:annotation>
@@ -104,5 +104,5 @@
     <xsd:annotation>
       <xsd:documentation>
-	Defines the list of the days of the week (in english!)
+    Defines the list of the days of the week (in english!)
       </xsd:documentation>
     </xsd:annotation>
@@ -120,366 +120,366 @@
     <xsd:annotation>
       <xsd:documentation>
-	Enumeration containing all the possible units for measurement
+    Enumeration containing all the possible units for measurement
       </xsd:documentation>
     </xsd:annotation>
     <xsd:restriction base="xsd:string">
-			<xsd:enumeration value="DegreesCelsius"/>
-			<xsd:enumeration value="Centimeter"/>
-			<xsd:enumeration value="Degree"/>
-			<xsd:enumeration value="Hour"/>
-			<xsd:enumeration value="Hectopascals"/>
-			<xsd:enumeration value="KilometersPerHour"/>
-			<xsd:enumeration value="Kilometer"/>
-			<xsd:enumeration value="CubicMeter"/>
-			<xsd:enumeration value="MillimetersPerHour"/>
-			<xsd:enumeration value="Millimeter"/>
-			<xsd:enumeration value="Meter"/>
-			<xsd:enumeration value="MetersPerSecond"/>
-			<xsd:enumeration value="Percentage"/>
-			<xsd:enumeration value="Second"/>
-			<xsd:enumeration value="Tonne"/>
-			<xsd:enumeration value="HrMinSec"/>
-			<xsd:enumeration value="PeriodOfTime"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<!-- ============================================================== -->
-	<xsd:simpleType name="LocationTypeType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the possible location Type
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="BusStopPoint"/>
-			<xsd:enumeration value="AriportStopPoint"/>
-			<xsd:enumeration value="TramStopPoint"/>
-			<xsd:enumeration value="MetroStopPoint"/>
-			<xsd:enumeration value="RailwayStopPoint"/>
-			<xsd:enumeration value="RoadJunction"/>
-			<xsd:enumeration value="Mixed"/>
-			<xsd:enumeration value="Address"/>
-			<xsd:enumeration value="IntermediateRoadPoint"/>
-			<xsd:enumeration value="StopArea"/>
-			<xsd:enumeration value="PointOfInterest"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="LongLatTypeType">
-		<xsd:annotation>
-			<xsd:documentation>Type of geodesic reference</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="WGS84"/>
-			<xsd:enumeration value="WGS92"/>
-			<xsd:enumeration value="Standard"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="LocationReferencingMethodType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the possible location referencing
-		methods
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="1"/>
-			<xsd:enumeration value="2"/>
-			<xsd:enumeration value="3"/>
-			<xsd:enumeration value="4"/>
-			<xsd:enumeration value="5"/>
-			<xsd:enumeration value="6"/>
-			<xsd:enumeration value="7"/>
-			<xsd:enumeration value="8"/>
-			<xsd:enumeration value="9"/>
-			<xsd:enumeration value="10"/>
-			<xsd:enumeration value="11"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="WordOrderType">
-		<xsd:annotation>
-			<xsd:documentation>Order of words in a ILOC descriptor</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="FromTheFirstToTheLastWord"/>
-			<xsd:enumeration value="FromTheLastToTheFirstWord"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="POITypeType">
-		<xsd:annotation>
-			<xsd:documentation>Different types for a point</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="AccommodationEatingAndDrinking"/>
-			<xsd:enumeration value="CommercialServices"/>
-			<xsd:enumeration value="Attraction"/>
-			<xsd:enumeration value="SportAndEntertainment"/>
-			<xsd:enumeration value="EducationAndHealth"/>
-			<xsd:enumeration value="PublicInfrastructure"/>
-			<xsd:enumeration value="ManufacturingAndProduction"/>
-			<xsd:enumeration value="Wholesale"/>
-			<xsd:enumeration value="Retail"/>
-			<xsd:enumeration value="Transport"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="PtAccessPointTypeType">
-		<xsd:annotation>
-			<xsd:documentation>Type of a PT acces</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="In"/>
-			<xsd:enumeration value="Out"/>
-			<xsd:enumeration value="InOut"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="ConnectionLinkTypeType">
-		<xsd:annotation>
-			<xsd:documentation>Type of connection</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="Underground"/>
-			<xsd:enumeration value="Mixed"/>
-			<xsd:enumeration value="Overground"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<!-- ============================================================== -->
-	<xsd:simpleType name="TransportModeNameType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the possible transport modes
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="Air"/>
-			<xsd:enumeration value="Train"/>
-			<xsd:enumeration value="LongDistanceTrain"/>
-			<xsd:enumeration value="LongDistanceTrain_2"/>
-			<xsd:enumeration value="LocalTrain"/>
-			<xsd:enumeration value="RapidTransit"/>
-			<xsd:enumeration value="Metro"/>
-			<xsd:enumeration value="Tramway"/>
-			<xsd:enumeration value="Coach"/>
-			<xsd:enumeration value="Bus"/>
-			<xsd:enumeration value="Ferry"/>
-			<xsd:enumeration value="Waterborne"/>
-			<xsd:enumeration value="PrivateVehicle"/>
-			<xsd:enumeration value="Walk"/>
-			<xsd:enumeration value="Trolleybus"/>
-			<xsd:enumeration value="Bicycle"/>
-			<xsd:enumeration value="Shuttle"/>
-			<xsd:enumeration value="Taxi"/>
-			<xsd:enumeration value="VAL"/>
-			<xsd:enumeration value="Other"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="PTDirectionType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the possible directions on a PT Network
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="North"/>
-			<xsd:enumeration value="NorthEast"/>
-			<xsd:enumeration value="East"/>
-			<xsd:enumeration value="SouthEast"/>
-			<xsd:enumeration value="South"/>
-			<xsd:enumeration value="SouthWest"/>
-			<xsd:enumeration value="West"/>
-			<xsd:enumeration value="NorthWest"/>
-			<xsd:enumeration value="ClockWise"/>
-			<xsd:enumeration value="CounterClockWise"/>
-			<xsd:enumeration value="A"/>
-			<xsd:enumeration value="R"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="DayTypeType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all defined Day Type
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="WeekDay"/>
-			<xsd:enumeration value="WeekEnd"/>
-			<xsd:enumeration value="Monday"/>
-			<xsd:enumeration value="Tuesday"/>
-			<xsd:enumeration value="Wednesday"/>
-			<xsd:enumeration value="Thursday"/>
-			<xsd:enumeration value="Friday"/>
-			<xsd:enumeration value="Saturday"/>
-			<xsd:enumeration value="Sunday"/>
-			<xsd:enumeration value="SchoolHolliday"/>
-			<xsd:enumeration value="PublicHolliday"/>
-			<xsd:enumeration value="MarketDay"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="BoardingAlightingPossibilityType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the ways to board or alight a bus
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="BoardAndAlight"/>
-			<xsd:enumeration value="AlightOnly"/>
-			<xsd:enumeration value="BoardOnly"/>
-			<xsd:enumeration value="NeitherBoardOrAlight"/>
-			<xsd:enumeration value="BoardAndAlightOnRequest"/>
-			<xsd:enumeration value="AlightOnRequest"/>
-			<xsd:enumeration value="BoardOnRequest"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="ServiceStatusValueType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the possible status of a PT service
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="Normal"/>
-			<xsd:enumeration value="Delayed"/>
-			<xsd:enumeration value="Cancelled"/>
-			<xsd:enumeration value="Disrupted"/>
-			<xsd:enumeration value="ReducedService"/>
-			<xsd:enumeration value="IncreasedService"/>
-			<xsd:enumeration value="Rerouted"/>
-			<xsd:enumeration value="NotStopping"/>
-			<xsd:enumeration value="Early"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="VehicleJourneyStatusValueType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the possible status of a PT service 
+            <xsd:enumeration value="DegreesCelsius"/>
+            <xsd:enumeration value="Centimeter"/>
+            <xsd:enumeration value="Degree"/>
+            <xsd:enumeration value="Hour"/>
+            <xsd:enumeration value="Hectopascals"/>
+            <xsd:enumeration value="KilometersPerHour"/>
+            <xsd:enumeration value="Kilometer"/>
+            <xsd:enumeration value="CubicMeter"/>
+            <xsd:enumeration value="MillimetersPerHour"/>
+            <xsd:enumeration value="Millimeter"/>
+            <xsd:enumeration value="Meter"/>
+            <xsd:enumeration value="MetersPerSecond"/>
+            <xsd:enumeration value="Percentage"/>
+            <xsd:enumeration value="Second"/>
+            <xsd:enumeration value="Tonne"/>
+            <xsd:enumeration value="HrMinSec"/>
+            <xsd:enumeration value="PeriodOfTime"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <!-- ============================================================== -->
+    <xsd:simpleType name="LocationTypeType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the possible location Type
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="BusStopPoint"/>
+            <xsd:enumeration value="AriportStopPoint"/>
+            <xsd:enumeration value="TramStopPoint"/>
+            <xsd:enumeration value="MetroStopPoint"/>
+            <xsd:enumeration value="RailwayStopPoint"/>
+            <xsd:enumeration value="RoadJunction"/>
+            <xsd:enumeration value="Mixed"/>
+            <xsd:enumeration value="Address"/>
+            <xsd:enumeration value="IntermediateRoadPoint"/>
+            <xsd:enumeration value="StopArea"/>
+            <xsd:enumeration value="PointOfInterest"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="LongLatTypeType">
+        <xsd:annotation>
+            <xsd:documentation>Type of geodesic reference</xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="WGS84"/>
+            <xsd:enumeration value="WGS92"/>
+            <xsd:enumeration value="Standard"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="LocationReferencingMethodType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the possible location referencing
+        methods
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="1"/>
+            <xsd:enumeration value="2"/>
+            <xsd:enumeration value="3"/>
+            <xsd:enumeration value="4"/>
+            <xsd:enumeration value="5"/>
+            <xsd:enumeration value="6"/>
+            <xsd:enumeration value="7"/>
+            <xsd:enumeration value="8"/>
+            <xsd:enumeration value="9"/>
+            <xsd:enumeration value="10"/>
+            <xsd:enumeration value="11"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="WordOrderType">
+        <xsd:annotation>
+            <xsd:documentation>Order of words in a ILOC descriptor</xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="FromTheFirstToTheLastWord"/>
+            <xsd:enumeration value="FromTheLastToTheFirstWord"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="POITypeType">
+        <xsd:annotation>
+            <xsd:documentation>Different types for a point</xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="AccommodationEatingAndDrinking"/>
+            <xsd:enumeration value="CommercialServices"/>
+            <xsd:enumeration value="Attraction"/>
+            <xsd:enumeration value="SportAndEntertainment"/>
+            <xsd:enumeration value="EducationAndHealth"/>
+            <xsd:enumeration value="PublicInfrastructure"/>
+            <xsd:enumeration value="ManufacturingAndProduction"/>
+            <xsd:enumeration value="Wholesale"/>
+            <xsd:enumeration value="Retail"/>
+            <xsd:enumeration value="Transport"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="PtAccessPointTypeType">
+        <xsd:annotation>
+            <xsd:documentation>Type of a PT acces</xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="In"/>
+            <xsd:enumeration value="Out"/>
+            <xsd:enumeration value="InOut"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="ConnectionLinkTypeType">
+        <xsd:annotation>
+            <xsd:documentation>Type of connection</xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Underground"/>
+            <xsd:enumeration value="Mixed"/>
+            <xsd:enumeration value="Overground"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <!-- ============================================================== -->
+    <xsd:simpleType name="TransportModeNameType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the possible transport modes
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Air"/>
+            <xsd:enumeration value="Train"/>
+            <xsd:enumeration value="LongDistanceTrain"/>
+            <xsd:enumeration value="LongDistanceTrain_2"/>
+            <xsd:enumeration value="LocalTrain"/>
+            <xsd:enumeration value="RapidTransit"/>
+            <xsd:enumeration value="Metro"/>
+            <xsd:enumeration value="Tramway"/>
+            <xsd:enumeration value="Coach"/>
+            <xsd:enumeration value="Bus"/>
+            <xsd:enumeration value="Ferry"/>
+            <xsd:enumeration value="Waterborne"/>
+            <xsd:enumeration value="PrivateVehicle"/>
+            <xsd:enumeration value="Walk"/>
+            <xsd:enumeration value="Trolleybus"/>
+            <xsd:enumeration value="Bicycle"/>
+            <xsd:enumeration value="Shuttle"/>
+            <xsd:enumeration value="Taxi"/>
+            <xsd:enumeration value="VAL"/>
+            <xsd:enumeration value="Other"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="PTDirectionType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the possible directions on a PT Network
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="North"/>
+            <xsd:enumeration value="NorthEast"/>
+            <xsd:enumeration value="East"/>
+            <xsd:enumeration value="SouthEast"/>
+            <xsd:enumeration value="South"/>
+            <xsd:enumeration value="SouthWest"/>
+            <xsd:enumeration value="West"/>
+            <xsd:enumeration value="NorthWest"/>
+            <xsd:enumeration value="ClockWise"/>
+            <xsd:enumeration value="CounterClockWise"/>
+            <xsd:enumeration value="A"/>
+            <xsd:enumeration value="R"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="DayTypeType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all defined Day Type
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="WeekDay"/>
+            <xsd:enumeration value="WeekEnd"/>
+            <xsd:enumeration value="Monday"/>
+            <xsd:enumeration value="Tuesday"/>
+            <xsd:enumeration value="Wednesday"/>
+            <xsd:enumeration value="Thursday"/>
+            <xsd:enumeration value="Friday"/>
+            <xsd:enumeration value="Saturday"/>
+            <xsd:enumeration value="Sunday"/>
+            <xsd:enumeration value="SchoolHolliday"/>
+            <xsd:enumeration value="PublicHolliday"/>
+            <xsd:enumeration value="MarketDay"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="BoardingAlightingPossibilityType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the ways to board or alight a bus
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="BoardAndAlight"/>
+            <xsd:enumeration value="AlightOnly"/>
+            <xsd:enumeration value="BoardOnly"/>
+            <xsd:enumeration value="NeitherBoardOrAlight"/>
+            <xsd:enumeration value="BoardAndAlightOnRequest"/>
+            <xsd:enumeration value="AlightOnRequest"/>
+            <xsd:enumeration value="BoardOnRequest"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="ServiceStatusValueType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the possible status of a PT service
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Normal"/>
+            <xsd:enumeration value="Delayed"/>
+            <xsd:enumeration value="Cancelled"/>
+            <xsd:enumeration value="Disrupted"/>
+            <xsd:enumeration value="ReducedService"/>
+            <xsd:enumeration value="IncreasedService"/>
+            <xsd:enumeration value="Rerouted"/>
+            <xsd:enumeration value="NotStopping"/>
+            <xsd:enumeration value="Early"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="VehicleJourneyStatusValueType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the possible status of a PT service 
 on a vehicle
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="Normal"/>
-			<xsd:enumeration value="Delayed"/>
-			<xsd:enumeration value="Cancelled"/>
-			<xsd:enumeration value="Rerouted"/>
-			<xsd:enumeration value="NotStopping"/>
-			<xsd:enumeration value="Early"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="SourceTypeType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Enumeration containing all the possible type of information 
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Normal"/>
+            <xsd:enumeration value="Delayed"/>
+            <xsd:enumeration value="Cancelled"/>
+            <xsd:enumeration value="Rerouted"/>
+            <xsd:enumeration value="NotStopping"/>
+            <xsd:enumeration value="Early"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="SourceTypeType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Enumeration containing all the possible type of information 
 source
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="AutomobileClubPatrol"/>
-			<xsd:enumeration value="SpotterAircraft"/>
-			<xsd:enumeration value="BreakdownService"/>
-			<xsd:enumeration value="CameraObservation"/>
-			<xsd:enumeration value="EmergencyServicePatrol"/>
-			<xsd:enumeration value="FreightVehicleOperator"/>
-			<xsd:enumeration value="InfraredMonitoringStation"/>
-			<xsd:enumeration value="InductionLoopMonitoringStation"/>
-			<xsd:enumeration value="MicrowaveMonitoringStation"/>
-			<xsd:enumeration value="MobileTelephoneCaller"/>
-			<xsd:enumeration value="OtherInformation"/>
-			<xsd:enumeration value="OtherOfficialVehicle"/>
-			<xsd:enumeration value="PolicePatrol"/>
-			<xsd:enumeration value="PublicAndPrivateUtilities"/>
-			<xsd:enumeration value="RoadAuthorities"/>
-			<xsd:enumeration value="RegisteredMotoristObserver"/>
-			<xsd:enumeration value="RoadsideTelephoneCaller"/>
-			<xsd:enumeration value="TrafficMonitoringStation"/>
-			<xsd:enumeration value="TransitOperator"/>
-			<xsd:enumeration value="VideoProcessingMonitoringStation"/>
-			<xsd:enumeration value="VehicleProbeMeasurement"/>
-			<xsd:enumeration value="PublicTransport"/>
-			<xsd:enumeration value="PassengerTransportCoordinatingAuthority"/>
-			<xsd:enumeration value="TravelInformationServiceProvider"/>
-			<xsd:enumeration value="TravelAgency"/>
-			<xsd:enumeration value="IndividualSubjectOfTravelItinerary"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<!-- ============================================================== -->
-	<xsd:simpleType name="QualityIndexType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Quality of a status/situation indications
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="Certain"/>
-			<xsd:enumeration value="VeryReliable"/>
-			<xsd:enumeration value="Reliable"/>
-			<xsd:enumeration value="ProbablyReliable"/>
-			<xsd:enumeration value="Unconfirmed"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<xsd:simpleType name="SeverityType">
-		<xsd:annotation>
-			<xsd:documentation>
-		Severity of a status/situation
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="ExtremelySevere"/>
-			<xsd:enumeration value="VerySevere"/>
-			<xsd:enumeration value="Severe"/>
-			<xsd:enumeration value="LowSeverity"/>
-			<xsd:enumeration value="LowestSeverity"/>
-			<xsd:enumeration value="NotProvided"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<!-- ============================================================== -->
-	<xsd:complexType name="TimePeriodType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-				Time and duration information
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
-			<xsd:element name="Duration" type="xsd:duration" minOccurs="0"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="MeasurementTimeType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-				Informations on the time of a measurement
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="measurementTime" type="xsd:dateTime" minOccurs="0"/>
-			<xsd:element name="measurementPeriod" type="trd:TimePeriodType" minOccurs="0"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="UnitisedQuantityType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="AutomobileClubPatrol"/>
+            <xsd:enumeration value="SpotterAircraft"/>
+            <xsd:enumeration value="BreakdownService"/>
+            <xsd:enumeration value="CameraObservation"/>
+            <xsd:enumeration value="EmergencyServicePatrol"/>
+            <xsd:enumeration value="FreightVehicleOperator"/>
+            <xsd:enumeration value="InfraredMonitoringStation"/>
+            <xsd:enumeration value="InductionLoopMonitoringStation"/>
+            <xsd:enumeration value="MicrowaveMonitoringStation"/>
+            <xsd:enumeration value="MobileTelephoneCaller"/>
+            <xsd:enumeration value="OtherInformation"/>
+            <xsd:enumeration value="OtherOfficialVehicle"/>
+            <xsd:enumeration value="PolicePatrol"/>
+            <xsd:enumeration value="PublicAndPrivateUtilities"/>
+            <xsd:enumeration value="RoadAuthorities"/>
+            <xsd:enumeration value="RegisteredMotoristObserver"/>
+            <xsd:enumeration value="RoadsideTelephoneCaller"/>
+            <xsd:enumeration value="TrafficMonitoringStation"/>
+            <xsd:enumeration value="TransitOperator"/>
+            <xsd:enumeration value="VideoProcessingMonitoringStation"/>
+            <xsd:enumeration value="VehicleProbeMeasurement"/>
+            <xsd:enumeration value="PublicTransport"/>
+            <xsd:enumeration value="PassengerTransportCoordinatingAuthority"/>
+            <xsd:enumeration value="TravelInformationServiceProvider"/>
+            <xsd:enumeration value="TravelAgency"/>
+            <xsd:enumeration value="IndividualSubjectOfTravelItinerary"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <!-- ============================================================== -->
+    <xsd:simpleType name="QualityIndexType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Quality of a status/situation indications
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Certain"/>
+            <xsd:enumeration value="VeryReliable"/>
+            <xsd:enumeration value="Reliable"/>
+            <xsd:enumeration value="ProbablyReliable"/>
+            <xsd:enumeration value="Unconfirmed"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType name="SeverityType">
+        <xsd:annotation>
+            <xsd:documentation>
+        Severity of a status/situation
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="ExtremelySevere"/>
+            <xsd:enumeration value="VerySevere"/>
+            <xsd:enumeration value="Severe"/>
+            <xsd:enumeration value="LowSeverity"/>
+            <xsd:enumeration value="LowestSeverity"/>
+            <xsd:enumeration value="NotProvided"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <!-- ============================================================== -->
+    <xsd:complexType name="TimePeriodType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                Time and duration information
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
+            <xsd:element name="Duration" type="xsd:duration" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="MeasurementTimeType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                Informations on the time of a measurement
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="measurementTime" type="xsd:dateTime" minOccurs="0"/>
+            <xsd:element name="measurementPeriod" type="trd:TimePeriodType" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="UnitisedQuantityType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 Value with its type 
 for road trafic_
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="value" type="xsd:decimal"/>
-			<xsd:element name="unit" type="trd:UnitType"/>
-			<xsd:element name="accuracy" type="trd:AccuracyType" minOccurs="0"/>
-			<xsd:element name="measurementTime" type="trd:MeasurementTimeType" minOccurs="0"/>
-			<xsd:element name="measurementLocation" type="trd:LocationType" minOccurs="0"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="AccuracyType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-				Accuracy of a measure
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="standardDeviation" type="xsd:decimal" minOccurs="0"/>
-			<xsd:element name="accuracy" type="xsd:decimal" minOccurs="0"/>
-			<xsd:element name="dataClass" type="xsd:string" minOccurs="0"/>
-			<xsd:element name="accuracyRange" type="xsd:string" minOccurs="0"/>
-			<!-- REMARK : I didn't find the enumeration for the 2
-			  following element in the DM_ I used
-			  string type instead !!! -->
-		</xsd:sequence>
-	</xsd:complexType>
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="value" type="xsd:decimal"/>
+            <xsd:element name="unit" type="trd:UnitType"/>
+            <xsd:element name="accuracy" type="trd:AccuracyType" minOccurs="0"/>
+            <xsd:element name="measurementTime" type="trd:MeasurementTimeType" minOccurs="0"/>
+            <xsd:element name="measurementLocation" type="trd:LocationType" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="AccuracyType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                Accuracy of a measure
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="standardDeviation" type="xsd:decimal" minOccurs="0"/>
+            <xsd:element name="accuracy" type="xsd:decimal" minOccurs="0"/>
+            <xsd:element name="dataClass" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="accuracyRange" type="xsd:string" minOccurs="0"/>
+            <!-- REMARK : I didn't find the enumeration for the 2
+              following element in the DM_ I used
+              string type instead !!! -->
+        </xsd:sequence>
+    </xsd:complexType>
 </xsd:schema>
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_Location_schema.xsd
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_Location_schema.xsd	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_Location_schema.xsd	(revision 30731)
@@ -4,433 +4,433 @@
 <!--  File: trident_Location_schema.xsd  -->
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.trident.org/schema/trident" xmlns:trd="http://www.trident.org/schema/trident" targetNamespace="http://www.trident.org/schema/trident" elementFormDefault="qualified" version="2.0">
-	<xsd:annotation>
-		<xsd:appinfo>trident.xsd v1.00 2002-10</xsd:appinfo>
-		<xsd:documentation xml:lang="en">
+    <xsd:annotation>
+        <xsd:appinfo>trident.xsd v1.00 2002-10</xsd:appinfo>
+        <xsd:documentation xml:lang="en">
 TRIDENT exchange schema. 
 Location referencing Description
 Copyright (c) 2001 TRIDENT consortium, All Rights Reserved.
-		</xsd:documentation>
-	</xsd:annotation>
-	<!--  included files (if any) -->
-	<xsd:include schemaLocation="trident_Global_schema.xsd"/>
-	<!-- ==============================================================
+        </xsd:documentation>
+    </xsd:annotation>
+    <!--  included files (if any) -->
+    <xsd:include schemaLocation="trident_Global_schema.xsd"/>
+    <!-- ==============================================================
      object declarations
      ============================================================== -->
-	<!-- LOCATION ===================================================== -->
-	<xsd:complexType name="LogicalLocationType" abstract="true">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		General description of a logical location (point, area, link,network,line....)
-		This type is an abstract type
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType"/>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="LocationType" abstract="true">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		General description of a location (point, area, link)
-		This type is an abstract type
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:LogicalLocationType"/>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<!-- POINTS ===================================================== -->
-	<xsd:complexType name="AddressType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Full Description of an address
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="streetName" type="xsd:string" minOccurs="0"/>
-			<xsd:element name="countryCode" type="xsd:string" minOccurs="0"/>
-			<!-- REMARK : LanguageCode is a code from code list ISO 639-1988 -->
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="RoadAddressType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Full Description of an address
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:AddressType">
-				<xsd:sequence>
-					<xsd:element name="number" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PostalAddressType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Full Description of an address
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:AddressType">
-				<xsd:sequence>
-					<xsd:element name="province" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="region" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="town" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="roadNumber" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="houseNumber" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="postalCode" type="xsd:string"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PointOfInterestType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Description of a point of interest: this is provided if the point is at or near a major landmark or point of interest.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-			<xsd:element name="type" type="trd:POITypeType" minOccurs="0"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="WGS84PositionType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Position of a point in WGS 84 Coordinate.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="Longitude" type="trd:LongitudeType"/>
-			<xsd:element name="Latitude" type="trd:LatitudeType"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ProjectedPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Position of a point in a projection system.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="X" type="xsd:decimal"/>
-			<xsd:element name="Y" type="xsd:decimal"/>
-			<xsd:element name="projectionType" type="xsd:string" minOccurs="0"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ProprietaryIdentifierType">
-		<xsd:sequence>
-			<xsd:element name="id" type="xsd:string"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="PointType" abstract="true">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		General point used to build any kind of point
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:LocationType">
-				<xsd:sequence>
-					<xsd:element name="longitude" type="trd:LongitudeType"/>
-					<xsd:element name="latitude" type="trd:LatitudeType"/>
-					<xsd:element name="longLatType" type="LongLatTypeType"/>
-					<xsd:element name="address" type="trd:AddressType" minOccurs="0"/>
-					<xsd:element name="projectedPoint" type="trd:ProjectedPointType" minOccurs="0"/>
-					<xsd:element name="containedIn" type="trd:TridentIdType"/>
-					<!-- REMARK : The IsContainedBy element refers to Area via Id -->
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PlaceType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		StopPoint on a Route of a Line of a PT Network
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:PointType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="RoadPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		General point used to build any kind of point
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:PointType">
-				<xsd:sequence>
-					<xsd:element name="LanguageCode" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="Name" type="xsd:string"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PTAccessPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		The physical (spatial) possibility for a passenger
-		to access or leave the PT network.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:PointType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="type" minOccurs="0">
-						<xsd:simpleType>
-							<xsd:restriction base="xsd:string">
-								<xsd:enumeration value="In"/>
-								<xsd:enumeration value="Out"/>
-								<xsd:enumeration value="InOut"/>
-							</xsd:restriction>
-						</xsd:simpleType>
-					</xsd:element>
-					<xsd:element name="openingTime" type="xsd:time" minOccurs="0"/>
-					<xsd:element name="closingTime" type="xsd:time" minOccurs="0"/>
-					<xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
-					<xsd:element name="stairsAvailability" type="xsd:boolean" minOccurs="0"/>
-					<xsd:element name="liftAvailability" type="xsd:boolean" minOccurs="0"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="NonPTAccessLinkendType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+    <!-- LOCATION ===================================================== -->
+    <xsd:complexType name="LogicalLocationType" abstract="true">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        General description of a logical location (point, area, link,network,line....)
+        This type is an abstract type
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType"/>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="LocationType" abstract="true">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        General description of a location (point, area, link)
+        This type is an abstract type
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:LogicalLocationType"/>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <!-- POINTS ===================================================== -->
+    <xsd:complexType name="AddressType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Full Description of an address
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="streetName" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="countryCode" type="xsd:string" minOccurs="0"/>
+            <!-- REMARK : LanguageCode is a code from code list ISO 639-1988 -->
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="RoadAddressType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Full Description of an address
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:AddressType">
+                <xsd:sequence>
+                    <xsd:element name="number" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PostalAddressType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Full Description of an address
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:AddressType">
+                <xsd:sequence>
+                    <xsd:element name="province" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="region" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="town" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="roadNumber" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="houseNumber" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="postalCode" type="xsd:string"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PointOfInterestType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Description of a point of interest: this is provided if the point is at or near a major landmark or point of interest.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="type" type="trd:POITypeType" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="WGS84PositionType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Position of a point in WGS 84 Coordinate.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="Longitude" type="trd:LongitudeType"/>
+            <xsd:element name="Latitude" type="trd:LatitudeType"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="ProjectedPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Position of a point in a projection system.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="X" type="xsd:decimal"/>
+            <xsd:element name="Y" type="xsd:decimal"/>
+            <xsd:element name="projectionType" type="xsd:string" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="ProprietaryIdentifierType">
+        <xsd:sequence>
+            <xsd:element name="id" type="xsd:string"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="PointType" abstract="true">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        General point used to build any kind of point
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:LocationType">
+                <xsd:sequence>
+                    <xsd:element name="longitude" type="trd:LongitudeType"/>
+                    <xsd:element name="latitude" type="trd:LatitudeType"/>
+                    <xsd:element name="longLatType" type="LongLatTypeType"/>
+                    <xsd:element name="address" type="trd:AddressType" minOccurs="0"/>
+                    <xsd:element name="projectedPoint" type="trd:ProjectedPointType" minOccurs="0"/>
+                    <xsd:element name="containedIn" type="trd:TridentIdType"/>
+                    <!-- REMARK : The IsContainedBy element refers to Area via Id -->
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PlaceType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        StopPoint on a Route of a Line of a PT Network
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:PointType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="RoadPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        General point used to build any kind of point
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:PointType">
+                <xsd:sequence>
+                    <xsd:element name="LanguageCode" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="Name" type="xsd:string"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PTAccessPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        The physical (spatial) possibility for a passenger
+        to access or leave the PT network.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:PointType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="type" minOccurs="0">
+                        <xsd:simpleType>
+                            <xsd:restriction base="xsd:string">
+                                <xsd:enumeration value="In"/>
+                                <xsd:enumeration value="Out"/>
+                                <xsd:enumeration value="InOut"/>
+                            </xsd:restriction>
+                        </xsd:simpleType>
+                    </xsd:element>
+                    <xsd:element name="openingTime" type="xsd:time" minOccurs="0"/>
+                    <xsd:element name="closingTime" type="xsd:time" minOccurs="0"/>
+                    <xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
+                    <xsd:element name="stairsAvailability" type="xsd:boolean" minOccurs="0"/>
+                    <xsd:element name="liftAvailability" type="xsd:boolean" minOccurs="0"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="NonPTAccessLinkendType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 An origin place not belonging to the PT network.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:PointType">
-				<xsd:sequence/>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="StopPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		StopPoint on a Route of a Line of a PT Network
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:PointType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string"/>
-					<xsd:element name="lineIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="ptNetworkIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="AirportStopPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		An airport
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:StopPointType">
-				<xsd:sequence>
-					<xsd:element name="terminalIdentifier" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="gateIdentifier" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="BusStopPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		An bus sopt point
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:StopPointType">
-				<xsd:sequence>
-					<xsd:element name="ptDirection" type="PTDirectionType" minOccurs="0"/>
-					<xsd:element name="streetName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="streetNumber" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="TramStopPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		An TRAM stop point
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:StopPointType">
-				<xsd:sequence>
-					<xsd:element name="streetName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="streetNumber" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="ptDirection" type="PTDirectionType" minOccurs="0"/>
-					<xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="MetroStopPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		An metro stop point
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:StopPointType">
-				<xsd:sequence>
-					<xsd:element name="lineName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="lineNumber" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="ptDirection" type="PTDirectionType" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="RailwayStopPointType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		An Railwaystop point
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:StopPointType">
-				<xsd:sequence>
-					<xsd:element name="stationInternalDivision" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<!-- LINKS ===================================================== -->
-	<xsd:complexType name="GeneralLinkType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		A General Link Between two Points (or object inheriting 
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:PointType">
+                <xsd:sequence/>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="StopPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        StopPoint on a Route of a Line of a PT Network
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:PointType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string"/>
+                    <xsd:element name="lineIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="ptNetworkIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="AirportStopPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        An airport
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:StopPointType">
+                <xsd:sequence>
+                    <xsd:element name="terminalIdentifier" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="gateIdentifier" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="BusStopPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        An bus sopt point
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:StopPointType">
+                <xsd:sequence>
+                    <xsd:element name="ptDirection" type="PTDirectionType" minOccurs="0"/>
+                    <xsd:element name="streetName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="streetNumber" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="TramStopPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        An TRAM stop point
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:StopPointType">
+                <xsd:sequence>
+                    <xsd:element name="streetName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="streetNumber" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="ptDirection" type="PTDirectionType" minOccurs="0"/>
+                    <xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="MetroStopPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        An metro stop point
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:StopPointType">
+                <xsd:sequence>
+                    <xsd:element name="lineName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="lineNumber" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="ptDirection" type="PTDirectionType" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="RailwayStopPointType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        An Railwaystop point
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:StopPointType">
+                <xsd:sequence>
+                    <xsd:element name="stationInternalDivision" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="platformIdentifier" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <!-- LINKS ===================================================== -->
+    <xsd:complexType name="GeneralLinkType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        A General Link Between two Points (or object inheriting 
 from Point)
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:LocationType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="startOfLink" type="trd:TridentIdType"/>
-					<xsd:element name="endOfLink" type="trd:TridentIdType"/>
-					<xsd:element name="linkDistance" type="xsd:decimal" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="ConnectionLinkType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		The path between two places covered by any "personal" mean of transport 
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:GeneralLinkType">
-				<xsd:sequence>
-					<xsd:element name="linkType" type="trd:ConnectionLinkTypeType" minOccurs="0"/>
-					<xsd:element name="defaultDuration" type="xsd:duration" minOccurs="0"/>
-					<xsd:element name="frequentTravellerDuration" type="xsd:duration" minOccurs="0"/>
-					<xsd:element name="occasionalTravellerDuration" type="xsd:duration" minOccurs="0"/>
-					<xsd:element name="mobilityRestrictedTravellerDuration" type="xsd:duration" minOccurs="0"/>
-					<xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
-					<xsd:element name="stairsAvailability" type="xsd:boolean" minOccurs="0"/>
-					<xsd:element name="liftAvailability" type="xsd:boolean" minOccurs="0"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PTAccessLinkType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Link between a StopPoint and an AccessPoint.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:ConnectionLinkType">
-				<xsd:sequence>
-					<xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="NonPTAccessLinkType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Link between a StopPoint and an AccessPoint.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:ConnectionLinkType">
-				<xsd:sequence>
-					<xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PTLinkType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		A Link between two StopPoints
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:GeneralLinkType">
-				<xsd:sequence>
-					<xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="CarType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		The path between two places covered on the road network by a private means of transport (car, truck, etc).
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:GeneralLinkType">
-				<xsd:sequence>
-					<xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<!-- AREA ===================================================== -->
-	<xsd:complexType name="AreaType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		An area made up of a set of Points
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:LocationType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="contains" type="trd:TridentIdType" maxOccurs="unbounded"/>
-					<xsd:element name="boundaryPoint" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="centroidOfArea" type="trd:TridentIdType" minOccurs="0"/>
-					<!-- REMARK : The following element refers to Points via Id -->
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<!-- ALLERT C TYPE DEFINITIONS ================================= -->
-	<!--Non utile pour amivif-->
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:LocationType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="startOfLink" type="trd:TridentIdType"/>
+                    <xsd:element name="endOfLink" type="trd:TridentIdType"/>
+                    <xsd:element name="linkDistance" type="xsd:decimal" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="ConnectionLinkType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        The path between two places covered by any "personal" mean of transport 
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:GeneralLinkType">
+                <xsd:sequence>
+                    <xsd:element name="linkType" type="trd:ConnectionLinkTypeType" minOccurs="0"/>
+                    <xsd:element name="defaultDuration" type="xsd:duration" minOccurs="0"/>
+                    <xsd:element name="frequentTravellerDuration" type="xsd:duration" minOccurs="0"/>
+                    <xsd:element name="occasionalTravellerDuration" type="xsd:duration" minOccurs="0"/>
+                    <xsd:element name="mobilityRestrictedTravellerDuration" type="xsd:duration" minOccurs="0"/>
+                    <xsd:element name="mobilityRestrictedSuitability" type="xsd:boolean" minOccurs="0"/>
+                    <xsd:element name="stairsAvailability" type="xsd:boolean" minOccurs="0"/>
+                    <xsd:element name="liftAvailability" type="xsd:boolean" minOccurs="0"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PTAccessLinkType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Link between a StopPoint and an AccessPoint.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:ConnectionLinkType">
+                <xsd:sequence>
+                    <xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="NonPTAccessLinkType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Link between a StopPoint and an AccessPoint.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:ConnectionLinkType">
+                <xsd:sequence>
+                    <xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PTLinkType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        A Link between two StopPoints
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:GeneralLinkType">
+                <xsd:sequence>
+                    <xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="CarType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        The path between two places covered on the road network by a private means of transport (car, truck, etc).
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:GeneralLinkType">
+                <xsd:sequence>
+                    <xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <!-- AREA ===================================================== -->
+    <xsd:complexType name="AreaType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        An area made up of a set of Points
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:LocationType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="contains" type="trd:TridentIdType" maxOccurs="unbounded"/>
+                    <xsd:element name="boundaryPoint" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="centroidOfArea" type="trd:TridentIdType" minOccurs="0"/>
+                    <!-- REMARK : The following element refers to Points via Id -->
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <!-- ALLERT C TYPE DEFINITIONS ================================= -->
+    <!--Non utile pour amivif-->
 </xsd:schema>
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_PT_schema.xsd
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_PT_schema.xsd	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/resources/neptune_toulouse/trident/trident_PT_schema.xsd	(revision 30731)
@@ -4,327 +4,327 @@
 <!--  File: trident_PT_schema.xsd  -->
 <xsd:schema 
-	xmlns:trd="http://www.trident.org/schema/trident" 
-	xmlns="http://www.trident.org/schema/trident" 
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-	targetNamespace="http://www.trident.org/schema/trident" 
-	elementFormDefault="qualified" version="2.0">
-	<xsd:annotation>
-		<xsd:appinfo>trident.xsd v1.00 2002-10</xsd:appinfo>
-		<xsd:documentation xml:lang="en">
+    xmlns:trd="http://www.trident.org/schema/trident" 
+    xmlns="http://www.trident.org/schema/trident" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    targetNamespace="http://www.trident.org/schema/trident" 
+    elementFormDefault="qualified" version="2.0">
+    <xsd:annotation>
+        <xsd:appinfo>trident.xsd v1.00 2002-10</xsd:appinfo>
+        <xsd:documentation xml:lang="en">
 TRIDENT exchange schema. 
 PT Network Description
 Copyright (c) 2001 TRIDENT consortium, All Rights Reserved.
-		</xsd:documentation>
-	</xsd:annotation>
-	<!--  included files (if any) -->
-	<xsd:include schemaLocation="trident_Global_schema.xsd"/>
-	<!-- ==============================================================
+        </xsd:documentation>
+    </xsd:annotation>
+    <!--  included files (if any) -->
+    <xsd:include schemaLocation="trident_Global_schema.xsd"/>
+    <!-- ==============================================================
      object declarations
      ============================================================== -->
-	<xsd:simpleType name="PTConnectionLinkTypeType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Enumeration containing all the possible type of non PT access link
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="Underground"/>
-			<xsd:enumeration value="Mixed"/>
-			<xsd:enumeration value="Overground"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-	<!--PT NETWORK ===================================================== -->
-	<!-- Stop Point,PTLink, PTAccessLink and AccessPoint are defined in Location -->
-	<!-- PTLink is defined in Location -->
-	<xsd:complexType name="StopAreaType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		A PT area made up of a set of PT Stop Points
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:AreaType">
-				<xsd:sequence>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="RouteType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		An ordered list of Stop Points on wich Journey 
-		pattern are applied
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="publishedName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="number" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="direction" type="trd:PTDirectionType" minOccurs="0"/>
-					<xsd:element name="ptLinkId" type="trd:TridentIdType" maxOccurs="unbounded"/>
-					<xsd:element name="journeyPatternId" type="trd:TridentIdType" maxOccurs="unbounded"/>
-					<xsd:element name="wayBackRouteId" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="LineType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+    <xsd:simpleType name="PTConnectionLinkTypeType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Enumeration containing all the possible type of non PT access link
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Underground"/>
+            <xsd:enumeration value="Mixed"/>
+            <xsd:enumeration value="Overground"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <!--PT NETWORK ===================================================== -->
+    <!-- Stop Point,PTLink, PTAccessLink and AccessPoint are defined in Location -->
+    <!-- PTLink is defined in Location -->
+    <xsd:complexType name="StopAreaType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        A PT area made up of a set of PT Stop Points
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:AreaType">
+                <xsd:sequence>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="RouteType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        An ordered list of Stop Points on wich Journey 
+        pattern are applied
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="publishedName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="number" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="direction" type="trd:PTDirectionType" minOccurs="0"/>
+                    <xsd:element name="ptLinkId" type="trd:TridentIdType" maxOccurs="unbounded"/>
+                    <xsd:element name="journeyPatternId" type="trd:TridentIdType" maxOccurs="unbounded"/>
+                    <xsd:element name="wayBackRouteId" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="LineType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 A line is a set of Route _.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:LogicalLocationType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="number" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="publishedName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="transportModeName" type="trd:TransportModeNameType" minOccurs="0"/>
-					<xsd:element name="lineEnd" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="routeId" type="trd:TridentIdType" maxOccurs="unbounded"/>
-					<xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
-					<xsd:element name="ptNetworkIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="GroupOfLineType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:LogicalLocationType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="number" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="publishedName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="transportModeName" type="trd:TransportModeNameType" minOccurs="0"/>
+                    <xsd:element name="lineEnd" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="routeId" type="trd:TridentIdType" maxOccurs="unbounded"/>
+                    <xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
+                    <xsd:element name="ptNetworkIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="GroupOfLineType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 A set of lines
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string"/>
-					<xsd:element name="lineId" type="trd:TridentIdType" maxOccurs="unbounded"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="JourneyPatternType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
-		Basically, JourneyPattern are some ordered list of 
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string"/>
+                    <xsd:element name="lineId" type="trd:TridentIdType" maxOccurs="unbounded"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="JourneyPatternType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+        Basically, JourneyPattern are some ordered list of 
 Stop Points, but these StopPoints have to be linked 
 together (by couples)
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="publishedName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="routeId" type="trd:TridentIdType"/>
-					<xsd:element name="origin" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="destination" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="stopPointList" type="trd:TridentIdType" minOccurs="2" maxOccurs="unbounded"/>
-					<xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
-					<xsd:element name="lineIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-					<!-- REMARK : The 3 following elements refers to StopPoints -->
-					<!-- The following field is not in the DM, it is only here to help to navigate in the data -->
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="VehicleJourneyAtStopType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="publishedName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="routeId" type="trd:TridentIdType"/>
+                    <xsd:element name="origin" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="destination" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="stopPointList" type="trd:TridentIdType" minOccurs="2" maxOccurs="unbounded"/>
+                    <xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
+                    <xsd:element name="lineIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                    <!-- REMARK : The 3 following elements refers to StopPoints -->
+                    <!-- The following field is not in the DM, it is only here to help to navigate in the data -->
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="VehicleJourneyAtStopType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 Passing time on a stop point
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="stopPointId" type="trd:TridentIdType"/>
-			<xsd:element name="vehicleJourneyId" type="trd:TridentIdType" minOccurs="0"/>
-			<xsd:element name="connectingServiceId" type="trd:TridentIdType" minOccurs="0"/>
-			<xsd:choice>
-				<xsd:sequence>
-					<xsd:element name="arrivalTime" type="xsd:time" minOccurs="0"/>
-					<xsd:element name="departureTime" type="xsd:time"/>
-					<xsd:element name="waitingTime" type="xsd:time" minOccurs="0"/>
-				</xsd:sequence>
-				<xsd:sequence>
-					<xsd:element name="elapseDuration" type="xsd:duration"/>
-				</xsd:sequence>
-			</xsd:choice>
-			<xsd:element name="headwayFrequency" type="xsd:duration" minOccurs="0"/>
-			<xsd:element name="boardingAlightingPossibility" type="trd:BoardingAlightingPossibilityType" minOccurs="0"/>
-			<xsd:element name="order" type="xsd:positiveInteger" minOccurs="0"/>
-			<!-- REMARK : The name is Frequency, but in fact it's a period -->
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="VehicleJourneyType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="stopPointId" type="trd:TridentIdType"/>
+            <xsd:element name="vehicleJourneyId" type="trd:TridentIdType" minOccurs="0"/>
+            <xsd:element name="connectingServiceId" type="trd:TridentIdType" minOccurs="0"/>
+            <xsd:choice>
+                <xsd:sequence>
+                    <xsd:element name="arrivalTime" type="xsd:time" minOccurs="0"/>
+                    <xsd:element name="departureTime" type="xsd:time"/>
+                    <xsd:element name="waitingTime" type="xsd:time" minOccurs="0"/>
+                </xsd:sequence>
+                <xsd:sequence>
+                    <xsd:element name="elapseDuration" type="xsd:duration"/>
+                </xsd:sequence>
+            </xsd:choice>
+            <xsd:element name="headwayFrequency" type="xsd:duration" minOccurs="0"/>
+            <xsd:element name="boardingAlightingPossibility" type="trd:BoardingAlightingPossibilityType" minOccurs="0"/>
+            <xsd:element name="order" type="xsd:positiveInteger" minOccurs="0"/>
+            <!-- REMARK : The name is Frequency, but in fact it's a period -->
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="VehicleJourneyType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 Instance of a Journey Pattern
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="routeId" type="trd:TridentIdType"/>
-					<xsd:element name="journeyPatternId" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="publishedJourneyName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="publishedJourneyIdentifier" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="transportMode" type="trd:TransportModeNameType" minOccurs="0"/>
-					<xsd:element name="vehicleTypeIdentifier" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="statusValue" type="ServiceStatusValueType" minOccurs="0"/>
-					<xsd:element name="lineIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="routeIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="operatorId" type="trd:TridentIdType" minOccurs="0"/>
-					<xsd:element name="facility" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="number" type="xsd:integer" minOccurs="0"/>
-					<xsd:element name="vehicleJourneyAtStop" type="trd:VehicleJourneyAtStopType" minOccurs="2" maxOccurs="unbounded"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-					<!-- REMARK : As the vehicle Type enumeration is not yet defined in the DD, 
-		  I used a string instead -->
-					<xsd:element name="timeSlotId" type="trd:TridentIdType" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PeriodType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="routeId" type="trd:TridentIdType"/>
+                    <xsd:element name="journeyPatternId" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="publishedJourneyName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="publishedJourneyIdentifier" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="transportMode" type="trd:TransportModeNameType" minOccurs="0"/>
+                    <xsd:element name="vehicleTypeIdentifier" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="statusValue" type="ServiceStatusValueType" minOccurs="0"/>
+                    <xsd:element name="lineIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="routeIdShortcut" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="operatorId" type="trd:TridentIdType" minOccurs="0"/>
+                    <xsd:element name="facility" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="number" type="xsd:integer" minOccurs="0"/>
+                    <xsd:element name="vehicleJourneyAtStop" type="trd:VehicleJourneyAtStopType" minOccurs="2" maxOccurs="unbounded"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                    <!-- REMARK : As the vehicle Type enumeration is not yet defined in the DD, 
+          I used a string instead -->
+                    <xsd:element name="timeSlotId" type="trd:TridentIdType" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PeriodType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 Period during which a Vehicle Journey is applicable
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="startOfPeriod" type="xsd:date"/>
-			<xsd:element name="endOfPeriod" type="xsd:date"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ConnectingServiceType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="startOfPeriod" type="xsd:date"/>
+            <xsd:element name="endOfPeriod" type="xsd:date"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="ConnectingServiceType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 Connecting service description
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="minimumConnectingTime" type="xsd:duration"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="CompanyType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="minimumConnectingTime" type="xsd:duration"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="CompanyType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 PT Operator description
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string"/>
-					<xsd:element name="shortName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="organisationalUnit" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="operatingDepartmentName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="code" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="phone" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="fax" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="email" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="TimetableType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string"/>
+                    <xsd:element name="shortName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="organisationalUnit" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="operatingDepartmentName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="code" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="phone" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="fax" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="email" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="TimetableType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 TimeTable informations (merge of LineTimeTable and PointTimeTable)
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TridentObjectType">
-				<xsd:sequence>
-					<xsd:element name="version" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="period" type="trd:PeriodType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="calendarDay" type="xsd:date" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="dayType" type="trd:DayTypeType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="vehicleJourneyId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="PTNetworkType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TridentObjectType">
+                <xsd:sequence>
+                    <xsd:element name="version" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="period" type="trd:PeriodType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="calendarDay" type="xsd:date" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="dayType" type="trd:DayTypeType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="vehicleJourneyId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="PTNetworkType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 PT Network description, and link to all the entry point
 for this network in the Data Model.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TransportNetworkType">
-				<xsd:sequence>
-					<xsd:element name="name" type="xsd:string"/>
-					<xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
-					<xsd:element name="sourceName" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="sourceIdentifier" type="xsd:string" minOccurs="0"/>
-					<xsd:element name="sourceType" type="trd:SourceTypeType" minOccurs="0"/>
-					<xsd:element name="lineId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
-					<!--Exensions to the DM 1.3 -->
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="RoadNetworkType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TransportNetworkType">
+                <xsd:sequence>
+                    <xsd:element name="name" type="xsd:string"/>
+                    <xsd:element name="registration" type="trd:RegistrationType" minOccurs="0"/>
+                    <xsd:element name="sourceName" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="sourceIdentifier" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="sourceType" type="trd:SourceTypeType" minOccurs="0"/>
+                    <xsd:element name="lineId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+                    <!--Exensions to the DM 1.3 -->
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="RoadNetworkType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 PT Network description, and link to all the entry point
 for this network in the Data Model.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:TransportNetworkType">
-				<xsd:sequence>
-					<xsd:element name="Name" type="xsd:string"/>
-					<xsd:element name="JunctionId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="RoadElementId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
-					<xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="TransportNetworkType" abstract="true">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:TransportNetworkType">
+                <xsd:sequence>
+                    <xsd:element name="Name" type="xsd:string"/>
+                    <xsd:element name="JunctionId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="RoadElementId" type="trd:TridentIdType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="Comment" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <xsd:complexType name="TransportNetworkType" abstract="true">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 PT Network description, can be for Public Transport or Road Network.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexContent>
-			<xsd:extension base="trd:LogicalLocationType">
-				<xsd:sequence>
-					<xsd:element name="versionDate" type="xsd:date"/>
-					<xsd:element name="description" type="xsd:string" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<!--PT Status ===================================================== -->
-	<xsd:complexType name="RegistrationType">
-		<xsd:annotation>
-			<xsd:documentation xml:lang="en">
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="trd:LogicalLocationType">
+                <xsd:sequence>
+                    <xsd:element name="versionDate" type="xsd:date"/>
+                    <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+                </xsd:sequence>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+    <!--PT Status ===================================================== -->
+    <xsd:complexType name="RegistrationType">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
 Registration informations
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="registrationNumber" type="xsd:string"/>
-			<!-- REMARK: ApplicationType is said to be an enumeration, but the enumerated list is not in the DD
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="registrationNumber" type="xsd:string"/>
+            <!-- REMARK: ApplicationType is said to be an enumeration, but the enumerated list is not in the DD
       therfore, ApplicationType is mapped to a string  -->
-		</xsd:sequence>
-	</xsd:complexType>
+        </xsd:sequence>
+    </xsd:complexType>
 </xsd:schema>
Index: /applications/editors/josm/plugins/opendata/src/org/geotools/data/shapefile/files/TabFiles.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/geotools/data/shapefile/files/TabFiles.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/src/org/geotools/data/shapefile/files/TabFiles.java	(revision 30731)
@@ -47,4 +47,5 @@
 
 import org.geotools.data.DataUtilities;
+import org.openstreetmap.josm.Main;
 
 /**
@@ -52,5 +53,5 @@
  */
 public class TabFiles extends ShpFiles {
-   
+
     /**
      * The urls for each type of file that is associated with the shapefile. The
@@ -60,5 +61,5 @@
 
     /**
-     * A read/write lock, so that we can have concurrent readers 
+     * A read/write lock, so that we can have concurrent readers
      */
     private final ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteLock();
@@ -74,10 +75,10 @@
      */
     private final MemoryMapCache mapCache = new MemoryMapCache();
-    
+
     private boolean memoryMapCacheEnabled;
-    
-    
+
+
     ////////////////////////////////////////////////////
-    
+
     public TabFiles(File headerFile, File dataFile) throws IllegalArgumentException {
         super(fakeShpFile(headerFile)); // Useless but necessary
@@ -85,5 +86,5 @@
         urls.put(ShpFileType.DBF, DataUtilities.fileToURL(dataFile));
     }
-    
+
     /**
      * This is really ugly. Used only to give a fake shp file to ShpFiles constructor to avoid IllegalArgument at initialization.
@@ -92,5 +93,5 @@
         return DataUtilities.fileToURL(new File(headerFile.getAbsolutePath()+".shp"));
     }
-    
+
     private String baseName(Object obj) {
         if (obj instanceof URL) {
@@ -99,5 +100,5 @@
         return null;
     }
-    
+
     private String toBase(String path) {
         return path.substring(0, path.toLowerCase().lastIndexOf(".tab"));
@@ -105,5 +106,5 @@
 
     ////////////////////////////////////////////////////
-    
+
     private void init(URL url) {
         String base = baseName(url);
@@ -119,5 +120,5 @@
 
         for (ShpFileType type : ShpFileType.values()) {
-            
+
             String extensionWithPeriod = type.extensionWithPeriod;
             if (upperCase) {
@@ -126,5 +127,5 @@
                 extensionWithPeriod = extensionWithPeriod.toLowerCase();
             }
-            
+
             URL newURL;
             String string = base + extensionWithPeriod;
@@ -139,5 +140,5 @@
 
         // if the files are local check each file to see if it exists
-        // if not then search for a file of the same name but try all combinations of the 
+        // if not then search for a file of the same name but try all combinations of the
         // different cases that the extension can be made up of.
         // IE Shp, SHP, Shp, ShP etc...
@@ -166,8 +167,9 @@
         File[] files = directory.listFiles(new FilenameFilter(){
 
+            @Override
             public boolean accept(File dir, String name) {
                 return file.getName().equalsIgnoreCase(name);
             }
-            
+
         });
         if( files.length>0 ){
@@ -175,5 +177,5 @@
                 return files[0].toURI().toURL();
             } catch (MalformedURLException e) {
-                //ShapefileDataStoreFactory.LOGGER().log(Level.SEVERE, "", e);
+                Main.error(e);
             }
         }
@@ -190,4 +192,5 @@
     }
 
+    @Override
     public void dispose() {
         if (numberOfLocks() != 0) {
@@ -200,8 +203,9 @@
     /**
      * Writes to the log all the lockers and when they were constructed.
-     * 
+     *
      * @param logLevel
      *                the level at which to log.
      */
+    @Override
     public void logCurrentLockers(Level logLevel) {
         for (Collection<ShpFilesLocker> lockerList : lockers.values()) {
@@ -209,5 +213,5 @@
                 StringBuilder sb = new StringBuilder("The following locker still has a lock: ");
                 sb.append(locker);
-                //ShapefileDataStoreFactory.LOGGER().log(logLevel, sb.toString(), locker.getTrace());
+                Main.error(sb.toString());
             }
         }
@@ -217,8 +221,9 @@
      * Returns the URLs (in string form) of all the files for the shapefile
      * datastore.
-     * 
+     *
      * @return the URLs (in string form) of all the files for the shapefile
      *         datastore.
      */
+    @Override
     public Map<ShpFileType, String> getFileNames() {
         Map<ShpFileType, String> result = new HashMap<>();
@@ -235,16 +240,17 @@
      * Returns the string form of the url that identifies the file indicated by
      * the type parameter or null if it is known that the file does not exist.
-     * 
+     *
      * <p>
      * Note: a URL should NOT be constructed from the string instead the URL
      * should be obtained through calling one of the aquireLock methods.
-     * 
+     *
      * @param type
      *                indicates the type of file the caller is interested in.
-     * 
+     *
      * @return the string form of the url that identifies the file indicated by
      *         the type parameter or null if it is known that the file does not
      *         exist.
      */
+    @Override
     public String get(ShpFileType type) {
         return urls.get(type).toExternalForm();
@@ -255,7 +261,8 @@
      * is not thread safe so do not count on it to have a completely accurate
      * picture but it can be useful debugging
-     * 
+     *
      * @return the number of locks on the current set of shapefile files.
      */
+    @Override
     public int numberOfLocks() {
         int count = 0;
@@ -269,10 +276,10 @@
      * get*Channel methods are used when reading or writing to the file is
      * desired.
-     * 
-     * 
+     *
+     *
      * @see #getInputStream(ShpFileType, FileReader)
      * @see #getReadChannel(ShpFileType, FileReader)
      * @see #getWriteChannel(ShpFileType, FileReader)
-     * 
+     *
      * @param type
      *                the type of the file desired.
@@ -280,6 +287,7 @@
      *                the object that is requesting the File. The same object
      *                must release the lock and is also used for debugging.
-     * @return the File type requested 
-     */
+     * @return the File type requested
+     */
+    @Override
     public File acquireReadFile(ShpFileType type,
             FileReader requestor) {
@@ -290,15 +298,15 @@
         return DataUtilities.urlToFile(url);
     }
-    
+
     /**
      * Acquire a URL for read only purposes.  It is recommended that get*Stream or
      * get*Channel methods are used when reading or writing to the file is
      * desired.
-     * 
-     * 
+     *
+     *
      * @see #getInputStream(ShpFileType, FileReader)
      * @see #getReadChannel(ShpFileType, FileReader)
      * @see #getWriteChannel(ShpFileType, FileReader)
-     * 
+     *
      * @param type
      *                the type of the file desired.
@@ -308,9 +316,10 @@
      * @return the URL to the file of the type requested
      */
+    @Override
     public URL acquireRead(ShpFileType type, FileReader requestor) {
         URL url = urls.get(type);
         if (url == null)
             return null;
-        
+
         readWriteLock.readLock().lock();
         Collection<ShpFilesLocker> threadLockers = getCurrentThreadLockers();
@@ -326,9 +335,9 @@
      * desired.
      * </p>
-     * 
+     *
      * @see #getInputStream(ShpFileType, FileReader)
      * @see #getReadChannel(ShpFileType, FileReader)
      * @see #getWriteChannel(ShpFileType, FileReader)
-     * 
+     *
      * @param type
      *                the type of the file desired.
@@ -338,4 +347,5 @@
      * @return A result object containing the URL or the reason for the failure.
      */
+    @Override
     public Result<URL, State> tryAcquireRead(ShpFileType type,
             FileReader requestor) {
@@ -344,10 +354,10 @@
             return new Result<>(null, State.NOT_EXIST);
         }
-        
+
         boolean locked = readWriteLock.readLock().tryLock();
         if (!locked) {
             return new Result<>(null, State.LOCKED);
         }
-        
+
         getCurrentThreadLockers().add(new ShpFilesLocker(url, requestor));
 
@@ -358,5 +368,5 @@
      * Unlocks a read lock. The file and requestor must be the the same as the
      * one of the lockers.
-     * 
+     *
      * @param file
      *                file that was locked
@@ -364,4 +374,5 @@
      *                the class that requested the file
      */
+    @Override
     public void unlockRead(File file, FileReader requestor) {
         Collection<URL> allURLS = urls.values();
@@ -376,5 +387,5 @@
      * Unlocks a read lock. The url and requestor must be the the same as the
      * one of the lockers.
-     * 
+     *
      * @param url
      *                url that was locked
@@ -382,4 +393,5 @@
      *                the class that requested the url
      */
+    @Override
     public void unlockRead(URL url, FileReader requestor) {
         if (url == null) {
@@ -404,15 +416,15 @@
 
     /**
-     * Acquire a File for read and write purposes. 
+     * Acquire a File for read and write purposes.
      * <p> It is recommended that get*Stream or
      * get*Channel methods are used when reading or writing to the file is
      * desired.
      * </p>
-     * 
+     *
      * @see #getInputStream(ShpFileType, FileReader)
      * @see #getReadChannel(ShpFileType, FileReader)
      * @see #getWriteChannel(ShpFileType, FileReader)
 
-     * 
+     *
      * @param type
      *                the type of the file desired.
@@ -422,4 +434,5 @@
      * @return the File to the file of the type requested
      */
+    @Override
     public File acquireWriteFile(ShpFileType type,
             FileWriter requestor) {
@@ -431,15 +444,15 @@
     }
     /**
-     * Acquire a URL for read and write purposes. 
+     * Acquire a URL for read and write purposes.
      * <p> It is recommended that get*Stream or
      * get*Channel methods are used when reading or writing to the file is
      * desired.
      * </p>
-     * 
+     *
      * @see #getInputStream(ShpFileType, FileReader)
      * @see #getReadChannel(ShpFileType, FileReader)
      * @see #getWriteChannel(ShpFileType, FileReader)
 
-     * 
+     *
      * @param type
      *                the type of the file desired.
@@ -449,4 +462,5 @@
      * @return the URL to the file of the type requested
      */
+    @Override
     public URL acquireWrite(ShpFileType type, FileWriter requestor) {
         URL url = urls.get(type);
@@ -460,8 +474,8 @@
         readWriteLock.writeLock().lock();
         threadLockers.add(new ShpFilesLocker(url, requestor));
-        mapCache.cleanFileCache(url);        
+        mapCache.cleanFileCache(url);
         return url;
     }
-    
+
     /**
      * Tries to acquire a URL for read/write purposes. Returns null if the
@@ -471,10 +485,10 @@
      * desired.
      * </p>
-     * 
+     *
      * @see #getInputStream(ShpFileType, FileReader)
      * @see #getReadChannel(ShpFileType, FileReader)
      * @see #getWriteChannel(ShpFileType, FileReader)
 
-     * 
+     *
      * @param type
      *                the type of the file desired.
@@ -484,7 +498,8 @@
      * @return A result object containing the URL or the reason for the failure.
      */
+    @Override
     public Result<URL, State> tryAcquireWrite(ShpFileType type,
             FileWriter requestor) {
-        
+
         URL url = urls.get(type);
         if (url == null) {
@@ -511,5 +526,5 @@
      * Unlocks a read lock. The file and requestor must be the the same as the
      * one of the lockers.
-     * 
+     *
      * @param file
      *                file that was locked
@@ -517,4 +532,5 @@
      *                the class that requested the file
      */
+    @Override
     public void unlockWrite(File file, FileWriter requestor) {
         Collection<URL> allURLS = urls.values();
@@ -529,6 +545,6 @@
      * Unlocks a read lock. The requestor must be have previously obtained a
      * lock for the url.
-     * 
-     * 
+     *
+     *
      * @param url
      *                url that was locked
@@ -536,4 +552,5 @@
      *                the class that requested the url
      */
+    @Override
     public void unlockWrite(URL url, FileWriter requestor) {
         if (url == null) {
@@ -551,5 +568,5 @@
                             + " to have locked the url but it does not hold the lock for the URL");
         }
-        
+
         if(threadLockers.size() == 0) {
             lockers.remove(Thread.currentThread());
@@ -560,5 +577,5 @@
         readWriteLock.writeLock().unlock();
     }
-   
+
     /**
      * Returns the list of lockers attached to a given thread, or creates it if missing
@@ -586,5 +603,5 @@
         }
     }
-    
+
     /**
      * Re-takes the read locks in preparation for lock downgrade
@@ -602,5 +619,5 @@
     /**
      * Determine if the location of this shapefile is local or remote.
-     * 
+     *
      * @return true if local, false if remote
      */
@@ -613,4 +630,5 @@
      * files cannot be deleted return false.
      */
+    @Override
     public boolean delete() {
         BasicShpFileWriter requestor = new BasicShpFileWriter("ShpFiles for deleting all files");
@@ -638,5 +656,5 @@
      * Opens a input stream for the indicated file. A read lock is requested at
      * the method call and released on close.
-     * 
+     *
      * @param type
      *                the type of file to open the stream to.
@@ -644,8 +662,9 @@
      *                the object requesting the stream
      * @return an input stream
-     * 
+     *
      * @throws IOException
      *                 if a problem occurred opening the stream.
      */
+    @Override
     public InputStream getInputStream(ShpFileType type,
             final FileReader requestor) throws IOException {
@@ -684,9 +703,9 @@
         }
     }
-    
+
     /**
      * Opens a output stream for the indicated file. A write lock is requested at
      * the method call and released on close.
-     * 
+     *
      * @param type
      *                the type of file to open the stream to.
@@ -694,8 +713,9 @@
      *                the object requesting the stream
      * @return an output stream
-     * 
+     *
      * @throws IOException
      *                 if a problem occurred opening the stream.
      */
+    @Override
     public OutputStream getOutputStream(ShpFileType type,
             final FileWriter requestor) throws IOException {
@@ -703,5 +723,5 @@
 
         try {
-            
+
             OutputStream out;
             if (isLocalTab()) {
@@ -713,5 +733,5 @@
                 out = connection.getOutputStream();
             }
-            
+
             FilterOutputStream output = new FilterOutputStream(out) {
 
@@ -755,11 +775,12 @@
      * channel is closed.
      * </p>
-     * 
+     *
      * @param type
      *                the type of file to open the channel to.
      * @param requestor
      *                the object requesting the channel
-     * 
-     */
+     *
+     */
+    @Override
     public ReadableByteChannel getReadChannel(ShpFileType type,
             FileReader requestor) throws IOException {
@@ -770,5 +791,5 @@
 
                 File file = DataUtilities.urlToFile(url);
-                
+
                 @SuppressWarnings("resource")
                 RandomAccessFile raf = new RandomAccessFile(file, "r");
@@ -801,21 +822,22 @@
      * a generic channel for remote urls, however both shape and dbf writing can
      * only occur with a local FileChannel channel.
-     * 
+     *
      * <p>
      * A write lock is obtained when this method is called and released when the
      * channel is closed.
      * </p>
-     * 
-     * 
+     *
+     *
      * @param type
      *                the type of file to open the stream to.
      * @param requestor
      *                the object requesting the stream
-     * 
+     *
      * @return a WritableByteChannel for the provided file type
-     * 
+     *
      * @throws IOException
      *                 if there is an error opening the stream
      */
+    @Override
     public WritableByteChannel getWriteChannel(ShpFileType type,
             FileWriter requestor) throws IOException {
@@ -860,12 +882,13 @@
      * Obtains a Storage file for the type indicated. An id is provided so that
      * the same file can be obtained at a later time with just the id
-     * 
+     *
      * @param type
      *                the type of file to create and return
-     * 
+     *
      * @return StorageFile
      * @throws IOException
      *                 if temporary files cannot be created
      */
+    @Override
     public StorageFile getStorageFile(ShpFileType type) throws IOException {
         String baseName = getTypeName();
@@ -877,4 +900,5 @@
     }
 
+    @Override
     public String getTypeName() {
         String path = SHP.toBase(urls.get(SHP));
@@ -888,5 +912,5 @@
         return path.substring(slash, dot);
     }
-    
+
     /**
      * Internal method that the file channel decorators will call to allow reuse of the memory mapped buffers
@@ -899,4 +923,5 @@
      * @throws IOException
      */
+    @Override
     MappedByteBuffer map(FileChannel wrapped, URL url, MapMode mode, long position, long size) throws IOException {
         if(memoryMapCacheEnabled) {
@@ -906,5 +931,5 @@
         }
     }
-    
+
     /**
      * Returns the status of the memory map cache. When enabled the memory mapped portions of the files are cached and shared
@@ -912,4 +937,5 @@
      * @param memoryMapCacheEnabled
      */
+    @Override
     public boolean isMemoryMapCacheEnabled() {
         return memoryMapCacheEnabled;
@@ -921,4 +947,5 @@
      * @param memoryMapCacheEnabled
      */
+    @Override
     public void setMemoryMapCacheEnabled(boolean memoryMapCacheEnabled) {
         this.memoryMapCacheEnabled = memoryMapCacheEnabled;
@@ -931,10 +958,10 @@
      * Returns true if the file exists. Throws an exception if the file is not
      * local.
-     * 
+     *
      * @param fileType
      *                the type of file to check existance for.
-     * 
+     *
      * @return true if the file exists.
-     * 
+     *
      * @throws IllegalArgumentException
      *                 if the files are not local.
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/AbstractModule.java	(revision 30731)
@@ -10,4 +10,5 @@
 import java.util.List;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.preferences.SourceEditor.ExtendedSourceEntry;
 import org.openstreetmap.josm.gui.preferences.SourceEntry;
@@ -24,5 +25,5 @@
 
     protected final ModuleInformation info;
-    
+
     public AbstractModule(ModuleInformation info) {
         this.info = info;
@@ -50,24 +51,26 @@
             ExtendedSourceEntry src;
             if (handler != null && (src = handler.getMapPaintStyle()) != null) {
-                try {
-                    // Copy style sheet to disk to allow JOSM to load it at startup (even making the plugin "early" does not allow it)
-                    String path = OdPlugin.getInstance().getResourcesDirectory()+File.separator+src.url.replace(OdConstants.PROTO_RSRC, "").replace('/', File.separatorChar);
-                    
-                    int n = 0;
-                    byte[] buffer = new byte[4096];
-                    InputStream in = getClass().getResourceAsStream(src.url.substring(OdConstants.PROTO_RSRC.length()-1));
-                    new File(path.substring(0, path.lastIndexOf(File.separatorChar))).mkdirs();
-                    FileOutputStream out = new FileOutputStream(path);
+                // Copy style sheet to disk to allow JOSM to load it at startup
+                // (even making the plugin "early" does not allow it)
+                String path = OdPlugin.getInstance().getResourcesDirectory() + File.separator
+                        + src.url.replace(OdConstants.PROTO_RSRC, "").replace('/', File.separatorChar);
+
+                int n = 0;
+                byte[] buffer = new byte[4096];
+                try (InputStream in = getClass().getResourceAsStream(
+                        src.url.substring(OdConstants.PROTO_RSRC.length()-1));
+                     FileOutputStream out = new FileOutputStream(path)) {
+                    String dir = path.substring(0, path.lastIndexOf(File.separatorChar));
+                    if (new File(dir).mkdirs() && Main.isDebugEnabled()) {
+                        Main.debug("Created directory: "+dir);
+                    }
                     while ((n = in.read(buffer)) > 0) {
                         out.write(buffer, 0, n);
                     }
-                    out.close();
-                    in.close();
-
                     // Add source pointing to the local file
                     src.url = OdConstants.PROTO_FILE+path;
                     sources.add(src);
                 } catch (IOException e) {
-                    System.err.println(e.getMessage());
+                    Main.error(e.getMessage());
                 }
             }
@@ -96,5 +99,5 @@
         };
     }
-    
+
     @Override
     public final List<AbstractDataSetHandler> getNewlyInstanciatedHandlers() {
@@ -104,6 +107,6 @@
                 try {
                     result.add(handlerClass.newInstance());
-                } catch (Throwable t) {
-                    System.err.println("Cannot instantiate "+handlerClass+" because of "+t.getClass().getName()+": "+t.getMessage());
+                } catch (InstantiationException | IllegalAccessException t) {
+                    Main.error("Cannot instantiate "+handlerClass+" because of "+t.getClass().getName()+": "+t.getMessage());
                 }
             }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 30731)
@@ -247,6 +247,6 @@
                         + "Delete from preferences?</html>", module.name, module.className);
             }
-        }  catch (Throwable e) {
-            e.printStackTrace();
+        }  catch (Exception e) {
+            Main.error(e);
         }
         if (msg != null && confirmDisableModule(parent, msg, module.name)) {
@@ -550,4 +550,5 @@
 
         final File[] files = moduleDir.listFiles(new FilenameFilter() {
+            @Override
             public boolean accept(File dir, String name) {
                 return name.endsWith(".jar.new");
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 30730)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 30731)
@@ -143,5 +143,5 @@
         this.attr.putAll(other.attr);
     }
-    
+
     private static final ImageIcon extractIcon(String iconPath, File jarFile, boolean suppressWarnings) {
         return new ImageProvider(iconPath).setArchive(jarFile).setMaxWidth(24).setMaxHeight(24).setOptional(true).setSuppressWarnings(suppressWarnings).get();
@@ -234,5 +234,5 @@
         try {
             return klass.getConstructor(ModuleInformation.class).newInstance(this);
-        } catch (Throwable t) {
+        } catch (Exception t) {
             throw new ModuleException(name, t);
         }
@@ -251,5 +251,5 @@
         try{
             return (Class<? extends Module>) Class.forName(className, true, classLoader);
-        } catch (Throwable t) {
+        } catch (Exception t) {
             throw new ModuleException(name, t);
         }
@@ -260,4 +260,5 @@
             return f.toURI().toURL();
         } catch (MalformedURLException ex) {
+            Main.warn(ex.getMessage());
             return null;
         }
@@ -337,12 +338,4 @@
     }
 
-    /**
-     * Sets the name
-     * @param name
-     */
-    /*public void setName(String name) {
-        this.name = name;
-    }*/
-
     public ImageIcon getScaledIcon() {
         if (icon == null)
