Index: .classpath
===================================================================
--- .classpath	(revision 16369)
+++ .classpath	(working copy)
@@ -2,6 +2,10 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry exported="true" kind="lib" path="lib/jsr173-1.0_api.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jaxb-impl.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/jaxb-api.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/activation.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/JOSM"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
Index: README
===================================================================
--- README	(revision 16369)
+++ README	(working copy)
@@ -1,8 +1,9 @@
-README 
+README
 ======
 
 This plugin adds additional file formats into file open dialog.
 
-Following file formats are support:
+Following file formats get support:
 
-- TangoGPS
\ No newline at end of file
+- TangoGPS
+- Garmin Trainings Center TCX
\ No newline at end of file
Index: build.xml
===================================================================
--- build.xml	(revision 16369)
+++ build.xml	(working copy)
@@ -50,9 +50,15 @@
     -->
     <target name="compile" depends="init">
         <echo message="compiling sources for  ${plugin.jar} ... "/>
-        <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
+        <javac srcdir="src" debug="true" destdir="${plugin.build.dir}">
             <compilerarg value="-Xlint:deprecation"/>
             <compilerarg value="-Xlint:unchecked"/>
+            <classpath>
+                <pathelement location="${josm}"/>
+                <fileset dir="lib">
+                    <include name="**/*.jar"/>
+                </fileset>
+            </classpath>
         </javac>
     </target>
 
@@ -78,7 +84,14 @@
         **
         ************************************************
     -->
-            <manifest>
+          <zipfileset src="lib/activation.jar" includes="**/*.class"/>
+          <zipfileset src="lib/jsr173-1.0_api.jar" includes="**/*.class"/>
+          <zipfileset src="lib/jaxb-api.jar" includes="**/*.class"/>
+          <zipfileset src="lib/jaxb-api.jar" includes="**/*.properties"/>
+
+          <zipfileset src="lib/jaxb-impl.jar" includes="**/*.class"/>
+
+          <manifest>
                 <attribute name="Author" value="Dieter Muecke"/>
                 <attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.DataImport"/>
                 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
Index: src/org/openstreetmap/josm/io/Tcx.java
===================================================================
--- src/org/openstreetmap/josm/io/Tcx.java	(revision 0)
+++ src/org/openstreetmap/josm/io/Tcx.java	(revision 0)
@@ -0,0 +1,220 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.ExtensionFileFilter;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.gpx.GpxData;
+import org.openstreetmap.josm.data.gpx.GpxTrack;
+import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.gui.layer.GpxLayer;
+import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
+import org.openstreetmap.josm.io.tcx.ActivityLapT;
+import org.openstreetmap.josm.io.tcx.ActivityT;
+import org.openstreetmap.josm.io.tcx.CourseT;
+import org.openstreetmap.josm.io.tcx.PositionT;
+import org.openstreetmap.josm.io.tcx.TrackT;
+import org.openstreetmap.josm.io.tcx.TrackpointT;
+import org.openstreetmap.josm.io.tcx.TrainingCenterDatabaseT;
+
+
+/**
+ * TCX Reader. This class is based on code genarated by the Java Architecture
+ * for XML Binding (JAXB). For this class to work you will need the API und IMPL
+ * Jars from the RI. JAXB can be downloaded at <a
+ * href="https://jaxb.dev.java.net/">https://jaxb.dev.java.net/</a>. This class
+ * has been developed using JAXB version 2.1.7.
+ * <p>
+ * Additional information and tutorial are available at: <a
+ * href="http://java.sun.com/developer/technicalArticles/WebServices/jaxb/">http://java.sun.com/developer/technicalArticles/WebServices/jaxb/</a>
+ * <p>
+ * The Garmin TCX Schema file can be downloaded from: <a
+ * href="http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd">http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd</a>
+ * The command used to generate the code is: <code>
+ * xjc.bat -p org.openstreetmap.josm.io.tcx TrainingCenterDatabasev2.xsd -d <path to the src folder of JOSM>
+ * </code>
+ * <p>
+ * Note: if you get an exception that JAXB 2.1 is not supported on your system, you will have to add the jaxb-api.jar
+ * to the endorsed directory (create it if necessary) of your JRE. Usually it is something like this:
+ * \<program files>\Java\jre<java version>\lib\endorsed
+ *
+ * @author adrian <as@nitegate.de>
+ *
+ */
+public class Tcx extends FileImporter {
+
+    //private File tcxFile;
+
+    private GpxData gpxData;
+
+
+    public Tcx() {
+        super(new ExtensionFileFilter("tcx", "tcx",tr("TCX Files (*.tcx)")));
+    }
+
+    /**
+     * @param tcxFile
+     */
+    @Override
+    public void importData(File tcxFile) throws IOException {
+        //this.tcxFile = tcxFile;
+        parseFile(tcxFile);
+
+        GpxData gpxData = getGpxData();
+        gpxData.storageFile = tcxFile;
+        GpxLayer gpxLayer = new GpxLayer(gpxData, tcxFile.getName());
+        Main.main.addLayer(gpxLayer);
+        if (Main.pref.getBoolean("marker.makeautomarkers", true))
+        {
+            MarkerLayer ml = new MarkerLayer(gpxData, tr("Markers from {0}", tcxFile.getName()), tcxFile, gpxLayer);
+            if (ml.data.size() > 0)
+            {
+                Main.main.addLayer(ml);
+            }
+        }
+
+    }
+
+    /**
+     *
+     */
+    @SuppressWarnings("unchecked") private void parseFile(File tcxFile) {
+        try {
+            JAXBContext jc = JAXBContext
+                    .newInstance(TrainingCenterDatabaseT.class);
+            Unmarshaller unmarshaller = jc.createUnmarshaller();
+            JAXBElement<TrainingCenterDatabaseT> element = (JAXBElement<TrainingCenterDatabaseT>)unmarshaller
+                    .unmarshal(tcxFile);
+
+            TrainingCenterDatabaseT tcd = element.getValue();
+
+            gpxData = new GpxData();
+
+            // Usually logged activities are in the activities tag.
+            parseDataFromActivities(tcd);
+            // GPS tracks in the course tag are generated by the user.
+            // Maybe not a good idea to import them.
+            parseDataFromCourses(tcd);
+
+        } catch (JAXBException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /** Convert a TrackpointT to a WayPoint.
+     * @param tp	TrackpointT to convert
+     * @return		tp converted to WayPoint, or null
+     */
+    private static WayPoint convertPoint(TrackpointT tp) {
+
+        PositionT p = tp.getPosition();
+
+        if (p == null)
+            // If the TrackPointT lacks a position, return null.
+            return null;
+
+        WayPoint waypt = new WayPoint(new LatLon(p.getLatitudeDegrees(),
+                                                 p.getLongitudeDegrees()));
+        Double altitudeMeters = tp.getAltitudeMeters();
+        if (altitudeMeters != null) {
+            waypt.attr.put("ele", altitudeMeters.toString());
+        }
+
+        XMLGregorianCalendar time = tp.getTime();
+
+        if (time != null) {
+            waypt.attr.put("time", time.toString());
+            waypt.time = .001 * time.toGregorianCalendar().getTimeInMillis();
+        }
+
+        return waypt;
+    }
+
+    /**
+     * @param tcd
+     */
+    private void parseDataFromActivities(TrainingCenterDatabaseT tcd) {
+        int lap = 0;
+        if ((tcd.getActivities() != null)
+                && (tcd.getActivities().getActivity() != null)) {
+            for (ActivityT activity : tcd.getActivities().getActivity()) {
+                if (activity.getLap() != null) {
+                    for (ActivityLapT activityLap : activity.getLap()) {
+                        if (activityLap.getTrack() != null) {
+                            XMLGregorianCalendar startTime = activityLap
+                                    .getStartTime();
+                            GpxTrack currentTrack = new GpxTrack();
+                            gpxData.tracks.add(currentTrack);
+                            for (TrackT track : activityLap.getTrack()) {
+                                if (track.getTrackpoint() != null) {
+                                    Collection<WayPoint> currentTrackSeg = new ArrayList<WayPoint>();
+                                    currentTrack.trackSegs.add(currentTrackSeg);
+                                    for (TrackpointT tp :
+                                           track.getTrackpoint()) {
+                                        WayPoint waypt = convertPoint(tp);
+
+                                        if (waypt != null) {
+                                            if (startTime != null) {
+                                                waypt.attr.put("name", "LAP"
+                                                               + (++lap));
+                                                gpxData.waypoints.add(waypt);
+                                                startTime = null;
+                                            }
+
+                                            currentTrackSeg.add(waypt);
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * @param tcd
+     */
+    private void parseDataFromCourses(TrainingCenterDatabaseT tcd) {
+        if ((tcd.getCourses() != null)
+                && (tcd.getCourses().getCourse() != null)) {
+            for (CourseT course : tcd.getCourses().getCourse()) {
+                if (course.getTrack() != null) {
+                    GpxTrack currentTrack = new GpxTrack();
+                    gpxData.tracks.add(currentTrack);
+                    for (TrackT track : course.getTrack()) {
+                        if (track.getTrackpoint() != null) {
+                            Collection<WayPoint> currentTrackSeg = new ArrayList<WayPoint>();
+                            currentTrack.trackSegs.add(currentTrackSeg);
+                            for (TrackpointT tp : track.getTrackpoint()) {
+                                WayPoint waypt = convertPoint(tp);
+
+                                if (waypt != null) {
+                                    currentTrackSeg.add(waypt);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    private GpxData getGpxData() {
+        return gpxData;
+    }
+}
Index: src/org/openstreetmap/josm/io/tcx/AbstractSourceT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/AbstractSourceT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/AbstractSourceT.java	(revision 0)
@@ -0,0 +1,77 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for AbstractSource_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AbstractSource_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Name" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AbstractSource_t", propOrder = {
+    "name"
+})
+@XmlSeeAlso({
+    ApplicationT.class,
+    DeviceT.class
+})
+public abstract class AbstractSourceT {
+
+    @XmlElement(name = "Name", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String name;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/AbstractStepT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/AbstractStepT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/AbstractStepT.java	(revision 0)
@@ -0,0 +1,66 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AbstractStep_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AbstractStep_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="StepId" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}StepId_t"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AbstractStep_t", propOrder = {
+    "stepId"
+})
+@XmlSeeAlso({
+    RepeatT.class,
+    StepT.class
+})
+public abstract class AbstractStepT {
+
+    @XmlElement(name = "StepId")
+    protected int stepId;
+
+    /**
+     * Gets the value of the stepId property.
+     * 
+     */
+    public int getStepId() {
+        return stepId;
+    }
+
+    /**
+     * Sets the value of the stepId property.
+     * 
+     */
+    public void setStepId(int value) {
+        this.stepId = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ActivityLapT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ActivityLapT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ActivityLapT.java	(revision 0)
@@ -0,0 +1,392 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for ActivityLap_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ActivityLap_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="TotalTimeSeconds" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *         &lt;element name="DistanceMeters" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *         &lt;element name="MaximumSpeed" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
+ *         &lt;element name="Calories" type="{http://www.w3.org/2001/XMLSchema}unsignedShort"/>
+ *         &lt;element name="AverageHeartRateBpm" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateInBeatsPerMinute_t" minOccurs="0"/>
+ *         &lt;element name="MaximumHeartRateBpm" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateInBeatsPerMinute_t" minOccurs="0"/>
+ *         &lt;element name="Intensity" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Intensity_t"/>
+ *         &lt;element name="Cadence" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CadenceValue_t" minOccurs="0"/>
+ *         &lt;element name="TriggerMethod" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}TriggerMethod_t"/>
+ *         &lt;element name="Track" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Track_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="StartTime" use="required" type="{http://www.w3.org/2001/XMLSchema}dateTime" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ActivityLap_t", propOrder = {
+    "totalTimeSeconds",
+    "distanceMeters",
+    "maximumSpeed",
+    "calories",
+    "averageHeartRateBpm",
+    "maximumHeartRateBpm",
+    "intensity",
+    "cadence",
+    "triggerMethod",
+    "track",
+    "notes",
+    "extensions"
+})
+public class ActivityLapT {
+
+    @XmlElement(name = "TotalTimeSeconds")
+    protected double totalTimeSeconds;
+    @XmlElement(name = "DistanceMeters")
+    protected double distanceMeters;
+    @XmlElement(name = "MaximumSpeed")
+    protected Double maximumSpeed;
+    @XmlElement(name = "Calories")
+    @XmlSchemaType(name = "unsignedShort")
+    protected int calories;
+    @XmlElement(name = "AverageHeartRateBpm")
+    protected HeartRateInBeatsPerMinuteT averageHeartRateBpm;
+    @XmlElement(name = "MaximumHeartRateBpm")
+    protected HeartRateInBeatsPerMinuteT maximumHeartRateBpm;
+    @XmlElement(name = "Intensity", required = true)
+    protected IntensityT intensity;
+    @XmlElement(name = "Cadence")
+    protected Short cadence;
+    @XmlElement(name = "TriggerMethod", required = true)
+    protected TriggerMethodT triggerMethod;
+    @XmlElement(name = "Track")
+    protected List<TrackT> track;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "StartTime", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar startTime;
+
+    /**
+     * Gets the value of the totalTimeSeconds property.
+     * 
+     */
+    public double getTotalTimeSeconds() {
+        return totalTimeSeconds;
+    }
+
+    /**
+     * Sets the value of the totalTimeSeconds property.
+     * 
+     */
+    public void setTotalTimeSeconds(double value) {
+        this.totalTimeSeconds = value;
+    }
+
+    /**
+     * Gets the value of the distanceMeters property.
+     * 
+     */
+    public double getDistanceMeters() {
+        return distanceMeters;
+    }
+
+    /**
+     * Sets the value of the distanceMeters property.
+     * 
+     */
+    public void setDistanceMeters(double value) {
+        this.distanceMeters = value;
+    }
+
+    /**
+     * Gets the value of the maximumSpeed property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Double }
+     *     
+     */
+    public Double getMaximumSpeed() {
+        return maximumSpeed;
+    }
+
+    /**
+     * Sets the value of the maximumSpeed property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Double }
+     *     
+     */
+    public void setMaximumSpeed(Double value) {
+        this.maximumSpeed = value;
+    }
+
+    /**
+     * Gets the value of the calories property.
+     * 
+     */
+    public int getCalories() {
+        return calories;
+    }
+
+    /**
+     * Sets the value of the calories property.
+     * 
+     */
+    public void setCalories(int value) {
+        this.calories = value;
+    }
+
+    /**
+     * Gets the value of the averageHeartRateBpm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public HeartRateInBeatsPerMinuteT getAverageHeartRateBpm() {
+        return averageHeartRateBpm;
+    }
+
+    /**
+     * Sets the value of the averageHeartRateBpm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public void setAverageHeartRateBpm(HeartRateInBeatsPerMinuteT value) {
+        this.averageHeartRateBpm = value;
+    }
+
+    /**
+     * Gets the value of the maximumHeartRateBpm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public HeartRateInBeatsPerMinuteT getMaximumHeartRateBpm() {
+        return maximumHeartRateBpm;
+    }
+
+    /**
+     * Sets the value of the maximumHeartRateBpm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public void setMaximumHeartRateBpm(HeartRateInBeatsPerMinuteT value) {
+        this.maximumHeartRateBpm = value;
+    }
+
+    /**
+     * Gets the value of the intensity property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link IntensityT }
+     *     
+     */
+    public IntensityT getIntensity() {
+        return intensity;
+    }
+
+    /**
+     * Sets the value of the intensity property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link IntensityT }
+     *     
+     */
+    public void setIntensity(IntensityT value) {
+        this.intensity = value;
+    }
+
+    /**
+     * Gets the value of the cadence property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Short }
+     *     
+     */
+    public Short getCadence() {
+        return cadence;
+    }
+
+    /**
+     * Sets the value of the cadence property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Short }
+     *     
+     */
+    public void setCadence(Short value) {
+        this.cadence = value;
+    }
+
+    /**
+     * Gets the value of the triggerMethod property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link TriggerMethodT }
+     *     
+     */
+    public TriggerMethodT getTriggerMethod() {
+        return triggerMethod;
+    }
+
+    /**
+     * Sets the value of the triggerMethod property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link TriggerMethodT }
+     *     
+     */
+    public void setTriggerMethod(TriggerMethodT value) {
+        this.triggerMethod = value;
+    }
+
+    /**
+     * Gets the value of the track property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the track property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getTrack().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link TrackT }
+     * 
+     * 
+     */
+    public List<TrackT> getTrack() {
+        if (track == null) {
+            track = new ArrayList<TrackT>();
+        }
+        return this.track;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the startTime property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getStartTime() {
+        return startTime;
+    }
+
+    /**
+     * Sets the value of the startTime property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setStartTime(XMLGregorianCalendar value) {
+        this.startTime = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ActivityListT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ActivityListT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ActivityListT.java	(revision 0)
@@ -0,0 +1,109 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ActivityList_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ActivityList_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Activity" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Activity_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="MultiSportSession" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}MultiSportSession_t" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ActivityList_t", propOrder = {
+    "activity",
+    "multiSportSession"
+})
+public class ActivityListT {
+
+    @XmlElement(name = "Activity")
+    protected List<ActivityT> activity;
+    @XmlElement(name = "MultiSportSession")
+    protected List<MultiSportSessionT> multiSportSession;
+
+    /**
+     * Gets the value of the activity property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the activity property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getActivity().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ActivityT }
+     * 
+     * 
+     */
+    public List<ActivityT> getActivity() {
+        if (activity == null) {
+            activity = new ArrayList<ActivityT>();
+        }
+        return this.activity;
+    }
+
+    /**
+     * Gets the value of the multiSportSession property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the multiSportSession property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getMultiSportSession().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link MultiSportSessionT }
+     * 
+     * 
+     */
+    public List<MultiSportSessionT> getMultiSportSession() {
+        if (multiSportSession == null) {
+            multiSportSession = new ArrayList<MultiSportSessionT>();
+        }
+        return this.multiSportSession;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ActivityReferenceT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ActivityReferenceT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ActivityReferenceT.java	(revision 0)
@@ -0,0 +1,72 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for ActivityReference_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ActivityReference_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Id" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ActivityReference_t", propOrder = {
+    "id"
+})
+public class ActivityReferenceT {
+
+    @XmlElement(name = "Id", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar id;
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setId(XMLGregorianCalendar value) {
+        this.id = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ActivityT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ActivityT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ActivityT.java	(revision 0)
@@ -0,0 +1,247 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for Activity_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Activity_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Id" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
+ *         &lt;element name="Lap" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}ActivityLap_t" maxOccurs="unbounded"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="Training" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Training_t" minOccurs="0"/>
+ *         &lt;element name="Creator" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractSource_t" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Sport" use="required" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Sport_t" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Activity_t", propOrder = {
+    "id",
+    "lap",
+    "notes",
+    "training",
+    "creator",
+    "extensions"
+})
+public class ActivityT {
+
+    @XmlElement(name = "Id", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar id;
+    @XmlElement(name = "Lap", required = true)
+    protected List<ActivityLapT> lap;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "Training")
+    protected TrainingT training;
+    @XmlElement(name = "Creator")
+    protected AbstractSourceT creator;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "Sport", required = true)
+    protected SportT sport;
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setId(XMLGregorianCalendar value) {
+        this.id = value;
+    }
+
+    /**
+     * Gets the value of the lap property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the lap property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getLap().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ActivityLapT }
+     * 
+     * 
+     */
+    public List<ActivityLapT> getLap() {
+        if (lap == null) {
+            lap = new ArrayList<ActivityLapT>();
+        }
+        return this.lap;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the training property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link TrainingT }
+     *     
+     */
+    public TrainingT getTraining() {
+        return training;
+    }
+
+    /**
+     * Sets the value of the training property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link TrainingT }
+     *     
+     */
+    public void setTraining(TrainingT value) {
+        this.training = value;
+    }
+
+    /**
+     * Gets the value of the creator property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public AbstractSourceT getCreator() {
+        return creator;
+    }
+
+    /**
+     * Sets the value of the creator property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public void setCreator(AbstractSourceT value) {
+        this.creator = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the sport property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SportT }
+     *     
+     */
+    public SportT getSport() {
+        return sport;
+    }
+
+    /**
+     * Sets the value of the sport property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SportT }
+     *     
+     */
+    public void setSport(SportT value) {
+        this.sport = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ApplicationT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ApplicationT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ApplicationT.java	(revision 0)
@@ -0,0 +1,133 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Identifies a PC software application.
+ * 
+ * <p>Java class for Application_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Application_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractSource_t">
+ *       &lt;sequence>
+ *         &lt;element name="Build" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Build_t"/>
+ *         &lt;element name="LangID" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}LangID_t"/>
+ *         &lt;element name="PartNumber" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}PartNumber_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Application_t", propOrder = {
+    "build",
+    "langID",
+    "partNumber"
+})
+public class ApplicationT
+    extends AbstractSourceT
+{
+
+    @XmlElement(name = "Build", required = true)
+    protected BuildT build;
+    @XmlElement(name = "LangID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String langID;
+    @XmlElement(name = "PartNumber", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String partNumber;
+
+    /**
+     * Gets the value of the build property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BuildT }
+     *     
+     */
+    public BuildT getBuild() {
+        return build;
+    }
+
+    /**
+     * Sets the value of the build property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BuildT }
+     *     
+     */
+    public void setBuild(BuildT value) {
+        this.build = value;
+    }
+
+    /**
+     * Gets the value of the langID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getLangID() {
+        return langID;
+    }
+
+    /**
+     * Sets the value of the langID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setLangID(String value) {
+        this.langID = value;
+    }
+
+    /**
+     * Gets the value of the partNumber property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartNumber() {
+        return partNumber;
+    }
+
+    /**
+     * Sets the value of the partNumber property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartNumber(String value) {
+        this.partNumber = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/BuildT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/BuildT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/BuildT.java	(revision 0)
@@ -0,0 +1,157 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for Build_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Build_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Version" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Version_t"/>
+ *         &lt;element name="Type" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}BuildType_t" minOccurs="0"/>
+ *         &lt;element name="Time" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t" minOccurs="0"/>
+ *         &lt;element name="Builder" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Build_t", propOrder = {
+    "version",
+    "type",
+    "time",
+    "builder"
+})
+public class BuildT {
+
+    @XmlElement(name = "Version", required = true)
+    protected VersionT version;
+    @XmlElement(name = "Type")
+    protected BuildTypeT type;
+    @XmlElement(name = "Time")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String time;
+    @XmlElement(name = "Builder")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String builder;
+
+    /**
+     * Gets the value of the version property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link VersionT }
+     *     
+     */
+    public VersionT getVersion() {
+        return version;
+    }
+
+    /**
+     * Sets the value of the version property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link VersionT }
+     *     
+     */
+    public void setVersion(VersionT value) {
+        this.version = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BuildTypeT }
+     *     
+     */
+    public BuildTypeT getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BuildTypeT }
+     *     
+     */
+    public void setType(BuildTypeT value) {
+        this.type = value;
+    }
+
+    /**
+     * Gets the value of the time property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getTime() {
+        return time;
+    }
+
+    /**
+     * Sets the value of the time property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setTime(String value) {
+        this.time = value;
+    }
+
+    /**
+     * Gets the value of the builder property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getBuilder() {
+        return builder;
+    }
+
+    /**
+     * Sets the value of the builder property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setBuilder(String value) {
+        this.builder = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/BuildTypeT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/BuildTypeT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/BuildTypeT.java	(revision 0)
@@ -0,0 +1,64 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BuildType_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="BuildType_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Internal"/>
+ *     &lt;enumeration value="Alpha"/>
+ *     &lt;enumeration value="Beta"/>
+ *     &lt;enumeration value="Release"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "BuildType_t")
+@XmlEnum
+public enum BuildTypeT {
+
+    @XmlEnumValue("Internal")
+    INTERNAL("Internal"),
+    @XmlEnumValue("Alpha")
+    ALPHA("Alpha"),
+    @XmlEnumValue("Beta")
+    BETA("Beta"),
+    @XmlEnumValue("Release")
+    RELEASE("Release");
+    private final String value;
+
+    BuildTypeT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static BuildTypeT fromValue(String v) {
+        for (BuildTypeT c: BuildTypeT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CadenceT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CadenceT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CadenceT.java	(revision 0)
@@ -0,0 +1,83 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Cadence_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Cadence_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Target_t">
+ *       &lt;sequence>
+ *         &lt;element name="Low" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *         &lt;element name="High" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Cadence_t", propOrder = {
+    "low",
+    "high"
+})
+public class CadenceT
+    extends TargetT
+{
+
+    @XmlElement(name = "Low")
+    protected double low;
+    @XmlElement(name = "High")
+    protected double high;
+
+    /**
+     * Gets the value of the low property.
+     * 
+     */
+    public double getLow() {
+        return low;
+    }
+
+    /**
+     * Sets the value of the low property.
+     * 
+     */
+    public void setLow(double value) {
+        this.low = value;
+    }
+
+    /**
+     * Gets the value of the high property.
+     * 
+     */
+    public double getHigh() {
+        return high;
+    }
+
+    /**
+     * Sets the value of the high property.
+     * 
+     */
+    public void setHigh(double value) {
+        this.high = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CaloriesBurnedT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CaloriesBurnedT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CaloriesBurnedT.java	(revision 0)
@@ -0,0 +1,65 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CaloriesBurned_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CaloriesBurned_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Duration_t">
+ *       &lt;sequence>
+ *         &lt;element name="Calories" type="{http://www.w3.org/2001/XMLSchema}unsignedShort"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CaloriesBurned_t", propOrder = {
+    "calories"
+})
+public class CaloriesBurnedT
+    extends DurationT
+{
+
+    @XmlElement(name = "Calories")
+    @XmlSchemaType(name = "unsignedShort")
+    protected int calories;
+
+    /**
+     * Gets the value of the calories property.
+     * 
+     */
+    public int getCalories() {
+        return calories;
+    }
+
+    /**
+     * Sets the value of the calories property.
+     * 
+     */
+    public void setCalories(int value) {
+        this.calories = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CourseFolderT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CourseFolderT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CourseFolderT.java	(revision 0)
@@ -0,0 +1,193 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseFolder_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CourseFolder_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Folder" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CourseFolder_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="CourseNameRef" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}NameKeyReference_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseFolder_t", propOrder = {
+    "folder",
+    "courseNameRef",
+    "notes",
+    "extensions"
+})
+public class CourseFolderT {
+
+    @XmlElement(name = "Folder")
+    protected List<CourseFolderT> folder;
+    @XmlElement(name = "CourseNameRef")
+    protected List<NameKeyReferenceT> courseNameRef;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "Name", required = true)
+    protected String name;
+
+    /**
+     * Gets the value of the folder property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the folder property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getFolder().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link CourseFolderT }
+     * 
+     * 
+     */
+    public List<CourseFolderT> getFolder() {
+        if (folder == null) {
+            folder = new ArrayList<CourseFolderT>();
+        }
+        return this.folder;
+    }
+
+    /**
+     * Gets the value of the courseNameRef property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the courseNameRef property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getCourseNameRef().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link NameKeyReferenceT }
+     * 
+     * 
+     */
+    public List<NameKeyReferenceT> getCourseNameRef() {
+        if (courseNameRef == null) {
+            courseNameRef = new ArrayList<NameKeyReferenceT>();
+        }
+        return this.courseNameRef;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CourseLapT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CourseLapT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CourseLapT.java	(revision 0)
@@ -0,0 +1,333 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseLap_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CourseLap_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="TotalTimeSeconds" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *         &lt;element name="DistanceMeters" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *         &lt;element name="BeginPosition" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Position_t" minOccurs="0"/>
+ *         &lt;element name="BeginAltitudeMeters" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
+ *         &lt;element name="EndPosition" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Position_t" minOccurs="0"/>
+ *         &lt;element name="EndAltitudeMeters" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
+ *         &lt;element name="AverageHeartRateBpm" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateInBeatsPerMinute_t" minOccurs="0"/>
+ *         &lt;element name="MaximumHeartRateBpm" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateInBeatsPerMinute_t" minOccurs="0"/>
+ *         &lt;element name="Intensity" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Intensity_t"/>
+ *         &lt;element name="Cadence" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CadenceValue_t" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseLap_t", propOrder = {
+    "totalTimeSeconds",
+    "distanceMeters",
+    "beginPosition",
+    "beginAltitudeMeters",
+    "endPosition",
+    "endAltitudeMeters",
+    "averageHeartRateBpm",
+    "maximumHeartRateBpm",
+    "intensity",
+    "cadence",
+    "extensions"
+})
+public class CourseLapT {
+
+    @XmlElement(name = "TotalTimeSeconds")
+    protected double totalTimeSeconds;
+    @XmlElement(name = "DistanceMeters")
+    protected double distanceMeters;
+    @XmlElement(name = "BeginPosition")
+    protected PositionT beginPosition;
+    @XmlElement(name = "BeginAltitudeMeters")
+    protected Double beginAltitudeMeters;
+    @XmlElement(name = "EndPosition")
+    protected PositionT endPosition;
+    @XmlElement(name = "EndAltitudeMeters")
+    protected Double endAltitudeMeters;
+    @XmlElement(name = "AverageHeartRateBpm")
+    protected HeartRateInBeatsPerMinuteT averageHeartRateBpm;
+    @XmlElement(name = "MaximumHeartRateBpm")
+    protected HeartRateInBeatsPerMinuteT maximumHeartRateBpm;
+    @XmlElement(name = "Intensity", required = true)
+    protected IntensityT intensity;
+    @XmlElement(name = "Cadence")
+    protected Short cadence;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the totalTimeSeconds property.
+     * 
+     */
+    public double getTotalTimeSeconds() {
+        return totalTimeSeconds;
+    }
+
+    /**
+     * Sets the value of the totalTimeSeconds property.
+     * 
+     */
+    public void setTotalTimeSeconds(double value) {
+        this.totalTimeSeconds = value;
+    }
+
+    /**
+     * Gets the value of the distanceMeters property.
+     * 
+     */
+    public double getDistanceMeters() {
+        return distanceMeters;
+    }
+
+    /**
+     * Sets the value of the distanceMeters property.
+     * 
+     */
+    public void setDistanceMeters(double value) {
+        this.distanceMeters = value;
+    }
+
+    /**
+     * Gets the value of the beginPosition property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PositionT }
+     *     
+     */
+    public PositionT getBeginPosition() {
+        return beginPosition;
+    }
+
+    /**
+     * Sets the value of the beginPosition property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PositionT }
+     *     
+     */
+    public void setBeginPosition(PositionT value) {
+        this.beginPosition = value;
+    }
+
+    /**
+     * Gets the value of the beginAltitudeMeters property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Double }
+     *     
+     */
+    public Double getBeginAltitudeMeters() {
+        return beginAltitudeMeters;
+    }
+
+    /**
+     * Sets the value of the beginAltitudeMeters property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Double }
+     *     
+     */
+    public void setBeginAltitudeMeters(Double value) {
+        this.beginAltitudeMeters = value;
+    }
+
+    /**
+     * Gets the value of the endPosition property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PositionT }
+     *     
+     */
+    public PositionT getEndPosition() {
+        return endPosition;
+    }
+
+    /**
+     * Sets the value of the endPosition property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PositionT }
+     *     
+     */
+    public void setEndPosition(PositionT value) {
+        this.endPosition = value;
+    }
+
+    /**
+     * Gets the value of the endAltitudeMeters property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Double }
+     *     
+     */
+    public Double getEndAltitudeMeters() {
+        return endAltitudeMeters;
+    }
+
+    /**
+     * Sets the value of the endAltitudeMeters property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Double }
+     *     
+     */
+    public void setEndAltitudeMeters(Double value) {
+        this.endAltitudeMeters = value;
+    }
+
+    /**
+     * Gets the value of the averageHeartRateBpm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public HeartRateInBeatsPerMinuteT getAverageHeartRateBpm() {
+        return averageHeartRateBpm;
+    }
+
+    /**
+     * Sets the value of the averageHeartRateBpm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public void setAverageHeartRateBpm(HeartRateInBeatsPerMinuteT value) {
+        this.averageHeartRateBpm = value;
+    }
+
+    /**
+     * Gets the value of the maximumHeartRateBpm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public HeartRateInBeatsPerMinuteT getMaximumHeartRateBpm() {
+        return maximumHeartRateBpm;
+    }
+
+    /**
+     * Sets the value of the maximumHeartRateBpm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public void setMaximumHeartRateBpm(HeartRateInBeatsPerMinuteT value) {
+        this.maximumHeartRateBpm = value;
+    }
+
+    /**
+     * Gets the value of the intensity property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link IntensityT }
+     *     
+     */
+    public IntensityT getIntensity() {
+        return intensity;
+    }
+
+    /**
+     * Sets the value of the intensity property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link IntensityT }
+     *     
+     */
+    public void setIntensity(IntensityT value) {
+        this.intensity = value;
+    }
+
+    /**
+     * Gets the value of the cadence property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Short }
+     *     
+     */
+    public Short getCadence() {
+        return cadence;
+    }
+
+    /**
+     * Sets the value of the cadence property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Short }
+     *     
+     */
+    public void setCadence(Short value) {
+        this.cadence = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CourseListT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CourseListT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CourseListT.java	(revision 0)
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseList_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CourseList_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Course" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Course_t" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseList_t", propOrder = {
+    "course"
+})
+public class CourseListT {
+
+    @XmlElement(name = "Course")
+    protected List<CourseT> course;
+
+    /**
+     * Gets the value of the course property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the course property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getCourse().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link CourseT }
+     * 
+     * 
+     */
+    public List<CourseT> getCourse() {
+        if (course == null) {
+            course = new ArrayList<CourseT>();
+        }
+        return this.course;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CoursePointT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CoursePointT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CoursePointT.java	(revision 0)
@@ -0,0 +1,244 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for CoursePoint_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CoursePoint_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Name" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CoursePointName_t"/>
+ *         &lt;element name="Time" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
+ *         &lt;element name="Position" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Position_t"/>
+ *         &lt;element name="AltitudeMeters" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
+ *         &lt;element name="PointType" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CoursePointType_t"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursePoint_t", propOrder = {
+    "name",
+    "time",
+    "position",
+    "altitudeMeters",
+    "pointType",
+    "notes",
+    "extensions"
+})
+public class CoursePointT {
+
+    @XmlElement(name = "Name", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String name;
+    @XmlElement(name = "Time", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar time;
+    @XmlElement(name = "Position", required = true)
+    protected PositionT position;
+    @XmlElement(name = "AltitudeMeters")
+    protected Double altitudeMeters;
+    @XmlElement(name = "PointType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String pointType;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the time property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getTime() {
+        return time;
+    }
+
+    /**
+     * Sets the value of the time property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setTime(XMLGregorianCalendar value) {
+        this.time = value;
+    }
+
+    /**
+     * Gets the value of the position property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PositionT }
+     *     
+     */
+    public PositionT getPosition() {
+        return position;
+    }
+
+    /**
+     * Sets the value of the position property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PositionT }
+     *     
+     */
+    public void setPosition(PositionT value) {
+        this.position = value;
+    }
+
+    /**
+     * Gets the value of the altitudeMeters property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Double }
+     *     
+     */
+    public Double getAltitudeMeters() {
+        return altitudeMeters;
+    }
+
+    /**
+     * Sets the value of the altitudeMeters property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Double }
+     *     
+     */
+    public void setAltitudeMeters(Double value) {
+        this.altitudeMeters = value;
+    }
+
+    /**
+     * Gets the value of the pointType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPointType() {
+        return pointType;
+    }
+
+    /**
+     * Sets the value of the pointType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPointType(String value) {
+        this.pointType = value;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CourseT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CourseT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CourseT.java	(revision 0)
@@ -0,0 +1,257 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for Course_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Course_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Name" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}RestrictedToken_t"/>
+ *         &lt;element name="Lap" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CourseLap_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Track" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Track_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="CoursePoint" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CoursePoint_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Creator" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractSource_t" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Course_t", propOrder = {
+    "name",
+    "lap",
+    "track",
+    "notes",
+    "coursePoint",
+    "creator",
+    "extensions"
+})
+public class CourseT {
+
+    @XmlElement(name = "Name", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String name;
+    @XmlElement(name = "Lap")
+    protected List<CourseLapT> lap;
+    @XmlElement(name = "Track")
+    protected List<TrackT> track;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "CoursePoint")
+    protected List<CoursePointT> coursePoint;
+    @XmlElement(name = "Creator")
+    protected AbstractSourceT creator;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the lap property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the lap property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getLap().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link CourseLapT }
+     * 
+     * 
+     */
+    public List<CourseLapT> getLap() {
+        if (lap == null) {
+            lap = new ArrayList<CourseLapT>();
+        }
+        return this.lap;
+    }
+
+    /**
+     * Gets the value of the track property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the track property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getTrack().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link TrackT }
+     * 
+     * 
+     */
+    public List<TrackT> getTrack() {
+        if (track == null) {
+            track = new ArrayList<TrackT>();
+        }
+        return this.track;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the coursePoint property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the coursePoint property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getCoursePoint().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link CoursePointT }
+     * 
+     * 
+     */
+    public List<CoursePointT> getCoursePoint() {
+        if (coursePoint == null) {
+            coursePoint = new ArrayList<CoursePointT>();
+        }
+        return this.coursePoint;
+    }
+
+    /**
+     * Gets the value of the creator property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public AbstractSourceT getCreator() {
+        return creator;
+    }
+
+    /**
+     * Sets the value of the creator property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public void setCreator(AbstractSourceT value) {
+        this.creator = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CoursesT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CoursesT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CoursesT.java	(revision 0)
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Courses_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Courses_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="CourseFolder" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CourseFolder_t"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Courses_t", propOrder = {
+    "courseFolder",
+    "extensions"
+})
+public class CoursesT {
+
+    @XmlElement(name = "CourseFolder", required = true)
+    protected CourseFolderT courseFolder;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the courseFolder property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CourseFolderT }
+     *     
+     */
+    public CourseFolderT getCourseFolder() {
+        return courseFolder;
+    }
+
+    /**
+     * Sets the value of the courseFolder property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CourseFolderT }
+     *     
+     */
+    public void setCourseFolder(CourseFolderT value) {
+        this.courseFolder = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CustomHeartRateZoneT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CustomHeartRateZoneT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CustomHeartRateZoneT.java	(revision 0)
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CustomHeartRateZone_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CustomHeartRateZone_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Zone_t">
+ *       &lt;sequence>
+ *         &lt;element name="Low" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateValue_t"/>
+ *         &lt;element name="High" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateValue_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CustomHeartRateZone_t", propOrder = {
+    "low",
+    "high"
+})
+public class CustomHeartRateZoneT
+    extends ZoneT
+{
+
+    @XmlElement(name = "Low", required = true)
+    protected HeartRateValueT low;
+    @XmlElement(name = "High", required = true)
+    protected HeartRateValueT high;
+
+    /**
+     * Gets the value of the low property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public HeartRateValueT getLow() {
+        return low;
+    }
+
+    /**
+     * Sets the value of the low property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public void setLow(HeartRateValueT value) {
+        this.low = value;
+    }
+
+    /**
+     * Gets the value of the high property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public HeartRateValueT getHigh() {
+        return high;
+    }
+
+    /**
+     * Sets the value of the high property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public void setHigh(HeartRateValueT value) {
+        this.high = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/CustomSpeedZoneT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/CustomSpeedZoneT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/CustomSpeedZoneT.java	(revision 0)
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CustomSpeedZone_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CustomSpeedZone_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Zone_t">
+ *       &lt;sequence>
+ *         &lt;element name="ViewAs" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}SpeedType_t"/>
+ *         &lt;element name="LowInMetersPerSecond" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}SpeedInMetersPerSecond_t"/>
+ *         &lt;element name="HighInMetersPerSecond" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}SpeedInMetersPerSecond_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CustomSpeedZone_t", propOrder = {
+    "viewAs",
+    "lowInMetersPerSecond",
+    "highInMetersPerSecond"
+})
+public class CustomSpeedZoneT
+    extends ZoneT
+{
+
+    @XmlElement(name = "ViewAs", required = true)
+    protected SpeedTypeT viewAs;
+    @XmlElement(name = "LowInMetersPerSecond")
+    protected double lowInMetersPerSecond;
+    @XmlElement(name = "HighInMetersPerSecond")
+    protected double highInMetersPerSecond;
+
+    /**
+     * Gets the value of the viewAs property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SpeedTypeT }
+     *     
+     */
+    public SpeedTypeT getViewAs() {
+        return viewAs;
+    }
+
+    /**
+     * Sets the value of the viewAs property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SpeedTypeT }
+     *     
+     */
+    public void setViewAs(SpeedTypeT value) {
+        this.viewAs = value;
+    }
+
+    /**
+     * Gets the value of the lowInMetersPerSecond property.
+     * 
+     */
+    public double getLowInMetersPerSecond() {
+        return lowInMetersPerSecond;
+    }
+
+    /**
+     * Sets the value of the lowInMetersPerSecond property.
+     * 
+     */
+    public void setLowInMetersPerSecond(double value) {
+        this.lowInMetersPerSecond = value;
+    }
+
+    /**
+     * Gets the value of the highInMetersPerSecond property.
+     * 
+     */
+    public double getHighInMetersPerSecond() {
+        return highInMetersPerSecond;
+    }
+
+    /**
+     * Sets the value of the highInMetersPerSecond property.
+     * 
+     */
+    public void setHighInMetersPerSecond(double value) {
+        this.highInMetersPerSecond = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/DeviceT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/DeviceT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/DeviceT.java	(revision 0)
@@ -0,0 +1,118 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Identifies the originating GPS device that tracked a run or
+ *                                used to identify the type of device capable of handling
+ *                                the data for loading.
+ * 
+ * <p>Java class for Device_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Device_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractSource_t">
+ *       &lt;sequence>
+ *         &lt;element name="UnitId" type="{http://www.w3.org/2001/XMLSchema}unsignedInt"/>
+ *         &lt;element name="ProductID" type="{http://www.w3.org/2001/XMLSchema}unsignedShort"/>
+ *         &lt;element name="Version" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Version_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Device_t", propOrder = {
+    "unitId",
+    "productID",
+    "version"
+})
+public class DeviceT
+    extends AbstractSourceT
+{
+
+    @XmlElement(name = "UnitId")
+    @XmlSchemaType(name = "unsignedInt")
+    protected long unitId;
+    @XmlElement(name = "ProductID")
+    @XmlSchemaType(name = "unsignedShort")
+    protected int productID;
+    @XmlElement(name = "Version", required = true)
+    protected VersionT version;
+
+    /**
+     * Gets the value of the unitId property.
+     * 
+     */
+    public long getUnitId() {
+        return unitId;
+    }
+
+    /**
+     * Sets the value of the unitId property.
+     * 
+     */
+    public void setUnitId(long value) {
+        this.unitId = value;
+    }
+
+    /**
+     * Gets the value of the productID property.
+     * 
+     */
+    public int getProductID() {
+        return productID;
+    }
+
+    /**
+     * Sets the value of the productID property.
+     * 
+     */
+    public void setProductID(int value) {
+        this.productID = value;
+    }
+
+    /**
+     * Gets the value of the version property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link VersionT }
+     *     
+     */
+    public VersionT getVersion() {
+        return version;
+    }
+
+    /**
+     * Sets the value of the version property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link VersionT }
+     *     
+     */
+    public void setVersion(VersionT value) {
+        this.version = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/DistanceT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/DistanceT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/DistanceT.java	(revision 0)
@@ -0,0 +1,65 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Distance_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Distance_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Duration_t">
+ *       &lt;sequence>
+ *         &lt;element name="Meters" type="{http://www.w3.org/2001/XMLSchema}unsignedShort"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Distance_t", propOrder = {
+    "meters"
+})
+public class DistanceT
+    extends DurationT
+{
+
+    @XmlElement(name = "Meters")
+    @XmlSchemaType(name = "unsignedShort")
+    protected int meters;
+
+    /**
+     * Gets the value of the meters property.
+     * 
+     */
+    public int getMeters() {
+        return meters;
+    }
+
+    /**
+     * Sets the value of the meters property.
+     * 
+     */
+    public void setMeters(int value) {
+        this.meters = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/DurationT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/DurationT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/DurationT.java	(revision 0)
@@ -0,0 +1,46 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Duration_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Duration_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Duration_t")
+@XmlSeeAlso({
+    DistanceT.class,
+    TimeT.class,
+    UserInitiatedT.class,
+    HeartRateAboveT.class,
+    CaloriesBurnedT.class,
+    HeartRateBelowT.class
+})
+public abstract class DurationT {
+
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ExtensionsT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ExtensionsT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ExtensionsT.java	(revision 0)
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for Extensions_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Extensions_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Extensions_t", propOrder = {
+    "any"
+})
+public class ExtensionsT {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/FirstSportT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/FirstSportT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/FirstSportT.java	(revision 0)
@@ -0,0 +1,69 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for FirstSport_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="FirstSport_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Activity" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Activity_t"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FirstSport_t", propOrder = {
+    "activity"
+})
+public class FirstSportT {
+
+    @XmlElement(name = "Activity", required = true)
+    protected ActivityT activity;
+
+    /**
+     * Gets the value of the activity property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ActivityT }
+     *     
+     */
+    public ActivityT getActivity() {
+        return activity;
+    }
+
+    /**
+     * Sets the value of the activity property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ActivityT }
+     *     
+     */
+    public void setActivity(ActivityT value) {
+        this.activity = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/FoldersT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/FoldersT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/FoldersT.java	(revision 0)
@@ -0,0 +1,125 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Folders_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Folders_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="History" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}History_t" minOccurs="0"/>
+ *         &lt;element name="Workouts" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Workouts_t" minOccurs="0"/>
+ *         &lt;element name="Courses" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Courses_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Folders_t", propOrder = {
+    "history",
+    "workouts",
+    "courses"
+})
+public class FoldersT {
+
+    @XmlElement(name = "History")
+    protected HistoryT history;
+    @XmlElement(name = "Workouts")
+    protected WorkoutsT workouts;
+    @XmlElement(name = "Courses")
+    protected CoursesT courses;
+
+    /**
+     * Gets the value of the history property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HistoryT }
+     *     
+     */
+    public HistoryT getHistory() {
+        return history;
+    }
+
+    /**
+     * Sets the value of the history property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HistoryT }
+     *     
+     */
+    public void setHistory(HistoryT value) {
+        this.history = value;
+    }
+
+    /**
+     * Gets the value of the workouts property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link WorkoutsT }
+     *     
+     */
+    public WorkoutsT getWorkouts() {
+        return workouts;
+    }
+
+    /**
+     * Sets the value of the workouts property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link WorkoutsT }
+     *     
+     */
+    public void setWorkouts(WorkoutsT value) {
+        this.workouts = value;
+    }
+
+    /**
+     * Gets the value of the courses property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CoursesT }
+     *     
+     */
+    public CoursesT getCourses() {
+        return courses;
+    }
+
+    /**
+     * Sets the value of the courses property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CoursesT }
+     *     
+     */
+    public void setCourses(CoursesT value) {
+        this.courses = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/GenderT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/GenderT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/GenderT.java	(revision 0)
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Gender_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="Gender_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Male"/>
+ *     &lt;enumeration value="Female"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "Gender_t")
+@XmlEnum
+public enum GenderT {
+
+    @XmlEnumValue("Male")
+    MALE("Male"),
+    @XmlEnumValue("Female")
+    FEMALE("Female");
+    private final String value;
+
+    GenderT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static GenderT fromValue(String v) {
+        for (GenderT c: GenderT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HeartRateAboveT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HeartRateAboveT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HeartRateAboveT.java	(revision 0)
@@ -0,0 +1,71 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for HeartRateAbove_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HeartRateAbove_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Duration_t">
+ *       &lt;sequence>
+ *         &lt;element name="HeartRate" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateValue_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HeartRateAbove_t", propOrder = {
+    "heartRate"
+})
+public class HeartRateAboveT
+    extends DurationT
+{
+
+    @XmlElement(name = "HeartRate", required = true)
+    protected HeartRateValueT heartRate;
+
+    /**
+     * Gets the value of the heartRate property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public HeartRateValueT getHeartRate() {
+        return heartRate;
+    }
+
+    /**
+     * Sets the value of the heartRate property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public void setHeartRate(HeartRateValueT value) {
+        this.heartRate = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HeartRateAsPercentOfMaxT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HeartRateAsPercentOfMaxT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HeartRateAsPercentOfMaxT.java	(revision 0)
@@ -0,0 +1,63 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for HeartRateAsPercentOfMax_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HeartRateAsPercentOfMax_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateValue_t">
+ *       &lt;sequence>
+ *         &lt;element name="Value" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}PercentOfMax_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HeartRateAsPercentOfMax_t", propOrder = {
+    "value"
+})
+public class HeartRateAsPercentOfMaxT
+    extends HeartRateValueT
+{
+
+    @XmlElement(name = "Value")
+    protected short value;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     */
+    public short getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     */
+    public void setValue(short value) {
+        this.value = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HeartRateBelowT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HeartRateBelowT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HeartRateBelowT.java	(revision 0)
@@ -0,0 +1,71 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for HeartRateBelow_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HeartRateBelow_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Duration_t">
+ *       &lt;sequence>
+ *         &lt;element name="HeartRate" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateValue_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HeartRateBelow_t", propOrder = {
+    "heartRate"
+})
+public class HeartRateBelowT
+    extends DurationT
+{
+
+    @XmlElement(name = "HeartRate", required = true)
+    protected HeartRateValueT heartRate;
+
+    /**
+     * Gets the value of the heartRate property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public HeartRateValueT getHeartRate() {
+        return heartRate;
+    }
+
+    /**
+     * Sets the value of the heartRate property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateValueT }
+     *     
+     */
+    public void setHeartRate(HeartRateValueT value) {
+        this.heartRate = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HeartRateInBeatsPerMinuteT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HeartRateInBeatsPerMinuteT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HeartRateInBeatsPerMinuteT.java	(revision 0)
@@ -0,0 +1,63 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for HeartRateInBeatsPerMinute_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HeartRateInBeatsPerMinute_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateValue_t">
+ *       &lt;sequence>
+ *         &lt;element name="Value" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}positiveByte"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HeartRateInBeatsPerMinute_t", propOrder = {
+    "value"
+})
+public class HeartRateInBeatsPerMinuteT
+    extends HeartRateValueT
+{
+
+    @XmlElement(name = "Value")
+    protected short value;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     */
+    public short getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     */
+    public void setValue(short value) {
+        this.value = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HeartRateT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HeartRateT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HeartRateT.java	(revision 0)
@@ -0,0 +1,71 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for HeartRate_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HeartRate_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Target_t">
+ *       &lt;sequence>
+ *         &lt;element name="HeartRateZone" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Zone_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HeartRate_t", propOrder = {
+    "heartRateZone"
+})
+public class HeartRateT
+    extends TargetT
+{
+
+    @XmlElement(name = "HeartRateZone", required = true)
+    protected ZoneT heartRateZone;
+
+    /**
+     * Gets the value of the heartRateZone property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ZoneT }
+     *     
+     */
+    public ZoneT getHeartRateZone() {
+        return heartRateZone;
+    }
+
+    /**
+     * Sets the value of the heartRateZone property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ZoneT }
+     *     
+     */
+    public void setHeartRateZone(ZoneT value) {
+        this.heartRateZone = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HeartRateValueT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HeartRateValueT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HeartRateValueT.java	(revision 0)
@@ -0,0 +1,42 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for HeartRateValue_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HeartRateValue_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HeartRateValue_t")
+@XmlSeeAlso({
+    HeartRateInBeatsPerMinuteT.class,
+    HeartRateAsPercentOfMaxT.class
+})
+public abstract class HeartRateValueT {
+
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HistoryFolderT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HistoryFolderT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HistoryFolderT.java	(revision 0)
@@ -0,0 +1,226 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for HistoryFolder_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HistoryFolder_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Folder" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HistoryFolder_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="ActivityRef" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}ActivityReference_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Week" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Week_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HistoryFolder_t", propOrder = {
+    "folder",
+    "activityRef",
+    "week",
+    "notes",
+    "extensions"
+})
+public class HistoryFolderT {
+
+    @XmlElement(name = "Folder")
+    protected List<HistoryFolderT> folder;
+    @XmlElement(name = "ActivityRef")
+    protected List<ActivityReferenceT> activityRef;
+    @XmlElement(name = "Week")
+    protected List<WeekT> week;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "Name", required = true)
+    protected String name;
+
+    /**
+     * Gets the value of the folder property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the folder property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getFolder().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link HistoryFolderT }
+     * 
+     * 
+     */
+    public List<HistoryFolderT> getFolder() {
+        if (folder == null) {
+            folder = new ArrayList<HistoryFolderT>();
+        }
+        return this.folder;
+    }
+
+    /**
+     * Gets the value of the activityRef property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the activityRef property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getActivityRef().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ActivityReferenceT }
+     * 
+     * 
+     */
+    public List<ActivityReferenceT> getActivityRef() {
+        if (activityRef == null) {
+            activityRef = new ArrayList<ActivityReferenceT>();
+        }
+        return this.activityRef;
+    }
+
+    /**
+     * Gets the value of the week property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the week property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getWeek().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link WeekT }
+     * 
+     * 
+     */
+    public List<WeekT> getWeek() {
+        if (week == null) {
+            week = new ArrayList<WeekT>();
+        }
+        return this.week;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/HistoryT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/HistoryT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/HistoryT.java	(revision 0)
@@ -0,0 +1,181 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for History_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="History_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Running" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HistoryFolder_t"/>
+ *         &lt;element name="Biking" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HistoryFolder_t"/>
+ *         &lt;element name="Other" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HistoryFolder_t"/>
+ *         &lt;element name="MultiSport" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}MultiSportFolder_t"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "History_t", propOrder = {
+    "running",
+    "biking",
+    "other",
+    "multiSport",
+    "extensions"
+})
+public class HistoryT {
+
+    @XmlElement(name = "Running", required = true)
+    protected HistoryFolderT running;
+    @XmlElement(name = "Biking", required = true)
+    protected HistoryFolderT biking;
+    @XmlElement(name = "Other", required = true)
+    protected HistoryFolderT other;
+    @XmlElement(name = "MultiSport", required = true)
+    protected MultiSportFolderT multiSport;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the running property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HistoryFolderT }
+     *     
+     */
+    public HistoryFolderT getRunning() {
+        return running;
+    }
+
+    /**
+     * Sets the value of the running property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HistoryFolderT }
+     *     
+     */
+    public void setRunning(HistoryFolderT value) {
+        this.running = value;
+    }
+
+    /**
+     * Gets the value of the biking property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HistoryFolderT }
+     *     
+     */
+    public HistoryFolderT getBiking() {
+        return biking;
+    }
+
+    /**
+     * Sets the value of the biking property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HistoryFolderT }
+     *     
+     */
+    public void setBiking(HistoryFolderT value) {
+        this.biking = value;
+    }
+
+    /**
+     * Gets the value of the other property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HistoryFolderT }
+     *     
+     */
+    public HistoryFolderT getOther() {
+        return other;
+    }
+
+    /**
+     * Sets the value of the other property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HistoryFolderT }
+     *     
+     */
+    public void setOther(HistoryFolderT value) {
+        this.other = value;
+    }
+
+    /**
+     * Gets the value of the multiSport property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link MultiSportFolderT }
+     *     
+     */
+    public MultiSportFolderT getMultiSport() {
+        return multiSport;
+    }
+
+    /**
+     * Sets the value of the multiSport property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link MultiSportFolderT }
+     *     
+     */
+    public void setMultiSport(MultiSportFolderT value) {
+        this.multiSport = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/IntensityT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/IntensityT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/IntensityT.java	(revision 0)
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Intensity_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="Intensity_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Active"/>
+ *     &lt;enumeration value="Resting"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "Intensity_t")
+@XmlEnum
+public enum IntensityT {
+
+    @XmlEnumValue("Active")
+    ACTIVE("Active"),
+    @XmlEnumValue("Resting")
+    RESTING("Resting");
+    private final String value;
+
+    IntensityT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static IntensityT fromValue(String v) {
+        for (IntensityT c: IntensityT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/MultiSportFolderT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/MultiSportFolderT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/MultiSportFolderT.java	(revision 0)
@@ -0,0 +1,226 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for MultiSportFolder_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="MultiSportFolder_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Folder" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}MultiSportFolder_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="MultisportActivityRef" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}ActivityReference_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Week" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Week_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MultiSportFolder_t", propOrder = {
+    "folder",
+    "multisportActivityRef",
+    "week",
+    "notes",
+    "extensions"
+})
+public class MultiSportFolderT {
+
+    @XmlElement(name = "Folder")
+    protected List<MultiSportFolderT> folder;
+    @XmlElement(name = "MultisportActivityRef")
+    protected List<ActivityReferenceT> multisportActivityRef;
+    @XmlElement(name = "Week")
+    protected List<WeekT> week;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "Name", required = true)
+    protected String name;
+
+    /**
+     * Gets the value of the folder property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the folder property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getFolder().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link MultiSportFolderT }
+     * 
+     * 
+     */
+    public List<MultiSportFolderT> getFolder() {
+        if (folder == null) {
+            folder = new ArrayList<MultiSportFolderT>();
+        }
+        return this.folder;
+    }
+
+    /**
+     * Gets the value of the multisportActivityRef property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the multisportActivityRef property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getMultisportActivityRef().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ActivityReferenceT }
+     * 
+     * 
+     */
+    public List<ActivityReferenceT> getMultisportActivityRef() {
+        if (multisportActivityRef == null) {
+            multisportActivityRef = new ArrayList<ActivityReferenceT>();
+        }
+        return this.multisportActivityRef;
+    }
+
+    /**
+     * Gets the value of the week property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the week property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getWeek().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link WeekT }
+     * 
+     * 
+     */
+    public List<WeekT> getWeek() {
+        if (week == null) {
+            week = new ArrayList<WeekT>();
+        }
+        return this.week;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/MultiSportSessionT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/MultiSportSessionT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/MultiSportSessionT.java	(revision 0)
@@ -0,0 +1,163 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for MultiSportSession_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="MultiSportSession_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Id" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
+ *         &lt;element name="FirstSport" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}FirstSport_t"/>
+ *         &lt;element name="NextSport" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}NextSport_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MultiSportSession_t", propOrder = {
+    "id",
+    "firstSport",
+    "nextSport",
+    "notes"
+})
+public class MultiSportSessionT {
+
+    @XmlElement(name = "Id", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar id;
+    @XmlElement(name = "FirstSport", required = true)
+    protected FirstSportT firstSport;
+    @XmlElement(name = "NextSport")
+    protected List<NextSportT> nextSport;
+    @XmlElement(name = "Notes")
+    protected String notes;
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setId(XMLGregorianCalendar value) {
+        this.id = value;
+    }
+
+    /**
+     * Gets the value of the firstSport property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FirstSportT }
+     *     
+     */
+    public FirstSportT getFirstSport() {
+        return firstSport;
+    }
+
+    /**
+     * Sets the value of the firstSport property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FirstSportT }
+     *     
+     */
+    public void setFirstSport(FirstSportT value) {
+        this.firstSport = value;
+    }
+
+    /**
+     * Gets the value of the nextSport property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the nextSport property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getNextSport().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link NextSportT }
+     * 
+     * 
+     */
+    public List<NextSportT> getNextSport() {
+        if (nextSport == null) {
+            nextSport = new ArrayList<NextSportT>();
+        }
+        return this.nextSport;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/NameKeyReferenceT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/NameKeyReferenceT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/NameKeyReferenceT.java	(revision 0)
@@ -0,0 +1,72 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for NameKeyReference_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NameKeyReference_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Id" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}RestrictedToken_t"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NameKeyReference_t", propOrder = {
+    "id"
+})
+public class NameKeyReferenceT {
+
+    @XmlElement(name = "Id", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String id;
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/NextSportT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/NextSportT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/NextSportT.java	(revision 0)
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for NextSport_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NextSport_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Transition" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}ActivityLap_t" minOccurs="0"/>
+ *         &lt;element name="Activity" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Activity_t"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NextSport_t", propOrder = {
+    "transition",
+    "activity"
+})
+public class NextSportT {
+
+    @XmlElement(name = "Transition")
+    protected ActivityLapT transition;
+    @XmlElement(name = "Activity", required = true)
+    protected ActivityT activity;
+
+    /**
+     * Gets the value of the transition property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ActivityLapT }
+     *     
+     */
+    public ActivityLapT getTransition() {
+        return transition;
+    }
+
+    /**
+     * Sets the value of the transition property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ActivityLapT }
+     *     
+     */
+    public void setTransition(ActivityLapT value) {
+        this.transition = value;
+    }
+
+    /**
+     * Gets the value of the activity property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ActivityT }
+     *     
+     */
+    public ActivityT getActivity() {
+        return activity;
+    }
+
+    /**
+     * Sets the value of the activity property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ActivityT }
+     *     
+     */
+    public void setActivity(ActivityT value) {
+        this.activity = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/NoneT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/NoneT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/NoneT.java	(revision 0)
@@ -0,0 +1,39 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for None_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="None_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Target_t">
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "None_t")
+public class NoneT
+    extends TargetT
+{
+
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ObjectFactory.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ObjectFactory.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ObjectFactory.java	(revision 0)
@@ -0,0 +1,476 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.openstreetmap.josm.io.tcx package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _TrainingCenterDatabase_QNAME = new QName("http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2", "TrainingCenterDatabase");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.openstreetmap.josm.io.tcx
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link NameKeyReferenceT }
+     * 
+     */
+    public NameKeyReferenceT createNameKeyReferenceT() {
+        return new NameKeyReferenceT();
+    }
+
+    /**
+     * Create an instance of {@link CourseListT }
+     * 
+     */
+    public CourseListT createCourseListT() {
+        return new CourseListT();
+    }
+
+    /**
+     * Create an instance of {@link RepeatT }
+     * 
+     */
+    public RepeatT createRepeatT() {
+        return new RepeatT();
+    }
+
+    /**
+     * Create an instance of {@link SpeedT }
+     * 
+     */
+    public SpeedT createSpeedT() {
+        return new SpeedT();
+    }
+
+    /**
+     * Create an instance of {@link HeartRateAsPercentOfMaxT }
+     * 
+     */
+    public HeartRateAsPercentOfMaxT createHeartRateAsPercentOfMaxT() {
+        return new HeartRateAsPercentOfMaxT();
+    }
+
+    /**
+     * Create an instance of {@link NoneT }
+     * 
+     */
+    public NoneT createNoneT() {
+        return new NoneT();
+    }
+
+    /**
+     * Create an instance of {@link CourseFolderT }
+     * 
+     */
+    public CourseFolderT createCourseFolderT() {
+        return new CourseFolderT();
+    }
+
+    /**
+     * Create an instance of {@link TrackT }
+     * 
+     */
+    public TrackT createTrackT() {
+        return new TrackT();
+    }
+
+    /**
+     * Create an instance of {@link PredefinedSpeedZoneT }
+     * 
+     */
+    public PredefinedSpeedZoneT createPredefinedSpeedZoneT() {
+        return new PredefinedSpeedZoneT();
+    }
+
+    /**
+     * Create an instance of {@link CadenceT }
+     * 
+     */
+    public CadenceT createCadenceT() {
+        return new CadenceT();
+    }
+
+    /**
+     * Create an instance of {@link WorkoutFolderT }
+     * 
+     */
+    public WorkoutFolderT createWorkoutFolderT() {
+        return new WorkoutFolderT();
+    }
+
+    /**
+     * Create an instance of {@link QuickWorkoutT }
+     * 
+     */
+    public QuickWorkoutT createQuickWorkoutT() {
+        return new QuickWorkoutT();
+    }
+
+    /**
+     * Create an instance of {@link ActivityReferenceT }
+     * 
+     */
+    public ActivityReferenceT createActivityReferenceT() {
+        return new ActivityReferenceT();
+    }
+
+    /**
+     * Create an instance of {@link VersionT }
+     * 
+     */
+    public VersionT createVersionT() {
+        return new VersionT();
+    }
+
+    /**
+     * Create an instance of {@link WorkoutListT }
+     * 
+     */
+    public WorkoutListT createWorkoutListT() {
+        return new WorkoutListT();
+    }
+
+    /**
+     * Create an instance of {@link HeartRateInBeatsPerMinuteT }
+     * 
+     */
+    public HeartRateInBeatsPerMinuteT createHeartRateInBeatsPerMinuteT() {
+        return new HeartRateInBeatsPerMinuteT();
+    }
+
+    /**
+     * Create an instance of {@link PositionT }
+     * 
+     */
+    public PositionT createPositionT() {
+        return new PositionT();
+    }
+
+    /**
+     * Create an instance of {@link HistoryT }
+     * 
+     */
+    public HistoryT createHistoryT() {
+        return new HistoryT();
+    }
+
+    /**
+     * Create an instance of {@link ApplicationT }
+     * 
+     */
+    public ApplicationT createApplicationT() {
+        return new ApplicationT();
+    }
+
+    /**
+     * Create an instance of {@link DeviceT }
+     * 
+     */
+    public DeviceT createDeviceT() {
+        return new DeviceT();
+    }
+
+    /**
+     * Create an instance of {@link ExtensionsT }
+     * 
+     */
+    public ExtensionsT createExtensionsT() {
+        return new ExtensionsT();
+    }
+
+    /**
+     * Create an instance of {@link TimeT }
+     * 
+     */
+    public TimeT createTimeT() {
+        return new TimeT();
+    }
+
+    /**
+     * Create an instance of {@link WorkoutsT }
+     * 
+     */
+    public WorkoutsT createWorkoutsT() {
+        return new WorkoutsT();
+    }
+
+    /**
+     * Create an instance of {@link ActivityLapT }
+     * 
+     */
+    public ActivityLapT createActivityLapT() {
+        return new ActivityLapT();
+    }
+
+    /**
+     * Create an instance of {@link MultiSportSessionT }
+     * 
+     */
+    public MultiSportSessionT createMultiSportSessionT() {
+        return new MultiSportSessionT();
+    }
+
+    /**
+     * Create an instance of {@link BuildT }
+     * 
+     */
+    public BuildT createBuildT() {
+        return new BuildT();
+    }
+
+    /**
+     * Create an instance of {@link ActivityT }
+     * 
+     */
+    public ActivityT createActivityT() {
+        return new ActivityT();
+    }
+
+    /**
+     * Create an instance of {@link TrainingT }
+     * 
+     */
+    public TrainingT createTrainingT() {
+        return new TrainingT();
+    }
+
+    /**
+     * Create an instance of {@link PlanT }
+     * 
+     */
+    public PlanT createPlanT() {
+        return new PlanT();
+    }
+
+    /**
+     * Create an instance of {@link TrainingCenterDatabaseT }
+     * 
+     */
+    public TrainingCenterDatabaseT createTrainingCenterDatabaseT() {
+        return new TrainingCenterDatabaseT();
+    }
+
+    /**
+     * Create an instance of {@link FoldersT }
+     * 
+     */
+    public FoldersT createFoldersT() {
+        return new FoldersT();
+    }
+
+    /**
+     * Create an instance of {@link UserInitiatedT }
+     * 
+     */
+    public UserInitiatedT createUserInitiatedT() {
+        return new UserInitiatedT();
+    }
+
+    /**
+     * Create an instance of {@link MultiSportFolderT }
+     * 
+     */
+    public MultiSportFolderT createMultiSportFolderT() {
+        return new MultiSportFolderT();
+    }
+
+    /**
+     * Create an instance of {@link ActivityListT }
+     * 
+     */
+    public ActivityListT createActivityListT() {
+        return new ActivityListT();
+    }
+
+    /**
+     * Create an instance of {@link CustomHeartRateZoneT }
+     * 
+     */
+    public CustomHeartRateZoneT createCustomHeartRateZoneT() {
+        return new CustomHeartRateZoneT();
+    }
+
+    /**
+     * Create an instance of {@link TrackpointT }
+     * 
+     */
+    public TrackpointT createTrackpointT() {
+        return new TrackpointT();
+    }
+
+    /**
+     * Create an instance of {@link CourseT }
+     * 
+     */
+    public CourseT createCourseT() {
+        return new CourseT();
+    }
+
+    /**
+     * Create an instance of {@link CourseLapT }
+     * 
+     */
+    public CourseLapT createCourseLapT() {
+        return new CourseLapT();
+    }
+
+    /**
+     * Create an instance of {@link NextSportT }
+     * 
+     */
+    public NextSportT createNextSportT() {
+        return new NextSportT();
+    }
+
+    /**
+     * Create an instance of {@link DistanceT }
+     * 
+     */
+    public DistanceT createDistanceT() {
+        return new DistanceT();
+    }
+
+    /**
+     * Create an instance of {@link FirstSportT }
+     * 
+     */
+    public FirstSportT createFirstSportT() {
+        return new FirstSportT();
+    }
+
+    /**
+     * Create an instance of {@link HeartRateT }
+     * 
+     */
+    public HeartRateT createHeartRateT() {
+        return new HeartRateT();
+    }
+
+    /**
+     * Create an instance of {@link CaloriesBurnedT }
+     * 
+     */
+    public CaloriesBurnedT createCaloriesBurnedT() {
+        return new CaloriesBurnedT();
+    }
+
+    /**
+     * Create an instance of {@link StepT }
+     * 
+     */
+    public StepT createStepT() {
+        return new StepT();
+    }
+
+    /**
+     * Create an instance of {@link HeartRateBelowT }
+     * 
+     */
+    public HeartRateBelowT createHeartRateBelowT() {
+        return new HeartRateBelowT();
+    }
+
+    /**
+     * Create an instance of {@link HeartRateAboveT }
+     * 
+     */
+    public HeartRateAboveT createHeartRateAboveT() {
+        return new HeartRateAboveT();
+    }
+
+    /**
+     * Create an instance of {@link CoursesT }
+     * 
+     */
+    public CoursesT createCoursesT() {
+        return new CoursesT();
+    }
+
+    /**
+     * Create an instance of {@link WorkoutT }
+     * 
+     */
+    public WorkoutT createWorkoutT() {
+        return new WorkoutT();
+    }
+
+    /**
+     * Create an instance of {@link WeekT }
+     * 
+     */
+    public WeekT createWeekT() {
+        return new WeekT();
+    }
+
+    /**
+     * Create an instance of {@link CustomSpeedZoneT }
+     * 
+     */
+    public CustomSpeedZoneT createCustomSpeedZoneT() {
+        return new CustomSpeedZoneT();
+    }
+
+    /**
+     * Create an instance of {@link HistoryFolderT }
+     * 
+     */
+    public HistoryFolderT createHistoryFolderT() {
+        return new HistoryFolderT();
+    }
+
+    /**
+     * Create an instance of {@link PredefinedHeartRateZoneT }
+     * 
+     */
+    public PredefinedHeartRateZoneT createPredefinedHeartRateZoneT() {
+        return new PredefinedHeartRateZoneT();
+    }
+
+    /**
+     * Create an instance of {@link CoursePointT }
+     * 
+     */
+    public CoursePointT createCoursePointT() {
+        return new CoursePointT();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link TrainingCenterDatabaseT }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2", name = "TrainingCenterDatabase")
+    public JAXBElement<TrainingCenterDatabaseT> createTrainingCenterDatabase(TrainingCenterDatabaseT value) {
+        return new JAXBElement<TrainingCenterDatabaseT>(_TrainingCenterDatabase_QNAME, TrainingCenterDatabaseT.class, null, value);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/PlanT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/PlanT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/PlanT.java	(revision 0)
@@ -0,0 +1,147 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for Plan_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Plan_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Name" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}RestrictedToken_t" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Type" use="required" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}TrainingType_t" />
+ *       &lt;attribute name="IntervalWorkout" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Plan_t", propOrder = {
+    "name",
+    "extensions"
+})
+public class PlanT {
+
+    @XmlElement(name = "Name")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String name;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "Type", required = true)
+    protected TrainingTypeT type;
+    @XmlAttribute(name = "IntervalWorkout", required = true)
+    protected boolean intervalWorkout;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link TrainingTypeT }
+     *     
+     */
+    public TrainingTypeT getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link TrainingTypeT }
+     *     
+     */
+    public void setType(TrainingTypeT value) {
+        this.type = value;
+    }
+
+    /**
+     * Gets the value of the intervalWorkout property.
+     * 
+     */
+    public boolean isIntervalWorkout() {
+        return intervalWorkout;
+    }
+
+    /**
+     * Sets the value of the intervalWorkout property.
+     * 
+     */
+    public void setIntervalWorkout(boolean value) {
+        this.intervalWorkout = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/PositionT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/PositionT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/PositionT.java	(revision 0)
@@ -0,0 +1,81 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Position_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Position_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="LatitudeDegrees" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}DegreesLatitude_t"/>
+ *         &lt;element name="LongitudeDegrees" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}DegreesLongitude_t"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Position_t", propOrder = {
+    "latitudeDegrees",
+    "longitudeDegrees"
+})
+public class PositionT {
+
+    @XmlElement(name = "LatitudeDegrees")
+    protected double latitudeDegrees;
+    @XmlElement(name = "LongitudeDegrees")
+    protected double longitudeDegrees;
+
+    /**
+     * Gets the value of the latitudeDegrees property.
+     * 
+     */
+    public double getLatitudeDegrees() {
+        return latitudeDegrees;
+    }
+
+    /**
+     * Sets the value of the latitudeDegrees property.
+     * 
+     */
+    public void setLatitudeDegrees(double value) {
+        this.latitudeDegrees = value;
+    }
+
+    /**
+     * Gets the value of the longitudeDegrees property.
+     * 
+     */
+    public double getLongitudeDegrees() {
+        return longitudeDegrees;
+    }
+
+    /**
+     * Sets the value of the longitudeDegrees property.
+     * 
+     */
+    public void setLongitudeDegrees(double value) {
+        this.longitudeDegrees = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/PredefinedHeartRateZoneT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/PredefinedHeartRateZoneT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/PredefinedHeartRateZoneT.java	(revision 0)
@@ -0,0 +1,63 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PredefinedHeartRateZone_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PredefinedHeartRateZone_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Zone_t">
+ *       &lt;sequence>
+ *         &lt;element name="Number" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateZoneNumbers_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PredefinedHeartRateZone_t", propOrder = {
+    "number"
+})
+public class PredefinedHeartRateZoneT
+    extends ZoneT
+{
+
+    @XmlElement(name = "Number")
+    protected int number;
+
+    /**
+     * Gets the value of the number property.
+     * 
+     */
+    public int getNumber() {
+        return number;
+    }
+
+    /**
+     * Sets the value of the number property.
+     * 
+     */
+    public void setNumber(int value) {
+        this.number = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/PredefinedSpeedZoneT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/PredefinedSpeedZoneT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/PredefinedSpeedZoneT.java	(revision 0)
@@ -0,0 +1,63 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PredefinedSpeedZone_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PredefinedSpeedZone_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Zone_t">
+ *       &lt;sequence>
+ *         &lt;element name="Number" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}SpeedZoneNumbers_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PredefinedSpeedZone_t", propOrder = {
+    "number"
+})
+public class PredefinedSpeedZoneT
+    extends ZoneT
+{
+
+    @XmlElement(name = "Number")
+    protected int number;
+
+    /**
+     * Gets the value of the number property.
+     * 
+     */
+    public int getNumber() {
+        return number;
+    }
+
+    /**
+     * Sets the value of the number property.
+     * 
+     */
+    public void setNumber(int value) {
+        this.number = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/QuickWorkoutT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/QuickWorkoutT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/QuickWorkoutT.java	(revision 0)
@@ -0,0 +1,81 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for QuickWorkout_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="QuickWorkout_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="TotalTimeSeconds" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *         &lt;element name="DistanceMeters" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "QuickWorkout_t", propOrder = {
+    "totalTimeSeconds",
+    "distanceMeters"
+})
+public class QuickWorkoutT {
+
+    @XmlElement(name = "TotalTimeSeconds")
+    protected double totalTimeSeconds;
+    @XmlElement(name = "DistanceMeters")
+    protected double distanceMeters;
+
+    /**
+     * Gets the value of the totalTimeSeconds property.
+     * 
+     */
+    public double getTotalTimeSeconds() {
+        return totalTimeSeconds;
+    }
+
+    /**
+     * Sets the value of the totalTimeSeconds property.
+     * 
+     */
+    public void setTotalTimeSeconds(double value) {
+        this.totalTimeSeconds = value;
+    }
+
+    /**
+     * Gets the value of the distanceMeters property.
+     * 
+     */
+    public double getDistanceMeters() {
+        return distanceMeters;
+    }
+
+    /**
+     * Sets the value of the distanceMeters property.
+     * 
+     */
+    public void setDistanceMeters(double value) {
+        this.distanceMeters = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/RepeatT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/RepeatT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/RepeatT.java	(revision 0)
@@ -0,0 +1,98 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Repeat_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Repeat_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractStep_t">
+ *       &lt;sequence>
+ *         &lt;element name="Repetitions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Repetitions_t"/>
+ *         &lt;element name="Child" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractStep_t" maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Repeat_t", propOrder = {
+    "repetitions",
+    "child"
+})
+public class RepeatT
+    extends AbstractStepT
+{
+
+    @XmlElement(name = "Repetitions")
+    protected int repetitions;
+    @XmlElement(name = "Child", required = true)
+    protected List<AbstractStepT> child;
+
+    /**
+     * Gets the value of the repetitions property.
+     * 
+     */
+    public int getRepetitions() {
+        return repetitions;
+    }
+
+    /**
+     * Sets the value of the repetitions property.
+     * 
+     */
+    public void setRepetitions(int value) {
+        this.repetitions = value;
+    }
+
+    /**
+     * Gets the value of the child property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the child property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getChild().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AbstractStepT }
+     * 
+     * 
+     */
+    public List<AbstractStepT> getChild() {
+        if (child == null) {
+            child = new ArrayList<AbstractStepT>();
+        }
+        return this.child;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/SensorStateT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/SensorStateT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/SensorStateT.java	(revision 0)
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for SensorState_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="SensorState_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Present"/>
+ *     &lt;enumeration value="Absent"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "SensorState_t")
+@XmlEnum
+public enum SensorStateT {
+
+    @XmlEnumValue("Present")
+    PRESENT("Present"),
+    @XmlEnumValue("Absent")
+    ABSENT("Absent");
+    private final String value;
+
+    SensorStateT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static SensorStateT fromValue(String v) {
+        for (SensorStateT c: SensorStateT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/SpeedT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/SpeedT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/SpeedT.java	(revision 0)
@@ -0,0 +1,71 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Speed_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Speed_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Target_t">
+ *       &lt;sequence>
+ *         &lt;element name="SpeedZone" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Zone_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Speed_t", propOrder = {
+    "speedZone"
+})
+public class SpeedT
+    extends TargetT
+{
+
+    @XmlElement(name = "SpeedZone", required = true)
+    protected ZoneT speedZone;
+
+    /**
+     * Gets the value of the speedZone property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ZoneT }
+     *     
+     */
+    public ZoneT getSpeedZone() {
+        return speedZone;
+    }
+
+    /**
+     * Sets the value of the speedZone property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ZoneT }
+     *     
+     */
+    public void setSpeedZone(ZoneT value) {
+        this.speedZone = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/SpeedTypeT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/SpeedTypeT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/SpeedTypeT.java	(revision 0)
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for SpeedType_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="SpeedType_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Pace"/>
+ *     &lt;enumeration value="Speed"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "SpeedType_t")
+@XmlEnum
+public enum SpeedTypeT {
+
+    @XmlEnumValue("Pace")
+    PACE("Pace"),
+    @XmlEnumValue("Speed")
+    SPEED("Speed");
+    private final String value;
+
+    SpeedTypeT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static SpeedTypeT fromValue(String v) {
+        for (SpeedTypeT c: SpeedTypeT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/SportT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/SportT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/SportT.java	(revision 0)
@@ -0,0 +1,61 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Sport_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="Sport_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Running"/>
+ *     &lt;enumeration value="Biking"/>
+ *     &lt;enumeration value="Other"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "Sport_t")
+@XmlEnum
+public enum SportT {
+
+    @XmlEnumValue("Running")
+    RUNNING("Running"),
+    @XmlEnumValue("Biking")
+    BIKING("Biking"),
+    @XmlEnumValue("Other")
+    OTHER("Other");
+    private final String value;
+
+    SportT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static SportT fromValue(String v) {
+        for (SportT c: SportT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/StepT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/StepT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/StepT.java	(revision 0)
@@ -0,0 +1,158 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for Step_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Step_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractStep_t">
+ *       &lt;sequence>
+ *         &lt;element name="Name" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}RestrictedToken_t" minOccurs="0"/>
+ *         &lt;element name="Duration" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Duration_t"/>
+ *         &lt;element name="Intensity" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Intensity_t"/>
+ *         &lt;element name="Target" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Target_t"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Step_t", propOrder = {
+    "name",
+    "duration",
+    "intensity",
+    "target"
+})
+public class StepT
+    extends AbstractStepT
+{
+
+    @XmlElement(name = "Name")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String name;
+    @XmlElement(name = "Duration", required = true)
+    protected DurationT duration;
+    @XmlElement(name = "Intensity", required = true)
+    protected IntensityT intensity;
+    @XmlElement(name = "Target", required = true)
+    protected TargetT target;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the duration property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DurationT }
+     *     
+     */
+    public DurationT getDuration() {
+        return duration;
+    }
+
+    /**
+     * Sets the value of the duration property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DurationT }
+     *     
+     */
+    public void setDuration(DurationT value) {
+        this.duration = value;
+    }
+
+    /**
+     * Gets the value of the intensity property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link IntensityT }
+     *     
+     */
+    public IntensityT getIntensity() {
+        return intensity;
+    }
+
+    /**
+     * Sets the value of the intensity property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link IntensityT }
+     *     
+     */
+    public void setIntensity(IntensityT value) {
+        this.intensity = value;
+    }
+
+    /**
+     * Gets the value of the target property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link TargetT }
+     *     
+     */
+    public TargetT getTarget() {
+        return target;
+    }
+
+    /**
+     * Sets the value of the target property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link TargetT }
+     *     
+     */
+    public void setTarget(TargetT value) {
+        this.target = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TargetT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TargetT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TargetT.java	(revision 0)
@@ -0,0 +1,44 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Target_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Target_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Target_t")
+@XmlSeeAlso({
+    NoneT.class,
+    HeartRateT.class,
+    CadenceT.class,
+    SpeedT.class
+})
+public abstract class TargetT {
+
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TimeT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TimeT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TimeT.java	(revision 0)
@@ -0,0 +1,65 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Time_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Time_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Duration_t">
+ *       &lt;sequence>
+ *         &lt;element name="Seconds" type="{http://www.w3.org/2001/XMLSchema}unsignedShort"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Time_t", propOrder = {
+    "seconds"
+})
+public class TimeT
+    extends DurationT
+{
+
+    @XmlElement(name = "Seconds")
+    @XmlSchemaType(name = "unsignedShort")
+    protected int seconds;
+
+    /**
+     * Gets the value of the seconds property.
+     * 
+     */
+    public int getSeconds() {
+        return seconds;
+    }
+
+    /**
+     * Sets the value of the seconds property.
+     * 
+     */
+    public void setSeconds(int value) {
+        this.seconds = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TrackT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TrackT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TrackT.java	(revision 0)
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Track_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Track_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Trackpoint" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Trackpoint_t" maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Track_t", propOrder = {
+    "trackpoint"
+})
+public class TrackT {
+
+    @XmlElement(name = "Trackpoint", required = true)
+    protected List<TrackpointT> trackpoint;
+
+    /**
+     * Gets the value of the trackpoint property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the trackpoint property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getTrackpoint().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link TrackpointT }
+     * 
+     * 
+     */
+    public List<TrackpointT> getTrackpoint() {
+        if (trackpoint == null) {
+            trackpoint = new ArrayList<TrackpointT>();
+        }
+        return this.trackpoint;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TrackpointT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TrackpointT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TrackpointT.java	(revision 0)
@@ -0,0 +1,268 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for Trackpoint_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Trackpoint_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Time" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
+ *         &lt;element name="Position" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Position_t" minOccurs="0"/>
+ *         &lt;element name="AltitudeMeters" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
+ *         &lt;element name="DistanceMeters" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
+ *         &lt;element name="HeartRateBpm" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}HeartRateInBeatsPerMinute_t" minOccurs="0"/>
+ *         &lt;element name="Cadence" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CadenceValue_t" minOccurs="0"/>
+ *         &lt;element name="SensorState" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}SensorState_t" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Trackpoint_t", propOrder = {
+    "time",
+    "position",
+    "altitudeMeters",
+    "distanceMeters",
+    "heartRateBpm",
+    "cadence",
+    "sensorState",
+    "extensions"
+})
+public class TrackpointT {
+
+    @XmlElement(name = "Time", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar time;
+    @XmlElement(name = "Position")
+    protected PositionT position;
+    @XmlElement(name = "AltitudeMeters")
+    protected Double altitudeMeters;
+    @XmlElement(name = "DistanceMeters")
+    protected Double distanceMeters;
+    @XmlElement(name = "HeartRateBpm")
+    protected HeartRateInBeatsPerMinuteT heartRateBpm;
+    @XmlElement(name = "Cadence")
+    protected Short cadence;
+    @XmlElement(name = "SensorState")
+    protected SensorStateT sensorState;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the time property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getTime() {
+        return time;
+    }
+
+    /**
+     * Sets the value of the time property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setTime(XMLGregorianCalendar value) {
+        this.time = value;
+    }
+
+    /**
+     * Gets the value of the position property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PositionT }
+     *     
+     */
+    public PositionT getPosition() {
+        return position;
+    }
+
+    /**
+     * Sets the value of the position property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PositionT }
+     *     
+     */
+    public void setPosition(PositionT value) {
+        this.position = value;
+    }
+
+    /**
+     * Gets the value of the altitudeMeters property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Double }
+     *     
+     */
+    public Double getAltitudeMeters() {
+        return altitudeMeters;
+    }
+
+    /**
+     * Sets the value of the altitudeMeters property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Double }
+     *     
+     */
+    public void setAltitudeMeters(Double value) {
+        this.altitudeMeters = value;
+    }
+
+    /**
+     * Gets the value of the distanceMeters property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Double }
+     *     
+     */
+    public Double getDistanceMeters() {
+        return distanceMeters;
+    }
+
+    /**
+     * Sets the value of the distanceMeters property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Double }
+     *     
+     */
+    public void setDistanceMeters(Double value) {
+        this.distanceMeters = value;
+    }
+
+    /**
+     * Gets the value of the heartRateBpm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public HeartRateInBeatsPerMinuteT getHeartRateBpm() {
+        return heartRateBpm;
+    }
+
+    /**
+     * Sets the value of the heartRateBpm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HeartRateInBeatsPerMinuteT }
+     *     
+     */
+    public void setHeartRateBpm(HeartRateInBeatsPerMinuteT value) {
+        this.heartRateBpm = value;
+    }
+
+    /**
+     * Gets the value of the cadence property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Short }
+     *     
+     */
+    public Short getCadence() {
+        return cadence;
+    }
+
+    /**
+     * Sets the value of the cadence property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Short }
+     *     
+     */
+    public void setCadence(Short value) {
+        this.cadence = value;
+    }
+
+    /**
+     * Gets the value of the sensorState property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SensorStateT }
+     *     
+     */
+    public SensorStateT getSensorState() {
+        return sensorState;
+    }
+
+    /**
+     * Sets the value of the sensorState property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SensorStateT }
+     *     
+     */
+    public void setSensorState(SensorStateT value) {
+        this.sensorState = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TrainingCenterDatabaseT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TrainingCenterDatabaseT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TrainingCenterDatabaseT.java	(revision 0)
@@ -0,0 +1,209 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TrainingCenterDatabase_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="TrainingCenterDatabase_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Folders" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Folders_t" minOccurs="0"/>
+ *         &lt;element name="Activities" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}ActivityList_t" minOccurs="0"/>
+ *         &lt;element name="Workouts" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}WorkoutList_t" minOccurs="0"/>
+ *         &lt;element name="Courses" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}CourseList_t" minOccurs="0"/>
+ *         &lt;element name="Author" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractSource_t" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TrainingCenterDatabase_t", propOrder = {
+    "folders",
+    "activities",
+    "workouts",
+    "courses",
+    "author",
+    "extensions"
+})
+public class TrainingCenterDatabaseT {
+
+    @XmlElement(name = "Folders")
+    protected FoldersT folders;
+    @XmlElement(name = "Activities")
+    protected ActivityListT activities;
+    @XmlElement(name = "Workouts")
+    protected WorkoutListT workouts;
+    @XmlElement(name = "Courses")
+    protected CourseListT courses;
+    @XmlElement(name = "Author")
+    protected AbstractSourceT author;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the folders property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FoldersT }
+     *     
+     */
+    public FoldersT getFolders() {
+        return folders;
+    }
+
+    /**
+     * Sets the value of the folders property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FoldersT }
+     *     
+     */
+    public void setFolders(FoldersT value) {
+        this.folders = value;
+    }
+
+    /**
+     * Gets the value of the activities property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ActivityListT }
+     *     
+     */
+    public ActivityListT getActivities() {
+        return activities;
+    }
+
+    /**
+     * Sets the value of the activities property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ActivityListT }
+     *     
+     */
+    public void setActivities(ActivityListT value) {
+        this.activities = value;
+    }
+
+    /**
+     * Gets the value of the workouts property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link WorkoutListT }
+     *     
+     */
+    public WorkoutListT getWorkouts() {
+        return workouts;
+    }
+
+    /**
+     * Sets the value of the workouts property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link WorkoutListT }
+     *     
+     */
+    public void setWorkouts(WorkoutListT value) {
+        this.workouts = value;
+    }
+
+    /**
+     * Gets the value of the courses property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CourseListT }
+     *     
+     */
+    public CourseListT getCourses() {
+        return courses;
+    }
+
+    /**
+     * Sets the value of the courses property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CourseListT }
+     *     
+     */
+    public void setCourses(CourseListT value) {
+        this.courses = value;
+    }
+
+    /**
+     * Gets the value of the author property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public AbstractSourceT getAuthor() {
+        return author;
+    }
+
+    /**
+     * Sets the value of the author property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public void setAuthor(AbstractSourceT value) {
+        this.author = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TrainingT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TrainingT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TrainingT.java	(revision 0)
@@ -0,0 +1,117 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Training_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Training_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="QuickWorkoutResults" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}QuickWorkout_t" minOccurs="0"/>
+ *         &lt;element name="Plan" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Plan_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="VirtualPartner" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Training_t", propOrder = {
+    "quickWorkoutResults",
+    "plan"
+})
+public class TrainingT {
+
+    @XmlElement(name = "QuickWorkoutResults")
+    protected QuickWorkoutT quickWorkoutResults;
+    @XmlElement(name = "Plan")
+    protected PlanT plan;
+    @XmlAttribute(name = "VirtualPartner", required = true)
+    protected boolean virtualPartner;
+
+    /**
+     * Gets the value of the quickWorkoutResults property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QuickWorkoutT }
+     *     
+     */
+    public QuickWorkoutT getQuickWorkoutResults() {
+        return quickWorkoutResults;
+    }
+
+    /**
+     * Sets the value of the quickWorkoutResults property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QuickWorkoutT }
+     *     
+     */
+    public void setQuickWorkoutResults(QuickWorkoutT value) {
+        this.quickWorkoutResults = value;
+    }
+
+    /**
+     * Gets the value of the plan property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PlanT }
+     *     
+     */
+    public PlanT getPlan() {
+        return plan;
+    }
+
+    /**
+     * Sets the value of the plan property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PlanT }
+     *     
+     */
+    public void setPlan(PlanT value) {
+        this.plan = value;
+    }
+
+    /**
+     * Gets the value of the virtualPartner property.
+     * 
+     */
+    public boolean isVirtualPartner() {
+        return virtualPartner;
+    }
+
+    /**
+     * Sets the value of the virtualPartner property.
+     * 
+     */
+    public void setVirtualPartner(boolean value) {
+        this.virtualPartner = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TrainingTypeT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TrainingTypeT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TrainingTypeT.java	(revision 0)
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TrainingType_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="TrainingType_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Workout"/>
+ *     &lt;enumeration value="Course"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "TrainingType_t")
+@XmlEnum
+public enum TrainingTypeT {
+
+    @XmlEnumValue("Workout")
+    WORKOUT("Workout"),
+    @XmlEnumValue("Course")
+    COURSE("Course");
+    private final String value;
+
+    TrainingTypeT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static TrainingTypeT fromValue(String v) {
+        for (TrainingTypeT c: TrainingTypeT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/TriggerMethodT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/TriggerMethodT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/TriggerMethodT.java	(revision 0)
@@ -0,0 +1,67 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TriggerMethod_t.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="TriggerMethod_t">
+ *   &lt;restriction base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Token_t">
+ *     &lt;enumeration value="Manual"/>
+ *     &lt;enumeration value="Distance"/>
+ *     &lt;enumeration value="Location"/>
+ *     &lt;enumeration value="Time"/>
+ *     &lt;enumeration value="HeartRate"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "TriggerMethod_t")
+@XmlEnum
+public enum TriggerMethodT {
+
+    @XmlEnumValue("Manual")
+    MANUAL("Manual"),
+    @XmlEnumValue("Distance")
+    DISTANCE("Distance"),
+    @XmlEnumValue("Location")
+    LOCATION("Location"),
+    @XmlEnumValue("Time")
+    TIME("Time"),
+    @XmlEnumValue("HeartRate")
+    HEART_RATE("HeartRate");
+    private final String value;
+
+    TriggerMethodT(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static TriggerMethodT fromValue(String v) {
+        for (TriggerMethodT c: TriggerMethodT.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/UserInitiatedT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/UserInitiatedT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/UserInitiatedT.java	(revision 0)
@@ -0,0 +1,39 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for UserInitiated_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="UserInitiated_t">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Duration_t">
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "UserInitiated_t")
+public class UserInitiatedT
+    extends DurationT
+{
+
+
+}
Index: src/org/openstreetmap/josm/io/tcx/VersionT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/VersionT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/VersionT.java	(revision 0)
@@ -0,0 +1,142 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Version_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Version_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="VersionMajor" type="{http://www.w3.org/2001/XMLSchema}unsignedShort"/>
+ *         &lt;element name="VersionMinor" type="{http://www.w3.org/2001/XMLSchema}unsignedShort"/>
+ *         &lt;element name="BuildMajor" type="{http://www.w3.org/2001/XMLSchema}unsignedShort" minOccurs="0"/>
+ *         &lt;element name="BuildMinor" type="{http://www.w3.org/2001/XMLSchema}unsignedShort" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Version_t", propOrder = {
+    "versionMajor",
+    "versionMinor",
+    "buildMajor",
+    "buildMinor"
+})
+public class VersionT {
+
+    @XmlElement(name = "VersionMajor")
+    @XmlSchemaType(name = "unsignedShort")
+    protected int versionMajor;
+    @XmlElement(name = "VersionMinor")
+    @XmlSchemaType(name = "unsignedShort")
+    protected int versionMinor;
+    @XmlElement(name = "BuildMajor")
+    @XmlSchemaType(name = "unsignedShort")
+    protected Integer buildMajor;
+    @XmlElement(name = "BuildMinor")
+    @XmlSchemaType(name = "unsignedShort")
+    protected Integer buildMinor;
+
+    /**
+     * Gets the value of the versionMajor property.
+     * 
+     */
+    public int getVersionMajor() {
+        return versionMajor;
+    }
+
+    /**
+     * Sets the value of the versionMajor property.
+     * 
+     */
+    public void setVersionMajor(int value) {
+        this.versionMajor = value;
+    }
+
+    /**
+     * Gets the value of the versionMinor property.
+     * 
+     */
+    public int getVersionMinor() {
+        return versionMinor;
+    }
+
+    /**
+     * Sets the value of the versionMinor property.
+     * 
+     */
+    public void setVersionMinor(int value) {
+        this.versionMinor = value;
+    }
+
+    /**
+     * Gets the value of the buildMajor property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Integer }
+     *     
+     */
+    public Integer getBuildMajor() {
+        return buildMajor;
+    }
+
+    /**
+     * Sets the value of the buildMajor property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Integer }
+     *     
+     */
+    public void setBuildMajor(Integer value) {
+        this.buildMajor = value;
+    }
+
+    /**
+     * Gets the value of the buildMinor property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Integer }
+     *     
+     */
+    public Integer getBuildMinor() {
+        return buildMinor;
+    }
+
+    /**
+     * Sets the value of the buildMinor property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Integer }
+     *     
+     */
+    public void setBuildMinor(Integer value) {
+        this.buildMinor = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/WeekT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/WeekT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/WeekT.java	(revision 0)
@@ -0,0 +1,100 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for Week_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Week_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="StartDay" use="required" type="{http://www.w3.org/2001/XMLSchema}date" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Week_t", propOrder = {
+    "notes"
+})
+public class WeekT {
+
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlAttribute(name = "StartDay", required = true)
+    @XmlSchemaType(name = "date")
+    protected XMLGregorianCalendar startDay;
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the startDay property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getStartDay() {
+        return startDay;
+    }
+
+    /**
+     * Sets the value of the startDay property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setStartDay(XMLGregorianCalendar value) {
+        this.startDay = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/WorkoutFolderT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/WorkoutFolderT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/WorkoutFolderT.java	(revision 0)
@@ -0,0 +1,165 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for WorkoutFolder_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="WorkoutFolder_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Folder" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}WorkoutFolder_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="WorkoutNameRef" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}NameKeyReference_t" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "WorkoutFolder_t", propOrder = {
+    "folder",
+    "workoutNameRef",
+    "extensions"
+})
+public class WorkoutFolderT {
+
+    @XmlElement(name = "Folder")
+    protected List<WorkoutFolderT> folder;
+    @XmlElement(name = "WorkoutNameRef")
+    protected List<NameKeyReferenceT> workoutNameRef;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "Name", required = true)
+    protected String name;
+
+    /**
+     * Gets the value of the folder property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the folder property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getFolder().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link WorkoutFolderT }
+     * 
+     * 
+     */
+    public List<WorkoutFolderT> getFolder() {
+        if (folder == null) {
+            folder = new ArrayList<WorkoutFolderT>();
+        }
+        return this.folder;
+    }
+
+    /**
+     * Gets the value of the workoutNameRef property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the workoutNameRef property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getWorkoutNameRef().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link NameKeyReferenceT }
+     * 
+     * 
+     */
+    public List<NameKeyReferenceT> getWorkoutNameRef() {
+        if (workoutNameRef == null) {
+            workoutNameRef = new ArrayList<NameKeyReferenceT>();
+        }
+        return this.workoutNameRef;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/WorkoutListT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/WorkoutListT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/WorkoutListT.java	(revision 0)
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for WorkoutList_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="WorkoutList_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Workout" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Workout_t" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "WorkoutList_t", propOrder = {
+    "workout"
+})
+public class WorkoutListT {
+
+    @XmlElement(name = "Workout")
+    protected List<WorkoutT> workout;
+
+    /**
+     * Gets the value of the workout property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the workout property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getWorkout().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link WorkoutT }
+     * 
+     * 
+     */
+    public List<WorkoutT> getWorkout() {
+        if (workout == null) {
+            workout = new ArrayList<WorkoutT>();
+        }
+        return this.workout;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/WorkoutT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/WorkoutT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/WorkoutT.java	(revision 0)
@@ -0,0 +1,255 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for Workout_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Workout_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Name" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}RestrictedToken_t"/>
+ *         &lt;element name="Step" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractStep_t" maxOccurs="unbounded"/>
+ *         &lt;element name="ScheduledOn" type="{http://www.w3.org/2001/XMLSchema}date" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="Creator" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}AbstractSource_t" minOccurs="0"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Sport" use="required" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Sport_t" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Workout_t", propOrder = {
+    "name",
+    "step",
+    "scheduledOn",
+    "notes",
+    "creator",
+    "extensions"
+})
+public class WorkoutT {
+
+    @XmlElement(name = "Name", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String name;
+    @XmlElement(name = "Step", required = true)
+    protected List<AbstractStepT> step;
+    @XmlElement(name = "ScheduledOn")
+    @XmlSchemaType(name = "date")
+    protected List<XMLGregorianCalendar> scheduledOn;
+    @XmlElement(name = "Notes")
+    protected String notes;
+    @XmlElement(name = "Creator")
+    protected AbstractSourceT creator;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+    @XmlAttribute(name = "Sport", required = true)
+    protected SportT sport;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the step property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the step property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getStep().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AbstractStepT }
+     * 
+     * 
+     */
+    public List<AbstractStepT> getStep() {
+        if (step == null) {
+            step = new ArrayList<AbstractStepT>();
+        }
+        return this.step;
+    }
+
+    /**
+     * Gets the value of the scheduledOn property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the scheduledOn property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getScheduledOn().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link XMLGregorianCalendar }
+     * 
+     * 
+     */
+    public List<XMLGregorianCalendar> getScheduledOn() {
+        if (scheduledOn == null) {
+            scheduledOn = new ArrayList<XMLGregorianCalendar>();
+        }
+        return this.scheduledOn;
+    }
+
+    /**
+     * Gets the value of the notes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getNotes() {
+        return notes;
+    }
+
+    /**
+     * Sets the value of the notes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setNotes(String value) {
+        this.notes = value;
+    }
+
+    /**
+     * Gets the value of the creator property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public AbstractSourceT getCreator() {
+        return creator;
+    }
+
+    /**
+     * Sets the value of the creator property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AbstractSourceT }
+     *     
+     */
+    public void setCreator(AbstractSourceT value) {
+        this.creator = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+    /**
+     * Gets the value of the sport property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SportT }
+     *     
+     */
+    public SportT getSport() {
+        return sport;
+    }
+
+    /**
+     * Sets the value of the sport property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SportT }
+     *     
+     */
+    public void setSport(SportT value) {
+        this.sport = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/WorkoutsT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/WorkoutsT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/WorkoutsT.java	(revision 0)
@@ -0,0 +1,153 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Workouts_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Workouts_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Running" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}WorkoutFolder_t"/>
+ *         &lt;element name="Biking" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}WorkoutFolder_t"/>
+ *         &lt;element name="Other" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}WorkoutFolder_t"/>
+ *         &lt;element name="Extensions" type="{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Extensions_t" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Workouts_t", propOrder = {
+    "running",
+    "biking",
+    "other",
+    "extensions"
+})
+public class WorkoutsT {
+
+    @XmlElement(name = "Running", required = true)
+    protected WorkoutFolderT running;
+    @XmlElement(name = "Biking", required = true)
+    protected WorkoutFolderT biking;
+    @XmlElement(name = "Other", required = true)
+    protected WorkoutFolderT other;
+    @XmlElement(name = "Extensions")
+    protected ExtensionsT extensions;
+
+    /**
+     * Gets the value of the running property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link WorkoutFolderT }
+     *     
+     */
+    public WorkoutFolderT getRunning() {
+        return running;
+    }
+
+    /**
+     * Sets the value of the running property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link WorkoutFolderT }
+     *     
+     */
+    public void setRunning(WorkoutFolderT value) {
+        this.running = value;
+    }
+
+    /**
+     * Gets the value of the biking property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link WorkoutFolderT }
+     *     
+     */
+    public WorkoutFolderT getBiking() {
+        return biking;
+    }
+
+    /**
+     * Sets the value of the biking property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link WorkoutFolderT }
+     *     
+     */
+    public void setBiking(WorkoutFolderT value) {
+        this.biking = value;
+    }
+
+    /**
+     * Gets the value of the other property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link WorkoutFolderT }
+     *     
+     */
+    public WorkoutFolderT getOther() {
+        return other;
+    }
+
+    /**
+     * Sets the value of the other property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link WorkoutFolderT }
+     *     
+     */
+    public void setOther(WorkoutFolderT value) {
+        this.other = value;
+    }
+
+    /**
+     * Gets the value of the extensions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public ExtensionsT getExtensions() {
+        return extensions;
+    }
+
+    /**
+     * Sets the value of the extensions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ExtensionsT }
+     *     
+     */
+    public void setExtensions(ExtensionsT value) {
+        this.extensions = value;
+    }
+
+}
Index: src/org/openstreetmap/josm/io/tcx/ZoneT.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/ZoneT.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/ZoneT.java	(revision 0)
@@ -0,0 +1,44 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+
+package org.openstreetmap.josm.io.tcx;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for Zone_t complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Zone_t">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Zone_t")
+@XmlSeeAlso({
+    PredefinedHeartRateZoneT.class,
+    CustomHeartRateZoneT.class,
+    CustomSpeedZoneT.class,
+    PredefinedSpeedZoneT.class
+})
+public abstract class ZoneT {
+
+
+}
Index: src/org/openstreetmap/josm/io/tcx/package-info.java
===================================================================
--- src/org/openstreetmap/josm/io/tcx/package-info.java	(revision 0)
+++ src/org/openstreetmap/josm/io/tcx/package-info.java	(revision 0)
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-558 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.08.10 at 10:24:05 AM CEST 
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.openstreetmap.josm.io.tcx;
Index: src/org/openstreetmap/josm/plugins/DataImport.java
===================================================================
--- src/org/openstreetmap/josm/plugins/DataImport.java	(revision 16369)
+++ src/org/openstreetmap/josm/plugins/DataImport.java	(working copy)
@@ -3,17 +3,23 @@
  */
 package org.openstreetmap.josm.plugins;
 
+import java.io.IOException;
+
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
 import org.openstreetmap.josm.io.TangoGPS;
+import org.openstreetmap.josm.io.Tcx;
 
 public class DataImport extends Plugin {
 
-	/**
-	 * Add new File import filter into open dialog
-	 */
-	public DataImport() {
-		super();
-		ExtensionFileFilter.importers.add(new TangoGPS());
-	}
+    /**
+     * Add new File import filter into open dialog
+     */
+    public DataImport() throws IOException{
+        super();
+
+        ExtensionFileFilter.importers.add(new TangoGPS());
+        ExtensionFileFilter.importers.add(new Tcx());
+    }
+
 
 }
