From cd07a161a10680208029f76aa46710c1032aae46 Mon Sep 17 00:00:00 2001
From: jprocter <Jim Procter>
Date: Wed, 12 Nov 2008 11:18:43 +0000
Subject: [PATCH] jalview XML schema update for 2.4.1 (or 2.5?) introducing
 IDs for views and treepanels and proper reconstruction of
 dataset/Alignment relationships

---
 schemas/jalview.xsd                                |   13 +
 schemas/vamsas.xsd                                 |   12 +-
 src/jalview/binding/Alignment.java                 |  332 +-
 src/jalview/binding/Annotation.java                |  864 +++--
 src/jalview/binding/AnnotationElement.java         |  579 ++--
 src/jalview/binding/Colour.java                    |  331 +-
 src/jalview/binding/Feature.java                   |  577 ++--
 src/jalview/binding/FeatureSettings.java           |  493 ++-
 src/jalview/binding/Features.java                  |  205 +-
 src/jalview/binding/JGroup.java                    | 1484 ++++----
 src/jalview/binding/JSeq.java                      | 1253 ++++---
 src/jalview/binding/JalviewModel.java              |  436 ++-
 src/jalview/binding/JalviewModelSequence.java      | 1862 +++++-----
 src/jalview/binding/JalviewUserColours.java        |  584 ++--
 src/jalview/binding/Pdbentry.java                  |  643 ++--
 src/jalview/binding/PdbentryItem.java              |  367 +-
 src/jalview/binding/Pdbids.java                    |  205 +-
 src/jalview/binding/Property.java                  |  332 +-
 src/jalview/binding/Sequence.java                  |  205 +-
 src/jalview/binding/SequenceSet.java               | 1037 +++---
 src/jalview/binding/SequenceType.java              |  383 +--
 src/jalview/binding/Setting.java                   |  495 ++-
 src/jalview/binding/Tree.java                      | 1648 +++++----
 src/jalview/binding/UserColourScheme.java          |  206 +-
 src/jalview/binding/UserColours.java               |  333 +-
 src/jalview/binding/VAMSAS.java                    | 1168 ++++---
 src/jalview/binding/VamsasModel.java               |  204 +-
 src/jalview/binding/Viewport.java                  | 2880 ++++++++--------
 src/jalview/schemabinding/version2/.castor.cdr     |    2 +-
 src/jalview/schemabinding/version2/AlcodMap.java   |  359 +-
 src/jalview/schemabinding/version2/Alcodon.java    |  521 ++-
 .../schemabinding/version2/AlcodonFrame.java       |  861 +++--
 src/jalview/schemabinding/version2/Annotation.java | 1561 +++++----
 .../schemabinding/version2/AnnotationColours.java  |  723 ++--
 .../schemabinding/version2/AnnotationElement.java  |  679 ++--
 src/jalview/schemabinding/version2/Colour.java     |  332 +-
 src/jalview/schemabinding/version2/DBRef.java      |  435 ++-
 src/jalview/schemabinding/version2/Feature.java    | 1052 +++---
 .../schemabinding/version2/FeatureSettings.java    |  857 +++--
 src/jalview/schemabinding/version2/Features.java   |  205 +-
 src/jalview/schemabinding/version2/Group.java      |  398 +--
 .../schemabinding/version2/HiddenColumns.java      |  426 ++-
 src/jalview/schemabinding/version2/JGroup.java     | 1772 +++++-----
 src/jalview/schemabinding/version2/JSeq.java       | 1664 +++++----
 .../schemabinding/version2/JalviewModel.java       |  439 ++-
 .../version2/JalviewModelSequence.java             | 1896 +++++------
 .../schemabinding/version2/JalviewUserColours.java |  587 ++--
 .../schemabinding/version2/MapListFrom.java        |  426 ++-
 src/jalview/schemabinding/version2/MapListTo.java  |  426 ++-
 .../schemabinding/version2/MapListType.java        | 1162 ++++---
 src/jalview/schemabinding/version2/Mapping.java    |  317 +-
 .../schemabinding/version2/MappingChoice.java      |  335 +-
 src/jalview/schemabinding/version2/OtherData.java  |  334 +-
 src/jalview/schemabinding/version2/Pdbentry.java   |  700 ++--
 .../schemabinding/version2/PdbentryItem.java       |  375 +-
 src/jalview/schemabinding/version2/Pdbids.java     |  510 ++-
 src/jalview/schemabinding/version2/Property.java   |  334 +-
 src/jalview/schemabinding/version2/Sequence.java   |  608 ++--
 .../schemabinding/version2/SequenceSet.java        | 1664 +++++----
 .../version2/SequenceSetProperties.java            |  336 +-
 .../schemabinding/version2/SequenceType.java       |  436 ++-
 src/jalview/schemabinding/version2/Setting.java    |  592 ++--
 .../schemabinding/version2/StructureState.java     |  819 +++--
 .../schemabinding/version2/ThresholdLine.java      |  477 ++-
 src/jalview/schemabinding/version2/Tree.java       | 1681 +++++----
 .../schemabinding/version2/UserColourScheme.java   |  209 +-
 .../schemabinding/version2/UserColours.java        |  335 +-
 src/jalview/schemabinding/version2/VAMSAS.java     |  846 +++--
 .../schemabinding/version2/VamsasModel.java        |  205 +-
 src/jalview/schemabinding/version2/Viewport.java   | 3571 ++++++++++----------
 .../version2/descriptors/AlcodMapDescriptor.java   |  438 ++-
 .../version2/descriptors/AlcodonDescriptor.java    |  528 ++-
 .../descriptors/AlcodonFrameDescriptor.java        |  467 ++-
 .../descriptors/AnnotationColoursDescriptor.java   |  812 ++---
 .../version2/descriptors/AnnotationDescriptor.java | 1432 ++++----
 .../descriptors/AnnotationElementDescriptor.java   |  812 ++---
 .../version2/descriptors/ColourDescriptor.java     |  434 ++-
 .../version2/descriptors/DBRefDescriptor.java      |  590 ++--
 .../version2/descriptors/FeatureDescriptor.java    |  987 +++---
 .../descriptors/FeatureSettingsDescriptor.java     |  466 ++-
 .../version2/descriptors/FeaturesDescriptor.java   |  282 +-
 .../version2/descriptors/GroupDescriptor.java      |  449 ++-
 .../descriptors/HiddenColumnsDescriptor.java       |  462 ++-
 .../version2/descriptors/JGroupDescriptor.java     | 1584 ++++-----
 .../version2/descriptors/JSeqDescriptor.java       | 1046 +++---
 .../descriptors/JalviewModelDescriptor.java        |  611 ++--
 .../JalviewModelSequenceDescriptor.java            |  826 ++---
 .../descriptors/JalviewUserColoursDescriptor.java  |  453 ++-
 .../descriptors/MapListFromDescriptor.java         |  464 ++-
 .../version2/descriptors/MapListToDescriptor.java  |  464 ++-
 .../descriptors/MapListTypeDescriptor.java         |  660 ++--
 .../descriptors/MappingChoiceDescriptor.java       |  447 ++-
 .../version2/descriptors/MappingDescriptor.java    |  379 +--
 .../version2/descriptors/OtherDataDescriptor.java  |  440 ++-
 .../version2/descriptors/PdbentryDescriptor.java   |  613 ++--
 .../descriptors/PdbentryItemDescriptor.java        |  394 +--
 .../version2/descriptors/PdbidsDescriptor.java     |  397 +--
 .../version2/descriptors/PropertyDescriptor.java   |  440 ++-
 .../version2/descriptors/SequenceDescriptor.java   |  455 ++-
 .../descriptors/SequenceSetDescriptor.java         |  825 ++---
 .../SequenceSetPropertiesDescriptor.java           |  446 ++-
 .../descriptors/SequenceTypeDescriptor.java        |  600 ++--
 .../version2/descriptors/SettingDescriptor.java    |  641 ++--
 .../descriptors/StructureStateDescriptor.java      |  857 +++--
 .../descriptors/ThresholdLineDescriptor.java       |  524 ++-
 .../version2/descriptors/TreeDescriptor.java       | 1685 +++++----
 .../descriptors/UserColourSchemeDescriptor.java    |  283 +-
 .../descriptors/UserColoursDescriptor.java         |  436 ++-
 .../version2/descriptors/VAMSASDescriptor.java     |  478 ++-
 .../descriptors/VamsasModelDescriptor.java         |  282 +-
 .../version2/descriptors/ViewportDescriptor.java   | 3240 ++++++++----------
 111 files changed, 37143 insertions(+), 41584 deletions(-)

diff --git a/schemas/jalview.xsd b/schemas/jalview.xsd
index b643d67..00a589b 100755
--- a/schemas/jalview.xsd
+++ b/schemas/jalview.xsd
@@ -26,6 +26,9 @@
 																<xs:attribute name="ypos" type="xs:int"/>
 																<xs:attribute name="width" type="xs:int"/>
 																<xs:attribute name="height" type="xs:int"/>
+																<xs:attribute name="viewId" type="xs:ID" use="optional"/>
+																	
+																
 															</xs:extension>
 														</xs:simpleContent>
 													</xs:complexType>
@@ -114,6 +117,13 @@
 						<xs:attribute name="textCol1" type="xs:int"/>
 						<xs:attribute name="textCol2" type="xs:int"/>
 						<xs:attribute name="textColThreshold" type="xs:int"/>
+						<xs:attribute name="id" type="xs:ID" use="optional">
+							<xs:annotation>
+								<xs:documentation>
+									unique id used by jalview to synchronize between stored and instantiated views
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
 					</xs:complexType>
 				</xs:element>
 				<xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
@@ -143,6 +153,9 @@
 						<xs:attribute name="markUnlinked" type="xs:boolean"/>
 						<xs:attribute name="fitToWindow" type="xs:boolean"/>
 						<xs:attribute name="currentTree" type="xs:boolean"/>
+						<xs:attribute name="id" type="xs:ID" use="optional">
+							<xs:annotation><xs:documentation>Tree ID added for binding tree visualization settings to vamsas document trees in jalview 2.4.1</xs:documentation></xs:annotation>
+						</xs:attribute>
 					</xs:complexType>
 				</xs:element>
 				<xs:element name="FeatureSettings" minOccurs="0">
diff --git a/schemas/vamsas.xsd b/schemas/vamsas.xsd
index b457bec..660b3af 100755
--- a/schemas/vamsas.xsd
+++ b/schemas/vamsas.xsd
@@ -89,9 +89,15 @@
 			<xs:sequence>
 				<xs:element name="alcodon" minOccurs="0" maxOccurs="unbounded">
 					<xs:complexType>
-						<xs:attribute name="pos1" type="xs:integer"/>
-						<xs:attribute name="pos2" type="xs:integer"/>
-						<xs:attribute name="pos3" type="xs:integer"/>
+						<xs:annotation>
+							<xs:documentation>
+								specifies a series of aligned codons from an associated DNA sequence alignment that when translated correspond to columns of a peptide alignment.
+								Element may have either all pos1,2,3 attributes specified, or none at all (indicating a gapped column with no translated peptide).
+							</xs:documentation>
+						</xs:annotation>
+						<xs:attribute name="pos1" type="xs:integer" use="optional"/>
+						<xs:attribute name="pos2" type="xs:integer" use="optional"/>
+						<xs:attribute name="pos3" type="xs:integer" use="optional"/>
 					</xs:complexType>
 				</xs:element>
 				<xs:element name="alcodMap" minOccurs="0" maxOccurs="unbounded">
diff --git a/src/jalview/binding/Alignment.java b/src/jalview/binding/Alignment.java
index 96812e3..5b107b5 100755
--- a/src/jalview/binding/Alignment.java
+++ b/src/jalview/binding/Alignment.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,166 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Alignment implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _annotation.
-   */
-  private jalview.binding.Annotation _annotation;
-
-  /**
-   * Field _sequenceSet.
-   */
-  private jalview.binding.SequenceSet _sequenceSet;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Alignment()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'annotation'.
-   * 
-   * @return the value of field 'Annotation'.
-   */
-  public jalview.binding.Annotation getAnnotation()
-  {
-    return this._annotation;
-  }
-
-  /**
-   * Returns the value of field 'sequenceSet'.
-   * 
-   * @return the value of field 'SequenceSet'.
-   */
-  public jalview.binding.SequenceSet getSequenceSet()
-  {
-    return this._sequenceSet;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Alignment implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _annotation.
+     */
+    private jalview.binding.Annotation _annotation;
+
+    /**
+     * Field _sequenceSet.
+     */
+    private jalview.binding.SequenceSet _sequenceSet;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Alignment() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'annotation'.
+     * 
+     * @return the value of field 'Annotation'.
+     */
+    public jalview.binding.Annotation getAnnotation(
+    ) {
+        return this._annotation;
+    }
+
+    /**
+     * Returns the value of field 'sequenceSet'.
+     * 
+     * @return the value of field 'SequenceSet'.
+     */
+    public jalview.binding.SequenceSet getSequenceSet(
+    ) {
+        return this._sequenceSet;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'annotation'.
+     * 
+     * @param annotation the value of field 'annotation'.
+     */
+    public void setAnnotation(
+            final jalview.binding.Annotation annotation) {
+        this._annotation = annotation;
+    }
+
+    /**
+     * Sets the value of field 'sequenceSet'.
+     * 
+     * @param sequenceSet the value of field 'sequenceSet'.
+     */
+    public void setSequenceSet(
+            final jalview.binding.SequenceSet sequenceSet) {
+        this._sequenceSet = sequenceSet;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Alignment
+     */
+    public static jalview.binding.Alignment unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Alignment) Unmarshaller.unmarshal(jalview.binding.Alignment.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'annotation'.
-   * 
-   * @param annotation
-   *                the value of field 'annotation'.
-   */
-  public void setAnnotation(final jalview.binding.Annotation annotation)
-  {
-    this._annotation = annotation;
-  }
-
-  /**
-   * Sets the value of field 'sequenceSet'.
-   * 
-   * @param sequenceSet
-   *                the value of field 'sequenceSet'.
-   */
-  public void setSequenceSet(final jalview.binding.SequenceSet sequenceSet)
-  {
-    this._sequenceSet = sequenceSet;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Alignment
-   */
-  public static jalview.binding.Alignment unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Alignment) Unmarshaller.unmarshal(
-            jalview.binding.Alignment.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/Annotation.java b/src/jalview/binding/Annotation.java
index ec3e248..108d3ad 100755
--- a/src/jalview/binding/Annotation.java
+++ b/src/jalview/binding/Annotation.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,445 +19,414 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Annotation implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _graph.
-   */
-  private boolean _graph;
-
-  /**
-   * keeps track of state for field: _graph
-   */
-  private boolean _has_graph;
-
-  /**
-   * Field _graphType.
-   */
-  private int _graphType;
-
-  /**
-   * keeps track of state for field: _graphType
-   */
-  private boolean _has_graphType;
-
-  /**
-   * Field _annotationElementList.
-   */
-  private java.util.Vector _annotationElementList;
-
-  /**
-   * Field _label.
-   */
-  private java.lang.String _label;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Annotation()
-  {
-    super();
-    this._annotationElementList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotationElement(
-          final jalview.binding.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationElementList.addElement(vAnnotationElement);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotationElement(final int index,
-          final jalview.binding.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationElementList.add(index, vAnnotationElement);
-  }
-
-  /**
-   */
-  public void deleteGraph()
-  {
-    this._has_graph = false;
-  }
-
-  /**
-   */
-  public void deleteGraphType()
-  {
-    this._has_graphType = false;
-  }
-
-  /**
-   * Method enumerateAnnotationElement.
-   * 
-   * @return an Enumeration over all jalview.binding.AnnotationElement elements
-   */
-  public java.util.Enumeration enumerateAnnotationElement()
-  {
-    return this._annotationElementList.elements();
-  }
-
-  /**
-   * Method getAnnotationElement.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.AnnotationElement at the given
-   *         index
-   */
-  public jalview.binding.AnnotationElement getAnnotationElement(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationElementList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "getAnnotationElement: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._annotationElementList.size() - 1) + "]");
+public class Annotation implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _graph.
+     */
+    private boolean _graph;
+
+    /**
+     * keeps track of state for field: _graph
+     */
+    private boolean _has_graph;
+
+    /**
+     * Field _graphType.
+     */
+    private int _graphType;
+
+    /**
+     * keeps track of state for field: _graphType
+     */
+    private boolean _has_graphType;
+
+    /**
+     * Field _annotationElementList.
+     */
+    private java.util.Vector _annotationElementList;
+
+    /**
+     * Field _label.
+     */
+    private java.lang.String _label;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Annotation() {
+        super();
+        this._annotationElementList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotationElement(
+            final jalview.binding.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationElementList.addElement(vAnnotationElement);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotationElement(
+            final int index,
+            final jalview.binding.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationElementList.add(index, vAnnotationElement);
+    }
+
+    /**
+     */
+    public void deleteGraph(
+    ) {
+        this._has_graph= false;
+    }
+
+    /**
+     */
+    public void deleteGraphType(
+    ) {
+        this._has_graphType= false;
+    }
+
+    /**
+     * Method enumerateAnnotationElement.
+     * 
+     * @return an Enumeration over all
+     * jalview.binding.AnnotationElement elements
+     */
+    public java.util.Enumeration enumerateAnnotationElement(
+    ) {
+        return this._annotationElementList.elements();
+    }
+
+    /**
+     * Method getAnnotationElement.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.AnnotationElement
+     * at the given index
+     */
+    public jalview.binding.AnnotationElement getAnnotationElement(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationElementList.size()) {
+            throw new IndexOutOfBoundsException("getAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.AnnotationElement) _annotationElementList.get(index);
+    }
+
+    /**
+     * Method getAnnotationElement.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.AnnotationElement[] getAnnotationElement(
+    ) {
+        jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
+        return (jalview.binding.AnnotationElement[]) this._annotationElementList.toArray(array);
+    }
+
+    /**
+     * Method getAnnotationElementCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAnnotationElementCount(
+    ) {
+        return this._annotationElementList.size();
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
     }
 
-    return (jalview.binding.AnnotationElement) _annotationElementList
-            .get(index);
-  }
-
-  /**
-   * Method getAnnotationElement.Returns the contents of the collection in an
-   * Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.AnnotationElement[] getAnnotationElement()
-  {
-    jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
-    return (jalview.binding.AnnotationElement[]) this._annotationElementList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAnnotationElementCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAnnotationElementCount()
-  {
-    return this._annotationElementList.size();
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'graph'.
-   * 
-   * @return the value of field 'Graph'.
-   */
-  public boolean getGraph()
-  {
-    return this._graph;
-  }
-
-  /**
-   * Returns the value of field 'graphType'.
-   * 
-   * @return the value of field 'GraphType'.
-   */
-  public int getGraphType()
-  {
-    return this._graphType;
-  }
-
-  /**
-   * Returns the value of field 'label'.
-   * 
-   * @return the value of field 'Label'.
-   */
-  public java.lang.String getLabel()
-  {
-    return this._label;
-  }
-
-  /**
-   * Method hasGraph.
-   * 
-   * @return true if at least one Graph has been added
-   */
-  public boolean hasGraph()
-  {
-    return this._has_graph;
-  }
-
-  /**
-   * Method hasGraphType.
-   * 
-   * @return true if at least one GraphType has been added
-   */
-  public boolean hasGraphType()
-  {
-    return this._has_graphType;
-  }
-
-  /**
-   * Returns the value of field 'graph'.
-   * 
-   * @return the value of field 'Graph'.
-   */
-  public boolean isGraph()
-  {
-    return this._graph;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Returns the value of field 'graph'.
+     * 
+     * @return the value of field 'Graph'.
+     */
+    public boolean getGraph(
+    ) {
+        return this._graph;
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllAnnotationElement()
-  {
-    this._annotationElementList.clear();
-  }
-
-  /**
-   * Method removeAnnotationElement.
-   * 
-   * @param vAnnotationElement
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAnnotationElement(
-          final jalview.binding.AnnotationElement vAnnotationElement)
-  {
-    boolean removed = _annotationElementList.remove(vAnnotationElement);
-    return removed;
-  }
-
-  /**
-   * Method removeAnnotationElementAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.AnnotationElement removeAnnotationElementAt(
-          final int index)
-  {
-    java.lang.Object obj = this._annotationElementList.remove(index);
-    return (jalview.binding.AnnotationElement) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAnnotationElement(final int index,
-          final jalview.binding.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationElementList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "setAnnotationElement: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._annotationElementList.size() - 1) + "]");
+
+    /**
+     * Returns the value of field 'graphType'.
+     * 
+     * @return the value of field 'GraphType'.
+     */
+    public int getGraphType(
+    ) {
+        return this._graphType;
+    }
+
+    /**
+     * Returns the value of field 'label'.
+     * 
+     * @return the value of field 'Label'.
+     */
+    public java.lang.String getLabel(
+    ) {
+        return this._label;
+    }
+
+    /**
+     * Method hasGraph.
+     * 
+     * @return true if at least one Graph has been added
+     */
+    public boolean hasGraph(
+    ) {
+        return this._has_graph;
+    }
+
+    /**
+     * Method hasGraphType.
+     * 
+     * @return true if at least one GraphType has been added
+     */
+    public boolean hasGraphType(
+    ) {
+        return this._has_graphType;
+    }
+
+    /**
+     * Returns the value of field 'graph'.
+     * 
+     * @return the value of field 'Graph'.
+     */
+    public boolean isGraph(
+    ) {
+        return this._graph;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllAnnotationElement(
+    ) {
+        this._annotationElementList.clear();
+    }
+
+    /**
+     * Method removeAnnotationElement.
+     * 
+     * @param vAnnotationElement
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAnnotationElement(
+            final jalview.binding.AnnotationElement vAnnotationElement) {
+        boolean removed = _annotationElementList.remove(vAnnotationElement);
+        return removed;
+    }
+
+    /**
+     * Method removeAnnotationElementAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.AnnotationElement removeAnnotationElementAt(
+            final int index) {
+        java.lang.Object obj = this._annotationElementList.remove(index);
+        return (jalview.binding.AnnotationElement) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAnnotationElement(
+            final int index,
+            final jalview.binding.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationElementList.size()) {
+            throw new IndexOutOfBoundsException("setAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+        }
+        
+        this._annotationElementList.set(index, vAnnotationElement);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAnnotationElementArray
+     */
+    public void setAnnotationElement(
+            final jalview.binding.AnnotationElement[] vAnnotationElementArray) {
+        //-- copy array
+        _annotationElementList.clear();
+        
+        for (int i = 0; i < vAnnotationElementArray.length; i++) {
+                this._annotationElementList.add(vAnnotationElementArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'graph'.
+     * 
+     * @param graph the value of field 'graph'.
+     */
+    public void setGraph(
+            final boolean graph) {
+        this._graph = graph;
+        this._has_graph = true;
+    }
+
+    /**
+     * Sets the value of field 'graphType'.
+     * 
+     * @param graphType the value of field 'graphType'.
+     */
+    public void setGraphType(
+            final int graphType) {
+        this._graphType = graphType;
+        this._has_graphType = true;
+    }
+
+    /**
+     * Sets the value of field 'label'.
+     * 
+     * @param label the value of field 'label'.
+     */
+    public void setLabel(
+            final java.lang.String label) {
+        this._label = label;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Annotation
+     */
+    public static jalview.binding.Annotation unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Annotation) Unmarshaller.unmarshal(jalview.binding.Annotation.class, reader);
     }
 
-    this._annotationElementList.set(index, vAnnotationElement);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAnnotationElementArray
-   */
-  public void setAnnotationElement(
-          final jalview.binding.AnnotationElement[] vAnnotationElementArray)
-  {
-    // -- copy array
-    _annotationElementList.clear();
-
-    for (int i = 0; i < vAnnotationElementArray.length; i++)
-    {
-      this._annotationElementList.add(vAnnotationElementArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *                the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'graph'.
-   * 
-   * @param graph
-   *                the value of field 'graph'.
-   */
-  public void setGraph(final boolean graph)
-  {
-    this._graph = graph;
-    this._has_graph = true;
-  }
-
-  /**
-   * Sets the value of field 'graphType'.
-   * 
-   * @param graphType
-   *                the value of field 'graphType'.
-   */
-  public void setGraphType(final int graphType)
-  {
-    this._graphType = graphType;
-    this._has_graphType = true;
-  }
-
-  /**
-   * Sets the value of field 'label'.
-   * 
-   * @param label
-   *                the value of field 'label'.
-   */
-  public void setLabel(final java.lang.String label)
-  {
-    this._label = label;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Annotation
-   */
-  public static jalview.binding.Annotation unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Annotation) Unmarshaller.unmarshal(
-            jalview.binding.Annotation.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/AnnotationElement.java b/src/jalview/binding/AnnotationElement.java
index 160141c..d133fe0 100755
--- a/src/jalview/binding/AnnotationElement.java
+++ b/src/jalview/binding/AnnotationElement.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,291 +19,273 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class AnnotationElement implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _position.
-   */
-  private int _position;
-
-  /**
-   * keeps track of state for field: _position
-   */
-  private boolean _has_position;
-
-  /**
-   * Field _displayCharacter.
-   */
-  private java.lang.String _displayCharacter;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _secondaryStructure.
-   */
-  private java.lang.String _secondaryStructure;
-
-  /**
-   * Field _value.
-   */
-  private float _value;
-
-  /**
-   * keeps track of state for field: _value
-   */
-  private boolean _has_value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AnnotationElement()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deletePosition()
-  {
-    this._has_position = false;
-  }
-
-  /**
-   */
-  public void deleteValue()
-  {
-    this._has_value = false;
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'displayCharacter'.
-   * 
-   * @return the value of field 'DisplayCharacter'.
-   */
-  public java.lang.String getDisplayCharacter()
-  {
-    return this._displayCharacter;
-  }
-
-  /**
-   * Returns the value of field 'position'.
-   * 
-   * @return the value of field 'Position'.
-   */
-  public int getPosition()
-  {
-    return this._position;
-  }
-
-  /**
-   * Returns the value of field 'secondaryStructure'.
-   * 
-   * @return the value of field 'SecondaryStructure'.
-   */
-  public java.lang.String getSecondaryStructure()
-  {
-    return this._secondaryStructure;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public float getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method hasPosition.
-   * 
-   * @return true if at least one Position has been added
-   */
-  public boolean hasPosition()
-  {
-    return this._has_position;
-  }
-
-  /**
-   * Method hasValue.
-   * 
-   * @return true if at least one Value has been added
-   */
-  public boolean hasValue()
-  {
-    return this._has_value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class AnnotationElement implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _position.
+     */
+    private int _position;
+
+    /**
+     * keeps track of state for field: _position
+     */
+    private boolean _has_position;
+
+    /**
+     * Field _displayCharacter.
+     */
+    private java.lang.String _displayCharacter;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _secondaryStructure.
+     */
+    private java.lang.String _secondaryStructure;
+
+    /**
+     * Field _value.
+     */
+    private float _value;
+
+    /**
+     * keeps track of state for field: _value
+     */
+    private boolean _has_value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AnnotationElement() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deletePosition(
+    ) {
+        this._has_position= false;
+    }
+
+    /**
+     */
+    public void deleteValue(
+    ) {
+        this._has_value= false;
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'displayCharacter'.
+     * 
+     * @return the value of field 'DisplayCharacter'.
+     */
+    public java.lang.String getDisplayCharacter(
+    ) {
+        return this._displayCharacter;
+    }
+
+    /**
+     * Returns the value of field 'position'.
+     * 
+     * @return the value of field 'Position'.
+     */
+    public int getPosition(
+    ) {
+        return this._position;
+    }
+
+    /**
+     * Returns the value of field 'secondaryStructure'.
+     * 
+     * @return the value of field 'SecondaryStructure'.
+     */
+    public java.lang.String getSecondaryStructure(
+    ) {
+        return this._secondaryStructure;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public float getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method hasPosition.
+     * 
+     * @return true if at least one Position has been added
+     */
+    public boolean hasPosition(
+    ) {
+        return this._has_position;
+    }
+
+    /**
+     * Method hasValue.
+     * 
+     * @return true if at least one Value has been added
+     */
+    public boolean hasValue(
+    ) {
+        return this._has_value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'displayCharacter'.
+     * 
+     * @param displayCharacter the value of field 'displayCharacter'
+     */
+    public void setDisplayCharacter(
+            final java.lang.String displayCharacter) {
+        this._displayCharacter = displayCharacter;
+    }
+
+    /**
+     * Sets the value of field 'position'.
+     * 
+     * @param position the value of field 'position'.
+     */
+    public void setPosition(
+            final int position) {
+        this._position = position;
+        this._has_position = true;
+    }
+
+    /**
+     * Sets the value of field 'secondaryStructure'.
+     * 
+     * @param secondaryStructure the value of field
+     * 'secondaryStructure'.
+     */
+    public void setSecondaryStructure(
+            final java.lang.String secondaryStructure) {
+        this._secondaryStructure = secondaryStructure;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final float value) {
+        this._value = value;
+        this._has_value = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.AnnotationElement
+     */
+    public static jalview.binding.AnnotationElement unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(jalview.binding.AnnotationElement.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *                the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'displayCharacter'.
-   * 
-   * @param displayCharacter
-   *                the value of field 'displayCharacter'
-   */
-  public void setDisplayCharacter(final java.lang.String displayCharacter)
-  {
-    this._displayCharacter = displayCharacter;
-  }
-
-  /**
-   * Sets the value of field 'position'.
-   * 
-   * @param position
-   *                the value of field 'position'.
-   */
-  public void setPosition(final int position)
-  {
-    this._position = position;
-    this._has_position = true;
-  }
-
-  /**
-   * Sets the value of field 'secondaryStructure'.
-   * 
-   * @param secondaryStructure
-   *                the value of field 'secondaryStructure'.
-   */
-  public void setSecondaryStructure(
-          final java.lang.String secondaryStructure)
-  {
-    this._secondaryStructure = secondaryStructure;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *                the value of field 'value'.
-   */
-  public void setValue(final float value)
-  {
-    this._value = value;
-    this._has_value = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.AnnotationElement
-   */
-  public static jalview.binding.AnnotationElement unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(
-            jalview.binding.AnnotationElement.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/Colour.java b/src/jalview/binding/Colour.java
index 60d0291..488ff98 100755
--- a/src/jalview/binding/Colour.java
+++ b/src/jalview/binding/Colour.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,165 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Colour implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _RGB.
-   */
-  private java.lang.String _RGB;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Colour()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'RGB'.
-   * 
-   * @return the value of field 'RGB'.
-   */
-  public java.lang.String getRGB()
-  {
-    return this._RGB;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Colour implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _RGB.
+     */
+    private java.lang.String _RGB;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Colour() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'RGB'.
+     * 
+     * @return the value of field 'RGB'.
+     */
+    public java.lang.String getRGB(
+    ) {
+        return this._RGB;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'RGB'.
+     * 
+     * @param RGB the value of field 'RGB'.
+     */
+    public void setRGB(
+            final java.lang.String RGB) {
+        this._RGB = RGB;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Colour
+     */
+    public static jalview.binding.Colour unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Colour) Unmarshaller.unmarshal(jalview.binding.Colour.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'RGB'.
-   * 
-   * @param RGB
-   *                the value of field 'RGB'.
-   */
-  public void setRGB(final java.lang.String RGB)
-  {
-    this._RGB = RGB;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Colour
-   */
-  public static jalview.binding.Colour unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Colour) Unmarshaller.unmarshal(
-            jalview.binding.Colour.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/Feature.java b/src/jalview/binding/Feature.java
index 509d0e6..d429df3 100755
--- a/src/jalview/binding/Feature.java
+++ b/src/jalview/binding/Feature.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,290 +19,272 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Feature implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _begin.
-   */
-  private int _begin;
-
-  /**
-   * keeps track of state for field: _begin
-   */
-  private boolean _has_begin;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _status.
-   */
-  private java.lang.String _status;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Feature()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteBegin()
-  {
-    this._has_begin = false;
-  }
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   * Returns the value of field 'begin'.
-   * 
-   * @return the value of field 'Begin'.
-   */
-  public int getBegin()
-  {
-    return this._begin;
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'status'.
-   * 
-   * @return the value of field 'Status'.
-   */
-  public java.lang.String getStatus()
-  {
-    return this._status;
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method hasBegin.
-   * 
-   * @return true if at least one Begin has been added
-   */
-  public boolean hasBegin()
-  {
-    return this._has_begin;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Feature implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _begin.
+     */
+    private int _begin;
+
+    /**
+     * keeps track of state for field: _begin
+     */
+    private boolean _has_begin;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _status.
+     */
+    private java.lang.String _status;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Feature() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteBegin(
+    ) {
+        this._has_begin= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     * Returns the value of field 'begin'.
+     * 
+     * @return the value of field 'Begin'.
+     */
+    public int getBegin(
+    ) {
+        return this._begin;
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'status'.
+     * 
+     * @return the value of field 'Status'.
+     */
+    public java.lang.String getStatus(
+    ) {
+        return this._status;
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method hasBegin.
+     * 
+     * @return true if at least one Begin has been added
+     */
+    public boolean hasBegin(
+    ) {
+        return this._has_begin;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'begin'.
+     * 
+     * @param begin the value of field 'begin'.
+     */
+    public void setBegin(
+            final int begin) {
+        this._begin = begin;
+        this._has_begin = true;
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'status'.
+     * 
+     * @param status the value of field 'status'.
+     */
+    public void setStatus(
+            final java.lang.String status) {
+        this._status = status;
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Feature
+     */
+    public static jalview.binding.Feature unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Feature.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'begin'.
-   * 
-   * @param begin
-   *                the value of field 'begin'.
-   */
-  public void setBegin(final int begin)
-  {
-    this._begin = begin;
-    this._has_begin = true;
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *                the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'status'.
-   * 
-   * @param status
-   *                the value of field 'status'.
-   */
-  public void setStatus(final java.lang.String status)
-  {
-    this._status = status;
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *                the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Feature
-   */
-  public static jalview.binding.Feature unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Feature) Unmarshaller.unmarshal(
-            jalview.binding.Feature.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/FeatureSettings.java b/src/jalview/binding/FeatureSettings.java
index b6c3640..f3d06be 100755
--- a/src/jalview/binding/FeatureSettings.java
+++ b/src/jalview/binding/FeatureSettings.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,275 +19,257 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class FeatureSettings implements java.io.Serializable
-{
+public class FeatureSettings implements java.io.Serializable {
 
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
 
-  /**
-   * Field _settingList.
-   */
-  private java.util.Vector _settingList;
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
+    /**
+     * Field _settingList.
+     */
+    private java.util.Vector _settingList;
 
-  public FeatureSettings()
-  {
-    super();
-    this._settingList = new java.util.Vector();
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //----------------/
+     //- Constructors -/
+    //----------------/
 
-  /**
-   * 
-   * 
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSetting(final jalview.binding.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._settingList.addElement(vSetting);
-  }
+    public FeatureSettings() {
+        super();
+        this._settingList = new java.util.Vector();
+    }
 
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSetting(final int index,
-          final jalview.binding.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._settingList.add(index, vSetting);
-  }
 
-  /**
-   * Method enumerateSetting.
-   * 
-   * @return an Enumeration over all jalview.binding.Setting elements
-   */
-  public java.util.Enumeration enumerateSetting()
-  {
-    return this._settingList.elements();
-  }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method getSetting.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Setting at the given index
-   */
-  public jalview.binding.Setting getSetting(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._settingList.size())
-    {
-      throw new IndexOutOfBoundsException("getSetting: Index value '"
-              + index + "' not in range [0.."
-              + (this._settingList.size() - 1) + "]");
+    /**
+     * 
+     * 
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSetting(
+            final jalview.binding.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        this._settingList.addElement(vSetting);
     }
 
-    return (jalview.binding.Setting) _settingList.get(index);
-  }
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSetting(
+            final int index,
+            final jalview.binding.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        this._settingList.add(index, vSetting);
+    }
 
-  /**
-   * Method getSetting.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Setting[] getSetting()
-  {
-    jalview.binding.Setting[] array = new jalview.binding.Setting[0];
-    return (jalview.binding.Setting[]) this._settingList.toArray(array);
-  }
+    /**
+     * Method enumerateSetting.
+     * 
+     * @return an Enumeration over all jalview.binding.Setting
+     * elements
+     */
+    public java.util.Enumeration enumerateSetting(
+    ) {
+        return this._settingList.elements();
+    }
 
-  /**
-   * Method getSettingCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSettingCount()
-  {
-    return this._settingList.size();
-  }
+    /**
+     * Method getSetting.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Setting at the
+     * given index
+     */
+    public jalview.binding.Setting getSetting(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._settingList.size()) {
+            throw new IndexOutOfBoundsException("getSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Setting) _settingList.get(index);
+    }
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method getSetting.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Setting[] getSetting(
+    ) {
+        jalview.binding.Setting[] array = new jalview.binding.Setting[0];
+        return (jalview.binding.Setting[]) this._settingList.toArray(array);
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * Method getSettingCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSettingCount(
+    ) {
+        return this._settingList.size();
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
 
-  /**
-   */
-  public void removeAllSetting()
-  {
-    this._settingList.clear();
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * Method removeSetting.
-   * 
-   * @param vSetting
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSetting(final jalview.binding.Setting vSetting)
-  {
-    boolean removed = _settingList.remove(vSetting);
-    return removed;
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method removeSettingAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Setting removeSettingAt(final int index)
-  {
-    java.lang.Object obj = this._settingList.remove(index);
-    return (jalview.binding.Setting) obj;
-  }
+    /**
+     */
+    public void removeAllSetting(
+    ) {
+        this._settingList.clear();
+    }
 
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSetting(final int index,
-          final jalview.binding.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._settingList.size())
-    {
-      throw new IndexOutOfBoundsException("setSetting: Index value '"
-              + index + "' not in range [0.."
-              + (this._settingList.size() - 1) + "]");
+    /**
+     * Method removeSetting.
+     * 
+     * @param vSetting
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSetting(
+            final jalview.binding.Setting vSetting) {
+        boolean removed = _settingList.remove(vSetting);
+        return removed;
     }
 
-    this._settingList.set(index, vSetting);
-  }
+    /**
+     * Method removeSettingAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Setting removeSettingAt(
+            final int index) {
+        java.lang.Object obj = this._settingList.remove(index);
+        return (jalview.binding.Setting) obj;
+    }
 
-  /**
-   * 
-   * 
-   * @param vSettingArray
-   */
-  public void setSetting(final jalview.binding.Setting[] vSettingArray)
-  {
-    // -- copy array
-    _settingList.clear();
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSetting(
+            final int index,
+            final jalview.binding.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._settingList.size()) {
+            throw new IndexOutOfBoundsException("setSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+        }
+        
+        this._settingList.set(index, vSetting);
+    }
 
-    for (int i = 0; i < vSettingArray.length; i++)
-    {
-      this._settingList.add(vSettingArray[i]);
+    /**
+     * 
+     * 
+     * @param vSettingArray
+     */
+    public void setSetting(
+            final jalview.binding.Setting[] vSettingArray) {
+        //-- copy array
+        _settingList.clear();
+        
+        for (int i = 0; i < vSettingArray.length; i++) {
+                this._settingList.add(vSettingArray[i]);
+        }
     }
-  }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.FeatureSettings
-   */
-  public static jalview.binding.FeatureSettings unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(
-            jalview.binding.FeatureSettings.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.FeatureSettings
+     */
+    public static jalview.binding.FeatureSettings unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(jalview.binding.FeatureSettings.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/Features.java b/src/jalview/binding/Features.java
index 8adfa03..e50ae7c 100755
--- a/src/jalview/binding/Features.java
+++ b/src/jalview/binding/Features.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,110 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Features extends Feature implements java.io.Serializable
+public class Features extends Feature 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public Features()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Features() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Feature
-   */
-  public static jalview.binding.Feature unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Feature) Unmarshaller.unmarshal(
-            jalview.binding.Features.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Feature
+     */
+    public static jalview.binding.Feature unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Features.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/JGroup.java b/src/jalview/binding/JGroup.java
index a0117ee..862eebd 100755
--- a/src/jalview/binding/JGroup.java
+++ b/src/jalview/binding/JGroup.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,746 +19,721 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JGroup implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _colour.
-   */
-  private java.lang.String _colour;
-
-  /**
-   * Field _consThreshold.
-   */
-  private int _consThreshold;
-
-  /**
-   * keeps track of state for field: _consThreshold
-   */
-  private boolean _has_consThreshold;
-
-  /**
-   * Field _pidThreshold.
-   */
-  private int _pidThreshold;
-
-  /**
-   * keeps track of state for field: _pidThreshold
-   */
-  private boolean _has_pidThreshold;
-
-  /**
-   * Field _outlineColour.
-   */
-  private int _outlineColour;
-
-  /**
-   * keeps track of state for field: _outlineColour
-   */
-  private boolean _has_outlineColour;
-
-  /**
-   * Field _displayBoxes.
-   */
-  private boolean _displayBoxes;
-
-  /**
-   * keeps track of state for field: _displayBoxes
-   */
-  private boolean _has_displayBoxes;
-
-  /**
-   * Field _displayText.
-   */
-  private boolean _displayText;
-
-  /**
-   * keeps track of state for field: _displayText
-   */
-  private boolean _has_displayText;
-
-  /**
-   * Field _colourText.
-   */
-  private boolean _colourText;
-
-  /**
-   * keeps track of state for field: _colourText
-   */
-  private boolean _has_colourText;
-
-  /**
-   * Field _seqList.
-   */
-  private java.util.Vector _seqList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JGroup()
-  {
-    super();
-    this._seqList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSeq(final int vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._seqList.addElement(new java.lang.Integer(vSeq));
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSeq(final int index, final int vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._seqList.add(index, new java.lang.Integer(vSeq));
-  }
-
-  /**
-   */
-  public void deleteColourText()
-  {
-    this._has_colourText = false;
-  }
-
-  /**
-   */
-  public void deleteConsThreshold()
-  {
-    this._has_consThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteDisplayBoxes()
-  {
-    this._has_displayBoxes = false;
-  }
-
-  /**
-   */
-  public void deleteDisplayText()
-  {
-    this._has_displayText = false;
-  }
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteOutlineColour()
-  {
-    this._has_outlineColour = false;
-  }
-
-  /**
-   */
-  public void deletePidThreshold()
-  {
-    this._has_pidThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Method enumerateSeq.
-   * 
-   * @return an Enumeration over all int elements
-   */
-  public java.util.Enumeration enumerateSeq()
-  {
-    return this._seqList.elements();
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public java.lang.String getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'colourText'.
-   * 
-   * @return the value of field 'ColourText'.
-   */
-  public boolean getColourText()
-  {
-    return this._colourText;
-  }
-
-  /**
-   * Returns the value of field 'consThreshold'.
-   * 
-   * @return the value of field 'ConsThreshold'.
-   */
-  public int getConsThreshold()
-  {
-    return this._consThreshold;
-  }
-
-  /**
-   * Returns the value of field 'displayBoxes'.
-   * 
-   * @return the value of field 'DisplayBoxes'.
-   */
-  public boolean getDisplayBoxes()
-  {
-    return this._displayBoxes;
-  }
-
-  /**
-   * Returns the value of field 'displayText'.
-   * 
-   * @return the value of field 'DisplayText'.
-   */
-  public boolean getDisplayText()
-  {
-    return this._displayText;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'outlineColour'.
-   * 
-   * @return the value of field 'OutlineColour'.
-   */
-  public int getOutlineColour()
-  {
-    return this._outlineColour;
-  }
-
-  /**
-   * Returns the value of field 'pidThreshold'.
-   * 
-   * @return the value of field 'PidThreshold'.
-   */
-  public int getPidThreshold()
-  {
-    return this._pidThreshold;
-  }
-
-  /**
-   * Method getSeq.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the int at the given index
-   */
-  public int getSeq(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._seqList.size())
-    {
-      throw new IndexOutOfBoundsException("getSeq: Index value '" + index
-              + "' not in range [0.." + (this._seqList.size() - 1) + "]");
-    }
-
-    return ((java.lang.Integer) _seqList.get(index)).intValue();
-  }
-
-  /**
-   * Method getSeq.Returns the contents of the collection in an Array.
-   * 
-   * @return this collection as an Array
-   */
-  public int[] getSeq()
-  {
-    int size = this._seqList.size();
-    int[] array = new int[size];
-    java.util.Iterator iter = _seqList.iterator();
-    for (int index = 0; index < size; index++)
-    {
-      array[index] = ((java.lang.Integer) iter.next()).intValue();
-    }
-    return array;
-  }
-
-  /**
-   * Method getSeqCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSeqCount()
-  {
-    return this._seqList.size();
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasColourText.
-   * 
-   * @return true if at least one ColourText has been added
-   */
-  public boolean hasColourText()
-  {
-    return this._has_colourText;
-  }
-
-  /**
-   * Method hasConsThreshold.
-   * 
-   * @return true if at least one ConsThreshold has been added
-   */
-  public boolean hasConsThreshold()
-  {
-    return this._has_consThreshold;
-  }
-
-  /**
-   * Method hasDisplayBoxes.
-   * 
-   * @return true if at least one DisplayBoxes has been added
-   */
-  public boolean hasDisplayBoxes()
-  {
-    return this._has_displayBoxes;
-  }
-
-  /**
-   * Method hasDisplayText.
-   * 
-   * @return true if at least one DisplayText has been added
-   */
-  public boolean hasDisplayText()
-  {
-    return this._has_displayText;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasOutlineColour.
-   * 
-   * @return true if at least one OutlineColour has been added
-   */
-  public boolean hasOutlineColour()
-  {
-    return this._has_outlineColour;
-  }
-
-  /**
-   * Method hasPidThreshold.
-   * 
-   * @return true if at least one PidThreshold has been added
-   */
-  public boolean hasPidThreshold()
-  {
-    return this._has_pidThreshold;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Returns the value of field 'colourText'.
-   * 
-   * @return the value of field 'ColourText'.
-   */
-  public boolean isColourText()
-  {
-    return this._colourText;
-  }
-
-  /**
-   * Returns the value of field 'displayBoxes'.
-   * 
-   * @return the value of field 'DisplayBoxes'.
-   */
-  public boolean isDisplayBoxes()
-  {
-    return this._displayBoxes;
-  }
-
-  /**
-   * Returns the value of field 'displayText'.
-   * 
-   * @return the value of field 'DisplayText'.
-   */
-  public boolean isDisplayText()
-  {
-    return this._displayText;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllSeq()
-  {
-    this._seqList.clear();
-  }
-
-  /**
-   * Method removeSeq.
-   * 
-   * @param vSeq
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSeq(final int vSeq)
-  {
-    boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
-    return removed;
-  }
-
-  /**
-   * Method removeSeqAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public int removeSeqAt(final int index)
-  {
-    java.lang.Object obj = this._seqList.remove(index);
-    return ((java.lang.Integer) obj).intValue();
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final java.lang.String colour)
-  {
-    this._colour = colour;
-  }
-
-  /**
-   * Sets the value of field 'colourText'.
-   * 
-   * @param colourText
-   *                the value of field 'colourText'.
-   */
-  public void setColourText(final boolean colourText)
-  {
-    this._colourText = colourText;
-    this._has_colourText = true;
-  }
-
-  /**
-   * Sets the value of field 'consThreshold'.
-   * 
-   * @param consThreshold
-   *                the value of field 'consThreshold'.
-   */
-  public void setConsThreshold(final int consThreshold)
-  {
-    this._consThreshold = consThreshold;
-    this._has_consThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'displayBoxes'.
-   * 
-   * @param displayBoxes
-   *                the value of field 'displayBoxes'.
-   */
-  public void setDisplayBoxes(final boolean displayBoxes)
-  {
-    this._displayBoxes = displayBoxes;
-    this._has_displayBoxes = true;
-  }
-
-  /**
-   * Sets the value of field 'displayText'.
-   * 
-   * @param displayText
-   *                the value of field 'displayText'.
-   */
-  public void setDisplayText(final boolean displayText)
-  {
-    this._displayText = displayText;
-    this._has_displayText = true;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'outlineColour'.
-   * 
-   * @param outlineColour
-   *                the value of field 'outlineColour'.
-   */
-  public void setOutlineColour(final int outlineColour)
-  {
-    this._outlineColour = outlineColour;
-    this._has_outlineColour = true;
-  }
-
-  /**
-   * Sets the value of field 'pidThreshold'.
-   * 
-   * @param pidThreshold
-   *                the value of field 'pidThreshold'.
-   */
-  public void setPidThreshold(final int pidThreshold)
-  {
-    this._pidThreshold = pidThreshold;
-    this._has_pidThreshold = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSeq(final int index, final int vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._seqList.size())
-    {
-      throw new IndexOutOfBoundsException("setSeq: Index value '" + index
-              + "' not in range [0.." + (this._seqList.size() - 1) + "]");
-    }
-
-    this._seqList.set(index, new java.lang.Integer(vSeq));
-  }
-
-  /**
-   * 
-   * 
-   * @param vSeqArray
-   */
-  public void setSeq(final int[] vSeqArray)
-  {
-    // -- copy array
-    _seqList.clear();
-
-    for (int i = 0; i < vSeqArray.length; i++)
-    {
-      this._seqList.add(new java.lang.Integer(vSeqArray[i]));
-    }
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *                the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.JGroup
-   */
-  public static jalview.binding.JGroup unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JGroup) Unmarshaller.unmarshal(
-            jalview.binding.JGroup.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JGroup implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _colour.
+     */
+    private java.lang.String _colour;
+
+    /**
+     * Field _consThreshold.
+     */
+    private int _consThreshold;
+
+    /**
+     * keeps track of state for field: _consThreshold
+     */
+    private boolean _has_consThreshold;
+
+    /**
+     * Field _pidThreshold.
+     */
+    private int _pidThreshold;
+
+    /**
+     * keeps track of state for field: _pidThreshold
+     */
+    private boolean _has_pidThreshold;
+
+    /**
+     * Field _outlineColour.
+     */
+    private int _outlineColour;
+
+    /**
+     * keeps track of state for field: _outlineColour
+     */
+    private boolean _has_outlineColour;
+
+    /**
+     * Field _displayBoxes.
+     */
+    private boolean _displayBoxes;
+
+    /**
+     * keeps track of state for field: _displayBoxes
+     */
+    private boolean _has_displayBoxes;
+
+    /**
+     * Field _displayText.
+     */
+    private boolean _displayText;
+
+    /**
+     * keeps track of state for field: _displayText
+     */
+    private boolean _has_displayText;
+
+    /**
+     * Field _colourText.
+     */
+    private boolean _colourText;
+
+    /**
+     * keeps track of state for field: _colourText
+     */
+    private boolean _has_colourText;
+
+    /**
+     * Field _seqList.
+     */
+    private java.util.Vector _seqList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JGroup() {
+        super();
+        this._seqList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSeq(
+            final int vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._seqList.addElement(new java.lang.Integer(vSeq));
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSeq(
+            final int index,
+            final int vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._seqList.add(index, new java.lang.Integer(vSeq));
+    }
+
+    /**
+     */
+    public void deleteColourText(
+    ) {
+        this._has_colourText= false;
+    }
+
+    /**
+     */
+    public void deleteConsThreshold(
+    ) {
+        this._has_consThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteDisplayBoxes(
+    ) {
+        this._has_displayBoxes= false;
+    }
+
+    /**
+     */
+    public void deleteDisplayText(
+    ) {
+        this._has_displayText= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteOutlineColour(
+    ) {
+        this._has_outlineColour= false;
+    }
+
+    /**
+     */
+    public void deletePidThreshold(
+    ) {
+        this._has_pidThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Method enumerateSeq.
+     * 
+     * @return an Enumeration over all int elements
+     */
+    public java.util.Enumeration enumerateSeq(
+    ) {
+        return this._seqList.elements();
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public java.lang.String getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'colourText'.
+     * 
+     * @return the value of field 'ColourText'.
+     */
+    public boolean getColourText(
+    ) {
+        return this._colourText;
+    }
+
+    /**
+     * Returns the value of field 'consThreshold'.
+     * 
+     * @return the value of field 'ConsThreshold'.
+     */
+    public int getConsThreshold(
+    ) {
+        return this._consThreshold;
+    }
+
+    /**
+     * Returns the value of field 'displayBoxes'.
+     * 
+     * @return the value of field 'DisplayBoxes'.
+     */
+    public boolean getDisplayBoxes(
+    ) {
+        return this._displayBoxes;
+    }
+
+    /**
+     * Returns the value of field 'displayText'.
+     * 
+     * @return the value of field 'DisplayText'.
+     */
+    public boolean getDisplayText(
+    ) {
+        return this._displayText;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'outlineColour'.
+     * 
+     * @return the value of field 'OutlineColour'.
+     */
+    public int getOutlineColour(
+    ) {
+        return this._outlineColour;
+    }
+
+    /**
+     * Returns the value of field 'pidThreshold'.
+     * 
+     * @return the value of field 'PidThreshold'.
+     */
+    public int getPidThreshold(
+    ) {
+        return this._pidThreshold;
+    }
+
+    /**
+     * Method getSeq.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the int at the given index
+     */
+    public int getSeq(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._seqList.size()) {
+            throw new IndexOutOfBoundsException("getSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+        }
+        
+        return ((java.lang.Integer) _seqList.get(index)).intValue();
+    }
+
+    /**
+     * Method getSeq.Returns the contents of the collection in an
+     * Array.  
+     * 
+     * @return this collection as an Array
+     */
+    public int[] getSeq(
+    ) {
+        int size = this._seqList.size();
+        int[] array = new int[size];
+        java.util.Iterator iter = _seqList.iterator();
+        for (int index = 0; index < size; index++) {
+            array[index] = ((java.lang.Integer) iter.next()).intValue();
+        }
+        return array;
+    }
+
+    /**
+     * Method getSeqCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSeqCount(
+    ) {
+        return this._seqList.size();
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasColourText.
+     * 
+     * @return true if at least one ColourText has been added
+     */
+    public boolean hasColourText(
+    ) {
+        return this._has_colourText;
+    }
+
+    /**
+     * Method hasConsThreshold.
+     * 
+     * @return true if at least one ConsThreshold has been added
+     */
+    public boolean hasConsThreshold(
+    ) {
+        return this._has_consThreshold;
+    }
+
+    /**
+     * Method hasDisplayBoxes.
+     * 
+     * @return true if at least one DisplayBoxes has been added
+     */
+    public boolean hasDisplayBoxes(
+    ) {
+        return this._has_displayBoxes;
+    }
+
+    /**
+     * Method hasDisplayText.
+     * 
+     * @return true if at least one DisplayText has been added
+     */
+    public boolean hasDisplayText(
+    ) {
+        return this._has_displayText;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasOutlineColour.
+     * 
+     * @return true if at least one OutlineColour has been added
+     */
+    public boolean hasOutlineColour(
+    ) {
+        return this._has_outlineColour;
+    }
+
+    /**
+     * Method hasPidThreshold.
+     * 
+     * @return true if at least one PidThreshold has been added
+     */
+    public boolean hasPidThreshold(
+    ) {
+        return this._has_pidThreshold;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Returns the value of field 'colourText'.
+     * 
+     * @return the value of field 'ColourText'.
+     */
+    public boolean isColourText(
+    ) {
+        return this._colourText;
+    }
+
+    /**
+     * Returns the value of field 'displayBoxes'.
+     * 
+     * @return the value of field 'DisplayBoxes'.
+     */
+    public boolean isDisplayBoxes(
+    ) {
+        return this._displayBoxes;
+    }
+
+    /**
+     * Returns the value of field 'displayText'.
+     * 
+     * @return the value of field 'DisplayText'.
+     */
+    public boolean isDisplayText(
+    ) {
+        return this._displayText;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllSeq(
+    ) {
+        this._seqList.clear();
+    }
+
+    /**
+     * Method removeSeq.
+     * 
+     * @param vSeq
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSeq(
+            final int vSeq) {
+        boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
+        return removed;
+    }
+
+    /**
+     * Method removeSeqAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public int removeSeqAt(
+            final int index) {
+        java.lang.Object obj = this._seqList.remove(index);
+        return ((java.lang.Integer) obj).intValue();
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final java.lang.String colour) {
+        this._colour = colour;
+    }
+
+    /**
+     * Sets the value of field 'colourText'.
+     * 
+     * @param colourText the value of field 'colourText'.
+     */
+    public void setColourText(
+            final boolean colourText) {
+        this._colourText = colourText;
+        this._has_colourText = true;
+    }
+
+    /**
+     * Sets the value of field 'consThreshold'.
+     * 
+     * @param consThreshold the value of field 'consThreshold'.
+     */
+    public void setConsThreshold(
+            final int consThreshold) {
+        this._consThreshold = consThreshold;
+        this._has_consThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'displayBoxes'.
+     * 
+     * @param displayBoxes the value of field 'displayBoxes'.
+     */
+    public void setDisplayBoxes(
+            final boolean displayBoxes) {
+        this._displayBoxes = displayBoxes;
+        this._has_displayBoxes = true;
+    }
+
+    /**
+     * Sets the value of field 'displayText'.
+     * 
+     * @param displayText the value of field 'displayText'.
+     */
+    public void setDisplayText(
+            final boolean displayText) {
+        this._displayText = displayText;
+        this._has_displayText = true;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'outlineColour'.
+     * 
+     * @param outlineColour the value of field 'outlineColour'.
+     */
+    public void setOutlineColour(
+            final int outlineColour) {
+        this._outlineColour = outlineColour;
+        this._has_outlineColour = true;
+    }
+
+    /**
+     * Sets the value of field 'pidThreshold'.
+     * 
+     * @param pidThreshold the value of field 'pidThreshold'.
+     */
+    public void setPidThreshold(
+            final int pidThreshold) {
+        this._pidThreshold = pidThreshold;
+        this._has_pidThreshold = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSeq(
+            final int index,
+            final int vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._seqList.size()) {
+            throw new IndexOutOfBoundsException("setSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+        }
+        
+        this._seqList.set(index, new java.lang.Integer(vSeq));
+    }
+
+    /**
+     * 
+     * 
+     * @param vSeqArray
+     */
+    public void setSeq(
+            final int[] vSeqArray) {
+        //-- copy array
+        _seqList.clear();
+        
+        for (int i = 0; i < vSeqArray.length; i++) {
+                this._seqList.add(new java.lang.Integer(vSeqArray[i]));
+        }
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JGroup
+     */
+    public static jalview.binding.JGroup unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JGroup) Unmarshaller.unmarshal(jalview.binding.JGroup.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/JSeq.java b/src/jalview/binding/JSeq.java
index 19ef2ae..14b1f2f 100755
--- a/src/jalview/binding/JSeq.java
+++ b/src/jalview/binding/JSeq.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,631 +19,605 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JSeq implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _id.
-   */
-  private int _id;
-
-  /**
-   * keeps track of state for field: _id
-   */
-  private boolean _has_id;
-
-  /**
-   * Field _featuresList.
-   */
-  private java.util.Vector _featuresList;
-
-  /**
-   * Field _pdbidsList.
-   */
-  private java.util.Vector _pdbidsList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JSeq()
-  {
-    super();
-    this._featuresList = new java.util.Vector();
-    this._pdbidsList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addFeatures(final jalview.binding.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._featuresList.addElement(vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addFeatures(final int index,
-          final jalview.binding.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._featuresList.add(index, vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbids(final jalview.binding.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._pdbidsList.addElement(vPdbids);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbids(final int index,
-          final jalview.binding.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._pdbidsList.add(index, vPdbids);
-  }
-
-  /**
-   */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteId()
-  {
-    this._has_id = false;
-  }
-
-  /**
-   */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Method enumerateFeatures.
-   * 
-   * @return an Enumeration over all jalview.binding.Features elements
-   */
-  public java.util.Enumeration enumerateFeatures()
-  {
-    return this._featuresList.elements();
-  }
-
-  /**
-   * Method enumeratePdbids.
-   * 
-   * @return an Enumeration over all jalview.binding.Pdbids elements
-   */
-  public java.util.Enumeration enumeratePdbids()
-  {
-    return this._pdbidsList.elements();
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Method getFeatures.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Features at the given index
-   */
-  public jalview.binding.Features getFeatures(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._featuresList.size())
-    {
-      throw new IndexOutOfBoundsException("getFeatures: Index value '"
-              + index + "' not in range [0.."
-              + (this._featuresList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.Features) _featuresList.get(index);
-  }
-
-  /**
-   * Method getFeatures.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Features[] getFeatures()
-  {
-    jalview.binding.Features[] array = new jalview.binding.Features[0];
-    return (jalview.binding.Features[]) this._featuresList.toArray(array);
-  }
-
-  /**
-   * Method getFeaturesCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getFeaturesCount()
-  {
-    return this._featuresList.size();
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public int getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Method getPdbids.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Pdbids at the given index
-   */
-  public jalview.binding.Pdbids getPdbids(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._pdbidsList.size())
-    {
-      throw new IndexOutOfBoundsException("getPdbids: Index value '"
-              + index + "' not in range [0.."
-              + (this._pdbidsList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.Pdbids) _pdbidsList.get(index);
-  }
-
-  /**
-   * Method getPdbids.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Pdbids[] getPdbids()
-  {
-    jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
-    return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
-  }
-
-  /**
-   * Method getPdbidsCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPdbidsCount()
-  {
-    return this._pdbidsList.size();
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasId.
-   * 
-   * @return true if at least one Id has been added
-   */
-  public boolean hasId()
-  {
-    return this._has_id;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllFeatures()
-  {
-    this._featuresList.clear();
-  }
-
-  /**
-   */
-  public void removeAllPdbids()
-  {
-    this._pdbidsList.clear();
-  }
-
-  /**
-   * Method removeFeatures.
-   * 
-   * @param vFeatures
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeFeatures(final jalview.binding.Features vFeatures)
-  {
-    boolean removed = _featuresList.remove(vFeatures);
-    return removed;
-  }
-
-  /**
-   * Method removeFeaturesAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Features removeFeaturesAt(final int index)
-  {
-    java.lang.Object obj = this._featuresList.remove(index);
-    return (jalview.binding.Features) obj;
-  }
-
-  /**
-   * Method removePdbids.
-   * 
-   * @param vPdbids
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removePdbids(final jalview.binding.Pdbids vPdbids)
-  {
-    boolean removed = _pdbidsList.remove(vPdbids);
-    return removed;
-  }
-
-  /**
-   * Method removePdbidsAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Pdbids removePdbidsAt(final int index)
-  {
-    java.lang.Object obj = this._pdbidsList.remove(index);
-    return (jalview.binding.Pdbids) obj;
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setFeatures(final int index,
-          final jalview.binding.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._featuresList.size())
-    {
-      throw new IndexOutOfBoundsException("setFeatures: Index value '"
-              + index + "' not in range [0.."
-              + (this._featuresList.size() - 1) + "]");
-    }
-
-    this._featuresList.set(index, vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param vFeaturesArray
-   */
-  public void setFeatures(final jalview.binding.Features[] vFeaturesArray)
-  {
-    // -- copy array
-    _featuresList.clear();
-
-    for (int i = 0; i < vFeaturesArray.length; i++)
-    {
-      this._featuresList.add(vFeaturesArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final int id)
-  {
-    this._id = id;
-    this._has_id = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setPdbids(final int index,
-          final jalview.binding.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._pdbidsList.size())
-    {
-      throw new IndexOutOfBoundsException("setPdbids: Index value '"
-              + index + "' not in range [0.."
-              + (this._pdbidsList.size() - 1) + "]");
-    }
-
-    this._pdbidsList.set(index, vPdbids);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbidsArray
-   */
-  public void setPdbids(final jalview.binding.Pdbids[] vPdbidsArray)
-  {
-    // -- copy array
-    _pdbidsList.clear();
-
-    for (int i = 0; i < vPdbidsArray.length; i++)
-    {
-      this._pdbidsList.add(vPdbidsArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *                the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.JSeq
-   */
-  public static jalview.binding.JSeq unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JSeq) Unmarshaller.unmarshal(
-            jalview.binding.JSeq.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JSeq implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _id.
+     */
+    private int _id;
+
+    /**
+     * keeps track of state for field: _id
+     */
+    private boolean _has_id;
+
+    /**
+     * Field _featuresList.
+     */
+    private java.util.Vector _featuresList;
+
+    /**
+     * Field _pdbidsList.
+     */
+    private java.util.Vector _pdbidsList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JSeq() {
+        super();
+        this._featuresList = new java.util.Vector();
+        this._pdbidsList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addFeatures(
+            final jalview.binding.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        this._featuresList.addElement(vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addFeatures(
+            final int index,
+            final jalview.binding.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        this._featuresList.add(index, vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbids(
+            final jalview.binding.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        this._pdbidsList.addElement(vPdbids);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbids(
+            final int index,
+            final jalview.binding.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        this._pdbidsList.add(index, vPdbids);
+    }
+
+    /**
+     */
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteId(
+    ) {
+        this._has_id= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Method enumerateFeatures.
+     * 
+     * @return an Enumeration over all jalview.binding.Features
+     * elements
+     */
+    public java.util.Enumeration enumerateFeatures(
+    ) {
+        return this._featuresList.elements();
+    }
+
+    /**
+     * Method enumeratePdbids.
+     * 
+     * @return an Enumeration over all jalview.binding.Pdbids
+     * elements
+     */
+    public java.util.Enumeration enumeratePdbids(
+    ) {
+        return this._pdbidsList.elements();
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Method getFeatures.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Features at the
+     * given index
+     */
+    public jalview.binding.Features getFeatures(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._featuresList.size()) {
+            throw new IndexOutOfBoundsException("getFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Features) _featuresList.get(index);
+    }
+
+    /**
+     * Method getFeatures.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Features[] getFeatures(
+    ) {
+        jalview.binding.Features[] array = new jalview.binding.Features[0];
+        return (jalview.binding.Features[]) this._featuresList.toArray(array);
+    }
+
+    /**
+     * Method getFeaturesCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getFeaturesCount(
+    ) {
+        return this._featuresList.size();
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public int getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Method getPdbids.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Pdbids at the given
+     * index
+     */
+    public jalview.binding.Pdbids getPdbids(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._pdbidsList.size()) {
+            throw new IndexOutOfBoundsException("getPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Pdbids) _pdbidsList.get(index);
+    }
+
+    /**
+     * Method getPdbids.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Pdbids[] getPdbids(
+    ) {
+        jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
+        return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
+    }
+
+    /**
+     * Method getPdbidsCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPdbidsCount(
+    ) {
+        return this._pdbidsList.size();
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasId.
+     * 
+     * @return true if at least one Id has been added
+     */
+    public boolean hasId(
+    ) {
+        return this._has_id;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllFeatures(
+    ) {
+        this._featuresList.clear();
+    }
+
+    /**
+     */
+    public void removeAllPdbids(
+    ) {
+        this._pdbidsList.clear();
+    }
+
+    /**
+     * Method removeFeatures.
+     * 
+     * @param vFeatures
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeFeatures(
+            final jalview.binding.Features vFeatures) {
+        boolean removed = _featuresList.remove(vFeatures);
+        return removed;
+    }
+
+    /**
+     * Method removeFeaturesAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Features removeFeaturesAt(
+            final int index) {
+        java.lang.Object obj = this._featuresList.remove(index);
+        return (jalview.binding.Features) obj;
+    }
+
+    /**
+     * Method removePdbids.
+     * 
+     * @param vPdbids
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removePdbids(
+            final jalview.binding.Pdbids vPdbids) {
+        boolean removed = _pdbidsList.remove(vPdbids);
+        return removed;
+    }
+
+    /**
+     * Method removePdbidsAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Pdbids removePdbidsAt(
+            final int index) {
+        java.lang.Object obj = this._pdbidsList.remove(index);
+        return (jalview.binding.Pdbids) obj;
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setFeatures(
+            final int index,
+            final jalview.binding.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._featuresList.size()) {
+            throw new IndexOutOfBoundsException("setFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+        }
+        
+        this._featuresList.set(index, vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param vFeaturesArray
+     */
+    public void setFeatures(
+            final jalview.binding.Features[] vFeaturesArray) {
+        //-- copy array
+        _featuresList.clear();
+        
+        for (int i = 0; i < vFeaturesArray.length; i++) {
+                this._featuresList.add(vFeaturesArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final int id) {
+        this._id = id;
+        this._has_id = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setPdbids(
+            final int index,
+            final jalview.binding.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._pdbidsList.size()) {
+            throw new IndexOutOfBoundsException("setPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+        }
+        
+        this._pdbidsList.set(index, vPdbids);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbidsArray
+     */
+    public void setPdbids(
+            final jalview.binding.Pdbids[] vPdbidsArray) {
+        //-- copy array
+        _pdbidsList.clear();
+        
+        for (int i = 0; i < vPdbidsArray.length; i++) {
+                this._pdbidsList.add(vPdbidsArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JSeq
+     */
+    public static jalview.binding.JSeq unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JSeq) Unmarshaller.unmarshal(jalview.binding.JSeq.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/JalviewModel.java b/src/jalview/binding/JalviewModel.java
index eae870d..21f8be9 100755
--- a/src/jalview/binding/JalviewModel.java
+++ b/src/jalview/binding/JalviewModel.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,219 +19,202 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModel implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _creationDate.
-   */
-  private java.util.Date _creationDate;
-
-  /**
-   * Field _version.
-   */
-  private java.lang.String _version;
-
-  /**
-   * Field _vamsasModel.
-   */
-  private jalview.binding.VamsasModel _vamsasModel;
-
-  /**
-   * Field _jalviewModelSequence.
-   */
-  private jalview.binding.JalviewModelSequence _jalviewModelSequence;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModel()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'creationDate'.
-   * 
-   * @return the value of field 'CreationDate'.
-   */
-  public java.util.Date getCreationDate()
-  {
-    return this._creationDate;
-  }
-
-  /**
-   * Returns the value of field 'jalviewModelSequence'.
-   * 
-   * @return the value of field 'JalviewModelSequence'.
-   */
-  public jalview.binding.JalviewModelSequence getJalviewModelSequence()
-  {
-    return this._jalviewModelSequence;
-  }
-
-  /**
-   * Returns the value of field 'vamsasModel'.
-   * 
-   * @return the value of field 'VamsasModel'.
-   */
-  public jalview.binding.VamsasModel getVamsasModel()
-  {
-    return this._vamsasModel;
-  }
-
-  /**
-   * Returns the value of field 'version'.
-   * 
-   * @return the value of field 'Version'.
-   */
-  public java.lang.String getVersion()
-  {
-    return this._version;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class JalviewModel implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _creationDate.
+     */
+    private java.util.Date _creationDate;
+
+    /**
+     * Field _version.
+     */
+    private java.lang.String _version;
+
+    /**
+     * Field _vamsasModel.
+     */
+    private jalview.binding.VamsasModel _vamsasModel;
+
+    /**
+     * Field _jalviewModelSequence.
+     */
+    private jalview.binding.JalviewModelSequence _jalviewModelSequence;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModel() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'creationDate'.
+     * 
+     * @return the value of field 'CreationDate'.
+     */
+    public java.util.Date getCreationDate(
+    ) {
+        return this._creationDate;
+    }
+
+    /**
+     * Returns the value of field 'jalviewModelSequence'.
+     * 
+     * @return the value of field 'JalviewModelSequence'.
+     */
+    public jalview.binding.JalviewModelSequence getJalviewModelSequence(
+    ) {
+        return this._jalviewModelSequence;
+    }
+
+    /**
+     * Returns the value of field 'vamsasModel'.
+     * 
+     * @return the value of field 'VamsasModel'.
+     */
+    public jalview.binding.VamsasModel getVamsasModel(
+    ) {
+        return this._vamsasModel;
+    }
+
+    /**
+     * Returns the value of field 'version'.
+     * 
+     * @return the value of field 'Version'.
+     */
+    public java.lang.String getVersion(
+    ) {
+        return this._version;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'creationDate'.
+     * 
+     * @param creationDate the value of field 'creationDate'.
+     */
+    public void setCreationDate(
+            final java.util.Date creationDate) {
+        this._creationDate = creationDate;
+    }
+
+    /**
+     * Sets the value of field 'jalviewModelSequence'.
+     * 
+     * @param jalviewModelSequence the value of field
+     * 'jalviewModelSequence'.
+     */
+    public void setJalviewModelSequence(
+            final jalview.binding.JalviewModelSequence jalviewModelSequence) {
+        this._jalviewModelSequence = jalviewModelSequence;
+    }
+
+    /**
+     * Sets the value of field 'vamsasModel'.
+     * 
+     * @param vamsasModel the value of field 'vamsasModel'.
+     */
+    public void setVamsasModel(
+            final jalview.binding.VamsasModel vamsasModel) {
+        this._vamsasModel = vamsasModel;
+    }
+
+    /**
+     * Sets the value of field 'version'.
+     * 
+     * @param version the value of field 'version'.
+     */
+    public void setVersion(
+            final java.lang.String version) {
+        this._version = version;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewModel
+     */
+    public static jalview.binding.JalviewModel unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(jalview.binding.JalviewModel.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'creationDate'.
-   * 
-   * @param creationDate
-   *                the value of field 'creationDate'.
-   */
-  public void setCreationDate(final java.util.Date creationDate)
-  {
-    this._creationDate = creationDate;
-  }
-
-  /**
-   * Sets the value of field 'jalviewModelSequence'.
-   * 
-   * @param jalviewModelSequence
-   *                the value of field 'jalviewModelSequence'.
-   */
-  public void setJalviewModelSequence(
-          final jalview.binding.JalviewModelSequence jalviewModelSequence)
-  {
-    this._jalviewModelSequence = jalviewModelSequence;
-  }
-
-  /**
-   * Sets the value of field 'vamsasModel'.
-   * 
-   * @param vamsasModel
-   *                the value of field 'vamsasModel'.
-   */
-  public void setVamsasModel(final jalview.binding.VamsasModel vamsasModel)
-  {
-    this._vamsasModel = vamsasModel;
-  }
-
-  /**
-   * Sets the value of field 'version'.
-   * 
-   * @param version
-   *                the value of field 'version'.
-   */
-  public void setVersion(final java.lang.String version)
-  {
-    this._version = version;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.JalviewModel
-   */
-  public static jalview.binding.JalviewModel unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(
-            jalview.binding.JalviewModel.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/JalviewModelSequence.java b/src/jalview/binding/JalviewModelSequence.java
index 2a247c0..5ebcee6 100755
--- a/src/jalview/binding/JalviewModelSequence.java
+++ b/src/jalview/binding/JalviewModelSequence.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,941 +19,904 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModelSequence implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _JSeqList.
-   */
-  private java.util.Vector _JSeqList;
-
-  /**
-   * Field _JGroupList.
-   */
-  private java.util.Vector _JGroupList;
-
-  /**
-   * Field _viewportList.
-   */
-  private java.util.Vector _viewportList;
-
-  /**
-   * Field _userColoursList.
-   */
-  private java.util.Vector _userColoursList;
-
-  /**
-   * Field _treeList.
-   */
-  private java.util.Vector _treeList;
-
-  /**
-   * Field _featureSettings.
-   */
-  private jalview.binding.FeatureSettings _featureSettings;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModelSequence()
-  {
-    super();
-    this._JSeqList = new java.util.Vector();
-    this._JGroupList = new java.util.Vector();
-    this._viewportList = new java.util.Vector();
-    this._userColoursList = new java.util.Vector();
-    this._treeList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJGroup(final jalview.binding.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JGroupList.addElement(vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJGroup(final int index,
-          final jalview.binding.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JGroupList.add(index, vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJSeq(final jalview.binding.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JSeqList.addElement(vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJSeq(final int index, final jalview.binding.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JSeqList.add(index, vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final jalview.binding.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.addElement(vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final int index, final jalview.binding.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.add(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addUserColours(final jalview.binding.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._userColoursList.addElement(vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addUserColours(final int index,
-          final jalview.binding.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._userColoursList.add(index, vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addViewport(final jalview.binding.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._viewportList.addElement(vViewport);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addViewport(final int index,
-          final jalview.binding.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._viewportList.add(index, vViewport);
-  }
-
-  /**
-   * Method enumerateJGroup.
-   * 
-   * @return an Enumeration over all jalview.binding.JGroup elements
-   */
-  public java.util.Enumeration enumerateJGroup()
-  {
-    return this._JGroupList.elements();
-  }
-
-  /**
-   * Method enumerateJSeq.
-   * 
-   * @return an Enumeration over all jalview.binding.JSeq elements
-   */
-  public java.util.Enumeration enumerateJSeq()
-  {
-    return this._JSeqList.elements();
-  }
-
-  /**
-   * Method enumerateTree.
-   * 
-   * @return an Enumeration over all jalview.binding.Tree elements
-   */
-  public java.util.Enumeration enumerateTree()
-  {
-    return this._treeList.elements();
-  }
-
-  /**
-   * Method enumerateUserColours.
-   * 
-   * @return an Enumeration over all jalview.binding.UserColours elements
-   */
-  public java.util.Enumeration enumerateUserColours()
-  {
-    return this._userColoursList.elements();
-  }
-
-  /**
-   * Method enumerateViewport.
-   * 
-   * @return an Enumeration over all jalview.binding.Viewport elements
-   */
-  public java.util.Enumeration enumerateViewport()
-  {
-    return this._viewportList.elements();
-  }
-
-  /**
-   * Returns the value of field 'featureSettings'.
-   * 
-   * @return the value of field 'FeatureSettings'.
-   */
-  public jalview.binding.FeatureSettings getFeatureSettings()
-  {
-    return this._featureSettings;
-  }
-
-  /**
-   * Method getJGroup.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.JGroup at the given index
-   */
-  public jalview.binding.JGroup getJGroup(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JGroupList.size())
-    {
-      throw new IndexOutOfBoundsException("getJGroup: Index value '"
-              + index + "' not in range [0.."
-              + (this._JGroupList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.JGroup) _JGroupList.get(index);
-  }
-
-  /**
-   * Method getJGroup.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.JGroup[] getJGroup()
-  {
-    jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
-    return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
-  }
-
-  /**
-   * Method getJGroupCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getJGroupCount()
-  {
-    return this._JGroupList.size();
-  }
-
-  /**
-   * Method getJSeq.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.JSeq at the given index
-   */
-  public jalview.binding.JSeq getJSeq(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JSeqList.size())
-    {
-      throw new IndexOutOfBoundsException("getJSeq: Index value '" + index
-              + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.JSeq) _JSeqList.get(index);
-  }
-
-  /**
-   * Method getJSeq.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.JSeq[] getJSeq()
-  {
-    jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
-    return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
-  }
-
-  /**
-   * Method getJSeqCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getJSeqCount()
-  {
-    return this._JSeqList.size();
-  }
-
-  /**
-   * Method getTree.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Tree at the given index
-   */
-  public jalview.binding.Tree getTree(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("getTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.Tree) _treeList.get(index);
-  }
-
-  /**
-   * Method getTree.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Tree[] getTree()
-  {
-    jalview.binding.Tree[] array = new jalview.binding.Tree[0];
-    return (jalview.binding.Tree[]) this._treeList.toArray(array);
-  }
-
-  /**
-   * Method getTreeCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getTreeCount()
-  {
-    return this._treeList.size();
-  }
-
-  /**
-   * Method getUserColours.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.UserColours at the given index
-   */
-  public jalview.binding.UserColours getUserColours(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._userColoursList.size())
-    {
-      throw new IndexOutOfBoundsException("getUserColours: Index value '"
-              + index + "' not in range [0.."
-              + (this._userColoursList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.UserColours) _userColoursList.get(index);
-  }
-
-  /**
-   * Method getUserColours.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.UserColours[] getUserColours()
-  {
-    jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
-    return (jalview.binding.UserColours[]) this._userColoursList
-            .toArray(array);
-  }
-
-  /**
-   * Method getUserColoursCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getUserColoursCount()
-  {
-    return this._userColoursList.size();
-  }
-
-  /**
-   * Method getViewport.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Viewport at the given index
-   */
-  public jalview.binding.Viewport getViewport(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._viewportList.size())
-    {
-      throw new IndexOutOfBoundsException("getViewport: Index value '"
-              + index + "' not in range [0.."
-              + (this._viewportList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.Viewport) _viewportList.get(index);
-  }
-
-  /**
-   * Method getViewport.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Viewport[] getViewport()
-  {
-    jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
-    return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
-  }
-
-  /**
-   * Method getViewportCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getViewportCount()
-  {
-    return this._viewportList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllJGroup()
-  {
-    this._JGroupList.clear();
-  }
-
-  /**
-   */
-  public void removeAllJSeq()
-  {
-    this._JSeqList.clear();
-  }
-
-  /**
-   */
-  public void removeAllTree()
-  {
-    this._treeList.clear();
-  }
-
-  /**
-   */
-  public void removeAllUserColours()
-  {
-    this._userColoursList.clear();
-  }
-
-  /**
-   */
-  public void removeAllViewport()
-  {
-    this._viewportList.clear();
-  }
-
-  /**
-   * Method removeJGroup.
-   * 
-   * @param vJGroup
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeJGroup(final jalview.binding.JGroup vJGroup)
-  {
-    boolean removed = _JGroupList.remove(vJGroup);
-    return removed;
-  }
-
-  /**
-   * Method removeJGroupAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.JGroup removeJGroupAt(final int index)
-  {
-    java.lang.Object obj = this._JGroupList.remove(index);
-    return (jalview.binding.JGroup) obj;
-  }
-
-  /**
-   * Method removeJSeq.
-   * 
-   * @param vJSeq
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeJSeq(final jalview.binding.JSeq vJSeq)
-  {
-    boolean removed = _JSeqList.remove(vJSeq);
-    return removed;
-  }
-
-  /**
-   * Method removeJSeqAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.JSeq removeJSeqAt(final int index)
-  {
-    java.lang.Object obj = this._JSeqList.remove(index);
-    return (jalview.binding.JSeq) obj;
-  }
-
-  /**
-   * Method removeTree.
-   * 
-   * @param vTree
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeTree(final jalview.binding.Tree vTree)
-  {
-    boolean removed = _treeList.remove(vTree);
-    return removed;
-  }
-
-  /**
-   * Method removeTreeAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Tree removeTreeAt(final int index)
-  {
-    java.lang.Object obj = this._treeList.remove(index);
-    return (jalview.binding.Tree) obj;
-  }
-
-  /**
-   * Method removeUserColours.
-   * 
-   * @param vUserColours
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeUserColours(
-          final jalview.binding.UserColours vUserColours)
-  {
-    boolean removed = _userColoursList.remove(vUserColours);
-    return removed;
-  }
-
-  /**
-   * Method removeUserColoursAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.UserColours removeUserColoursAt(final int index)
-  {
-    java.lang.Object obj = this._userColoursList.remove(index);
-    return (jalview.binding.UserColours) obj;
-  }
-
-  /**
-   * Method removeViewport.
-   * 
-   * @param vViewport
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeViewport(final jalview.binding.Viewport vViewport)
-  {
-    boolean removed = _viewportList.remove(vViewport);
-    return removed;
-  }
-
-  /**
-   * Method removeViewportAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Viewport removeViewportAt(final int index)
-  {
-    java.lang.Object obj = this._viewportList.remove(index);
-    return (jalview.binding.Viewport) obj;
-  }
-
-  /**
-   * Sets the value of field 'featureSettings'.
-   * 
-   * @param featureSettings
-   *                the value of field 'featureSettings'.
-   */
-  public void setFeatureSettings(
-          final jalview.binding.FeatureSettings featureSettings)
-  {
-    this._featureSettings = featureSettings;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setJGroup(final int index,
-          final jalview.binding.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JGroupList.size())
-    {
-      throw new IndexOutOfBoundsException("setJGroup: Index value '"
-              + index + "' not in range [0.."
-              + (this._JGroupList.size() - 1) + "]");
-    }
-
-    this._JGroupList.set(index, vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJGroupArray
-   */
-  public void setJGroup(final jalview.binding.JGroup[] vJGroupArray)
-  {
-    // -- copy array
-    _JGroupList.clear();
-
-    for (int i = 0; i < vJGroupArray.length; i++)
-    {
-      this._JGroupList.add(vJGroupArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setJSeq(final int index, final jalview.binding.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JSeqList.size())
-    {
-      throw new IndexOutOfBoundsException("setJSeq: Index value '" + index
-              + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
-    }
-
-    this._JSeqList.set(index, vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJSeqArray
-   */
-  public void setJSeq(final jalview.binding.JSeq[] vJSeqArray)
-  {
-    // -- copy array
-    _JSeqList.clear();
-
-    for (int i = 0; i < vJSeqArray.length; i++)
-    {
-      this._JSeqList.add(vJSeqArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setTree(final int index, final jalview.binding.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("setTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
-    }
-
-    this._treeList.set(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTreeArray
-   */
-  public void setTree(final jalview.binding.Tree[] vTreeArray)
-  {
-    // -- copy array
-    _treeList.clear();
-
-    for (int i = 0; i < vTreeArray.length; i++)
-    {
-      this._treeList.add(vTreeArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setUserColours(final int index,
-          final jalview.binding.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._userColoursList.size())
-    {
-      throw new IndexOutOfBoundsException("setUserColours: Index value '"
-              + index + "' not in range [0.."
-              + (this._userColoursList.size() - 1) + "]");
-    }
-
-    this._userColoursList.set(index, vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param vUserColoursArray
-   */
-  public void setUserColours(
-          final jalview.binding.UserColours[] vUserColoursArray)
-  {
-    // -- copy array
-    _userColoursList.clear();
-
-    for (int i = 0; i < vUserColoursArray.length; i++)
-    {
-      this._userColoursList.add(vUserColoursArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setViewport(final int index,
-          final jalview.binding.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._viewportList.size())
-    {
-      throw new IndexOutOfBoundsException("setViewport: Index value '"
-              + index + "' not in range [0.."
-              + (this._viewportList.size() - 1) + "]");
-    }
-
-    this._viewportList.set(index, vViewport);
-  }
-
-  /**
-   * 
-   * 
-   * @param vViewportArray
-   */
-  public void setViewport(final jalview.binding.Viewport[] vViewportArray)
-  {
-    // -- copy array
-    _viewportList.clear();
-
-    for (int i = 0; i < vViewportArray.length; i++)
-    {
-      this._viewportList.add(vViewportArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.JalviewModelSequence
-   */
-  public static jalview.binding.JalviewModelSequence unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(
-            jalview.binding.JalviewModelSequence.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JalviewModelSequence implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _JSeqList.
+     */
+    private java.util.Vector _JSeqList;
+
+    /**
+     * Field _JGroupList.
+     */
+    private java.util.Vector _JGroupList;
+
+    /**
+     * Field _viewportList.
+     */
+    private java.util.Vector _viewportList;
+
+    /**
+     * Field _userColoursList.
+     */
+    private java.util.Vector _userColoursList;
+
+    /**
+     * Field _treeList.
+     */
+    private java.util.Vector _treeList;
+
+    /**
+     * Field _featureSettings.
+     */
+    private jalview.binding.FeatureSettings _featureSettings;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModelSequence() {
+        super();
+        this._JSeqList = new java.util.Vector();
+        this._JGroupList = new java.util.Vector();
+        this._viewportList = new java.util.Vector();
+        this._userColoursList = new java.util.Vector();
+        this._treeList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJGroup(
+            final jalview.binding.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JGroupList.addElement(vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJGroup(
+            final int index,
+            final jalview.binding.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JGroupList.add(index, vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJSeq(
+            final jalview.binding.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JSeqList.addElement(vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJSeq(
+            final int index,
+            final jalview.binding.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JSeqList.add(index, vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final jalview.binding.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.addElement(vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final int index,
+            final jalview.binding.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.add(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addUserColours(
+            final jalview.binding.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        this._userColoursList.addElement(vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addUserColours(
+            final int index,
+            final jalview.binding.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        this._userColoursList.add(index, vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addViewport(
+            final jalview.binding.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        this._viewportList.addElement(vViewport);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addViewport(
+            final int index,
+            final jalview.binding.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        this._viewportList.add(index, vViewport);
+    }
+
+    /**
+     * Method enumerateJGroup.
+     * 
+     * @return an Enumeration over all jalview.binding.JGroup
+     * elements
+     */
+    public java.util.Enumeration enumerateJGroup(
+    ) {
+        return this._JGroupList.elements();
+    }
+
+    /**
+     * Method enumerateJSeq.
+     * 
+     * @return an Enumeration over all jalview.binding.JSeq elements
+     */
+    public java.util.Enumeration enumerateJSeq(
+    ) {
+        return this._JSeqList.elements();
+    }
+
+    /**
+     * Method enumerateTree.
+     * 
+     * @return an Enumeration over all jalview.binding.Tree elements
+     */
+    public java.util.Enumeration enumerateTree(
+    ) {
+        return this._treeList.elements();
+    }
+
+    /**
+     * Method enumerateUserColours.
+     * 
+     * @return an Enumeration over all jalview.binding.UserColours
+     * elements
+     */
+    public java.util.Enumeration enumerateUserColours(
+    ) {
+        return this._userColoursList.elements();
+    }
+
+    /**
+     * Method enumerateViewport.
+     * 
+     * @return an Enumeration over all jalview.binding.Viewport
+     * elements
+     */
+    public java.util.Enumeration enumerateViewport(
+    ) {
+        return this._viewportList.elements();
+    }
+
+    /**
+     * Returns the value of field 'featureSettings'.
+     * 
+     * @return the value of field 'FeatureSettings'.
+     */
+    public jalview.binding.FeatureSettings getFeatureSettings(
+    ) {
+        return this._featureSettings;
+    }
+
+    /**
+     * Method getJGroup.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.JGroup at the given
+     * index
+     */
+    public jalview.binding.JGroup getJGroup(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JGroupList.size()) {
+            throw new IndexOutOfBoundsException("getJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.JGroup) _JGroupList.get(index);
+    }
+
+    /**
+     * Method getJGroup.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.JGroup[] getJGroup(
+    ) {
+        jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
+        return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
+    }
+
+    /**
+     * Method getJGroupCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getJGroupCount(
+    ) {
+        return this._JGroupList.size();
+    }
+
+    /**
+     * Method getJSeq.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.JSeq at the given
+     * index
+     */
+    public jalview.binding.JSeq getJSeq(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JSeqList.size()) {
+            throw new IndexOutOfBoundsException("getJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.JSeq) _JSeqList.get(index);
+    }
+
+    /**
+     * Method getJSeq.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.JSeq[] getJSeq(
+    ) {
+        jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
+        return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
+    }
+
+    /**
+     * Method getJSeqCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getJSeqCount(
+    ) {
+        return this._JSeqList.size();
+    }
+
+    /**
+     * Method getTree.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Tree at the given
+     * index
+     */
+    public jalview.binding.Tree getTree(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Tree) _treeList.get(index);
+    }
+
+    /**
+     * Method getTree.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Tree[] getTree(
+    ) {
+        jalview.binding.Tree[] array = new jalview.binding.Tree[0];
+        return (jalview.binding.Tree[]) this._treeList.toArray(array);
+    }
+
+    /**
+     * Method getTreeCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getTreeCount(
+    ) {
+        return this._treeList.size();
+    }
+
+    /**
+     * Method getUserColours.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.UserColours at the
+     * given index
+     */
+    public jalview.binding.UserColours getUserColours(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._userColoursList.size()) {
+            throw new IndexOutOfBoundsException("getUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.UserColours) _userColoursList.get(index);
+    }
+
+    /**
+     * Method getUserColours.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.UserColours[] getUserColours(
+    ) {
+        jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
+        return (jalview.binding.UserColours[]) this._userColoursList.toArray(array);
+    }
+
+    /**
+     * Method getUserColoursCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getUserColoursCount(
+    ) {
+        return this._userColoursList.size();
+    }
+
+    /**
+     * Method getViewport.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Viewport at the
+     * given index
+     */
+    public jalview.binding.Viewport getViewport(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._viewportList.size()) {
+            throw new IndexOutOfBoundsException("getViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Viewport) _viewportList.get(index);
+    }
+
+    /**
+     * Method getViewport.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Viewport[] getViewport(
+    ) {
+        jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
+        return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
+    }
+
+    /**
+     * Method getViewportCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getViewportCount(
+    ) {
+        return this._viewportList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllJGroup(
+    ) {
+        this._JGroupList.clear();
+    }
+
+    /**
+     */
+    public void removeAllJSeq(
+    ) {
+        this._JSeqList.clear();
+    }
+
+    /**
+     */
+    public void removeAllTree(
+    ) {
+        this._treeList.clear();
+    }
+
+    /**
+     */
+    public void removeAllUserColours(
+    ) {
+        this._userColoursList.clear();
+    }
+
+    /**
+     */
+    public void removeAllViewport(
+    ) {
+        this._viewportList.clear();
+    }
+
+    /**
+     * Method removeJGroup.
+     * 
+     * @param vJGroup
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeJGroup(
+            final jalview.binding.JGroup vJGroup) {
+        boolean removed = _JGroupList.remove(vJGroup);
+        return removed;
+    }
+
+    /**
+     * Method removeJGroupAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.JGroup removeJGroupAt(
+            final int index) {
+        java.lang.Object obj = this._JGroupList.remove(index);
+        return (jalview.binding.JGroup) obj;
+    }
+
+    /**
+     * Method removeJSeq.
+     * 
+     * @param vJSeq
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeJSeq(
+            final jalview.binding.JSeq vJSeq) {
+        boolean removed = _JSeqList.remove(vJSeq);
+        return removed;
+    }
+
+    /**
+     * Method removeJSeqAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.JSeq removeJSeqAt(
+            final int index) {
+        java.lang.Object obj = this._JSeqList.remove(index);
+        return (jalview.binding.JSeq) obj;
+    }
+
+    /**
+     * Method removeTree.
+     * 
+     * @param vTree
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeTree(
+            final jalview.binding.Tree vTree) {
+        boolean removed = _treeList.remove(vTree);
+        return removed;
+    }
+
+    /**
+     * Method removeTreeAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Tree removeTreeAt(
+            final int index) {
+        java.lang.Object obj = this._treeList.remove(index);
+        return (jalview.binding.Tree) obj;
+    }
+
+    /**
+     * Method removeUserColours.
+     * 
+     * @param vUserColours
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeUserColours(
+            final jalview.binding.UserColours vUserColours) {
+        boolean removed = _userColoursList.remove(vUserColours);
+        return removed;
+    }
+
+    /**
+     * Method removeUserColoursAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.UserColours removeUserColoursAt(
+            final int index) {
+        java.lang.Object obj = this._userColoursList.remove(index);
+        return (jalview.binding.UserColours) obj;
+    }
+
+    /**
+     * Method removeViewport.
+     * 
+     * @param vViewport
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeViewport(
+            final jalview.binding.Viewport vViewport) {
+        boolean removed = _viewportList.remove(vViewport);
+        return removed;
+    }
+
+    /**
+     * Method removeViewportAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Viewport removeViewportAt(
+            final int index) {
+        java.lang.Object obj = this._viewportList.remove(index);
+        return (jalview.binding.Viewport) obj;
+    }
+
+    /**
+     * Sets the value of field 'featureSettings'.
+     * 
+     * @param featureSettings the value of field 'featureSettings'.
+     */
+    public void setFeatureSettings(
+            final jalview.binding.FeatureSettings featureSettings) {
+        this._featureSettings = featureSettings;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setJGroup(
+            final int index,
+            final jalview.binding.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JGroupList.size()) {
+            throw new IndexOutOfBoundsException("setJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+        }
+        
+        this._JGroupList.set(index, vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJGroupArray
+     */
+    public void setJGroup(
+            final jalview.binding.JGroup[] vJGroupArray) {
+        //-- copy array
+        _JGroupList.clear();
+        
+        for (int i = 0; i < vJGroupArray.length; i++) {
+                this._JGroupList.add(vJGroupArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setJSeq(
+            final int index,
+            final jalview.binding.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JSeqList.size()) {
+            throw new IndexOutOfBoundsException("setJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+        }
+        
+        this._JSeqList.set(index, vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJSeqArray
+     */
+    public void setJSeq(
+            final jalview.binding.JSeq[] vJSeqArray) {
+        //-- copy array
+        _JSeqList.clear();
+        
+        for (int i = 0; i < vJSeqArray.length; i++) {
+                this._JSeqList.add(vJSeqArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setTree(
+            final int index,
+            final jalview.binding.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        this._treeList.set(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTreeArray
+     */
+    public void setTree(
+            final jalview.binding.Tree[] vTreeArray) {
+        //-- copy array
+        _treeList.clear();
+        
+        for (int i = 0; i < vTreeArray.length; i++) {
+                this._treeList.add(vTreeArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setUserColours(
+            final int index,
+            final jalview.binding.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._userColoursList.size()) {
+            throw new IndexOutOfBoundsException("setUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+        }
+        
+        this._userColoursList.set(index, vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param vUserColoursArray
+     */
+    public void setUserColours(
+            final jalview.binding.UserColours[] vUserColoursArray) {
+        //-- copy array
+        _userColoursList.clear();
+        
+        for (int i = 0; i < vUserColoursArray.length; i++) {
+                this._userColoursList.add(vUserColoursArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setViewport(
+            final int index,
+            final jalview.binding.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._viewportList.size()) {
+            throw new IndexOutOfBoundsException("setViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+        }
+        
+        this._viewportList.set(index, vViewport);
+    }
+
+    /**
+     * 
+     * 
+     * @param vViewportArray
+     */
+    public void setViewport(
+            final jalview.binding.Viewport[] vViewportArray) {
+        //-- copy array
+        _viewportList.clear();
+        
+        for (int i = 0; i < vViewportArray.length; i++) {
+                this._viewportList.add(vViewportArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewModelSequence
+     */
+    public static jalview.binding.JalviewModelSequence unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(jalview.binding.JalviewModelSequence.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/JalviewUserColours.java b/src/jalview/binding/JalviewUserColours.java
index 822392e..b5d0335 100755
--- a/src/jalview/binding/JalviewUserColours.java
+++ b/src/jalview/binding/JalviewUserColours.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,299 +19,280 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewUserColours implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _schemeName.
-   */
-  private java.lang.String _schemeName;
-
-  /**
-   * Field _colourList.
-   */
-  private java.util.Vector _colourList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewUserColours()
-  {
-    super();
-    this._colourList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addColour(final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._colourList.addElement(vColour);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addColour(final int index, final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._colourList.add(index, vColour);
-  }
-
-  /**
-   * Method enumerateColour.
-   * 
-   * @return an Enumeration over all Colour elements
-   */
-  public java.util.Enumeration enumerateColour()
-  {
-    return this._colourList.elements();
-  }
-
-  /**
-   * Method getColour.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the Colour at the given index
-   */
-  public Colour getColour(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._colourList.size())
-    {
-      throw new IndexOutOfBoundsException("getColour: Index value '"
-              + index + "' not in range [0.."
-              + (this._colourList.size() - 1) + "]");
+public class JalviewUserColours implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _schemeName.
+     */
+    private java.lang.String _schemeName;
+
+    /**
+     * Field _colourList.
+     */
+    private java.util.Vector _colourList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewUserColours() {
+        super();
+        this._colourList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addColour(
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        this._colourList.addElement(vColour);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addColour(
+            final int index,
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        this._colourList.add(index, vColour);
+    }
+
+    /**
+     * Method enumerateColour.
+     * 
+     * @return an Enumeration over all Colour elements
+     */
+    public java.util.Enumeration enumerateColour(
+    ) {
+        return this._colourList.elements();
+    }
+
+    /**
+     * Method getColour.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the Colour at the given index
+     */
+    public Colour getColour(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._colourList.size()) {
+            throw new IndexOutOfBoundsException("getColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+        }
+        
+        return (Colour) _colourList.get(index);
+    }
+
+    /**
+     * Method getColour.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public Colour[] getColour(
+    ) {
+        Colour[] array = new Colour[0];
+        return (Colour[]) this._colourList.toArray(array);
+    }
+
+    /**
+     * Method getColourCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getColourCount(
+    ) {
+        return this._colourList.size();
+    }
+
+    /**
+     * Returns the value of field 'schemeName'.
+     * 
+     * @return the value of field 'SchemeName'.
+     */
+    public java.lang.String getSchemeName(
+    ) {
+        return this._schemeName;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
     }
 
-    return (Colour) _colourList.get(index);
-  }
-
-  /**
-   * Method getColour.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public Colour[] getColour()
-  {
-    Colour[] array = new Colour[0];
-    return (Colour[]) this._colourList.toArray(array);
-  }
-
-  /**
-   * Method getColourCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getColourCount()
-  {
-    return this._colourList.size();
-  }
-
-  /**
-   * Returns the value of field 'schemeName'.
-   * 
-   * @return the value of field 'SchemeName'.
-   */
-  public java.lang.String getSchemeName()
-  {
-    return this._schemeName;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     */
+    public void removeAllColour(
+    ) {
+        this._colourList.clear();
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllColour()
-  {
-    this._colourList.clear();
-  }
-
-  /**
-   * Method removeColour.
-   * 
-   * @param vColour
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeColour(final Colour vColour)
-  {
-    boolean removed = _colourList.remove(vColour);
-    return removed;
-  }
-
-  /**
-   * Method removeColourAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public Colour removeColourAt(final int index)
-  {
-    java.lang.Object obj = this._colourList.remove(index);
-    return (Colour) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setColour(final int index, final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._colourList.size())
-    {
-      throw new IndexOutOfBoundsException("setColour: Index value '"
-              + index + "' not in range [0.."
-              + (this._colourList.size() - 1) + "]");
+
+    /**
+     * Method removeColour.
+     * 
+     * @param vColour
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeColour(
+            final Colour vColour) {
+        boolean removed = _colourList.remove(vColour);
+        return removed;
+    }
+
+    /**
+     * Method removeColourAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public Colour removeColourAt(
+            final int index) {
+        java.lang.Object obj = this._colourList.remove(index);
+        return (Colour) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setColour(
+            final int index,
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._colourList.size()) {
+            throw new IndexOutOfBoundsException("setColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+        }
+        
+        this._colourList.set(index, vColour);
+    }
+
+    /**
+     * 
+     * 
+     * @param vColourArray
+     */
+    public void setColour(
+            final Colour[] vColourArray) {
+        //-- copy array
+        _colourList.clear();
+        
+        for (int i = 0; i < vColourArray.length; i++) {
+                this._colourList.add(vColourArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'schemeName'.
+     * 
+     * @param schemeName the value of field 'schemeName'.
+     */
+    public void setSchemeName(
+            final java.lang.String schemeName) {
+        this._schemeName = schemeName;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewUserColours
+     */
+    public static jalview.binding.JalviewUserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.JalviewUserColours.class, reader);
     }
 
-    this._colourList.set(index, vColour);
-  }
-
-  /**
-   * 
-   * 
-   * @param vColourArray
-   */
-  public void setColour(final Colour[] vColourArray)
-  {
-    // -- copy array
-    _colourList.clear();
-
-    for (int i = 0; i < vColourArray.length; i++)
-    {
-      this._colourList.add(vColourArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'schemeName'.
-   * 
-   * @param schemeName
-   *                the value of field 'schemeName'.
-   */
-  public void setSchemeName(final java.lang.String schemeName)
-  {
-    this._schemeName = schemeName;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.JalviewUserColours
-   */
-  public static jalview.binding.JalviewUserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
-            jalview.binding.JalviewUserColours.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/Pdbentry.java b/src/jalview/binding/Pdbentry.java
index 53a2484..cac4cf6 100755
--- a/src/jalview/binding/Pdbentry.java
+++ b/src/jalview/binding/Pdbentry.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,330 +19,308 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Pdbentry implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _items.
-   */
-  private java.util.Vector _items;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Pdbentry()
-  {
-    super();
-    this._items = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbentryItem(
-          final jalview.binding.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._items.addElement(vPdbentryItem);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbentryItem(final int index,
-          final jalview.binding.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._items.add(index, vPdbentryItem);
-  }
-
-  /**
-   * Method enumeratePdbentryItem.
-   * 
-   * @return an Enumeration over all jalview.binding.PdbentryItem elements
-   */
-  public java.util.Enumeration enumeratePdbentryItem()
-  {
-    return this._items.elements();
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Method getPdbentryItem.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.PdbentryItem at the given index
-   */
-  public jalview.binding.PdbentryItem getPdbentryItem(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._items.size())
-    {
-      throw new IndexOutOfBoundsException("getPdbentryItem: Index value '"
-              + index + "' not in range [0.." + (this._items.size() - 1)
-              + "]");
+public class Pdbentry implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _items.
+     */
+    private java.util.Vector _items;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Pdbentry() {
+        super();
+        this._items = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbentryItem(
+            final jalview.binding.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        this._items.addElement(vPdbentryItem);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbentryItem(
+            final int index,
+            final jalview.binding.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        this._items.add(index, vPdbentryItem);
+    }
+
+    /**
+     * Method enumeratePdbentryItem.
+     * 
+     * @return an Enumeration over all jalview.binding.PdbentryItem
+     * elements
+     */
+    public java.util.Enumeration enumeratePdbentryItem(
+    ) {
+        return this._items.elements();
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Method getPdbentryItem.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.PdbentryItem at the
+     * given index
+     */
+    public jalview.binding.PdbentryItem getPdbentryItem(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._items.size()) {
+            throw new IndexOutOfBoundsException("getPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.PdbentryItem) _items.get(index);
+    }
+
+    /**
+     * Method getPdbentryItem.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.PdbentryItem[] getPdbentryItem(
+    ) {
+        jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
+        return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
+    }
+
+    /**
+     * Method getPdbentryItemCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPdbentryItemCount(
+    ) {
+        return this._items.size();
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllPdbentryItem(
+    ) {
+        this._items.clear();
+    }
+
+    /**
+     * Method removePdbentryItem.
+     * 
+     * @param vPdbentryItem
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removePdbentryItem(
+            final jalview.binding.PdbentryItem vPdbentryItem) {
+        boolean removed = _items.remove(vPdbentryItem);
+        return removed;
+    }
+
+    /**
+     * Method removePdbentryItemAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.PdbentryItem removePdbentryItemAt(
+            final int index) {
+        java.lang.Object obj = this._items.remove(index);
+        return (jalview.binding.PdbentryItem) obj;
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setPdbentryItem(
+            final int index,
+            final jalview.binding.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._items.size()) {
+            throw new IndexOutOfBoundsException("setPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+        }
+        
+        this._items.set(index, vPdbentryItem);
     }
 
-    return (jalview.binding.PdbentryItem) _items.get(index);
-  }
-
-  /**
-   * Method getPdbentryItem.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.PdbentryItem[] getPdbentryItem()
-  {
-    jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
-    return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
-  }
-
-  /**
-   * Method getPdbentryItemCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPdbentryItemCount()
-  {
-    return this._items.size();
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * 
+     * 
+     * @param vPdbentryItemArray
+     */
+    public void setPdbentryItem(
+            final jalview.binding.PdbentryItem[] vPdbentryItemArray) {
+        //-- copy array
+        _items.clear();
+        
+        for (int i = 0; i < vPdbentryItemArray.length; i++) {
+                this._items.add(vPdbentryItemArray[i]);
+        }
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllPdbentryItem()
-  {
-    this._items.clear();
-  }
-
-  /**
-   * Method removePdbentryItem.
-   * 
-   * @param vPdbentryItem
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removePdbentryItem(
-          final jalview.binding.PdbentryItem vPdbentryItem)
-  {
-    boolean removed = _items.remove(vPdbentryItem);
-    return removed;
-  }
-
-  /**
-   * Method removePdbentryItemAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.PdbentryItem removePdbentryItemAt(final int index)
-  {
-    java.lang.Object obj = this._items.remove(index);
-    return (jalview.binding.PdbentryItem) obj;
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setPdbentryItem(final int index,
-          final jalview.binding.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._items.size())
-    {
-      throw new IndexOutOfBoundsException("setPdbentryItem: Index value '"
-              + index + "' not in range [0.." + (this._items.size() - 1)
-              + "]");
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Pdbentry
+     */
+    public static jalview.binding.Pdbentry unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbentry.class, reader);
     }
 
-    this._items.set(index, vPdbentryItem);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbentryItemArray
-   */
-  public void setPdbentryItem(
-          final jalview.binding.PdbentryItem[] vPdbentryItemArray)
-  {
-    // -- copy array
-    _items.clear();
-
-    for (int i = 0; i < vPdbentryItemArray.length; i++)
-    {
-      this._items.add(vPdbentryItemArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *                the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Pdbentry
-   */
-  public static jalview.binding.Pdbentry unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
-            jalview.binding.Pdbentry.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/PdbentryItem.java b/src/jalview/binding/PdbentryItem.java
index dc2314b..83bc40a 100755
--- a/src/jalview/binding/PdbentryItem.java
+++ b/src/jalview/binding/PdbentryItem.java
@@ -1,21 +1,10 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
 /**
@@ -23,185 +12,181 @@ package jalview.binding;
  * 
  * @version $Revision$ $Date$
  */
-public class PdbentryItem implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _propertyList.
-   */
-  private java.util.Vector _propertyList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public PdbentryItem()
-  {
-    super();
-    this._propertyList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addProperty(final jalview.binding.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._propertyList.addElement(vProperty);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addProperty(final int index,
-          final jalview.binding.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._propertyList.add(index, vProperty);
-  }
-
-  /**
-   * Method enumerateProperty.
-   * 
-   * @return an Enumeration over all jalview.binding.Property elements
-   */
-  public java.util.Enumeration enumerateProperty()
-  {
-    return this._propertyList.elements();
-  }
-
-  /**
-   * Method getProperty.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Property at the given index
-   */
-  public jalview.binding.Property getProperty(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._propertyList.size())
-    {
-      throw new IndexOutOfBoundsException("getProperty: Index value '"
-              + index + "' not in range [0.."
-              + (this._propertyList.size() - 1) + "]");
+public class PdbentryItem implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _propertyList.
+     */
+    private java.util.Vector _propertyList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public PdbentryItem() {
+        super();
+        this._propertyList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addProperty(
+            final jalview.binding.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        this._propertyList.addElement(vProperty);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addProperty(
+            final int index,
+            final jalview.binding.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        this._propertyList.add(index, vProperty);
+    }
+
+    /**
+     * Method enumerateProperty.
+     * 
+     * @return an Enumeration over all jalview.binding.Property
+     * elements
+     */
+    public java.util.Enumeration enumerateProperty(
+    ) {
+        return this._propertyList.elements();
+    }
+
+    /**
+     * Method getProperty.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Property at the
+     * given index
+     */
+    public jalview.binding.Property getProperty(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._propertyList.size()) {
+            throw new IndexOutOfBoundsException("getProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Property) _propertyList.get(index);
+    }
+
+    /**
+     * Method getProperty.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Property[] getProperty(
+    ) {
+        jalview.binding.Property[] array = new jalview.binding.Property[0];
+        return (jalview.binding.Property[]) this._propertyList.toArray(array);
+    }
+
+    /**
+     * Method getPropertyCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPropertyCount(
+    ) {
+        return this._propertyList.size();
+    }
+
+    /**
+     */
+    public void removeAllProperty(
+    ) {
+        this._propertyList.clear();
+    }
+
+    /**
+     * Method removeProperty.
+     * 
+     * @param vProperty
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeProperty(
+            final jalview.binding.Property vProperty) {
+        boolean removed = _propertyList.remove(vProperty);
+        return removed;
+    }
+
+    /**
+     * Method removePropertyAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Property removePropertyAt(
+            final int index) {
+        java.lang.Object obj = this._propertyList.remove(index);
+        return (jalview.binding.Property) obj;
     }
 
-    return (jalview.binding.Property) _propertyList.get(index);
-  }
-
-  /**
-   * Method getProperty.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Property[] getProperty()
-  {
-    jalview.binding.Property[] array = new jalview.binding.Property[0];
-    return (jalview.binding.Property[]) this._propertyList.toArray(array);
-  }
-
-  /**
-   * Method getPropertyCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPropertyCount()
-  {
-    return this._propertyList.size();
-  }
-
-  /**
-   */
-  public void removeAllProperty()
-  {
-    this._propertyList.clear();
-  }
-
-  /**
-   * Method removeProperty.
-   * 
-   * @param vProperty
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeProperty(final jalview.binding.Property vProperty)
-  {
-    boolean removed = _propertyList.remove(vProperty);
-    return removed;
-  }
-
-  /**
-   * Method removePropertyAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Property removePropertyAt(final int index)
-  {
-    java.lang.Object obj = this._propertyList.remove(index);
-    return (jalview.binding.Property) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setProperty(final int index,
-          final jalview.binding.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._propertyList.size())
-    {
-      throw new IndexOutOfBoundsException("setProperty: Index value '"
-              + index + "' not in range [0.."
-              + (this._propertyList.size() - 1) + "]");
+    /**
+     * 
+     * 
+     * @param index
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setProperty(
+            final int index,
+            final jalview.binding.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._propertyList.size()) {
+            throw new IndexOutOfBoundsException("setProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+        }
+        
+        this._propertyList.set(index, vProperty);
     }
 
-    this._propertyList.set(index, vProperty);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPropertyArray
-   */
-  public void setProperty(final jalview.binding.Property[] vPropertyArray)
-  {
-    // -- copy array
-    _propertyList.clear();
-
-    for (int i = 0; i < vPropertyArray.length; i++)
-    {
-      this._propertyList.add(vPropertyArray[i]);
+    /**
+     * 
+     * 
+     * @param vPropertyArray
+     */
+    public void setProperty(
+            final jalview.binding.Property[] vPropertyArray) {
+        //-- copy array
+        _propertyList.clear();
+        
+        for (int i = 0; i < vPropertyArray.length; i++) {
+                this._propertyList.add(vPropertyArray[i]);
+        }
     }
-  }
 
 }
diff --git a/src/jalview/binding/Pdbids.java b/src/jalview/binding/Pdbids.java
index 9713859..b4745a2 100755
--- a/src/jalview/binding/Pdbids.java
+++ b/src/jalview/binding/Pdbids.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,110 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Pdbids extends Pdbentry implements java.io.Serializable
+public class Pdbids extends Pdbentry 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public Pdbids()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Pdbids() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Pdbentry
-   */
-  public static jalview.binding.Pdbentry unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
-            jalview.binding.Pdbids.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Pdbentry
+     */
+    public static jalview.binding.Pdbentry unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbids.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/Property.java b/src/jalview/binding/Property.java
index 4ab620a..f1114f7 100755
--- a/src/jalview/binding/Property.java
+++ b/src/jalview/binding/Property.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,166 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Property implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _value.
-   */
-  private java.lang.String _value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Property()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public java.lang.String getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Property implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _value.
+     */
+    private java.lang.String _value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Property() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public java.lang.String getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final java.lang.String value) {
+        this._value = value;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Property
+     */
+    public static jalview.binding.Property unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Property) Unmarshaller.unmarshal(jalview.binding.Property.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *                the value of field 'value'.
-   */
-  public void setValue(final java.lang.String value)
-  {
-    this._value = value;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Property
-   */
-  public static jalview.binding.Property unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Property) Unmarshaller.unmarshal(
-            jalview.binding.Property.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/Sequence.java b/src/jalview/binding/Sequence.java
index bd895f6..9c8cbc2 100755
--- a/src/jalview/binding/Sequence.java
+++ b/src/jalview/binding/Sequence.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,110 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Sequence extends SequenceType implements java.io.Serializable
+public class Sequence extends SequenceType 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public Sequence()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Sequence() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.SequenceType
-   */
-  public static jalview.binding.SequenceType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
-            jalview.binding.Sequence.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.SequenceType
+     */
+    public static jalview.binding.SequenceType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.Sequence.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/SequenceSet.java b/src/jalview/binding/SequenceSet.java
index e348f9a..13a9020 100755
--- a/src/jalview/binding/SequenceSet.java
+++ b/src/jalview/binding/SequenceSet.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,524 +19,496 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceSet implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _gapChar.
-   */
-  private java.lang.String _gapChar;
-
-  /**
-   * Field _aligned.
-   */
-  private boolean _aligned;
-
-  /**
-   * keeps track of state for field: _aligned
-   */
-  private boolean _has_aligned;
-
-  /**
-   * Field _sequenceList.
-   */
-  private java.util.Vector _sequenceList;
-
-  /**
-   * Field _annotationList.
-   */
-  private java.util.Vector _annotationList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceSet()
-  {
-    super();
-    this._sequenceList = new java.util.Vector();
-    this._annotationList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotation(final jalview.binding.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationList.addElement(vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotation(final int index,
-          final jalview.binding.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationList.add(index, vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequence(final jalview.binding.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceList.addElement(vSequence);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequence(final int index,
-          final jalview.binding.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceList.add(index, vSequence);
-  }
-
-  /**
-   */
-  public void deleteAligned()
-  {
-    this._has_aligned = false;
-  }
-
-  /**
-   * Method enumerateAnnotation.
-   * 
-   * @return an Enumeration over all jalview.binding.Annotation elements
-   */
-  public java.util.Enumeration enumerateAnnotation()
-  {
-    return this._annotationList.elements();
-  }
-
-  /**
-   * Method enumerateSequence.
-   * 
-   * @return an Enumeration over all jalview.binding.Sequence elements
-   */
-  public java.util.Enumeration enumerateSequence()
-  {
-    return this._sequenceList.elements();
-  }
-
-  /**
-   * Returns the value of field 'aligned'.
-   * 
-   * @return the value of field 'Aligned'.
-   */
-  public boolean getAligned()
-  {
-    return this._aligned;
-  }
-
-  /**
-   * Method getAnnotation.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Annotation at the given index
-   */
-  public jalview.binding.Annotation getAnnotation(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationList.size())
-    {
-      throw new IndexOutOfBoundsException("getAnnotation: Index value '"
-              + index + "' not in range [0.."
-              + (this._annotationList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.Annotation) _annotationList.get(index);
-  }
-
-  /**
-   * Method getAnnotation.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Annotation[] getAnnotation()
-  {
-    jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
-    return (jalview.binding.Annotation[]) this._annotationList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAnnotationCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAnnotationCount()
-  {
-    return this._annotationList.size();
-  }
-
-  /**
-   * Returns the value of field 'gapChar'.
-   * 
-   * @return the value of field 'GapChar'.
-   */
-  public java.lang.String getGapChar()
-  {
-    return this._gapChar;
-  }
-
-  /**
-   * Method getSequence.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.binding.Sequence at the given index
-   */
-  public jalview.binding.Sequence getSequence(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceList.size())
-    {
-      throw new IndexOutOfBoundsException("getSequence: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceList.size() - 1) + "]");
-    }
-
-    return (jalview.binding.Sequence) _sequenceList.get(index);
-  }
-
-  /**
-   * Method getSequence.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.binding.Sequence[] getSequence()
-  {
-    jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
-    return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
-  }
-
-  /**
-   * Method getSequenceCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSequenceCount()
-  {
-    return this._sequenceList.size();
-  }
-
-  /**
-   * Method hasAligned.
-   * 
-   * @return true if at least one Aligned has been added
-   */
-  public boolean hasAligned()
-  {
-    return this._has_aligned;
-  }
-
-  /**
-   * Returns the value of field 'aligned'.
-   * 
-   * @return the value of field 'Aligned'.
-   */
-  public boolean isAligned()
-  {
-    return this._aligned;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllAnnotation()
-  {
-    this._annotationList.clear();
-  }
-
-  /**
-   */
-  public void removeAllSequence()
-  {
-    this._sequenceList.clear();
-  }
-
-  /**
-   * Method removeAnnotation.
-   * 
-   * @param vAnnotation
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAnnotation(
-          final jalview.binding.Annotation vAnnotation)
-  {
-    boolean removed = _annotationList.remove(vAnnotation);
-    return removed;
-  }
-
-  /**
-   * Method removeAnnotationAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Annotation removeAnnotationAt(final int index)
-  {
-    java.lang.Object obj = this._annotationList.remove(index);
-    return (jalview.binding.Annotation) obj;
-  }
-
-  /**
-   * Method removeSequence.
-   * 
-   * @param vSequence
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSequence(final jalview.binding.Sequence vSequence)
-  {
-    boolean removed = _sequenceList.remove(vSequence);
-    return removed;
-  }
-
-  /**
-   * Method removeSequenceAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.binding.Sequence removeSequenceAt(final int index)
-  {
-    java.lang.Object obj = this._sequenceList.remove(index);
-    return (jalview.binding.Sequence) obj;
-  }
-
-  /**
-   * Sets the value of field 'aligned'.
-   * 
-   * @param aligned
-   *                the value of field 'aligned'.
-   */
-  public void setAligned(final boolean aligned)
-  {
-    this._aligned = aligned;
-    this._has_aligned = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAnnotation(final int index,
-          final jalview.binding.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationList.size())
-    {
-      throw new IndexOutOfBoundsException("setAnnotation: Index value '"
-              + index + "' not in range [0.."
-              + (this._annotationList.size() - 1) + "]");
-    }
-
-    this._annotationList.set(index, vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAnnotationArray
-   */
-  public void setAnnotation(
-          final jalview.binding.Annotation[] vAnnotationArray)
-  {
-    // -- copy array
-    _annotationList.clear();
-
-    for (int i = 0; i < vAnnotationArray.length; i++)
-    {
-      this._annotationList.add(vAnnotationArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'gapChar'.
-   * 
-   * @param gapChar
-   *                the value of field 'gapChar'.
-   */
-  public void setGapChar(final java.lang.String gapChar)
-  {
-    this._gapChar = gapChar;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSequence(final int index,
-          final jalview.binding.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceList.size())
-    {
-      throw new IndexOutOfBoundsException("setSequence: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceList.size() - 1) + "]");
-    }
-
-    this._sequenceList.set(index, vSequence);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceArray
-   */
-  public void setSequence(final jalview.binding.Sequence[] vSequenceArray)
-  {
-    // -- copy array
-    _sequenceList.clear();
-
-    for (int i = 0; i < vSequenceArray.length; i++)
-    {
-      this._sequenceList.add(vSequenceArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.SequenceSet
-   */
-  public static jalview.binding.SequenceSet unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(
-            jalview.binding.SequenceSet.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class SequenceSet implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _gapChar.
+     */
+    private java.lang.String _gapChar;
+
+    /**
+     * Field _aligned.
+     */
+    private boolean _aligned;
+
+    /**
+     * keeps track of state for field: _aligned
+     */
+    private boolean _has_aligned;
+
+    /**
+     * Field _sequenceList.
+     */
+    private java.util.Vector _sequenceList;
+
+    /**
+     * Field _annotationList.
+     */
+    private java.util.Vector _annotationList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceSet() {
+        super();
+        this._sequenceList = new java.util.Vector();
+        this._annotationList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotation(
+            final jalview.binding.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationList.addElement(vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotation(
+            final int index,
+            final jalview.binding.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationList.add(index, vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequence(
+            final jalview.binding.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceList.addElement(vSequence);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequence(
+            final int index,
+            final jalview.binding.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceList.add(index, vSequence);
+    }
+
+    /**
+     */
+    public void deleteAligned(
+    ) {
+        this._has_aligned= false;
+    }
+
+    /**
+     * Method enumerateAnnotation.
+     * 
+     * @return an Enumeration over all jalview.binding.Annotation
+     * elements
+     */
+    public java.util.Enumeration enumerateAnnotation(
+    ) {
+        return this._annotationList.elements();
+    }
+
+    /**
+     * Method enumerateSequence.
+     * 
+     * @return an Enumeration over all jalview.binding.Sequence
+     * elements
+     */
+    public java.util.Enumeration enumerateSequence(
+    ) {
+        return this._sequenceList.elements();
+    }
+
+    /**
+     * Returns the value of field 'aligned'.
+     * 
+     * @return the value of field 'Aligned'.
+     */
+    public boolean getAligned(
+    ) {
+        return this._aligned;
+    }
+
+    /**
+     * Method getAnnotation.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Annotation at the
+     * given index
+     */
+    public jalview.binding.Annotation getAnnotation(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationList.size()) {
+            throw new IndexOutOfBoundsException("getAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Annotation) _annotationList.get(index);
+    }
+
+    /**
+     * Method getAnnotation.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Annotation[] getAnnotation(
+    ) {
+        jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
+        return (jalview.binding.Annotation[]) this._annotationList.toArray(array);
+    }
+
+    /**
+     * Method getAnnotationCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAnnotationCount(
+    ) {
+        return this._annotationList.size();
+    }
+
+    /**
+     * Returns the value of field 'gapChar'.
+     * 
+     * @return the value of field 'GapChar'.
+     */
+    public java.lang.String getGapChar(
+    ) {
+        return this._gapChar;
+    }
+
+    /**
+     * Method getSequence.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.binding.Sequence at the
+     * given index
+     */
+    public jalview.binding.Sequence getSequence(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceList.size()) {
+            throw new IndexOutOfBoundsException("getSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+        }
+        
+        return (jalview.binding.Sequence) _sequenceList.get(index);
+    }
+
+    /**
+     * Method getSequence.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.binding.Sequence[] getSequence(
+    ) {
+        jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
+        return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
+    }
+
+    /**
+     * Method getSequenceCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSequenceCount(
+    ) {
+        return this._sequenceList.size();
+    }
+
+    /**
+     * Method hasAligned.
+     * 
+     * @return true if at least one Aligned has been added
+     */
+    public boolean hasAligned(
+    ) {
+        return this._has_aligned;
+    }
+
+    /**
+     * Returns the value of field 'aligned'.
+     * 
+     * @return the value of field 'Aligned'.
+     */
+    public boolean isAligned(
+    ) {
+        return this._aligned;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllAnnotation(
+    ) {
+        this._annotationList.clear();
+    }
+
+    /**
+     */
+    public void removeAllSequence(
+    ) {
+        this._sequenceList.clear();
+    }
+
+    /**
+     * Method removeAnnotation.
+     * 
+     * @param vAnnotation
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAnnotation(
+            final jalview.binding.Annotation vAnnotation) {
+        boolean removed = _annotationList.remove(vAnnotation);
+        return removed;
+    }
+
+    /**
+     * Method removeAnnotationAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Annotation removeAnnotationAt(
+            final int index) {
+        java.lang.Object obj = this._annotationList.remove(index);
+        return (jalview.binding.Annotation) obj;
+    }
+
+    /**
+     * Method removeSequence.
+     * 
+     * @param vSequence
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSequence(
+            final jalview.binding.Sequence vSequence) {
+        boolean removed = _sequenceList.remove(vSequence);
+        return removed;
+    }
+
+    /**
+     * Method removeSequenceAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.binding.Sequence removeSequenceAt(
+            final int index) {
+        java.lang.Object obj = this._sequenceList.remove(index);
+        return (jalview.binding.Sequence) obj;
+    }
+
+    /**
+     * Sets the value of field 'aligned'.
+     * 
+     * @param aligned the value of field 'aligned'.
+     */
+    public void setAligned(
+            final boolean aligned) {
+        this._aligned = aligned;
+        this._has_aligned = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAnnotation(
+            final int index,
+            final jalview.binding.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationList.size()) {
+            throw new IndexOutOfBoundsException("setAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+        }
+        
+        this._annotationList.set(index, vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAnnotationArray
+     */
+    public void setAnnotation(
+            final jalview.binding.Annotation[] vAnnotationArray) {
+        //-- copy array
+        _annotationList.clear();
+        
+        for (int i = 0; i < vAnnotationArray.length; i++) {
+                this._annotationList.add(vAnnotationArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'gapChar'.
+     * 
+     * @param gapChar the value of field 'gapChar'.
+     */
+    public void setGapChar(
+            final java.lang.String gapChar) {
+        this._gapChar = gapChar;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSequence(
+            final int index,
+            final jalview.binding.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceList.size()) {
+            throw new IndexOutOfBoundsException("setSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+        }
+        
+        this._sequenceList.set(index, vSequence);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceArray
+     */
+    public void setSequence(
+            final jalview.binding.Sequence[] vSequenceArray) {
+        //-- copy array
+        _sequenceList.clear();
+        
+        for (int i = 0; i < vSequenceArray.length; i++) {
+                this._sequenceList.add(vSequenceArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.SequenceSet
+     */
+    public static jalview.binding.SequenceSet unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(jalview.binding.SequenceSet.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/SequenceType.java b/src/jalview/binding/SequenceType.java
index a6bf64e..1bb2a62 100755
--- a/src/jalview/binding/SequenceType.java
+++ b/src/jalview/binding/SequenceType.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,192 +19,176 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceType implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _sequence.
-   */
-  private java.lang.String _sequence;
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceType()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'sequence'.
-   * 
-   * @return the value of field 'Sequence'.
-   */
-  public java.lang.String getSequence()
-  {
-    return this._sequence;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class SequenceType implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _sequence.
+     */
+    private java.lang.String _sequence;
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceType() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'sequence'.
+     * 
+     * @return the value of field 'Sequence'.
+     */
+    public java.lang.String getSequence(
+    ) {
+        return this._sequence;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'sequence'.
+     * 
+     * @param sequence the value of field 'sequence'.
+     */
+    public void setSequence(
+            final java.lang.String sequence) {
+        this._sequence = sequence;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.SequenceType
+     */
+    public static jalview.binding.SequenceType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.SequenceType.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'sequence'.
-   * 
-   * @param sequence
-   *                the value of field 'sequence'.
-   */
-  public void setSequence(final java.lang.String sequence)
-  {
-    this._sequence = sequence;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.SequenceType
-   */
-  public static jalview.binding.SequenceType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
-            jalview.binding.SequenceType.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/Setting.java b/src/jalview/binding/Setting.java
index 3f05e27..9cd84b4 100755
--- a/src/jalview/binding/Setting.java
+++ b/src/jalview/binding/Setting.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,248 +19,232 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Setting implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  /**
-   * Field _display.
-   */
-  private boolean _display;
-
-  /**
-   * keeps track of state for field: _display
-   */
-  private boolean _has_display;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Setting()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
-
-  /**
-   */
-  public void deleteDisplay()
-  {
-    this._has_display = false;
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean getDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasDisplay.
-   * 
-   * @return true if at least one Display has been added
-   */
-  public boolean hasDisplay()
-  {
-    return this._has_display;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean isDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Setting implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+    /**
+     * Field _display.
+     */
+    private boolean _display;
+
+    /**
+     * keeps track of state for field: _display
+     */
+    private boolean _has_display;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Setting() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deleteDisplay(
+    ) {
+        this._has_display= false;
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean getDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasDisplay.
+     * 
+     * @return true if at least one Display has been added
+     */
+    public boolean hasDisplay(
+    ) {
+        return this._has_display;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean isDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'display'.
+     * 
+     * @param display the value of field 'display'.
+     */
+    public void setDisplay(
+            final boolean display) {
+        this._display = display;
+        this._has_display = true;
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Setting
+     */
+    public static jalview.binding.Setting unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Setting) Unmarshaller.unmarshal(jalview.binding.Setting.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'display'.
-   * 
-   * @param display
-   *                the value of field 'display'.
-   */
-  public void setDisplay(final boolean display)
-  {
-    this._display = display;
-    this._has_display = true;
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *                the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Setting
-   */
-  public static jalview.binding.Setting unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Setting) Unmarshaller.unmarshal(
-            jalview.binding.Setting.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/Tree.java b/src/jalview/binding/Tree.java
index f7679f1..5f138d0 100755
--- a/src/jalview/binding/Tree.java
+++ b/src/jalview/binding/Tree.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,829 +19,802 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Tree implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _width.
-   */
-  private int _width;
-
-  /**
-   * keeps track of state for field: _width
-   */
-  private boolean _has_width;
-
-  /**
-   * Field _height.
-   */
-  private int _height;
-
-  /**
-   * keeps track of state for field: _height
-   */
-  private boolean _has_height;
-
-  /**
-   * Field _xpos.
-   */
-  private int _xpos;
-
-  /**
-   * keeps track of state for field: _xpos
-   */
-  private boolean _has_xpos;
-
-  /**
-   * Field _ypos.
-   */
-  private int _ypos;
-
-  /**
-   * keeps track of state for field: _ypos
-   */
-  private boolean _has_ypos;
-
-  /**
-   * Field _fontName.
-   */
-  private java.lang.String _fontName;
-
-  /**
-   * Field _fontSize.
-   */
-  private int _fontSize;
-
-  /**
-   * keeps track of state for field: _fontSize
-   */
-  private boolean _has_fontSize;
-
-  /**
-   * Field _fontStyle.
-   */
-  private int _fontStyle;
-
-  /**
-   * keeps track of state for field: _fontStyle
-   */
-  private boolean _has_fontStyle;
-
-  /**
-   * Field _threshold.
-   */
-  private float _threshold;
-
-  /**
-   * keeps track of state for field: _threshold
-   */
-  private boolean _has_threshold;
-
-  /**
-   * Field _showBootstrap.
-   */
-  private boolean _showBootstrap;
-
-  /**
-   * keeps track of state for field: _showBootstrap
-   */
-  private boolean _has_showBootstrap;
-
-  /**
-   * Field _showDistances.
-   */
-  private boolean _showDistances;
-
-  /**
-   * keeps track of state for field: _showDistances
-   */
-  private boolean _has_showDistances;
-
-  /**
-   * Field _markUnlinked.
-   */
-  private boolean _markUnlinked;
-
-  /**
-   * keeps track of state for field: _markUnlinked
-   */
-  private boolean _has_markUnlinked;
-
-  /**
-   * Field _fitToWindow.
-   */
-  private boolean _fitToWindow;
-
-  /**
-   * keeps track of state for field: _fitToWindow
-   */
-  private boolean _has_fitToWindow;
-
-  /**
-   * Field _currentTree.
-   */
-  private boolean _currentTree;
-
-  /**
-   * keeps track of state for field: _currentTree
-   */
-  private boolean _has_currentTree;
-
-  /**
-   * Field _title.
-   */
-  private java.lang.String _title;
-
-  /**
-   * Field _newick.
-   */
-  private java.lang.String _newick;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Tree()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteCurrentTree()
-  {
-    this._has_currentTree = false;
-  }
-
-  /**
-   */
-  public void deleteFitToWindow()
-  {
-    this._has_fitToWindow = false;
-  }
-
-  /**
-   */
-  public void deleteFontSize()
-  {
-    this._has_fontSize = false;
-  }
-
-  /**
-   */
-  public void deleteFontStyle()
-  {
-    this._has_fontStyle = false;
-  }
-
-  /**
-   */
-  public void deleteHeight()
-  {
-    this._has_height = false;
-  }
-
-  /**
-   */
-  public void deleteMarkUnlinked()
-  {
-    this._has_markUnlinked = false;
-  }
-
-  /**
-   */
-  public void deleteShowBootstrap()
-  {
-    this._has_showBootstrap = false;
-  }
-
-  /**
-   */
-  public void deleteShowDistances()
-  {
-    this._has_showDistances = false;
-  }
-
-  /**
-   */
-  public void deleteThreshold()
-  {
-    this._has_threshold = false;
-  }
-
-  /**
-   */
-  public void deleteWidth()
-  {
-    this._has_width = false;
-  }
-
-  /**
-   */
-  public void deleteXpos()
-  {
-    this._has_xpos = false;
-  }
-
-  /**
-   */
-  public void deleteYpos()
-  {
-    this._has_ypos = false;
-  }
-
-  /**
-   * Returns the value of field 'currentTree'.
-   * 
-   * @return the value of field 'CurrentTree'.
-   */
-  public boolean getCurrentTree()
-  {
-    return this._currentTree;
-  }
-
-  /**
-   * Returns the value of field 'fitToWindow'.
-   * 
-   * @return the value of field 'FitToWindow'.
-   */
-  public boolean getFitToWindow()
-  {
-    return this._fitToWindow;
-  }
-
-  /**
-   * Returns the value of field 'fontName'.
-   * 
-   * @return the value of field 'FontName'.
-   */
-  public java.lang.String getFontName()
-  {
-    return this._fontName;
-  }
-
-  /**
-   * Returns the value of field 'fontSize'.
-   * 
-   * @return the value of field 'FontSize'.
-   */
-  public int getFontSize()
-  {
-    return this._fontSize;
-  }
-
-  /**
-   * Returns the value of field 'fontStyle'.
-   * 
-   * @return the value of field 'FontStyle'.
-   */
-  public int getFontStyle()
-  {
-    return this._fontStyle;
-  }
-
-  /**
-   * Returns the value of field 'height'.
-   * 
-   * @return the value of field 'Height'.
-   */
-  public int getHeight()
-  {
-    return this._height;
-  }
-
-  /**
-   * Returns the value of field 'markUnlinked'.
-   * 
-   * @return the value of field 'MarkUnlinked'.
-   */
-  public boolean getMarkUnlinked()
-  {
-    return this._markUnlinked;
-  }
-
-  /**
-   * Returns the value of field 'newick'.
-   * 
-   * @return the value of field 'Newick'.
-   */
-  public java.lang.String getNewick()
-  {
-    return this._newick;
-  }
-
-  /**
-   * Returns the value of field 'showBootstrap'.
-   * 
-   * @return the value of field 'ShowBootstrap'.
-   */
-  public boolean getShowBootstrap()
-  {
-    return this._showBootstrap;
-  }
-
-  /**
-   * Returns the value of field 'showDistances'.
-   * 
-   * @return the value of field 'ShowDistances'.
-   */
-  public boolean getShowDistances()
-  {
-    return this._showDistances;
-  }
-
-  /**
-   * Returns the value of field 'threshold'.
-   * 
-   * @return the value of field 'Threshold'.
-   */
-  public float getThreshold()
-  {
-    return this._threshold;
-  }
-
-  /**
-   * Returns the value of field 'title'.
-   * 
-   * @return the value of field 'Title'.
-   */
-  public java.lang.String getTitle()
-  {
-    return this._title;
-  }
-
-  /**
-   * Returns the value of field 'width'.
-   * 
-   * @return the value of field 'Width'.
-   */
-  public int getWidth()
-  {
-    return this._width;
-  }
-
-  /**
-   * Returns the value of field 'xpos'.
-   * 
-   * @return the value of field 'Xpos'.
-   */
-  public int getXpos()
-  {
-    return this._xpos;
-  }
-
-  /**
-   * Returns the value of field 'ypos'.
-   * 
-   * @return the value of field 'Ypos'.
-   */
-  public int getYpos()
-  {
-    return this._ypos;
-  }
-
-  /**
-   * Method hasCurrentTree.
-   * 
-   * @return true if at least one CurrentTree has been added
-   */
-  public boolean hasCurrentTree()
-  {
-    return this._has_currentTree;
-  }
-
-  /**
-   * Method hasFitToWindow.
-   * 
-   * @return true if at least one FitToWindow has been added
-   */
-  public boolean hasFitToWindow()
-  {
-    return this._has_fitToWindow;
-  }
-
-  /**
-   * Method hasFontSize.
-   * 
-   * @return true if at least one FontSize has been added
-   */
-  public boolean hasFontSize()
-  {
-    return this._has_fontSize;
-  }
-
-  /**
-   * Method hasFontStyle.
-   * 
-   * @return true if at least one FontStyle has been added
-   */
-  public boolean hasFontStyle()
-  {
-    return this._has_fontStyle;
-  }
-
-  /**
-   * Method hasHeight.
-   * 
-   * @return true if at least one Height has been added
-   */
-  public boolean hasHeight()
-  {
-    return this._has_height;
-  }
-
-  /**
-   * Method hasMarkUnlinked.
-   * 
-   * @return true if at least one MarkUnlinked has been added
-   */
-  public boolean hasMarkUnlinked()
-  {
-    return this._has_markUnlinked;
-  }
-
-  /**
-   * Method hasShowBootstrap.
-   * 
-   * @return true if at least one ShowBootstrap has been added
-   */
-  public boolean hasShowBootstrap()
-  {
-    return this._has_showBootstrap;
-  }
-
-  /**
-   * Method hasShowDistances.
-   * 
-   * @return true if at least one ShowDistances has been added
-   */
-  public boolean hasShowDistances()
-  {
-    return this._has_showDistances;
-  }
-
-  /**
-   * Method hasThreshold.
-   * 
-   * @return true if at least one Threshold has been added
-   */
-  public boolean hasThreshold()
-  {
-    return this._has_threshold;
-  }
-
-  /**
-   * Method hasWidth.
-   * 
-   * @return true if at least one Width has been added
-   */
-  public boolean hasWidth()
-  {
-    return this._has_width;
-  }
-
-  /**
-   * Method hasXpos.
-   * 
-   * @return true if at least one Xpos has been added
-   */
-  public boolean hasXpos()
-  {
-    return this._has_xpos;
-  }
-
-  /**
-   * Method hasYpos.
-   * 
-   * @return true if at least one Ypos has been added
-   */
-  public boolean hasYpos()
-  {
-    return this._has_ypos;
-  }
-
-  /**
-   * Returns the value of field 'currentTree'.
-   * 
-   * @return the value of field 'CurrentTree'.
-   */
-  public boolean isCurrentTree()
-  {
-    return this._currentTree;
-  }
-
-  /**
-   * Returns the value of field 'fitToWindow'.
-   * 
-   * @return the value of field 'FitToWindow'.
-   */
-  public boolean isFitToWindow()
-  {
-    return this._fitToWindow;
-  }
-
-  /**
-   * Returns the value of field 'markUnlinked'.
-   * 
-   * @return the value of field 'MarkUnlinked'.
-   */
-  public boolean isMarkUnlinked()
-  {
-    return this._markUnlinked;
-  }
-
-  /**
-   * Returns the value of field 'showBootstrap'.
-   * 
-   * @return the value of field 'ShowBootstrap'.
-   */
-  public boolean isShowBootstrap()
-  {
-    return this._showBootstrap;
-  }
-
-  /**
-   * Returns the value of field 'showDistances'.
-   * 
-   * @return the value of field 'ShowDistances'.
-   */
-  public boolean isShowDistances()
-  {
-    return this._showDistances;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'currentTree'.
-   * 
-   * @param currentTree
-   *                the value of field 'currentTree'.
-   */
-  public void setCurrentTree(final boolean currentTree)
-  {
-    this._currentTree = currentTree;
-    this._has_currentTree = true;
-  }
-
-  /**
-   * Sets the value of field 'fitToWindow'.
-   * 
-   * @param fitToWindow
-   *                the value of field 'fitToWindow'.
-   */
-  public void setFitToWindow(final boolean fitToWindow)
-  {
-    this._fitToWindow = fitToWindow;
-    this._has_fitToWindow = true;
-  }
-
-  /**
-   * Sets the value of field 'fontName'.
-   * 
-   * @param fontName
-   *                the value of field 'fontName'.
-   */
-  public void setFontName(final java.lang.String fontName)
-  {
-    this._fontName = fontName;
-  }
-
-  /**
-   * Sets the value of field 'fontSize'.
-   * 
-   * @param fontSize
-   *                the value of field 'fontSize'.
-   */
-  public void setFontSize(final int fontSize)
-  {
-    this._fontSize = fontSize;
-    this._has_fontSize = true;
-  }
-
-  /**
-   * Sets the value of field 'fontStyle'.
-   * 
-   * @param fontStyle
-   *                the value of field 'fontStyle'.
-   */
-  public void setFontStyle(final int fontStyle)
-  {
-    this._fontStyle = fontStyle;
-    this._has_fontStyle = true;
-  }
-
-  /**
-   * Sets the value of field 'height'.
-   * 
-   * @param height
-   *                the value of field 'height'.
-   */
-  public void setHeight(final int height)
-  {
-    this._height = height;
-    this._has_height = true;
-  }
-
-  /**
-   * Sets the value of field 'markUnlinked'.
-   * 
-   * @param markUnlinked
-   *                the value of field 'markUnlinked'.
-   */
-  public void setMarkUnlinked(final boolean markUnlinked)
-  {
-    this._markUnlinked = markUnlinked;
-    this._has_markUnlinked = true;
-  }
-
-  /**
-   * Sets the value of field 'newick'.
-   * 
-   * @param newick
-   *                the value of field 'newick'.
-   */
-  public void setNewick(final java.lang.String newick)
-  {
-    this._newick = newick;
-  }
-
-  /**
-   * Sets the value of field 'showBootstrap'.
-   * 
-   * @param showBootstrap
-   *                the value of field 'showBootstrap'.
-   */
-  public void setShowBootstrap(final boolean showBootstrap)
-  {
-    this._showBootstrap = showBootstrap;
-    this._has_showBootstrap = true;
-  }
-
-  /**
-   * Sets the value of field 'showDistances'.
-   * 
-   * @param showDistances
-   *                the value of field 'showDistances'.
-   */
-  public void setShowDistances(final boolean showDistances)
-  {
-    this._showDistances = showDistances;
-    this._has_showDistances = true;
-  }
-
-  /**
-   * Sets the value of field 'threshold'.
-   * 
-   * @param threshold
-   *                the value of field 'threshold'.
-   */
-  public void setThreshold(final float threshold)
-  {
-    this._threshold = threshold;
-    this._has_threshold = true;
-  }
-
-  /**
-   * Sets the value of field 'title'.
-   * 
-   * @param title
-   *                the value of field 'title'.
-   */
-  public void setTitle(final java.lang.String title)
-  {
-    this._title = title;
-  }
-
-  /**
-   * Sets the value of field 'width'.
-   * 
-   * @param width
-   *                the value of field 'width'.
-   */
-  public void setWidth(final int width)
-  {
-    this._width = width;
-    this._has_width = true;
-  }
-
-  /**
-   * Sets the value of field 'xpos'.
-   * 
-   * @param xpos
-   *                the value of field 'xpos'.
-   */
-  public void setXpos(final int xpos)
-  {
-    this._xpos = xpos;
-    this._has_xpos = true;
-  }
-
-  /**
-   * Sets the value of field 'ypos'.
-   * 
-   * @param ypos
-   *                the value of field 'ypos'.
-   */
-  public void setYpos(final int ypos)
-  {
-    this._ypos = ypos;
-    this._has_ypos = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Tree
-   */
-  public static jalview.binding.Tree unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Tree) Unmarshaller.unmarshal(
-            jalview.binding.Tree.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Tree implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _fontName.
+     */
+    private java.lang.String _fontName;
+
+    /**
+     * Field _fontSize.
+     */
+    private int _fontSize;
+
+    /**
+     * keeps track of state for field: _fontSize
+     */
+    private boolean _has_fontSize;
+
+    /**
+     * Field _fontStyle.
+     */
+    private int _fontStyle;
+
+    /**
+     * keeps track of state for field: _fontStyle
+     */
+    private boolean _has_fontStyle;
+
+    /**
+     * Field _threshold.
+     */
+    private float _threshold;
+
+    /**
+     * keeps track of state for field: _threshold
+     */
+    private boolean _has_threshold;
+
+    /**
+     * Field _showBootstrap.
+     */
+    private boolean _showBootstrap;
+
+    /**
+     * keeps track of state for field: _showBootstrap
+     */
+    private boolean _has_showBootstrap;
+
+    /**
+     * Field _showDistances.
+     */
+    private boolean _showDistances;
+
+    /**
+     * keeps track of state for field: _showDistances
+     */
+    private boolean _has_showDistances;
+
+    /**
+     * Field _markUnlinked.
+     */
+    private boolean _markUnlinked;
+
+    /**
+     * keeps track of state for field: _markUnlinked
+     */
+    private boolean _has_markUnlinked;
+
+    /**
+     * Field _fitToWindow.
+     */
+    private boolean _fitToWindow;
+
+    /**
+     * keeps track of state for field: _fitToWindow
+     */
+    private boolean _has_fitToWindow;
+
+    /**
+     * Field _currentTree.
+     */
+    private boolean _currentTree;
+
+    /**
+     * keeps track of state for field: _currentTree
+     */
+    private boolean _has_currentTree;
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * Field _newick.
+     */
+    private java.lang.String _newick;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Tree() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteCurrentTree(
+    ) {
+        this._has_currentTree= false;
+    }
+
+    /**
+     */
+    public void deleteFitToWindow(
+    ) {
+        this._has_fitToWindow= false;
+    }
+
+    /**
+     */
+    public void deleteFontSize(
+    ) {
+        this._has_fontSize= false;
+    }
+
+    /**
+     */
+    public void deleteFontStyle(
+    ) {
+        this._has_fontStyle= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deleteMarkUnlinked(
+    ) {
+        this._has_markUnlinked= false;
+    }
+
+    /**
+     */
+    public void deleteShowBootstrap(
+    ) {
+        this._has_showBootstrap= false;
+    }
+
+    /**
+     */
+    public void deleteShowDistances(
+    ) {
+        this._has_showDistances= false;
+    }
+
+    /**
+     */
+    public void deleteThreshold(
+    ) {
+        this._has_threshold= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Returns the value of field 'currentTree'.
+     * 
+     * @return the value of field 'CurrentTree'.
+     */
+    public boolean getCurrentTree(
+    ) {
+        return this._currentTree;
+    }
+
+    /**
+     * Returns the value of field 'fitToWindow'.
+     * 
+     * @return the value of field 'FitToWindow'.
+     */
+    public boolean getFitToWindow(
+    ) {
+        return this._fitToWindow;
+    }
+
+    /**
+     * Returns the value of field 'fontName'.
+     * 
+     * @return the value of field 'FontName'.
+     */
+    public java.lang.String getFontName(
+    ) {
+        return this._fontName;
+    }
+
+    /**
+     * Returns the value of field 'fontSize'.
+     * 
+     * @return the value of field 'FontSize'.
+     */
+    public int getFontSize(
+    ) {
+        return this._fontSize;
+    }
+
+    /**
+     * Returns the value of field 'fontStyle'.
+     * 
+     * @return the value of field 'FontStyle'.
+     */
+    public int getFontStyle(
+    ) {
+        return this._fontStyle;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Returns the value of field 'markUnlinked'.
+     * 
+     * @return the value of field 'MarkUnlinked'.
+     */
+    public boolean getMarkUnlinked(
+    ) {
+        return this._markUnlinked;
+    }
+
+    /**
+     * Returns the value of field 'newick'.
+     * 
+     * @return the value of field 'Newick'.
+     */
+    public java.lang.String getNewick(
+    ) {
+        return this._newick;
+    }
+
+    /**
+     * Returns the value of field 'showBootstrap'.
+     * 
+     * @return the value of field 'ShowBootstrap'.
+     */
+    public boolean getShowBootstrap(
+    ) {
+        return this._showBootstrap;
+    }
+
+    /**
+     * Returns the value of field 'showDistances'.
+     * 
+     * @return the value of field 'ShowDistances'.
+     */
+    public boolean getShowDistances(
+    ) {
+        return this._showDistances;
+    }
+
+    /**
+     * Returns the value of field 'threshold'.
+     * 
+     * @return the value of field 'Threshold'.
+     */
+    public float getThreshold(
+    ) {
+        return this._threshold;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasCurrentTree.
+     * 
+     * @return true if at least one CurrentTree has been added
+     */
+    public boolean hasCurrentTree(
+    ) {
+        return this._has_currentTree;
+    }
+
+    /**
+     * Method hasFitToWindow.
+     * 
+     * @return true if at least one FitToWindow has been added
+     */
+    public boolean hasFitToWindow(
+    ) {
+        return this._has_fitToWindow;
+    }
+
+    /**
+     * Method hasFontSize.
+     * 
+     * @return true if at least one FontSize has been added
+     */
+    public boolean hasFontSize(
+    ) {
+        return this._has_fontSize;
+    }
+
+    /**
+     * Method hasFontStyle.
+     * 
+     * @return true if at least one FontStyle has been added
+     */
+    public boolean hasFontStyle(
+    ) {
+        return this._has_fontStyle;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasMarkUnlinked.
+     * 
+     * @return true if at least one MarkUnlinked has been added
+     */
+    public boolean hasMarkUnlinked(
+    ) {
+        return this._has_markUnlinked;
+    }
+
+    /**
+     * Method hasShowBootstrap.
+     * 
+     * @return true if at least one ShowBootstrap has been added
+     */
+    public boolean hasShowBootstrap(
+    ) {
+        return this._has_showBootstrap;
+    }
+
+    /**
+     * Method hasShowDistances.
+     * 
+     * @return true if at least one ShowDistances has been added
+     */
+    public boolean hasShowDistances(
+    ) {
+        return this._has_showDistances;
+    }
+
+    /**
+     * Method hasThreshold.
+     * 
+     * @return true if at least one Threshold has been added
+     */
+    public boolean hasThreshold(
+    ) {
+        return this._has_threshold;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Returns the value of field 'currentTree'.
+     * 
+     * @return the value of field 'CurrentTree'.
+     */
+    public boolean isCurrentTree(
+    ) {
+        return this._currentTree;
+    }
+
+    /**
+     * Returns the value of field 'fitToWindow'.
+     * 
+     * @return the value of field 'FitToWindow'.
+     */
+    public boolean isFitToWindow(
+    ) {
+        return this._fitToWindow;
+    }
+
+    /**
+     * Returns the value of field 'markUnlinked'.
+     * 
+     * @return the value of field 'MarkUnlinked'.
+     */
+    public boolean isMarkUnlinked(
+    ) {
+        return this._markUnlinked;
+    }
+
+    /**
+     * Returns the value of field 'showBootstrap'.
+     * 
+     * @return the value of field 'ShowBootstrap'.
+     */
+    public boolean isShowBootstrap(
+    ) {
+        return this._showBootstrap;
+    }
+
+    /**
+     * Returns the value of field 'showDistances'.
+     * 
+     * @return the value of field 'ShowDistances'.
+     */
+    public boolean isShowDistances(
+    ) {
+        return this._showDistances;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'currentTree'.
+     * 
+     * @param currentTree the value of field 'currentTree'.
+     */
+    public void setCurrentTree(
+            final boolean currentTree) {
+        this._currentTree = currentTree;
+        this._has_currentTree = true;
+    }
+
+    /**
+     * Sets the value of field 'fitToWindow'.
+     * 
+     * @param fitToWindow the value of field 'fitToWindow'.
+     */
+    public void setFitToWindow(
+            final boolean fitToWindow) {
+        this._fitToWindow = fitToWindow;
+        this._has_fitToWindow = true;
+    }
+
+    /**
+     * Sets the value of field 'fontName'.
+     * 
+     * @param fontName the value of field 'fontName'.
+     */
+    public void setFontName(
+            final java.lang.String fontName) {
+        this._fontName = fontName;
+    }
+
+    /**
+     * Sets the value of field 'fontSize'.
+     * 
+     * @param fontSize the value of field 'fontSize'.
+     */
+    public void setFontSize(
+            final int fontSize) {
+        this._fontSize = fontSize;
+        this._has_fontSize = true;
+    }
+
+    /**
+     * Sets the value of field 'fontStyle'.
+     * 
+     * @param fontStyle the value of field 'fontStyle'.
+     */
+    public void setFontStyle(
+            final int fontStyle) {
+        this._fontStyle = fontStyle;
+        this._has_fontStyle = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * Sets the value of field 'markUnlinked'.
+     * 
+     * @param markUnlinked the value of field 'markUnlinked'.
+     */
+    public void setMarkUnlinked(
+            final boolean markUnlinked) {
+        this._markUnlinked = markUnlinked;
+        this._has_markUnlinked = true;
+    }
+
+    /**
+     * Sets the value of field 'newick'.
+     * 
+     * @param newick the value of field 'newick'.
+     */
+    public void setNewick(
+            final java.lang.String newick) {
+        this._newick = newick;
+    }
+
+    /**
+     * Sets the value of field 'showBootstrap'.
+     * 
+     * @param showBootstrap the value of field 'showBootstrap'.
+     */
+    public void setShowBootstrap(
+            final boolean showBootstrap) {
+        this._showBootstrap = showBootstrap;
+        this._has_showBootstrap = true;
+    }
+
+    /**
+     * Sets the value of field 'showDistances'.
+     * 
+     * @param showDistances the value of field 'showDistances'.
+     */
+    public void setShowDistances(
+            final boolean showDistances) {
+        this._showDistances = showDistances;
+        this._has_showDistances = true;
+    }
+
+    /**
+     * Sets the value of field 'threshold'.
+     * 
+     * @param threshold the value of field 'threshold'.
+     */
+    public void setThreshold(
+            final float threshold) {
+        this._threshold = threshold;
+        this._has_threshold = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Tree
+     */
+    public static jalview.binding.Tree unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Tree) Unmarshaller.unmarshal(jalview.binding.Tree.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/UserColourScheme.java b/src/jalview/binding/UserColourScheme.java
index 2002137..24c97ff 100755
--- a/src/jalview/binding/UserColourScheme.java
+++ b/src/jalview/binding/UserColourScheme.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,111 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColourScheme extends JalviewUserColours implements
-        java.io.Serializable
+public class UserColourScheme extends JalviewUserColours 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public UserColourScheme()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColourScheme() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.JalviewUserColours
-   */
-  public static jalview.binding.JalviewUserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
-            jalview.binding.UserColourScheme.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.JalviewUserColours
+     */
+    public static jalview.binding.JalviewUserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.UserColourScheme.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/UserColours.java b/src/jalview/binding/UserColours.java
index 467904a..bdefe05 100755
--- a/src/jalview/binding/UserColours.java
+++ b/src/jalview/binding/UserColours.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,167 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColours implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _userColourScheme.
-   */
-  private jalview.binding.UserColourScheme _userColourScheme;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public UserColours()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Returns the value of field 'userColourScheme'.
-   * 
-   * @return the value of field 'UserColourScheme'.
-   */
-  public jalview.binding.UserColourScheme getUserColourScheme()
-  {
-    return this._userColourScheme;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class UserColours implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _userColourScheme.
+     */
+    private jalview.binding.UserColourScheme _userColourScheme;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColours() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'userColourScheme'.
+     * 
+     * @return the value of field 'UserColourScheme'.
+     */
+    public jalview.binding.UserColourScheme getUserColourScheme(
+    ) {
+        return this._userColourScheme;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'userColourScheme'.
+     * 
+     * @param userColourScheme the value of field 'userColourScheme'
+     */
+    public void setUserColourScheme(
+            final jalview.binding.UserColourScheme userColourScheme) {
+        this._userColourScheme = userColourScheme;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.UserColours
+     */
+    public static jalview.binding.UserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.UserColours) Unmarshaller.unmarshal(jalview.binding.UserColours.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * Sets the value of field 'userColourScheme'.
-   * 
-   * @param userColourScheme
-   *                the value of field 'userColourScheme'
-   */
-  public void setUserColourScheme(
-          final jalview.binding.UserColourScheme userColourScheme)
-  {
-    this._userColourScheme = userColourScheme;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.UserColours
-   */
-  public static jalview.binding.UserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.UserColours) Unmarshaller.unmarshal(
-            jalview.binding.UserColours.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/binding/VAMSAS.java b/src/jalview/binding/VAMSAS.java
index b886fb9..1c92bd3 100755
--- a/src/jalview/binding/VAMSAS.java
+++ b/src/jalview/binding/VAMSAS.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,588 +19,563 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class VAMSAS implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _alignmentList.
-   */
-  private java.util.Vector _alignmentList;
-
-  /**
-   * Field _treeList.
-   */
-  private java.util.Vector _treeList;
-
-  /**
-   * Field _sequenceSetList.
-   */
-  private java.util.Vector _sequenceSetList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public VAMSAS()
-  {
-    super();
-    this._alignmentList = new java.util.Vector();
-    this._treeList = new java.util.Vector();
-    this._sequenceSetList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAlignment
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlignment(final Alignment vAlignment)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alignmentList.addElement(vAlignment);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlignment
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlignment(final int index, final Alignment vAlignment)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alignmentList.add(index, vAlignment);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSet(final SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetList.addElement(vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSet(final int index, final SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetList.add(index, vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.addElement(vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final int index, final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.add(index, vTree);
-  }
-
-  /**
-   * Method enumerateAlignment.
-   * 
-   * @return an Enumeration over all Alignment elements
-   */
-  public java.util.Enumeration enumerateAlignment()
-  {
-    return this._alignmentList.elements();
-  }
-
-  /**
-   * Method enumerateSequenceSet.
-   * 
-   * @return an Enumeration over all SequenceSet elements
-   */
-  public java.util.Enumeration enumerateSequenceSet()
-  {
-    return this._sequenceSetList.elements();
-  }
-
-  /**
-   * Method enumerateTree.
-   * 
-   * @return an Enumeration over all java.lang.String elements
-   */
-  public java.util.Enumeration enumerateTree()
-  {
-    return this._treeList.elements();
-  }
-
-  /**
-   * Method getAlignment.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the Alignment at the given index
-   */
-  public Alignment getAlignment(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alignmentList.size())
-    {
-      throw new IndexOutOfBoundsException("getAlignment: Index value '"
-              + index + "' not in range [0.."
-              + (this._alignmentList.size() - 1) + "]");
-    }
-
-    return (Alignment) _alignmentList.get(index);
-  }
-
-  /**
-   * Method getAlignment.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public Alignment[] getAlignment()
-  {
-    Alignment[] array = new Alignment[0];
-    return (Alignment[]) this._alignmentList.toArray(array);
-  }
-
-  /**
-   * Method getAlignmentCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAlignmentCount()
-  {
-    return this._alignmentList.size();
-  }
-
-  /**
-   * Method getSequenceSet.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the SequenceSet at the given index
-   */
-  public SequenceSet getSequenceSet(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetList.size())
-    {
-      throw new IndexOutOfBoundsException("getSequenceSet: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceSetList.size() - 1) + "]");
-    }
-
-    return (SequenceSet) _sequenceSetList.get(index);
-  }
-
-  /**
-   * Method getSequenceSet.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public SequenceSet[] getSequenceSet()
-  {
-    SequenceSet[] array = new SequenceSet[0];
-    return (SequenceSet[]) this._sequenceSetList.toArray(array);
-  }
-
-  /**
-   * Method getSequenceSetCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSequenceSetCount()
-  {
-    return this._sequenceSetList.size();
-  }
-
-  /**
-   * Method getTree.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the java.lang.String at the given index
-   */
-  public java.lang.String getTree(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("getTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
-    }
-
-    return (java.lang.String) _treeList.get(index);
-  }
-
-  /**
-   * Method getTree.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public java.lang.String[] getTree()
-  {
-    java.lang.String[] array = new java.lang.String[0];
-    return (java.lang.String[]) this._treeList.toArray(array);
-  }
-
-  /**
-   * Method getTreeCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getTreeCount()
-  {
-    return this._treeList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Method removeAlignment.
-   * 
-   * @param vAlignment
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAlignment(final Alignment vAlignment)
-  {
-    boolean removed = _alignmentList.remove(vAlignment);
-    return removed;
-  }
-
-  /**
-   * Method removeAlignmentAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public Alignment removeAlignmentAt(final int index)
-  {
-    java.lang.Object obj = this._alignmentList.remove(index);
-    return (Alignment) obj;
-  }
-
-  /**
-   */
-  public void removeAllAlignment()
-  {
-    this._alignmentList.clear();
-  }
-
-  /**
-   */
-  public void removeAllSequenceSet()
-  {
-    this._sequenceSetList.clear();
-  }
-
-  /**
-   */
-  public void removeAllTree()
-  {
-    this._treeList.clear();
-  }
-
-  /**
-   * Method removeSequenceSet.
-   * 
-   * @param vSequenceSet
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSequenceSet(final SequenceSet vSequenceSet)
-  {
-    boolean removed = _sequenceSetList.remove(vSequenceSet);
-    return removed;
-  }
-
-  /**
-   * Method removeSequenceSetAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public SequenceSet removeSequenceSetAt(final int index)
-  {
-    java.lang.Object obj = this._sequenceSetList.remove(index);
-    return (SequenceSet) obj;
-  }
-
-  /**
-   * Method removeTree.
-   * 
-   * @param vTree
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeTree(final java.lang.String vTree)
-  {
-    boolean removed = _treeList.remove(vTree);
-    return removed;
-  }
-
-  /**
-   * Method removeTreeAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public java.lang.String removeTreeAt(final int index)
-  {
-    java.lang.Object obj = this._treeList.remove(index);
-    return (java.lang.String) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlignment
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAlignment(final int index, final Alignment vAlignment)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alignmentList.size())
-    {
-      throw new IndexOutOfBoundsException("setAlignment: Index value '"
-              + index + "' not in range [0.."
-              + (this._alignmentList.size() - 1) + "]");
-    }
-
-    this._alignmentList.set(index, vAlignment);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAlignmentArray
-   */
-  public void setAlignment(final Alignment[] vAlignmentArray)
-  {
-    // -- copy array
-    _alignmentList.clear();
-
-    for (int i = 0; i < vAlignmentArray.length; i++)
-    {
-      this._alignmentList.add(vAlignmentArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSequenceSet(final int index, final SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetList.size())
-    {
-      throw new IndexOutOfBoundsException("setSequenceSet: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceSetList.size() - 1) + "]");
-    }
-
-    this._sequenceSetList.set(index, vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceSetArray
-   */
-  public void setSequenceSet(final SequenceSet[] vSequenceSetArray)
-  {
-    // -- copy array
-    _sequenceSetList.clear();
-
-    for (int i = 0; i < vSequenceSetArray.length; i++)
-    {
-      this._sequenceSetList.add(vSequenceSetArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setTree(final int index, final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("setTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
-    }
-
-    this._treeList.set(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTreeArray
-   */
-  public void setTree(final java.lang.String[] vTreeArray)
-  {
-    // -- copy array
-    _treeList.clear();
-
-    for (int i = 0; i < vTreeArray.length; i++)
-    {
-      this._treeList.add(vTreeArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.VAMSAS
-   */
-  public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
-            jalview.binding.VAMSAS.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class VAMSAS implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _alignmentList.
+     */
+    private java.util.Vector _alignmentList;
+
+    /**
+     * Field _treeList.
+     */
+    private java.util.Vector _treeList;
+
+    /**
+     * Field _sequenceSetList.
+     */
+    private java.util.Vector _sequenceSetList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VAMSAS() {
+        super();
+        this._alignmentList = new java.util.Vector();
+        this._treeList = new java.util.Vector();
+        this._sequenceSetList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAlignment
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlignment(
+            final Alignment vAlignment)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alignmentList.addElement(vAlignment);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlignment
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlignment(
+            final int index,
+            final Alignment vAlignment)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alignmentList.add(index, vAlignment);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSet(
+            final SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetList.addElement(vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSet(
+            final int index,
+            final SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetList.add(index, vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.addElement(vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final int index,
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.add(index, vTree);
+    }
+
+    /**
+     * Method enumerateAlignment.
+     * 
+     * @return an Enumeration over all Alignment elements
+     */
+    public java.util.Enumeration enumerateAlignment(
+    ) {
+        return this._alignmentList.elements();
+    }
+
+    /**
+     * Method enumerateSequenceSet.
+     * 
+     * @return an Enumeration over all SequenceSet elements
+     */
+    public java.util.Enumeration enumerateSequenceSet(
+    ) {
+        return this._sequenceSetList.elements();
+    }
+
+    /**
+     * Method enumerateTree.
+     * 
+     * @return an Enumeration over all java.lang.String elements
+     */
+    public java.util.Enumeration enumerateTree(
+    ) {
+        return this._treeList.elements();
+    }
+
+    /**
+     * Method getAlignment.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the Alignment at the given index
+     */
+    public Alignment getAlignment(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alignmentList.size()) {
+            throw new IndexOutOfBoundsException("getAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
+        }
+        
+        return (Alignment) _alignmentList.get(index);
+    }
+
+    /**
+     * Method getAlignment.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public Alignment[] getAlignment(
+    ) {
+        Alignment[] array = new Alignment[0];
+        return (Alignment[]) this._alignmentList.toArray(array);
+    }
+
+    /**
+     * Method getAlignmentCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAlignmentCount(
+    ) {
+        return this._alignmentList.size();
+    }
+
+    /**
+     * Method getSequenceSet.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the SequenceSet at the given index
+     */
+    public SequenceSet getSequenceSet(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetList.size()) {
+            throw new IndexOutOfBoundsException("getSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+        }
+        
+        return (SequenceSet) _sequenceSetList.get(index);
+    }
+
+    /**
+     * Method getSequenceSet.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public SequenceSet[] getSequenceSet(
+    ) {
+        SequenceSet[] array = new SequenceSet[0];
+        return (SequenceSet[]) this._sequenceSetList.toArray(array);
+    }
+
+    /**
+     * Method getSequenceSetCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSequenceSetCount(
+    ) {
+        return this._sequenceSetList.size();
+    }
+
+    /**
+     * Method getTree.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the java.lang.String at the given index
+     */
+    public java.lang.String getTree(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        return (java.lang.String) _treeList.get(index);
+    }
+
+    /**
+     * Method getTree.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public java.lang.String[] getTree(
+    ) {
+        java.lang.String[] array = new java.lang.String[0];
+        return (java.lang.String[]) this._treeList.toArray(array);
+    }
+
+    /**
+     * Method getTreeCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getTreeCount(
+    ) {
+        return this._treeList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Method removeAlignment.
+     * 
+     * @param vAlignment
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAlignment(
+            final Alignment vAlignment) {
+        boolean removed = _alignmentList.remove(vAlignment);
+        return removed;
+    }
+
+    /**
+     * Method removeAlignmentAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public Alignment removeAlignmentAt(
+            final int index) {
+        java.lang.Object obj = this._alignmentList.remove(index);
+        return (Alignment) obj;
+    }
+
+    /**
+     */
+    public void removeAllAlignment(
+    ) {
+        this._alignmentList.clear();
+    }
+
+    /**
+     */
+    public void removeAllSequenceSet(
+    ) {
+        this._sequenceSetList.clear();
+    }
+
+    /**
+     */
+    public void removeAllTree(
+    ) {
+        this._treeList.clear();
+    }
+
+    /**
+     * Method removeSequenceSet.
+     * 
+     * @param vSequenceSet
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSequenceSet(
+            final SequenceSet vSequenceSet) {
+        boolean removed = _sequenceSetList.remove(vSequenceSet);
+        return removed;
+    }
+
+    /**
+     * Method removeSequenceSetAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public SequenceSet removeSequenceSetAt(
+            final int index) {
+        java.lang.Object obj = this._sequenceSetList.remove(index);
+        return (SequenceSet) obj;
+    }
+
+    /**
+     * Method removeTree.
+     * 
+     * @param vTree
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeTree(
+            final java.lang.String vTree) {
+        boolean removed = _treeList.remove(vTree);
+        return removed;
+    }
+
+    /**
+     * Method removeTreeAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public java.lang.String removeTreeAt(
+            final int index) {
+        java.lang.Object obj = this._treeList.remove(index);
+        return (java.lang.String) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlignment
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAlignment(
+            final int index,
+            final Alignment vAlignment)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alignmentList.size()) {
+            throw new IndexOutOfBoundsException("setAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
+        }
+        
+        this._alignmentList.set(index, vAlignment);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAlignmentArray
+     */
+    public void setAlignment(
+            final Alignment[] vAlignmentArray) {
+        //-- copy array
+        _alignmentList.clear();
+        
+        for (int i = 0; i < vAlignmentArray.length; i++) {
+                this._alignmentList.add(vAlignmentArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSequenceSet(
+            final int index,
+            final SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetList.size()) {
+            throw new IndexOutOfBoundsException("setSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+        }
+        
+        this._sequenceSetList.set(index, vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceSetArray
+     */
+    public void setSequenceSet(
+            final SequenceSet[] vSequenceSetArray) {
+        //-- copy array
+        _sequenceSetList.clear();
+        
+        for (int i = 0; i < vSequenceSetArray.length; i++) {
+                this._sequenceSetList.add(vSequenceSetArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setTree(
+            final int index,
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        this._treeList.set(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTreeArray
+     */
+    public void setTree(
+            final java.lang.String[] vTreeArray) {
+        //-- copy array
+        _treeList.clear();
+        
+        for (int i = 0; i < vTreeArray.length; i++) {
+                this._treeList.add(vTreeArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.VAMSAS
+     */
+    public static jalview.binding.VAMSAS unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VAMSAS.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/VamsasModel.java b/src/jalview/binding/VamsasModel.java
index f44a964..5fda35e 100755
--- a/src/jalview/binding/VamsasModel.java
+++ b/src/jalview/binding/VamsasModel.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,109 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class VamsasModel extends VAMSAS implements java.io.Serializable
+public class VamsasModel extends VAMSAS 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public VamsasModel()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VamsasModel() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.VAMSAS
-   */
-  public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
-            jalview.binding.VamsasModel.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.VAMSAS
+     */
+    public static jalview.binding.VAMSAS unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VamsasModel.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/binding/Viewport.java b/src/jalview/binding/Viewport.java
index 95b8adf..643c323 100755
--- a/src/jalview/binding/Viewport.java
+++ b/src/jalview/binding/Viewport.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.binding;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,1449 +19,1414 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Viewport implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _conservationSelected.
-   */
-  private boolean _conservationSelected;
-
-  /**
-   * keeps track of state for field: _conservationSelected
-   */
-  private boolean _has_conservationSelected;
-
-  /**
-   * Field _pidSelected.
-   */
-  private boolean _pidSelected;
-
-  /**
-   * keeps track of state for field: _pidSelected
-   */
-  private boolean _has_pidSelected;
-
-  /**
-   * Field _bgColour.
-   */
-  private java.lang.String _bgColour;
-
-  /**
-   * Field _consThreshold.
-   */
-  private int _consThreshold;
-
-  /**
-   * keeps track of state for field: _consThreshold
-   */
-  private boolean _has_consThreshold;
-
-  /**
-   * Field _pidThreshold.
-   */
-  private int _pidThreshold;
-
-  /**
-   * keeps track of state for field: _pidThreshold
-   */
-  private boolean _has_pidThreshold;
-
-  /**
-   * Field _title.
-   */
-  private java.lang.String _title;
-
-  /**
-   * Field _showFullId.
-   */
-  private boolean _showFullId;
-
-  /**
-   * keeps track of state for field: _showFullId
-   */
-  private boolean _has_showFullId;
-
-  /**
-   * Field _showText.
-   */
-  private boolean _showText;
-
-  /**
-   * keeps track of state for field: _showText
-   */
-  private boolean _has_showText;
-
-  /**
-   * Field _showColourText.
-   */
-  private boolean _showColourText;
-
-  /**
-   * keeps track of state for field: _showColourText
-   */
-  private boolean _has_showColourText;
-
-  /**
-   * Field _showBoxes.
-   */
-  private boolean _showBoxes;
-
-  /**
-   * keeps track of state for field: _showBoxes
-   */
-  private boolean _has_showBoxes;
-
-  /**
-   * Field _wrapAlignment.
-   */
-  private boolean _wrapAlignment;
-
-  /**
-   * keeps track of state for field: _wrapAlignment
-   */
-  private boolean _has_wrapAlignment;
-
-  /**
-   * Field _renderGaps.
-   */
-  private boolean _renderGaps;
-
-  /**
-   * keeps track of state for field: _renderGaps
-   */
-  private boolean _has_renderGaps;
-
-  /**
-   * Field _showSequenceFeatures.
-   */
-  private boolean _showSequenceFeatures;
-
-  /**
-   * keeps track of state for field: _showSequenceFeatures
-   */
-  private boolean _has_showSequenceFeatures;
-
-  /**
-   * Field _showAnnotation.
-   */
-  private boolean _showAnnotation;
-
-  /**
-   * keeps track of state for field: _showAnnotation
-   */
-  private boolean _has_showAnnotation;
-
-  /**
-   * Field _showConservation.
-   */
-  private boolean _showConservation;
-
-  /**
-   * keeps track of state for field: _showConservation
-   */
-  private boolean _has_showConservation;
-
-  /**
-   * Field _showQuality.
-   */
-  private boolean _showQuality;
-
-  /**
-   * keeps track of state for field: _showQuality
-   */
-  private boolean _has_showQuality;
-
-  /**
-   * Field _showIdentity.
-   */
-  private boolean _showIdentity;
-
-  /**
-   * keeps track of state for field: _showIdentity
-   */
-  private boolean _has_showIdentity;
-
-  /**
-   * Field _xpos.
-   */
-  private int _xpos;
-
-  /**
-   * keeps track of state for field: _xpos
-   */
-  private boolean _has_xpos;
-
-  /**
-   * Field _ypos.
-   */
-  private int _ypos;
-
-  /**
-   * keeps track of state for field: _ypos
-   */
-  private boolean _has_ypos;
-
-  /**
-   * Field _width.
-   */
-  private int _width;
-
-  /**
-   * keeps track of state for field: _width
-   */
-  private boolean _has_width;
-
-  /**
-   * Field _height.
-   */
-  private int _height;
-
-  /**
-   * keeps track of state for field: _height
-   */
-  private boolean _has_height;
-
-  /**
-   * Field _startRes.
-   */
-  private int _startRes;
-
-  /**
-   * keeps track of state for field: _startRes
-   */
-  private boolean _has_startRes;
-
-  /**
-   * Field _startSeq.
-   */
-  private int _startSeq;
-
-  /**
-   * keeps track of state for field: _startSeq
-   */
-  private boolean _has_startSeq;
-
-  /**
-   * Field _fontName.
-   */
-  private java.lang.String _fontName;
-
-  /**
-   * Field _fontSize.
-   */
-  private int _fontSize;
-
-  /**
-   * keeps track of state for field: _fontSize
-   */
-  private boolean _has_fontSize;
-
-  /**
-   * Field _fontStyle.
-   */
-  private int _fontStyle;
-
-  /**
-   * keeps track of state for field: _fontStyle
-   */
-  private boolean _has_fontStyle;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Viewport()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteConsThreshold()
-  {
-    this._has_consThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteConservationSelected()
-  {
-    this._has_conservationSelected = false;
-  }
-
-  /**
-   */
-  public void deleteFontSize()
-  {
-    this._has_fontSize = false;
-  }
-
-  /**
-   */
-  public void deleteFontStyle()
-  {
-    this._has_fontStyle = false;
-  }
-
-  /**
-   */
-  public void deleteHeight()
-  {
-    this._has_height = false;
-  }
-
-  /**
-   */
-  public void deletePidSelected()
-  {
-    this._has_pidSelected = false;
-  }
-
-  /**
-   */
-  public void deletePidThreshold()
-  {
-    this._has_pidThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteRenderGaps()
-  {
-    this._has_renderGaps = false;
-  }
-
-  /**
-   */
-  public void deleteShowAnnotation()
-  {
-    this._has_showAnnotation = false;
-  }
-
-  /**
-   */
-  public void deleteShowBoxes()
-  {
-    this._has_showBoxes = false;
-  }
-
-  /**
-   */
-  public void deleteShowColourText()
-  {
-    this._has_showColourText = false;
-  }
-
-  /**
-   */
-  public void deleteShowConservation()
-  {
-    this._has_showConservation = false;
-  }
-
-  /**
-   */
-  public void deleteShowFullId()
-  {
-    this._has_showFullId = false;
-  }
-
-  /**
-   */
-  public void deleteShowIdentity()
-  {
-    this._has_showIdentity = false;
-  }
-
-  /**
-   */
-  public void deleteShowQuality()
-  {
-    this._has_showQuality = false;
-  }
-
-  /**
-   */
-  public void deleteShowSequenceFeatures()
-  {
-    this._has_showSequenceFeatures = false;
-  }
-
-  /**
-   */
-  public void deleteShowText()
-  {
-    this._has_showText = false;
-  }
-
-  /**
-   */
-  public void deleteStartRes()
-  {
-    this._has_startRes = false;
-  }
-
-  /**
-   */
-  public void deleteStartSeq()
-  {
-    this._has_startSeq = false;
-  }
-
-  /**
-   */
-  public void deleteWidth()
-  {
-    this._has_width = false;
-  }
-
-  /**
-   */
-  public void deleteWrapAlignment()
-  {
-    this._has_wrapAlignment = false;
-  }
-
-  /**
-   */
-  public void deleteXpos()
-  {
-    this._has_xpos = false;
-  }
-
-  /**
-   */
-  public void deleteYpos()
-  {
-    this._has_ypos = false;
-  }
-
-  /**
-   * Returns the value of field 'bgColour'.
-   * 
-   * @return the value of field 'BgColour'.
-   */
-  public java.lang.String getBgColour()
-  {
-    return this._bgColour;
-  }
-
-  /**
-   * Returns the value of field 'consThreshold'.
-   * 
-   * @return the value of field 'ConsThreshold'.
-   */
-  public int getConsThreshold()
-  {
-    return this._consThreshold;
-  }
-
-  /**
-   * Returns the value of field 'conservationSelected'.
-   * 
-   * @return the value of field 'ConservationSelected'.
-   */
-  public boolean getConservationSelected()
-  {
-    return this._conservationSelected;
-  }
-
-  /**
-   * Returns the value of field 'fontName'.
-   * 
-   * @return the value of field 'FontName'.
-   */
-  public java.lang.String getFontName()
-  {
-    return this._fontName;
-  }
-
-  /**
-   * Returns the value of field 'fontSize'.
-   * 
-   * @return the value of field 'FontSize'.
-   */
-  public int getFontSize()
-  {
-    return this._fontSize;
-  }
-
-  /**
-   * Returns the value of field 'fontStyle'.
-   * 
-   * @return the value of field 'FontStyle'.
-   */
-  public int getFontStyle()
-  {
-    return this._fontStyle;
-  }
-
-  /**
-   * Returns the value of field 'height'.
-   * 
-   * @return the value of field 'Height'.
-   */
-  public int getHeight()
-  {
-    return this._height;
-  }
-
-  /**
-   * Returns the value of field 'pidSelected'.
-   * 
-   * @return the value of field 'PidSelected'.
-   */
-  public boolean getPidSelected()
-  {
-    return this._pidSelected;
-  }
-
-  /**
-   * Returns the value of field 'pidThreshold'.
-   * 
-   * @return the value of field 'PidThreshold'.
-   */
-  public int getPidThreshold()
-  {
-    return this._pidThreshold;
-  }
-
-  /**
-   * Returns the value of field 'renderGaps'.
-   * 
-   * @return the value of field 'RenderGaps'.
-   */
-  public boolean getRenderGaps()
-  {
-    return this._renderGaps;
-  }
-
-  /**
-   * Returns the value of field 'showAnnotation'.
-   * 
-   * @return the value of field 'ShowAnnotation'.
-   */
-  public boolean getShowAnnotation()
-  {
-    return this._showAnnotation;
-  }
-
-  /**
-   * Returns the value of field 'showBoxes'.
-   * 
-   * @return the value of field 'ShowBoxes'.
-   */
-  public boolean getShowBoxes()
-  {
-    return this._showBoxes;
-  }
-
-  /**
-   * Returns the value of field 'showColourText'.
-   * 
-   * @return the value of field 'ShowColourText'.
-   */
-  public boolean getShowColourText()
-  {
-    return this._showColourText;
-  }
-
-  /**
-   * Returns the value of field 'showConservation'.
-   * 
-   * @return the value of field 'ShowConservation'.
-   */
-  public boolean getShowConservation()
-  {
-    return this._showConservation;
-  }
-
-  /**
-   * Returns the value of field 'showFullId'.
-   * 
-   * @return the value of field 'ShowFullId'.
-   */
-  public boolean getShowFullId()
-  {
-    return this._showFullId;
-  }
-
-  /**
-   * Returns the value of field 'showIdentity'.
-   * 
-   * @return the value of field 'ShowIdentity'.
-   */
-  public boolean getShowIdentity()
-  {
-    return this._showIdentity;
-  }
-
-  /**
-   * Returns the value of field 'showQuality'.
-   * 
-   * @return the value of field 'ShowQuality'.
-   */
-  public boolean getShowQuality()
-  {
-    return this._showQuality;
-  }
-
-  /**
-   * Returns the value of field 'showSequenceFeatures'.
-   * 
-   * @return the value of field 'ShowSequenceFeatures'.
-   */
-  public boolean getShowSequenceFeatures()
-  {
-    return this._showSequenceFeatures;
-  }
-
-  /**
-   * Returns the value of field 'showText'.
-   * 
-   * @return the value of field 'ShowText'.
-   */
-  public boolean getShowText()
-  {
-    return this._showText;
-  }
-
-  /**
-   * Returns the value of field 'startRes'.
-   * 
-   * @return the value of field 'StartRes'.
-   */
-  public int getStartRes()
-  {
-    return this._startRes;
-  }
-
-  /**
-   * Returns the value of field 'startSeq'.
-   * 
-   * @return the value of field 'StartSeq'.
-   */
-  public int getStartSeq()
-  {
-    return this._startSeq;
-  }
-
-  /**
-   * Returns the value of field 'title'.
-   * 
-   * @return the value of field 'Title'.
-   */
-  public java.lang.String getTitle()
-  {
-    return this._title;
-  }
-
-  /**
-   * Returns the value of field 'width'.
-   * 
-   * @return the value of field 'Width'.
-   */
-  public int getWidth()
-  {
-    return this._width;
-  }
-
-  /**
-   * Returns the value of field 'wrapAlignment'.
-   * 
-   * @return the value of field 'WrapAlignment'.
-   */
-  public boolean getWrapAlignment()
-  {
-    return this._wrapAlignment;
-  }
-
-  /**
-   * Returns the value of field 'xpos'.
-   * 
-   * @return the value of field 'Xpos'.
-   */
-  public int getXpos()
-  {
-    return this._xpos;
-  }
-
-  /**
-   * Returns the value of field 'ypos'.
-   * 
-   * @return the value of field 'Ypos'.
-   */
-  public int getYpos()
-  {
-    return this._ypos;
-  }
-
-  /**
-   * Method hasConsThreshold.
-   * 
-   * @return true if at least one ConsThreshold has been added
-   */
-  public boolean hasConsThreshold()
-  {
-    return this._has_consThreshold;
-  }
-
-  /**
-   * Method hasConservationSelected.
-   * 
-   * @return true if at least one ConservationSelected has been added
-   */
-  public boolean hasConservationSelected()
-  {
-    return this._has_conservationSelected;
-  }
-
-  /**
-   * Method hasFontSize.
-   * 
-   * @return true if at least one FontSize has been added
-   */
-  public boolean hasFontSize()
-  {
-    return this._has_fontSize;
-  }
-
-  /**
-   * Method hasFontStyle.
-   * 
-   * @return true if at least one FontStyle has been added
-   */
-  public boolean hasFontStyle()
-  {
-    return this._has_fontStyle;
-  }
-
-  /**
-   * Method hasHeight.
-   * 
-   * @return true if at least one Height has been added
-   */
-  public boolean hasHeight()
-  {
-    return this._has_height;
-  }
-
-  /**
-   * Method hasPidSelected.
-   * 
-   * @return true if at least one PidSelected has been added
-   */
-  public boolean hasPidSelected()
-  {
-    return this._has_pidSelected;
-  }
-
-  /**
-   * Method hasPidThreshold.
-   * 
-   * @return true if at least one PidThreshold has been added
-   */
-  public boolean hasPidThreshold()
-  {
-    return this._has_pidThreshold;
-  }
-
-  /**
-   * Method hasRenderGaps.
-   * 
-   * @return true if at least one RenderGaps has been added
-   */
-  public boolean hasRenderGaps()
-  {
-    return this._has_renderGaps;
-  }
-
-  /**
-   * Method hasShowAnnotation.
-   * 
-   * @return true if at least one ShowAnnotation has been added
-   */
-  public boolean hasShowAnnotation()
-  {
-    return this._has_showAnnotation;
-  }
-
-  /**
-   * Method hasShowBoxes.
-   * 
-   * @return true if at least one ShowBoxes has been added
-   */
-  public boolean hasShowBoxes()
-  {
-    return this._has_showBoxes;
-  }
-
-  /**
-   * Method hasShowColourText.
-   * 
-   * @return true if at least one ShowColourText has been added
-   */
-  public boolean hasShowColourText()
-  {
-    return this._has_showColourText;
-  }
-
-  /**
-   * Method hasShowConservation.
-   * 
-   * @return true if at least one ShowConservation has been added
-   */
-  public boolean hasShowConservation()
-  {
-    return this._has_showConservation;
-  }
-
-  /**
-   * Method hasShowFullId.
-   * 
-   * @return true if at least one ShowFullId has been added
-   */
-  public boolean hasShowFullId()
-  {
-    return this._has_showFullId;
-  }
-
-  /**
-   * Method hasShowIdentity.
-   * 
-   * @return true if at least one ShowIdentity has been added
-   */
-  public boolean hasShowIdentity()
-  {
-    return this._has_showIdentity;
-  }
-
-  /**
-   * Method hasShowQuality.
-   * 
-   * @return true if at least one ShowQuality has been added
-   */
-  public boolean hasShowQuality()
-  {
-    return this._has_showQuality;
-  }
-
-  /**
-   * Method hasShowSequenceFeatures.
-   * 
-   * @return true if at least one ShowSequenceFeatures has been added
-   */
-  public boolean hasShowSequenceFeatures()
-  {
-    return this._has_showSequenceFeatures;
-  }
-
-  /**
-   * Method hasShowText.
-   * 
-   * @return true if at least one ShowText has been added
-   */
-  public boolean hasShowText()
-  {
-    return this._has_showText;
-  }
-
-  /**
-   * Method hasStartRes.
-   * 
-   * @return true if at least one StartRes has been added
-   */
-  public boolean hasStartRes()
-  {
-    return this._has_startRes;
-  }
-
-  /**
-   * Method hasStartSeq.
-   * 
-   * @return true if at least one StartSeq has been added
-   */
-  public boolean hasStartSeq()
-  {
-    return this._has_startSeq;
-  }
-
-  /**
-   * Method hasWidth.
-   * 
-   * @return true if at least one Width has been added
-   */
-  public boolean hasWidth()
-  {
-    return this._has_width;
-  }
-
-  /**
-   * Method hasWrapAlignment.
-   * 
-   * @return true if at least one WrapAlignment has been added
-   */
-  public boolean hasWrapAlignment()
-  {
-    return this._has_wrapAlignment;
-  }
-
-  /**
-   * Method hasXpos.
-   * 
-   * @return true if at least one Xpos has been added
-   */
-  public boolean hasXpos()
-  {
-    return this._has_xpos;
-  }
-
-  /**
-   * Method hasYpos.
-   * 
-   * @return true if at least one Ypos has been added
-   */
-  public boolean hasYpos()
-  {
-    return this._has_ypos;
-  }
-
-  /**
-   * Returns the value of field 'conservationSelected'.
-   * 
-   * @return the value of field 'ConservationSelected'.
-   */
-  public boolean isConservationSelected()
-  {
-    return this._conservationSelected;
-  }
-
-  /**
-   * Returns the value of field 'pidSelected'.
-   * 
-   * @return the value of field 'PidSelected'.
-   */
-  public boolean isPidSelected()
-  {
-    return this._pidSelected;
-  }
-
-  /**
-   * Returns the value of field 'renderGaps'.
-   * 
-   * @return the value of field 'RenderGaps'.
-   */
-  public boolean isRenderGaps()
-  {
-    return this._renderGaps;
-  }
-
-  /**
-   * Returns the value of field 'showAnnotation'.
-   * 
-   * @return the value of field 'ShowAnnotation'.
-   */
-  public boolean isShowAnnotation()
-  {
-    return this._showAnnotation;
-  }
-
-  /**
-   * Returns the value of field 'showBoxes'.
-   * 
-   * @return the value of field 'ShowBoxes'.
-   */
-  public boolean isShowBoxes()
-  {
-    return this._showBoxes;
-  }
-
-  /**
-   * Returns the value of field 'showColourText'.
-   * 
-   * @return the value of field 'ShowColourText'.
-   */
-  public boolean isShowColourText()
-  {
-    return this._showColourText;
-  }
-
-  /**
-   * Returns the value of field 'showConservation'.
-   * 
-   * @return the value of field 'ShowConservation'.
-   */
-  public boolean isShowConservation()
-  {
-    return this._showConservation;
-  }
-
-  /**
-   * Returns the value of field 'showFullId'.
-   * 
-   * @return the value of field 'ShowFullId'.
-   */
-  public boolean isShowFullId()
-  {
-    return this._showFullId;
-  }
-
-  /**
-   * Returns the value of field 'showIdentity'.
-   * 
-   * @return the value of field 'ShowIdentity'.
-   */
-  public boolean isShowIdentity()
-  {
-    return this._showIdentity;
-  }
-
-  /**
-   * Returns the value of field 'showQuality'.
-   * 
-   * @return the value of field 'ShowQuality'.
-   */
-  public boolean isShowQuality()
-  {
-    return this._showQuality;
-  }
-
-  /**
-   * Returns the value of field 'showSequenceFeatures'.
-   * 
-   * @return the value of field 'ShowSequenceFeatures'.
-   */
-  public boolean isShowSequenceFeatures()
-  {
-    return this._showSequenceFeatures;
-  }
-
-  /**
-   * Returns the value of field 'showText'.
-   * 
-   * @return the value of field 'ShowText'.
-   */
-  public boolean isShowText()
-  {
-    return this._showText;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Returns the value of field 'wrapAlignment'.
-   * 
-   * @return the value of field 'WrapAlignment'.
-   */
-  public boolean isWrapAlignment()
-  {
-    return this._wrapAlignment;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'bgColour'.
-   * 
-   * @param bgColour
-   *                the value of field 'bgColour'.
-   */
-  public void setBgColour(final java.lang.String bgColour)
-  {
-    this._bgColour = bgColour;
-  }
-
-  /**
-   * Sets the value of field 'consThreshold'.
-   * 
-   * @param consThreshold
-   *                the value of field 'consThreshold'.
-   */
-  public void setConsThreshold(final int consThreshold)
-  {
-    this._consThreshold = consThreshold;
-    this._has_consThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'conservationSelected'.
-   * 
-   * @param conservationSelected
-   *                the value of field 'conservationSelected'.
-   */
-  public void setConservationSelected(final boolean conservationSelected)
-  {
-    this._conservationSelected = conservationSelected;
-    this._has_conservationSelected = true;
-  }
-
-  /**
-   * Sets the value of field 'fontName'.
-   * 
-   * @param fontName
-   *                the value of field 'fontName'.
-   */
-  public void setFontName(final java.lang.String fontName)
-  {
-    this._fontName = fontName;
-  }
-
-  /**
-   * Sets the value of field 'fontSize'.
-   * 
-   * @param fontSize
-   *                the value of field 'fontSize'.
-   */
-  public void setFontSize(final int fontSize)
-  {
-    this._fontSize = fontSize;
-    this._has_fontSize = true;
-  }
-
-  /**
-   * Sets the value of field 'fontStyle'.
-   * 
-   * @param fontStyle
-   *                the value of field 'fontStyle'.
-   */
-  public void setFontStyle(final int fontStyle)
-  {
-    this._fontStyle = fontStyle;
-    this._has_fontStyle = true;
-  }
-
-  /**
-   * Sets the value of field 'height'.
-   * 
-   * @param height
-   *                the value of field 'height'.
-   */
-  public void setHeight(final int height)
-  {
-    this._height = height;
-    this._has_height = true;
-  }
-
-  /**
-   * Sets the value of field 'pidSelected'.
-   * 
-   * @param pidSelected
-   *                the value of field 'pidSelected'.
-   */
-  public void setPidSelected(final boolean pidSelected)
-  {
-    this._pidSelected = pidSelected;
-    this._has_pidSelected = true;
-  }
-
-  /**
-   * Sets the value of field 'pidThreshold'.
-   * 
-   * @param pidThreshold
-   *                the value of field 'pidThreshold'.
-   */
-  public void setPidThreshold(final int pidThreshold)
-  {
-    this._pidThreshold = pidThreshold;
-    this._has_pidThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'renderGaps'.
-   * 
-   * @param renderGaps
-   *                the value of field 'renderGaps'.
-   */
-  public void setRenderGaps(final boolean renderGaps)
-  {
-    this._renderGaps = renderGaps;
-    this._has_renderGaps = true;
-  }
-
-  /**
-   * Sets the value of field 'showAnnotation'.
-   * 
-   * @param showAnnotation
-   *                the value of field 'showAnnotation'.
-   */
-  public void setShowAnnotation(final boolean showAnnotation)
-  {
-    this._showAnnotation = showAnnotation;
-    this._has_showAnnotation = true;
-  }
-
-  /**
-   * Sets the value of field 'showBoxes'.
-   * 
-   * @param showBoxes
-   *                the value of field 'showBoxes'.
-   */
-  public void setShowBoxes(final boolean showBoxes)
-  {
-    this._showBoxes = showBoxes;
-    this._has_showBoxes = true;
-  }
-
-  /**
-   * Sets the value of field 'showColourText'.
-   * 
-   * @param showColourText
-   *                the value of field 'showColourText'.
-   */
-  public void setShowColourText(final boolean showColourText)
-  {
-    this._showColourText = showColourText;
-    this._has_showColourText = true;
-  }
-
-  /**
-   * Sets the value of field 'showConservation'.
-   * 
-   * @param showConservation
-   *                the value of field 'showConservation'
-   */
-  public void setShowConservation(final boolean showConservation)
-  {
-    this._showConservation = showConservation;
-    this._has_showConservation = true;
-  }
-
-  /**
-   * Sets the value of field 'showFullId'.
-   * 
-   * @param showFullId
-   *                the value of field 'showFullId'.
-   */
-  public void setShowFullId(final boolean showFullId)
-  {
-    this._showFullId = showFullId;
-    this._has_showFullId = true;
-  }
-
-  /**
-   * Sets the value of field 'showIdentity'.
-   * 
-   * @param showIdentity
-   *                the value of field 'showIdentity'.
-   */
-  public void setShowIdentity(final boolean showIdentity)
-  {
-    this._showIdentity = showIdentity;
-    this._has_showIdentity = true;
-  }
-
-  /**
-   * Sets the value of field 'showQuality'.
-   * 
-   * @param showQuality
-   *                the value of field 'showQuality'.
-   */
-  public void setShowQuality(final boolean showQuality)
-  {
-    this._showQuality = showQuality;
-    this._has_showQuality = true;
-  }
-
-  /**
-   * Sets the value of field 'showSequenceFeatures'.
-   * 
-   * @param showSequenceFeatures
-   *                the value of field 'showSequenceFeatures'.
-   */
-  public void setShowSequenceFeatures(final boolean showSequenceFeatures)
-  {
-    this._showSequenceFeatures = showSequenceFeatures;
-    this._has_showSequenceFeatures = true;
-  }
-
-  /**
-   * Sets the value of field 'showText'.
-   * 
-   * @param showText
-   *                the value of field 'showText'.
-   */
-  public void setShowText(final boolean showText)
-  {
-    this._showText = showText;
-    this._has_showText = true;
-  }
-
-  /**
-   * Sets the value of field 'startRes'.
-   * 
-   * @param startRes
-   *                the value of field 'startRes'.
-   */
-  public void setStartRes(final int startRes)
-  {
-    this._startRes = startRes;
-    this._has_startRes = true;
-  }
-
-  /**
-   * Sets the value of field 'startSeq'.
-   * 
-   * @param startSeq
-   *                the value of field 'startSeq'.
-   */
-  public void setStartSeq(final int startSeq)
-  {
-    this._startSeq = startSeq;
-    this._has_startSeq = true;
-  }
-
-  /**
-   * Sets the value of field 'title'.
-   * 
-   * @param title
-   *                the value of field 'title'.
-   */
-  public void setTitle(final java.lang.String title)
-  {
-    this._title = title;
-  }
-
-  /**
-   * Sets the value of field 'width'.
-   * 
-   * @param width
-   *                the value of field 'width'.
-   */
-  public void setWidth(final int width)
-  {
-    this._width = width;
-    this._has_width = true;
-  }
-
-  /**
-   * Sets the value of field 'wrapAlignment'.
-   * 
-   * @param wrapAlignment
-   *                the value of field 'wrapAlignment'.
-   */
-  public void setWrapAlignment(final boolean wrapAlignment)
-  {
-    this._wrapAlignment = wrapAlignment;
-    this._has_wrapAlignment = true;
-  }
-
-  /**
-   * Sets the value of field 'xpos'.
-   * 
-   * @param xpos
-   *                the value of field 'xpos'.
-   */
-  public void setXpos(final int xpos)
-  {
-    this._xpos = xpos;
-    this._has_xpos = true;
-  }
-
-  /**
-   * Sets the value of field 'ypos'.
-   * 
-   * @param ypos
-   *                the value of field 'ypos'.
-   */
-  public void setYpos(final int ypos)
-  {
-    this._ypos = ypos;
-    this._has_ypos = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.binding.Viewport
-   */
-  public static jalview.binding.Viewport unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.binding.Viewport) Unmarshaller.unmarshal(
-            jalview.binding.Viewport.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Viewport implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _conservationSelected.
+     */
+    private boolean _conservationSelected;
+
+    /**
+     * keeps track of state for field: _conservationSelected
+     */
+    private boolean _has_conservationSelected;
+
+    /**
+     * Field _pidSelected.
+     */
+    private boolean _pidSelected;
+
+    /**
+     * keeps track of state for field: _pidSelected
+     */
+    private boolean _has_pidSelected;
+
+    /**
+     * Field _bgColour.
+     */
+    private java.lang.String _bgColour;
+
+    /**
+     * Field _consThreshold.
+     */
+    private int _consThreshold;
+
+    /**
+     * keeps track of state for field: _consThreshold
+     */
+    private boolean _has_consThreshold;
+
+    /**
+     * Field _pidThreshold.
+     */
+    private int _pidThreshold;
+
+    /**
+     * keeps track of state for field: _pidThreshold
+     */
+    private boolean _has_pidThreshold;
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * Field _showFullId.
+     */
+    private boolean _showFullId;
+
+    /**
+     * keeps track of state for field: _showFullId
+     */
+    private boolean _has_showFullId;
+
+    /**
+     * Field _showText.
+     */
+    private boolean _showText;
+
+    /**
+     * keeps track of state for field: _showText
+     */
+    private boolean _has_showText;
+
+    /**
+     * Field _showColourText.
+     */
+    private boolean _showColourText;
+
+    /**
+     * keeps track of state for field: _showColourText
+     */
+    private boolean _has_showColourText;
+
+    /**
+     * Field _showBoxes.
+     */
+    private boolean _showBoxes;
+
+    /**
+     * keeps track of state for field: _showBoxes
+     */
+    private boolean _has_showBoxes;
+
+    /**
+     * Field _wrapAlignment.
+     */
+    private boolean _wrapAlignment;
+
+    /**
+     * keeps track of state for field: _wrapAlignment
+     */
+    private boolean _has_wrapAlignment;
+
+    /**
+     * Field _renderGaps.
+     */
+    private boolean _renderGaps;
+
+    /**
+     * keeps track of state for field: _renderGaps
+     */
+    private boolean _has_renderGaps;
+
+    /**
+     * Field _showSequenceFeatures.
+     */
+    private boolean _showSequenceFeatures;
+
+    /**
+     * keeps track of state for field: _showSequenceFeatures
+     */
+    private boolean _has_showSequenceFeatures;
+
+    /**
+     * Field _showAnnotation.
+     */
+    private boolean _showAnnotation;
+
+    /**
+     * keeps track of state for field: _showAnnotation
+     */
+    private boolean _has_showAnnotation;
+
+    /**
+     * Field _showConservation.
+     */
+    private boolean _showConservation;
+
+    /**
+     * keeps track of state for field: _showConservation
+     */
+    private boolean _has_showConservation;
+
+    /**
+     * Field _showQuality.
+     */
+    private boolean _showQuality;
+
+    /**
+     * keeps track of state for field: _showQuality
+     */
+    private boolean _has_showQuality;
+
+    /**
+     * Field _showIdentity.
+     */
+    private boolean _showIdentity;
+
+    /**
+     * keeps track of state for field: _showIdentity
+     */
+    private boolean _has_showIdentity;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _startRes.
+     */
+    private int _startRes;
+
+    /**
+     * keeps track of state for field: _startRes
+     */
+    private boolean _has_startRes;
+
+    /**
+     * Field _startSeq.
+     */
+    private int _startSeq;
+
+    /**
+     * keeps track of state for field: _startSeq
+     */
+    private boolean _has_startSeq;
+
+    /**
+     * Field _fontName.
+     */
+    private java.lang.String _fontName;
+
+    /**
+     * Field _fontSize.
+     */
+    private int _fontSize;
+
+    /**
+     * keeps track of state for field: _fontSize
+     */
+    private boolean _has_fontSize;
+
+    /**
+     * Field _fontStyle.
+     */
+    private int _fontStyle;
+
+    /**
+     * keeps track of state for field: _fontStyle
+     */
+    private boolean _has_fontStyle;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Viewport() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteConsThreshold(
+    ) {
+        this._has_consThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteConservationSelected(
+    ) {
+        this._has_conservationSelected= false;
+    }
+
+    /**
+     */
+    public void deleteFontSize(
+    ) {
+        this._has_fontSize= false;
+    }
+
+    /**
+     */
+    public void deleteFontStyle(
+    ) {
+        this._has_fontStyle= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deletePidSelected(
+    ) {
+        this._has_pidSelected= false;
+    }
+
+    /**
+     */
+    public void deletePidThreshold(
+    ) {
+        this._has_pidThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteRenderGaps(
+    ) {
+        this._has_renderGaps= false;
+    }
+
+    /**
+     */
+    public void deleteShowAnnotation(
+    ) {
+        this._has_showAnnotation= false;
+    }
+
+    /**
+     */
+    public void deleteShowBoxes(
+    ) {
+        this._has_showBoxes= false;
+    }
+
+    /**
+     */
+    public void deleteShowColourText(
+    ) {
+        this._has_showColourText= false;
+    }
+
+    /**
+     */
+    public void deleteShowConservation(
+    ) {
+        this._has_showConservation= false;
+    }
+
+    /**
+     */
+    public void deleteShowFullId(
+    ) {
+        this._has_showFullId= false;
+    }
+
+    /**
+     */
+    public void deleteShowIdentity(
+    ) {
+        this._has_showIdentity= false;
+    }
+
+    /**
+     */
+    public void deleteShowQuality(
+    ) {
+        this._has_showQuality= false;
+    }
+
+    /**
+     */
+    public void deleteShowSequenceFeatures(
+    ) {
+        this._has_showSequenceFeatures= false;
+    }
+
+    /**
+     */
+    public void deleteShowText(
+    ) {
+        this._has_showText= false;
+    }
+
+    /**
+     */
+    public void deleteStartRes(
+    ) {
+        this._has_startRes= false;
+    }
+
+    /**
+     */
+    public void deleteStartSeq(
+    ) {
+        this._has_startSeq= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteWrapAlignment(
+    ) {
+        this._has_wrapAlignment= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Returns the value of field 'bgColour'.
+     * 
+     * @return the value of field 'BgColour'.
+     */
+    public java.lang.String getBgColour(
+    ) {
+        return this._bgColour;
+    }
+
+    /**
+     * Returns the value of field 'consThreshold'.
+     * 
+     * @return the value of field 'ConsThreshold'.
+     */
+    public int getConsThreshold(
+    ) {
+        return this._consThreshold;
+    }
+
+    /**
+     * Returns the value of field 'conservationSelected'.
+     * 
+     * @return the value of field 'ConservationSelected'.
+     */
+    public boolean getConservationSelected(
+    ) {
+        return this._conservationSelected;
+    }
+
+    /**
+     * Returns the value of field 'fontName'.
+     * 
+     * @return the value of field 'FontName'.
+     */
+    public java.lang.String getFontName(
+    ) {
+        return this._fontName;
+    }
+
+    /**
+     * Returns the value of field 'fontSize'.
+     * 
+     * @return the value of field 'FontSize'.
+     */
+    public int getFontSize(
+    ) {
+        return this._fontSize;
+    }
+
+    /**
+     * Returns the value of field 'fontStyle'.
+     * 
+     * @return the value of field 'FontStyle'.
+     */
+    public int getFontStyle(
+    ) {
+        return this._fontStyle;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Returns the value of field 'pidSelected'.
+     * 
+     * @return the value of field 'PidSelected'.
+     */
+    public boolean getPidSelected(
+    ) {
+        return this._pidSelected;
+    }
+
+    /**
+     * Returns the value of field 'pidThreshold'.
+     * 
+     * @return the value of field 'PidThreshold'.
+     */
+    public int getPidThreshold(
+    ) {
+        return this._pidThreshold;
+    }
+
+    /**
+     * Returns the value of field 'renderGaps'.
+     * 
+     * @return the value of field 'RenderGaps'.
+     */
+    public boolean getRenderGaps(
+    ) {
+        return this._renderGaps;
+    }
+
+    /**
+     * Returns the value of field 'showAnnotation'.
+     * 
+     * @return the value of field 'ShowAnnotation'.
+     */
+    public boolean getShowAnnotation(
+    ) {
+        return this._showAnnotation;
+    }
+
+    /**
+     * Returns the value of field 'showBoxes'.
+     * 
+     * @return the value of field 'ShowBoxes'.
+     */
+    public boolean getShowBoxes(
+    ) {
+        return this._showBoxes;
+    }
+
+    /**
+     * Returns the value of field 'showColourText'.
+     * 
+     * @return the value of field 'ShowColourText'.
+     */
+    public boolean getShowColourText(
+    ) {
+        return this._showColourText;
+    }
+
+    /**
+     * Returns the value of field 'showConservation'.
+     * 
+     * @return the value of field 'ShowConservation'.
+     */
+    public boolean getShowConservation(
+    ) {
+        return this._showConservation;
+    }
+
+    /**
+     * Returns the value of field 'showFullId'.
+     * 
+     * @return the value of field 'ShowFullId'.
+     */
+    public boolean getShowFullId(
+    ) {
+        return this._showFullId;
+    }
+
+    /**
+     * Returns the value of field 'showIdentity'.
+     * 
+     * @return the value of field 'ShowIdentity'.
+     */
+    public boolean getShowIdentity(
+    ) {
+        return this._showIdentity;
+    }
+
+    /**
+     * Returns the value of field 'showQuality'.
+     * 
+     * @return the value of field 'ShowQuality'.
+     */
+    public boolean getShowQuality(
+    ) {
+        return this._showQuality;
+    }
+
+    /**
+     * Returns the value of field 'showSequenceFeatures'.
+     * 
+     * @return the value of field 'ShowSequenceFeatures'.
+     */
+    public boolean getShowSequenceFeatures(
+    ) {
+        return this._showSequenceFeatures;
+    }
+
+    /**
+     * Returns the value of field 'showText'.
+     * 
+     * @return the value of field 'ShowText'.
+     */
+    public boolean getShowText(
+    ) {
+        return this._showText;
+    }
+
+    /**
+     * Returns the value of field 'startRes'.
+     * 
+     * @return the value of field 'StartRes'.
+     */
+    public int getStartRes(
+    ) {
+        return this._startRes;
+    }
+
+    /**
+     * Returns the value of field 'startSeq'.
+     * 
+     * @return the value of field 'StartSeq'.
+     */
+    public int getStartSeq(
+    ) {
+        return this._startSeq;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'wrapAlignment'.
+     * 
+     * @return the value of field 'WrapAlignment'.
+     */
+    public boolean getWrapAlignment(
+    ) {
+        return this._wrapAlignment;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasConsThreshold.
+     * 
+     * @return true if at least one ConsThreshold has been added
+     */
+    public boolean hasConsThreshold(
+    ) {
+        return this._has_consThreshold;
+    }
+
+    /**
+     * Method hasConservationSelected.
+     * 
+     * @return true if at least one ConservationSelected has been
+     * added
+     */
+    public boolean hasConservationSelected(
+    ) {
+        return this._has_conservationSelected;
+    }
+
+    /**
+     * Method hasFontSize.
+     * 
+     * @return true if at least one FontSize has been added
+     */
+    public boolean hasFontSize(
+    ) {
+        return this._has_fontSize;
+    }
+
+    /**
+     * Method hasFontStyle.
+     * 
+     * @return true if at least one FontStyle has been added
+     */
+    public boolean hasFontStyle(
+    ) {
+        return this._has_fontStyle;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasPidSelected.
+     * 
+     * @return true if at least one PidSelected has been added
+     */
+    public boolean hasPidSelected(
+    ) {
+        return this._has_pidSelected;
+    }
+
+    /**
+     * Method hasPidThreshold.
+     * 
+     * @return true if at least one PidThreshold has been added
+     */
+    public boolean hasPidThreshold(
+    ) {
+        return this._has_pidThreshold;
+    }
+
+    /**
+     * Method hasRenderGaps.
+     * 
+     * @return true if at least one RenderGaps has been added
+     */
+    public boolean hasRenderGaps(
+    ) {
+        return this._has_renderGaps;
+    }
+
+    /**
+     * Method hasShowAnnotation.
+     * 
+     * @return true if at least one ShowAnnotation has been added
+     */
+    public boolean hasShowAnnotation(
+    ) {
+        return this._has_showAnnotation;
+    }
+
+    /**
+     * Method hasShowBoxes.
+     * 
+     * @return true if at least one ShowBoxes has been added
+     */
+    public boolean hasShowBoxes(
+    ) {
+        return this._has_showBoxes;
+    }
+
+    /**
+     * Method hasShowColourText.
+     * 
+     * @return true if at least one ShowColourText has been added
+     */
+    public boolean hasShowColourText(
+    ) {
+        return this._has_showColourText;
+    }
+
+    /**
+     * Method hasShowConservation.
+     * 
+     * @return true if at least one ShowConservation has been added
+     */
+    public boolean hasShowConservation(
+    ) {
+        return this._has_showConservation;
+    }
+
+    /**
+     * Method hasShowFullId.
+     * 
+     * @return true if at least one ShowFullId has been added
+     */
+    public boolean hasShowFullId(
+    ) {
+        return this._has_showFullId;
+    }
+
+    /**
+     * Method hasShowIdentity.
+     * 
+     * @return true if at least one ShowIdentity has been added
+     */
+    public boolean hasShowIdentity(
+    ) {
+        return this._has_showIdentity;
+    }
+
+    /**
+     * Method hasShowQuality.
+     * 
+     * @return true if at least one ShowQuality has been added
+     */
+    public boolean hasShowQuality(
+    ) {
+        return this._has_showQuality;
+    }
+
+    /**
+     * Method hasShowSequenceFeatures.
+     * 
+     * @return true if at least one ShowSequenceFeatures has been
+     * added
+     */
+    public boolean hasShowSequenceFeatures(
+    ) {
+        return this._has_showSequenceFeatures;
+    }
+
+    /**
+     * Method hasShowText.
+     * 
+     * @return true if at least one ShowText has been added
+     */
+    public boolean hasShowText(
+    ) {
+        return this._has_showText;
+    }
+
+    /**
+     * Method hasStartRes.
+     * 
+     * @return true if at least one StartRes has been added
+     */
+    public boolean hasStartRes(
+    ) {
+        return this._has_startRes;
+    }
+
+    /**
+     * Method hasStartSeq.
+     * 
+     * @return true if at least one StartSeq has been added
+     */
+    public boolean hasStartSeq(
+    ) {
+        return this._has_startSeq;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasWrapAlignment.
+     * 
+     * @return true if at least one WrapAlignment has been added
+     */
+    public boolean hasWrapAlignment(
+    ) {
+        return this._has_wrapAlignment;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Returns the value of field 'conservationSelected'.
+     * 
+     * @return the value of field 'ConservationSelected'.
+     */
+    public boolean isConservationSelected(
+    ) {
+        return this._conservationSelected;
+    }
+
+    /**
+     * Returns the value of field 'pidSelected'.
+     * 
+     * @return the value of field 'PidSelected'.
+     */
+    public boolean isPidSelected(
+    ) {
+        return this._pidSelected;
+    }
+
+    /**
+     * Returns the value of field 'renderGaps'.
+     * 
+     * @return the value of field 'RenderGaps'.
+     */
+    public boolean isRenderGaps(
+    ) {
+        return this._renderGaps;
+    }
+
+    /**
+     * Returns the value of field 'showAnnotation'.
+     * 
+     * @return the value of field 'ShowAnnotation'.
+     */
+    public boolean isShowAnnotation(
+    ) {
+        return this._showAnnotation;
+    }
+
+    /**
+     * Returns the value of field 'showBoxes'.
+     * 
+     * @return the value of field 'ShowBoxes'.
+     */
+    public boolean isShowBoxes(
+    ) {
+        return this._showBoxes;
+    }
+
+    /**
+     * Returns the value of field 'showColourText'.
+     * 
+     * @return the value of field 'ShowColourText'.
+     */
+    public boolean isShowColourText(
+    ) {
+        return this._showColourText;
+    }
+
+    /**
+     * Returns the value of field 'showConservation'.
+     * 
+     * @return the value of field 'ShowConservation'.
+     */
+    public boolean isShowConservation(
+    ) {
+        return this._showConservation;
+    }
+
+    /**
+     * Returns the value of field 'showFullId'.
+     * 
+     * @return the value of field 'ShowFullId'.
+     */
+    public boolean isShowFullId(
+    ) {
+        return this._showFullId;
+    }
+
+    /**
+     * Returns the value of field 'showIdentity'.
+     * 
+     * @return the value of field 'ShowIdentity'.
+     */
+    public boolean isShowIdentity(
+    ) {
+        return this._showIdentity;
+    }
+
+    /**
+     * Returns the value of field 'showQuality'.
+     * 
+     * @return the value of field 'ShowQuality'.
+     */
+    public boolean isShowQuality(
+    ) {
+        return this._showQuality;
+    }
+
+    /**
+     * Returns the value of field 'showSequenceFeatures'.
+     * 
+     * @return the value of field 'ShowSequenceFeatures'.
+     */
+    public boolean isShowSequenceFeatures(
+    ) {
+        return this._showSequenceFeatures;
+    }
+
+    /**
+     * Returns the value of field 'showText'.
+     * 
+     * @return the value of field 'ShowText'.
+     */
+    public boolean isShowText(
+    ) {
+        return this._showText;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Returns the value of field 'wrapAlignment'.
+     * 
+     * @return the value of field 'WrapAlignment'.
+     */
+    public boolean isWrapAlignment(
+    ) {
+        return this._wrapAlignment;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'bgColour'.
+     * 
+     * @param bgColour the value of field 'bgColour'.
+     */
+    public void setBgColour(
+            final java.lang.String bgColour) {
+        this._bgColour = bgColour;
+    }
+
+    /**
+     * Sets the value of field 'consThreshold'.
+     * 
+     * @param consThreshold the value of field 'consThreshold'.
+     */
+    public void setConsThreshold(
+            final int consThreshold) {
+        this._consThreshold = consThreshold;
+        this._has_consThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'conservationSelected'.
+     * 
+     * @param conservationSelected the value of field
+     * 'conservationSelected'.
+     */
+    public void setConservationSelected(
+            final boolean conservationSelected) {
+        this._conservationSelected = conservationSelected;
+        this._has_conservationSelected = true;
+    }
+
+    /**
+     * Sets the value of field 'fontName'.
+     * 
+     * @param fontName the value of field 'fontName'.
+     */
+    public void setFontName(
+            final java.lang.String fontName) {
+        this._fontName = fontName;
+    }
+
+    /**
+     * Sets the value of field 'fontSize'.
+     * 
+     * @param fontSize the value of field 'fontSize'.
+     */
+    public void setFontSize(
+            final int fontSize) {
+        this._fontSize = fontSize;
+        this._has_fontSize = true;
+    }
+
+    /**
+     * Sets the value of field 'fontStyle'.
+     * 
+     * @param fontStyle the value of field 'fontStyle'.
+     */
+    public void setFontStyle(
+            final int fontStyle) {
+        this._fontStyle = fontStyle;
+        this._has_fontStyle = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * Sets the value of field 'pidSelected'.
+     * 
+     * @param pidSelected the value of field 'pidSelected'.
+     */
+    public void setPidSelected(
+            final boolean pidSelected) {
+        this._pidSelected = pidSelected;
+        this._has_pidSelected = true;
+    }
+
+    /**
+     * Sets the value of field 'pidThreshold'.
+     * 
+     * @param pidThreshold the value of field 'pidThreshold'.
+     */
+    public void setPidThreshold(
+            final int pidThreshold) {
+        this._pidThreshold = pidThreshold;
+        this._has_pidThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'renderGaps'.
+     * 
+     * @param renderGaps the value of field 'renderGaps'.
+     */
+    public void setRenderGaps(
+            final boolean renderGaps) {
+        this._renderGaps = renderGaps;
+        this._has_renderGaps = true;
+    }
+
+    /**
+     * Sets the value of field 'showAnnotation'.
+     * 
+     * @param showAnnotation the value of field 'showAnnotation'.
+     */
+    public void setShowAnnotation(
+            final boolean showAnnotation) {
+        this._showAnnotation = showAnnotation;
+        this._has_showAnnotation = true;
+    }
+
+    /**
+     * Sets the value of field 'showBoxes'.
+     * 
+     * @param showBoxes the value of field 'showBoxes'.
+     */
+    public void setShowBoxes(
+            final boolean showBoxes) {
+        this._showBoxes = showBoxes;
+        this._has_showBoxes = true;
+    }
+
+    /**
+     * Sets the value of field 'showColourText'.
+     * 
+     * @param showColourText the value of field 'showColourText'.
+     */
+    public void setShowColourText(
+            final boolean showColourText) {
+        this._showColourText = showColourText;
+        this._has_showColourText = true;
+    }
+
+    /**
+     * Sets the value of field 'showConservation'.
+     * 
+     * @param showConservation the value of field 'showConservation'
+     */
+    public void setShowConservation(
+            final boolean showConservation) {
+        this._showConservation = showConservation;
+        this._has_showConservation = true;
+    }
+
+    /**
+     * Sets the value of field 'showFullId'.
+     * 
+     * @param showFullId the value of field 'showFullId'.
+     */
+    public void setShowFullId(
+            final boolean showFullId) {
+        this._showFullId = showFullId;
+        this._has_showFullId = true;
+    }
+
+    /**
+     * Sets the value of field 'showIdentity'.
+     * 
+     * @param showIdentity the value of field 'showIdentity'.
+     */
+    public void setShowIdentity(
+            final boolean showIdentity) {
+        this._showIdentity = showIdentity;
+        this._has_showIdentity = true;
+    }
+
+    /**
+     * Sets the value of field 'showQuality'.
+     * 
+     * @param showQuality the value of field 'showQuality'.
+     */
+    public void setShowQuality(
+            final boolean showQuality) {
+        this._showQuality = showQuality;
+        this._has_showQuality = true;
+    }
+
+    /**
+     * Sets the value of field 'showSequenceFeatures'.
+     * 
+     * @param showSequenceFeatures the value of field
+     * 'showSequenceFeatures'.
+     */
+    public void setShowSequenceFeatures(
+            final boolean showSequenceFeatures) {
+        this._showSequenceFeatures = showSequenceFeatures;
+        this._has_showSequenceFeatures = true;
+    }
+
+    /**
+     * Sets the value of field 'showText'.
+     * 
+     * @param showText the value of field 'showText'.
+     */
+    public void setShowText(
+            final boolean showText) {
+        this._showText = showText;
+        this._has_showText = true;
+    }
+
+    /**
+     * Sets the value of field 'startRes'.
+     * 
+     * @param startRes the value of field 'startRes'.
+     */
+    public void setStartRes(
+            final int startRes) {
+        this._startRes = startRes;
+        this._has_startRes = true;
+    }
+
+    /**
+     * Sets the value of field 'startSeq'.
+     * 
+     * @param startSeq the value of field 'startSeq'.
+     */
+    public void setStartSeq(
+            final int startSeq) {
+        this._startSeq = startSeq;
+        this._has_startSeq = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'wrapAlignment'.
+     * 
+     * @param wrapAlignment the value of field 'wrapAlignment'.
+     */
+    public void setWrapAlignment(
+            final boolean wrapAlignment) {
+        this._wrapAlignment = wrapAlignment;
+        this._has_wrapAlignment = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.binding.Viewport
+     */
+    public static jalview.binding.Viewport unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.binding.Viewport) Unmarshaller.unmarshal(jalview.binding.Viewport.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/.castor.cdr b/src/jalview/schemabinding/version2/.castor.cdr
index ada30ce..5b13ce1 100644
--- a/src/jalview/schemabinding/version2/.castor.cdr
+++ b/src/jalview/schemabinding/version2/.castor.cdr
@@ -1,4 +1,4 @@
-#Sun Feb 03 18:54:37 GMT 2008
+#Mon Nov 10 11:15:07 GMT 2008
 jalview.schemabinding.version2.ThresholdLine=jalview.schemabinding.version2.descriptors.ThresholdLineDescriptor
 jalview.schemabinding.version2.SequenceSetProperties=jalview.schemabinding.version2.descriptors.SequenceSetPropertiesDescriptor
 jalview.schemabinding.version2.StructureState=jalview.schemabinding.version2.descriptors.StructureStateDescriptor
diff --git a/src/jalview/schemabinding/version2/AlcodMap.java b/src/jalview/schemabinding/version2/AlcodMap.java
index 117ebcd..f43acd6 100644
--- a/src/jalview/schemabinding/version2/AlcodMap.java
+++ b/src/jalview/schemabinding/version2/AlcodMap.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,178 +19,166 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class AlcodMap implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * internal jalview id for the dnasq for this mapping.
-   * 
-   */
-  private java.lang.String _dnasq;
-
-  /**
-   * a Mapping entry and an associated protein sequence
-   * 
-   */
-  private jalview.schemabinding.version2.Mapping _mapping;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AlcodMap()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'dnasq'. The field 'dnasq' has the following
-   * description: internal jalview id for the dnasq for this mapping.
-   * 
-   * 
-   * @return the value of field 'Dnasq'.
-   */
-  public java.lang.String getDnasq()
-  {
-    return this._dnasq;
-  }
-
-  /**
-   * Returns the value of field 'mapping'. The field 'mapping' has the following
-   * description: a Mapping entry and an associated protein sequence
-   * 
-   * 
-   * @return the value of field 'Mapping'.
-   */
-  public jalview.schemabinding.version2.Mapping getMapping()
-  {
-    return this._mapping;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class AlcodMap implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * internal jalview id for the dnasq for this mapping.
+     *  
+     */
+    private java.lang.String _dnasq;
+
+    /**
+     * a Mapping entry and an associated protein sequence
+     *  
+     */
+    private jalview.schemabinding.version2.Mapping _mapping;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AlcodMap() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'dnasq'. The field 'dnasq' has
+     * the following description: internal jalview id for the dnasq
+     * for this mapping.
+     *  
+     * 
+     * @return the value of field 'Dnasq'.
+     */
+    public java.lang.String getDnasq(
+    ) {
+        return this._dnasq;
+    }
+
+    /**
+     * Returns the value of field 'mapping'. The field 'mapping'
+     * has the following description: a Mapping entry and an
+     * associated protein sequence
+     *  
+     * 
+     * @return the value of field 'Mapping'.
+     */
+    public jalview.schemabinding.version2.Mapping getMapping(
+    ) {
+        return this._mapping;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'dnasq'. The field 'dnasq' has the
+     * following description: internal jalview id for the dnasq for
+     * this mapping.
+     *  
+     * 
+     * @param dnasq the value of field 'dnasq'.
+     */
+    public void setDnasq(
+            final java.lang.String dnasq) {
+        this._dnasq = dnasq;
+    }
+
+    /**
+     * Sets the value of field 'mapping'. The field 'mapping' has
+     * the following description: a Mapping entry and an associated
+     * protein sequence
+     *  
+     * 
+     * @param mapping the value of field 'mapping'.
+     */
+    public void setMapping(
+            final jalview.schemabinding.version2.Mapping mapping) {
+        this._mapping = mapping;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.AlcodMap
+     */
+    public static jalview.schemabinding.version2.AlcodMap unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.AlcodMap) Unmarshaller.unmarshal(jalview.schemabinding.version2.AlcodMap.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'dnasq'. The field 'dnasq' has the following
-   * description: internal jalview id for the dnasq for this mapping.
-   * 
-   * 
-   * @param dnasq
-   *                the value of field 'dnasq'.
-   */
-  public void setDnasq(final java.lang.String dnasq)
-  {
-    this._dnasq = dnasq;
-  }
-
-  /**
-   * Sets the value of field 'mapping'. The field 'mapping' has the following
-   * description: a Mapping entry and an associated protein sequence
-   * 
-   * 
-   * @param mapping
-   *                the value of field 'mapping'.
-   */
-  public void setMapping(
-          final jalview.schemabinding.version2.Mapping mapping)
-  {
-    this._mapping = mapping;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.AlcodMap
-   */
-  public static jalview.schemabinding.version2.AlcodMap unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.AlcodMap) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.AlcodMap.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Alcodon.java b/src/jalview/schemabinding/version2/Alcodon.java
index 165bad0..cffbd9a 100644
--- a/src/jalview/schemabinding/version2/Alcodon.java
+++ b/src/jalview/schemabinding/version2/Alcodon.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,261 +19,245 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Alcodon implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _pos1.
-   */
-  private long _pos1;
-
-  /**
-   * keeps track of state for field: _pos1
-   */
-  private boolean _has_pos1;
-
-  /**
-   * Field _pos2.
-   */
-  private long _pos2;
-
-  /**
-   * keeps track of state for field: _pos2
-   */
-  private boolean _has_pos2;
-
-  /**
-   * Field _pos3.
-   */
-  private long _pos3;
-
-  /**
-   * keeps track of state for field: _pos3
-   */
-  private boolean _has_pos3;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Alcodon()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deletePos1()
-  {
-    this._has_pos1 = false;
-  }
-
-  /**
-   */
-  public void deletePos2()
-  {
-    this._has_pos2 = false;
-  }
-
-  /**
-   */
-  public void deletePos3()
-  {
-    this._has_pos3 = false;
-  }
-
-  /**
-   * Returns the value of field 'pos1'.
-   * 
-   * @return the value of field 'Pos1'.
-   */
-  public long getPos1()
-  {
-    return this._pos1;
-  }
-
-  /**
-   * Returns the value of field 'pos2'.
-   * 
-   * @return the value of field 'Pos2'.
-   */
-  public long getPos2()
-  {
-    return this._pos2;
-  }
-
-  /**
-   * Returns the value of field 'pos3'.
-   * 
-   * @return the value of field 'Pos3'.
-   */
-  public long getPos3()
-  {
-    return this._pos3;
-  }
-
-  /**
-   * Method hasPos1.
-   * 
-   * @return true if at least one Pos1 has been added
-   */
-  public boolean hasPos1()
-  {
-    return this._has_pos1;
-  }
-
-  /**
-   * Method hasPos2.
-   * 
-   * @return true if at least one Pos2 has been added
-   */
-  public boolean hasPos2()
-  {
-    return this._has_pos2;
-  }
-
-  /**
-   * Method hasPos3.
-   * 
-   * @return true if at least one Pos3 has been added
-   */
-  public boolean hasPos3()
-  {
-    return this._has_pos3;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Alcodon implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _pos1.
+     */
+    private long _pos1;
+
+    /**
+     * keeps track of state for field: _pos1
+     */
+    private boolean _has_pos1;
+
+    /**
+     * Field _pos2.
+     */
+    private long _pos2;
+
+    /**
+     * keeps track of state for field: _pos2
+     */
+    private boolean _has_pos2;
+
+    /**
+     * Field _pos3.
+     */
+    private long _pos3;
+
+    /**
+     * keeps track of state for field: _pos3
+     */
+    private boolean _has_pos3;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Alcodon() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deletePos1(
+    ) {
+        this._has_pos1= false;
+    }
+
+    /**
+     */
+    public void deletePos2(
+    ) {
+        this._has_pos2= false;
+    }
+
+    /**
+     */
+    public void deletePos3(
+    ) {
+        this._has_pos3= false;
+    }
+
+    /**
+     * Returns the value of field 'pos1'.
+     * 
+     * @return the value of field 'Pos1'.
+     */
+    public long getPos1(
+    ) {
+        return this._pos1;
+    }
+
+    /**
+     * Returns the value of field 'pos2'.
+     * 
+     * @return the value of field 'Pos2'.
+     */
+    public long getPos2(
+    ) {
+        return this._pos2;
+    }
+
+    /**
+     * Returns the value of field 'pos3'.
+     * 
+     * @return the value of field 'Pos3'.
+     */
+    public long getPos3(
+    ) {
+        return this._pos3;
+    }
+
+    /**
+     * Method hasPos1.
+     * 
+     * @return true if at least one Pos1 has been added
+     */
+    public boolean hasPos1(
+    ) {
+        return this._has_pos1;
+    }
+
+    /**
+     * Method hasPos2.
+     * 
+     * @return true if at least one Pos2 has been added
+     */
+    public boolean hasPos2(
+    ) {
+        return this._has_pos2;
+    }
+
+    /**
+     * Method hasPos3.
+     * 
+     * @return true if at least one Pos3 has been added
+     */
+    public boolean hasPos3(
+    ) {
+        return this._has_pos3;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'pos1'.
+     * 
+     * @param pos1 the value of field 'pos1'.
+     */
+    public void setPos1(
+            final long pos1) {
+        this._pos1 = pos1;
+        this._has_pos1 = true;
+    }
+
+    /**
+     * Sets the value of field 'pos2'.
+     * 
+     * @param pos2 the value of field 'pos2'.
+     */
+    public void setPos2(
+            final long pos2) {
+        this._pos2 = pos2;
+        this._has_pos2 = true;
+    }
+
+    /**
+     * Sets the value of field 'pos3'.
+     * 
+     * @param pos3 the value of field 'pos3'.
+     */
+    public void setPos3(
+            final long pos3) {
+        this._pos3 = pos3;
+        this._has_pos3 = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.Alcodo
+     */
+    public static jalview.schemabinding.version2.Alcodon unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Alcodon) Unmarshaller.unmarshal(jalview.schemabinding.version2.Alcodon.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'pos1'.
-   * 
-   * @param pos1
-   *                the value of field 'pos1'.
-   */
-  public void setPos1(final long pos1)
-  {
-    this._pos1 = pos1;
-    this._has_pos1 = true;
-  }
-
-  /**
-   * Sets the value of field 'pos2'.
-   * 
-   * @param pos2
-   *                the value of field 'pos2'.
-   */
-  public void setPos2(final long pos2)
-  {
-    this._pos2 = pos2;
-    this._has_pos2 = true;
-  }
-
-  /**
-   * Sets the value of field 'pos3'.
-   * 
-   * @param pos3
-   *                the value of field 'pos3'.
-   */
-  public void setPos3(final long pos3)
-  {
-    this._pos3 = pos3;
-    this._has_pos3 = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Alcodo
-   */
-  public static jalview.schemabinding.version2.Alcodon unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Alcodon) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.Alcodon.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/AlcodonFrame.java b/src/jalview/schemabinding/version2/AlcodonFrame.java
index 5b7b55d..b8b2a41 100644
--- a/src/jalview/schemabinding/version2/AlcodonFrame.java
+++ b/src/jalview/schemabinding/version2/AlcodonFrame.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,452 +19,414 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class AlcodonFrame implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _alcodonList.
-   */
-  private java.util.Vector _alcodonList;
-
-  /**
-   * Field _alcodMapList.
-   */
-  private java.util.Vector _alcodMapList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AlcodonFrame()
-  {
-    super();
-    this._alcodonList = new java.util.Vector();
-    this._alcodMapList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAlcodMap
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlcodMap(
-          final jalview.schemabinding.version2.AlcodMap vAlcodMap)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alcodMapList.addElement(vAlcodMap);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlcodMap
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlcodMap(final int index,
-          final jalview.schemabinding.version2.AlcodMap vAlcodMap)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alcodMapList.add(index, vAlcodMap);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAlcodon
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlcodon(
-          final jalview.schemabinding.version2.Alcodon vAlcodon)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alcodonList.addElement(vAlcodon);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlcodon
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlcodon(final int index,
-          final jalview.schemabinding.version2.Alcodon vAlcodon)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alcodonList.add(index, vAlcodon);
-  }
-
-  /**
-   * Method enumerateAlcodMap.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.AlcodMap
-   *         elements
-   */
-  public java.util.Enumeration enumerateAlcodMap()
-  {
-    return this._alcodMapList.elements();
-  }
-
-  /**
-   * Method enumerateAlcodon.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Alcodon
-   *         elements
-   */
-  public java.util.Enumeration enumerateAlcodon()
-  {
-    return this._alcodonList.elements();
-  }
-
-  /**
-   * Method getAlcodMap.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.AlcodMap at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.AlcodMap getAlcodMap(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alcodMapList.size())
-    {
-      throw new IndexOutOfBoundsException("getAlcodMap: Index value '"
-              + index + "' not in range [0.."
-              + (this._alcodMapList.size() - 1) + "]");
+public class AlcodonFrame implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _alcodonList.
+     */
+    private java.util.Vector _alcodonList;
+
+    /**
+     * Field _alcodMapList.
+     */
+    private java.util.Vector _alcodMapList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AlcodonFrame() {
+        super();
+        this._alcodonList = new java.util.Vector();
+        this._alcodMapList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAlcodMap
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlcodMap(
+            final jalview.schemabinding.version2.AlcodMap vAlcodMap)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alcodMapList.addElement(vAlcodMap);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlcodMap
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlcodMap(
+            final int index,
+            final jalview.schemabinding.version2.AlcodMap vAlcodMap)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alcodMapList.add(index, vAlcodMap);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAlcodon
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlcodon(
+            final jalview.schemabinding.version2.Alcodon vAlcodon)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alcodonList.addElement(vAlcodon);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlcodon
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlcodon(
+            final int index,
+            final jalview.schemabinding.version2.Alcodon vAlcodon)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alcodonList.add(index, vAlcodon);
+    }
+
+    /**
+     * Method enumerateAlcodMap.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.AlcodMap elements
+     */
+    public java.util.Enumeration enumerateAlcodMap(
+    ) {
+        return this._alcodMapList.elements();
+    }
+
+    /**
+     * Method enumerateAlcodon.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Alcodon elements
+     */
+    public java.util.Enumeration enumerateAlcodon(
+    ) {
+        return this._alcodonList.elements();
+    }
+
+    /**
+     * Method getAlcodMap.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.AlcodMap at the given index
+     */
+    public jalview.schemabinding.version2.AlcodMap getAlcodMap(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alcodMapList.size()) {
+            throw new IndexOutOfBoundsException("getAlcodMap: Index value '" + index + "' not in range [0.." + (this._alcodMapList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.AlcodMap) _alcodMapList.get(index);
+    }
+
+    /**
+     * Method getAlcodMap.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.AlcodMap[] getAlcodMap(
+    ) {
+        jalview.schemabinding.version2.AlcodMap[] array = new jalview.schemabinding.version2.AlcodMap[0];
+        return (jalview.schemabinding.version2.AlcodMap[]) this._alcodMapList.toArray(array);
     }
 
-    return (jalview.schemabinding.version2.AlcodMap) _alcodMapList
-            .get(index);
-  }
-
-  /**
-   * Method getAlcodMap.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.AlcodMap[] getAlcodMap()
-  {
-    jalview.schemabinding.version2.AlcodMap[] array = new jalview.schemabinding.version2.AlcodMap[0];
-    return (jalview.schemabinding.version2.AlcodMap[]) this._alcodMapList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAlcodMapCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAlcodMapCount()
-  {
-    return this._alcodMapList.size();
-  }
-
-  /**
-   * Method getAlcodon.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Alcodon at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.Alcodon getAlcodon(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alcodonList.size())
-    {
-      throw new IndexOutOfBoundsException("getAlcodon: Index value '"
-              + index + "' not in range [0.."
-              + (this._alcodonList.size() - 1) + "]");
+    /**
+     * Method getAlcodMapCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAlcodMapCount(
+    ) {
+        return this._alcodMapList.size();
     }
 
-    return (jalview.schemabinding.version2.Alcodon) _alcodonList.get(index);
-  }
-
-  /**
-   * Method getAlcodon.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Alcodon[] getAlcodon()
-  {
-    jalview.schemabinding.version2.Alcodon[] array = new jalview.schemabinding.version2.Alcodon[0];
-    return (jalview.schemabinding.version2.Alcodon[]) this._alcodonList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAlcodonCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAlcodonCount()
-  {
-    return this._alcodonList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method getAlcodon.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Alcodon at the given index
+     */
+    public jalview.schemabinding.version2.Alcodon getAlcodon(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alcodonList.size()) {
+            throw new IndexOutOfBoundsException("getAlcodon: Index value '" + index + "' not in range [0.." + (this._alcodonList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Alcodon) _alcodonList.get(index);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Method removeAlcodMap.
-   * 
-   * @param vAlcodMap
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAlcodMap(
-          final jalview.schemabinding.version2.AlcodMap vAlcodMap)
-  {
-    boolean removed = _alcodMapList.remove(vAlcodMap);
-    return removed;
-  }
-
-  /**
-   * Method removeAlcodMapAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.AlcodMap removeAlcodMapAt(
-          final int index)
-  {
-    java.lang.Object obj = this._alcodMapList.remove(index);
-    return (jalview.schemabinding.version2.AlcodMap) obj;
-  }
-
-  /**
-   * Method removeAlcodon.
-   * 
-   * @param vAlcodon
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAlcodon(
-          final jalview.schemabinding.version2.Alcodon vAlcodon)
-  {
-    boolean removed = _alcodonList.remove(vAlcodon);
-    return removed;
-  }
-
-  /**
-   * Method removeAlcodonAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Alcodon removeAlcodonAt(
-          final int index)
-  {
-    java.lang.Object obj = this._alcodonList.remove(index);
-    return (jalview.schemabinding.version2.Alcodon) obj;
-  }
-
-  /**
-   */
-  public void removeAllAlcodMap()
-  {
-    this._alcodMapList.clear();
-  }
-
-  /**
-   */
-  public void removeAllAlcodon()
-  {
-    this._alcodonList.clear();
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlcodMap
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAlcodMap(final int index,
-          final jalview.schemabinding.version2.AlcodMap vAlcodMap)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alcodMapList.size())
-    {
-      throw new IndexOutOfBoundsException("setAlcodMap: Index value '"
-              + index + "' not in range [0.."
-              + (this._alcodMapList.size() - 1) + "]");
+
+    /**
+     * Method getAlcodon.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Alcodon[] getAlcodon(
+    ) {
+        jalview.schemabinding.version2.Alcodon[] array = new jalview.schemabinding.version2.Alcodon[0];
+        return (jalview.schemabinding.version2.Alcodon[]) this._alcodonList.toArray(array);
+    }
+
+    /**
+     * Method getAlcodonCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAlcodonCount(
+    ) {
+        return this._alcodonList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Method removeAlcodMap.
+     * 
+     * @param vAlcodMap
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAlcodMap(
+            final jalview.schemabinding.version2.AlcodMap vAlcodMap) {
+        boolean removed = _alcodMapList.remove(vAlcodMap);
+        return removed;
+    }
+
+    /**
+     * Method removeAlcodMapAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.AlcodMap removeAlcodMapAt(
+            final int index) {
+        java.lang.Object obj = this._alcodMapList.remove(index);
+        return (jalview.schemabinding.version2.AlcodMap) obj;
+    }
+
+    /**
+     * Method removeAlcodon.
+     * 
+     * @param vAlcodon
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAlcodon(
+            final jalview.schemabinding.version2.Alcodon vAlcodon) {
+        boolean removed = _alcodonList.remove(vAlcodon);
+        return removed;
+    }
+
+    /**
+     * Method removeAlcodonAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Alcodon removeAlcodonAt(
+            final int index) {
+        java.lang.Object obj = this._alcodonList.remove(index);
+        return (jalview.schemabinding.version2.Alcodon) obj;
+    }
+
+    /**
+     */
+    public void removeAllAlcodMap(
+    ) {
+        this._alcodMapList.clear();
+    }
+
+    /**
+     */
+    public void removeAllAlcodon(
+    ) {
+        this._alcodonList.clear();
     }
 
-    this._alcodMapList.set(index, vAlcodMap);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAlcodMapArray
-   */
-  public void setAlcodMap(
-          final jalview.schemabinding.version2.AlcodMap[] vAlcodMapArray)
-  {
-    // -- copy array
-    _alcodMapList.clear();
-
-    for (int i = 0; i < vAlcodMapArray.length; i++)
-    {
-      this._alcodMapList.add(vAlcodMapArray[i]);
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlcodMap
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAlcodMap(
+            final int index,
+            final jalview.schemabinding.version2.AlcodMap vAlcodMap)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alcodMapList.size()) {
+            throw new IndexOutOfBoundsException("setAlcodMap: Index value '" + index + "' not in range [0.." + (this._alcodMapList.size() - 1) + "]");
+        }
+        
+        this._alcodMapList.set(index, vAlcodMap);
     }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlcodon
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAlcodon(final int index,
-          final jalview.schemabinding.version2.Alcodon vAlcodon)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alcodonList.size())
-    {
-      throw new IndexOutOfBoundsException("setAlcodon: Index value '"
-              + index + "' not in range [0.."
-              + (this._alcodonList.size() - 1) + "]");
+
+    /**
+     * 
+     * 
+     * @param vAlcodMapArray
+     */
+    public void setAlcodMap(
+            final jalview.schemabinding.version2.AlcodMap[] vAlcodMapArray) {
+        //-- copy array
+        _alcodMapList.clear();
+        
+        for (int i = 0; i < vAlcodMapArray.length; i++) {
+                this._alcodMapList.add(vAlcodMapArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlcodon
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAlcodon(
+            final int index,
+            final jalview.schemabinding.version2.Alcodon vAlcodon)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alcodonList.size()) {
+            throw new IndexOutOfBoundsException("setAlcodon: Index value '" + index + "' not in range [0.." + (this._alcodonList.size() - 1) + "]");
+        }
+        
+        this._alcodonList.set(index, vAlcodon);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAlcodonArray
+     */
+    public void setAlcodon(
+            final jalview.schemabinding.version2.Alcodon[] vAlcodonArray) {
+        //-- copy array
+        _alcodonList.clear();
+        
+        for (int i = 0; i < vAlcodonArray.length; i++) {
+                this._alcodonList.add(vAlcodonArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.AlcodonFrame
+     */
+    public static jalview.schemabinding.version2.AlcodonFrame unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.AlcodonFrame) Unmarshaller.unmarshal(jalview.schemabinding.version2.AlcodonFrame.class, reader);
     }
 
-    this._alcodonList.set(index, vAlcodon);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAlcodonArray
-   */
-  public void setAlcodon(
-          final jalview.schemabinding.version2.Alcodon[] vAlcodonArray)
-  {
-    // -- copy array
-    _alcodonList.clear();
-
-    for (int i = 0; i < vAlcodonArray.length; i++)
-    {
-      this._alcodonList.add(vAlcodonArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.AlcodonFrame
-   */
-  public static jalview.schemabinding.version2.AlcodonFrame unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.AlcodonFrame) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.AlcodonFrame.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Annotation.java b/src/jalview/schemabinding/version2/Annotation.java
index bf36492..9ee76e3 100755
--- a/src/jalview/schemabinding/version2/Annotation.java
+++ b/src/jalview/schemabinding/version2/Annotation.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,793 +19,751 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Annotation implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _graph.
-   */
-  private boolean _graph;
-
-  /**
-   * keeps track of state for field: _graph
-   */
-  private boolean _has_graph;
-
-  /**
-   * Field _graphType.
-   */
-  private int _graphType;
-
-  /**
-   * keeps track of state for field: _graphType
-   */
-  private boolean _has_graphType;
-
-  /**
-   * Field _sequenceRef.
-   */
-  private java.lang.String _sequenceRef;
-
-  /**
-   * Field _graphColour.
-   */
-  private int _graphColour;
-
-  /**
-   * keeps track of state for field: _graphColour
-   */
-  private boolean _has_graphColour;
-
-  /**
-   * Field _graphGroup.
-   */
-  private int _graphGroup;
-
-  /**
-   * keeps track of state for field: _graphGroup
-   */
-  private boolean _has_graphGroup;
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _scoreOnly.
-   */
-  private boolean _scoreOnly = false;
-
-  /**
-   * keeps track of state for field: _scoreOnly
-   */
-  private boolean _has_scoreOnly;
-
-  /**
-   * Field _score.
-   */
-  private double _score;
-
-  /**
-   * keeps track of state for field: _score
-   */
-  private boolean _has_score;
-
-  /**
-   * Field _visible.
-   */
-  private boolean _visible;
-
-  /**
-   * keeps track of state for field: _visible
-   */
-  private boolean _has_visible;
-
-  /**
-   * Field _annotationElementList.
-   */
-  private java.util.Vector _annotationElementList;
-
-  /**
-   * Field _label.
-   */
-  private java.lang.String _label;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _thresholdLine.
-   */
-  private jalview.schemabinding.version2.ThresholdLine _thresholdLine;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Annotation()
-  {
-    super();
-    this._annotationElementList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotationElement(
-          final jalview.schemabinding.version2.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationElementList.addElement(vAnnotationElement);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotationElement(
-          final int index,
-          final jalview.schemabinding.version2.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationElementList.add(index, vAnnotationElement);
-  }
-
-  /**
-   */
-  public void deleteGraph()
-  {
-    this._has_graph = false;
-  }
-
-  /**
-   */
-  public void deleteGraphColour()
-  {
-    this._has_graphColour = false;
-  }
-
-  /**
-   */
-  public void deleteGraphGroup()
-  {
-    this._has_graphGroup = false;
-  }
-
-  /**
-   */
-  public void deleteGraphType()
-  {
-    this._has_graphType = false;
-  }
-
-  /**
-   */
-  public void deleteScore()
-  {
-    this._has_score = false;
-  }
-
-  /**
-   */
-  public void deleteScoreOnly()
-  {
-    this._has_scoreOnly = false;
-  }
-
-  /**
-   */
-  public void deleteVisible()
-  {
-    this._has_visible = false;
-  }
-
-  /**
-   * Method enumerateAnnotationElement.
-   * 
-   * @return an Enumeration over all
-   *         jalview.schemabinding.version2.AnnotationElement elements
-   */
-  public java.util.Enumeration enumerateAnnotationElement()
-  {
-    return this._annotationElementList.elements();
-  }
-
-  /**
-   * Method getAnnotationElement.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.AnnotationElement
-   *         at the given index
-   */
-  public jalview.schemabinding.version2.AnnotationElement getAnnotationElement(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationElementList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "getAnnotationElement: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._annotationElementList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.AnnotationElement) _annotationElementList
-            .get(index);
-  }
-
-  /**
-   * Method getAnnotationElement.Returns the contents of the collection in an
-   * Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.AnnotationElement[] getAnnotationElement()
-  {
-    jalview.schemabinding.version2.AnnotationElement[] array = new jalview.schemabinding.version2.AnnotationElement[0];
-    return (jalview.schemabinding.version2.AnnotationElement[]) this._annotationElementList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAnnotationElementCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAnnotationElementCount()
-  {
-    return this._annotationElementList.size();
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'graph'.
-   * 
-   * @return the value of field 'Graph'.
-   */
-  public boolean getGraph()
-  {
-    return this._graph;
-  }
-
-  /**
-   * Returns the value of field 'graphColour'.
-   * 
-   * @return the value of field 'GraphColour'.
-   */
-  public int getGraphColour()
-  {
-    return this._graphColour;
-  }
-
-  /**
-   * Returns the value of field 'graphGroup'.
-   * 
-   * @return the value of field 'GraphGroup'.
-   */
-  public int getGraphGroup()
-  {
-    return this._graphGroup;
-  }
-
-  /**
-   * Returns the value of field 'graphType'.
-   * 
-   * @return the value of field 'GraphType'.
-   */
-  public int getGraphType()
-  {
-    return this._graphType;
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Returns the value of field 'label'.
-   * 
-   * @return the value of field 'Label'.
-   */
-  public java.lang.String getLabel()
-  {
-    return this._label;
-  }
-
-  /**
-   * Returns the value of field 'score'.
-   * 
-   * @return the value of field 'Score'.
-   */
-  public double getScore()
-  {
-    return this._score;
-  }
-
-  /**
-   * Returns the value of field 'scoreOnly'.
-   * 
-   * @return the value of field 'ScoreOnly'.
-   */
-  public boolean getScoreOnly()
-  {
-    return this._scoreOnly;
-  }
-
-  /**
-   * Returns the value of field 'sequenceRef'.
-   * 
-   * @return the value of field 'SequenceRef'.
-   */
-  public java.lang.String getSequenceRef()
-  {
-    return this._sequenceRef;
-  }
-
-  /**
-   * Returns the value of field 'thresholdLine'.
-   * 
-   * @return the value of field 'ThresholdLine'.
-   */
-  public jalview.schemabinding.version2.ThresholdLine getThresholdLine()
-  {
-    return this._thresholdLine;
-  }
-
-  /**
-   * Returns the value of field 'visible'.
-   * 
-   * @return the value of field 'Visible'.
-   */
-  public boolean getVisible()
-  {
-    return this._visible;
-  }
-
-  /**
-   * Method hasGraph.
-   * 
-   * @return true if at least one Graph has been added
-   */
-  public boolean hasGraph()
-  {
-    return this._has_graph;
-  }
-
-  /**
-   * Method hasGraphColour.
-   * 
-   * @return true if at least one GraphColour has been added
-   */
-  public boolean hasGraphColour()
-  {
-    return this._has_graphColour;
-  }
-
-  /**
-   * Method hasGraphGroup.
-   * 
-   * @return true if at least one GraphGroup has been added
-   */
-  public boolean hasGraphGroup()
-  {
-    return this._has_graphGroup;
-  }
-
-  /**
-   * Method hasGraphType.
-   * 
-   * @return true if at least one GraphType has been added
-   */
-  public boolean hasGraphType()
-  {
-    return this._has_graphType;
-  }
-
-  /**
-   * Method hasScore.
-   * 
-   * @return true if at least one Score has been added
-   */
-  public boolean hasScore()
-  {
-    return this._has_score;
-  }
-
-  /**
-   * Method hasScoreOnly.
-   * 
-   * @return true if at least one ScoreOnly has been added
-   */
-  public boolean hasScoreOnly()
-  {
-    return this._has_scoreOnly;
-  }
-
-  /**
-   * Method hasVisible.
-   * 
-   * @return true if at least one Visible has been added
-   */
-  public boolean hasVisible()
-  {
-    return this._has_visible;
-  }
-
-  /**
-   * Returns the value of field 'graph'.
-   * 
-   * @return the value of field 'Graph'.
-   */
-  public boolean isGraph()
-  {
-    return this._graph;
-  }
-
-  /**
-   * Returns the value of field 'scoreOnly'.
-   * 
-   * @return the value of field 'ScoreOnly'.
-   */
-  public boolean isScoreOnly()
-  {
-    return this._scoreOnly;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Returns the value of field 'visible'.
-   * 
-   * @return the value of field 'Visible'.
-   */
-  public boolean isVisible()
-  {
-    return this._visible;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllAnnotationElement()
-  {
-    this._annotationElementList.clear();
-  }
-
-  /**
-   * Method removeAnnotationElement.
-   * 
-   * @param vAnnotationElement
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAnnotationElement(
-          final jalview.schemabinding.version2.AnnotationElement vAnnotationElement)
-  {
-    boolean removed = _annotationElementList.remove(vAnnotationElement);
-    return removed;
-  }
-
-  /**
-   * Method removeAnnotationElementAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.AnnotationElement removeAnnotationElementAt(
-          final int index)
-  {
-    java.lang.Object obj = this._annotationElementList.remove(index);
-    return (jalview.schemabinding.version2.AnnotationElement) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotationElement
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAnnotationElement(
-          final int index,
-          final jalview.schemabinding.version2.AnnotationElement vAnnotationElement)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationElementList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "setAnnotationElement: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._annotationElementList.size() - 1) + "]");
-    }
-
-    this._annotationElementList.set(index, vAnnotationElement);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAnnotationElementArray
-   */
-  public void setAnnotationElement(
-          final jalview.schemabinding.version2.AnnotationElement[] vAnnotationElementArray)
-  {
-    // -- copy array
-    _annotationElementList.clear();
-
-    for (int i = 0; i < vAnnotationElementArray.length; i++)
-    {
-      this._annotationElementList.add(vAnnotationElementArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *                the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'graph'.
-   * 
-   * @param graph
-   *                the value of field 'graph'.
-   */
-  public void setGraph(final boolean graph)
-  {
-    this._graph = graph;
-    this._has_graph = true;
-  }
-
-  /**
-   * Sets the value of field 'graphColour'.
-   * 
-   * @param graphColour
-   *                the value of field 'graphColour'.
-   */
-  public void setGraphColour(final int graphColour)
-  {
-    this._graphColour = graphColour;
-    this._has_graphColour = true;
-  }
-
-  /**
-   * Sets the value of field 'graphGroup'.
-   * 
-   * @param graphGroup
-   *                the value of field 'graphGroup'.
-   */
-  public void setGraphGroup(final int graphGroup)
-  {
-    this._graphGroup = graphGroup;
-    this._has_graphGroup = true;
-  }
-
-  /**
-   * Sets the value of field 'graphType'.
-   * 
-   * @param graphType
-   *                the value of field 'graphType'.
-   */
-  public void setGraphType(final int graphType)
-  {
-    this._graphType = graphType;
-    this._has_graphType = true;
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * Sets the value of field 'label'.
-   * 
-   * @param label
-   *                the value of field 'label'.
-   */
-  public void setLabel(final java.lang.String label)
-  {
-    this._label = label;
-  }
-
-  /**
-   * Sets the value of field 'score'.
-   * 
-   * @param score
-   *                the value of field 'score'.
-   */
-  public void setScore(final double score)
-  {
-    this._score = score;
-    this._has_score = true;
-  }
-
-  /**
-   * Sets the value of field 'scoreOnly'.
-   * 
-   * @param scoreOnly
-   *                the value of field 'scoreOnly'.
-   */
-  public void setScoreOnly(final boolean scoreOnly)
-  {
-    this._scoreOnly = scoreOnly;
-    this._has_scoreOnly = true;
-  }
-
-  /**
-   * Sets the value of field 'sequenceRef'.
-   * 
-   * @param sequenceRef
-   *                the value of field 'sequenceRef'.
-   */
-  public void setSequenceRef(final java.lang.String sequenceRef)
-  {
-    this._sequenceRef = sequenceRef;
-  }
-
-  /**
-   * Sets the value of field 'thresholdLine'.
-   * 
-   * @param thresholdLine
-   *                the value of field 'thresholdLine'.
-   */
-  public void setThresholdLine(
-          final jalview.schemabinding.version2.ThresholdLine thresholdLine)
-  {
-    this._thresholdLine = thresholdLine;
-  }
-
-  /**
-   * Sets the value of field 'visible'.
-   * 
-   * @param visible
-   *                the value of field 'visible'.
-   */
-  public void setVisible(final boolean visible)
-  {
-    this._visible = visible;
-    this._has_visible = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Annotation
-   */
-  public static jalview.schemabinding.version2.Annotation unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Annotation) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.Annotation.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Annotation implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _graph.
+     */
+    private boolean _graph;
+
+    /**
+     * keeps track of state for field: _graph
+     */
+    private boolean _has_graph;
+
+    /**
+     * Field _graphType.
+     */
+    private int _graphType;
+
+    /**
+     * keeps track of state for field: _graphType
+     */
+    private boolean _has_graphType;
+
+    /**
+     * Field _sequenceRef.
+     */
+    private java.lang.String _sequenceRef;
+
+    /**
+     * Field _graphColour.
+     */
+    private int _graphColour;
+
+    /**
+     * keeps track of state for field: _graphColour
+     */
+    private boolean _has_graphColour;
+
+    /**
+     * Field _graphGroup.
+     */
+    private int _graphGroup;
+
+    /**
+     * keeps track of state for field: _graphGroup
+     */
+    private boolean _has_graphGroup;
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _scoreOnly.
+     */
+    private boolean _scoreOnly = false;
+
+    /**
+     * keeps track of state for field: _scoreOnly
+     */
+    private boolean _has_scoreOnly;
+
+    /**
+     * Field _score.
+     */
+    private double _score;
+
+    /**
+     * keeps track of state for field: _score
+     */
+    private boolean _has_score;
+
+    /**
+     * Field _visible.
+     */
+    private boolean _visible;
+
+    /**
+     * keeps track of state for field: _visible
+     */
+    private boolean _has_visible;
+
+    /**
+     * Field _annotationElementList.
+     */
+    private java.util.Vector _annotationElementList;
+
+    /**
+     * Field _label.
+     */
+    private java.lang.String _label;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _thresholdLine.
+     */
+    private jalview.schemabinding.version2.ThresholdLine _thresholdLine;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Annotation() {
+        super();
+        this._annotationElementList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotationElement(
+            final jalview.schemabinding.version2.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationElementList.addElement(vAnnotationElement);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotationElement(
+            final int index,
+            final jalview.schemabinding.version2.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationElementList.add(index, vAnnotationElement);
+    }
+
+    /**
+     */
+    public void deleteGraph(
+    ) {
+        this._has_graph= false;
+    }
+
+    /**
+     */
+    public void deleteGraphColour(
+    ) {
+        this._has_graphColour= false;
+    }
+
+    /**
+     */
+    public void deleteGraphGroup(
+    ) {
+        this._has_graphGroup= false;
+    }
+
+    /**
+     */
+    public void deleteGraphType(
+    ) {
+        this._has_graphType= false;
+    }
+
+    /**
+     */
+    public void deleteScore(
+    ) {
+        this._has_score= false;
+    }
+
+    /**
+     */
+    public void deleteScoreOnly(
+    ) {
+        this._has_scoreOnly= false;
+    }
+
+    /**
+     */
+    public void deleteVisible(
+    ) {
+        this._has_visible= false;
+    }
+
+    /**
+     * Method enumerateAnnotationElement.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.AnnotationElement elements
+     */
+    public java.util.Enumeration enumerateAnnotationElement(
+    ) {
+        return this._annotationElementList.elements();
+    }
+
+    /**
+     * Method getAnnotationElement.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.AnnotationElement at the
+     * given index
+     */
+    public jalview.schemabinding.version2.AnnotationElement getAnnotationElement(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationElementList.size()) {
+            throw new IndexOutOfBoundsException("getAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.AnnotationElement) _annotationElementList.get(index);
+    }
+
+    /**
+     * Method getAnnotationElement.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.AnnotationElement[] getAnnotationElement(
+    ) {
+        jalview.schemabinding.version2.AnnotationElement[] array = new jalview.schemabinding.version2.AnnotationElement[0];
+        return (jalview.schemabinding.version2.AnnotationElement[]) this._annotationElementList.toArray(array);
+    }
+
+    /**
+     * Method getAnnotationElementCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAnnotationElementCount(
+    ) {
+        return this._annotationElementList.size();
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'graph'.
+     * 
+     * @return the value of field 'Graph'.
+     */
+    public boolean getGraph(
+    ) {
+        return this._graph;
+    }
+
+    /**
+     * Returns the value of field 'graphColour'.
+     * 
+     * @return the value of field 'GraphColour'.
+     */
+    public int getGraphColour(
+    ) {
+        return this._graphColour;
+    }
+
+    /**
+     * Returns the value of field 'graphGroup'.
+     * 
+     * @return the value of field 'GraphGroup'.
+     */
+    public int getGraphGroup(
+    ) {
+        return this._graphGroup;
+    }
+
+    /**
+     * Returns the value of field 'graphType'.
+     * 
+     * @return the value of field 'GraphType'.
+     */
+    public int getGraphType(
+    ) {
+        return this._graphType;
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'label'.
+     * 
+     * @return the value of field 'Label'.
+     */
+    public java.lang.String getLabel(
+    ) {
+        return this._label;
+    }
+
+    /**
+     * Returns the value of field 'score'.
+     * 
+     * @return the value of field 'Score'.
+     */
+    public double getScore(
+    ) {
+        return this._score;
+    }
+
+    /**
+     * Returns the value of field 'scoreOnly'.
+     * 
+     * @return the value of field 'ScoreOnly'.
+     */
+    public boolean getScoreOnly(
+    ) {
+        return this._scoreOnly;
+    }
+
+    /**
+     * Returns the value of field 'sequenceRef'.
+     * 
+     * @return the value of field 'SequenceRef'.
+     */
+    public java.lang.String getSequenceRef(
+    ) {
+        return this._sequenceRef;
+    }
+
+    /**
+     * Returns the value of field 'thresholdLine'.
+     * 
+     * @return the value of field 'ThresholdLine'.
+     */
+    public jalview.schemabinding.version2.ThresholdLine getThresholdLine(
+    ) {
+        return this._thresholdLine;
+    }
+
+    /**
+     * Returns the value of field 'visible'.
+     * 
+     * @return the value of field 'Visible'.
+     */
+    public boolean getVisible(
+    ) {
+        return this._visible;
+    }
+
+    /**
+     * Method hasGraph.
+     * 
+     * @return true if at least one Graph has been added
+     */
+    public boolean hasGraph(
+    ) {
+        return this._has_graph;
+    }
+
+    /**
+     * Method hasGraphColour.
+     * 
+     * @return true if at least one GraphColour has been added
+     */
+    public boolean hasGraphColour(
+    ) {
+        return this._has_graphColour;
+    }
+
+    /**
+     * Method hasGraphGroup.
+     * 
+     * @return true if at least one GraphGroup has been added
+     */
+    public boolean hasGraphGroup(
+    ) {
+        return this._has_graphGroup;
+    }
+
+    /**
+     * Method hasGraphType.
+     * 
+     * @return true if at least one GraphType has been added
+     */
+    public boolean hasGraphType(
+    ) {
+        return this._has_graphType;
+    }
+
+    /**
+     * Method hasScore.
+     * 
+     * @return true if at least one Score has been added
+     */
+    public boolean hasScore(
+    ) {
+        return this._has_score;
+    }
+
+    /**
+     * Method hasScoreOnly.
+     * 
+     * @return true if at least one ScoreOnly has been added
+     */
+    public boolean hasScoreOnly(
+    ) {
+        return this._has_scoreOnly;
+    }
+
+    /**
+     * Method hasVisible.
+     * 
+     * @return true if at least one Visible has been added
+     */
+    public boolean hasVisible(
+    ) {
+        return this._has_visible;
+    }
+
+    /**
+     * Returns the value of field 'graph'.
+     * 
+     * @return the value of field 'Graph'.
+     */
+    public boolean isGraph(
+    ) {
+        return this._graph;
+    }
+
+    /**
+     * Returns the value of field 'scoreOnly'.
+     * 
+     * @return the value of field 'ScoreOnly'.
+     */
+    public boolean isScoreOnly(
+    ) {
+        return this._scoreOnly;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Returns the value of field 'visible'.
+     * 
+     * @return the value of field 'Visible'.
+     */
+    public boolean isVisible(
+    ) {
+        return this._visible;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllAnnotationElement(
+    ) {
+        this._annotationElementList.clear();
+    }
+
+    /**
+     * Method removeAnnotationElement.
+     * 
+     * @param vAnnotationElement
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAnnotationElement(
+            final jalview.schemabinding.version2.AnnotationElement vAnnotationElement) {
+        boolean removed = _annotationElementList.remove(vAnnotationElement);
+        return removed;
+    }
+
+    /**
+     * Method removeAnnotationElementAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.AnnotationElement removeAnnotationElementAt(
+            final int index) {
+        java.lang.Object obj = this._annotationElementList.remove(index);
+        return (jalview.schemabinding.version2.AnnotationElement) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotationElement
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAnnotationElement(
+            final int index,
+            final jalview.schemabinding.version2.AnnotationElement vAnnotationElement)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationElementList.size()) {
+            throw new IndexOutOfBoundsException("setAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+        }
+        
+        this._annotationElementList.set(index, vAnnotationElement);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAnnotationElementArray
+     */
+    public void setAnnotationElement(
+            final jalview.schemabinding.version2.AnnotationElement[] vAnnotationElementArray) {
+        //-- copy array
+        _annotationElementList.clear();
+        
+        for (int i = 0; i < vAnnotationElementArray.length; i++) {
+                this._annotationElementList.add(vAnnotationElementArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'graph'.
+     * 
+     * @param graph the value of field 'graph'.
+     */
+    public void setGraph(
+            final boolean graph) {
+        this._graph = graph;
+        this._has_graph = true;
+    }
+
+    /**
+     * Sets the value of field 'graphColour'.
+     * 
+     * @param graphColour the value of field 'graphColour'.
+     */
+    public void setGraphColour(
+            final int graphColour) {
+        this._graphColour = graphColour;
+        this._has_graphColour = true;
+    }
+
+    /**
+     * Sets the value of field 'graphGroup'.
+     * 
+     * @param graphGroup the value of field 'graphGroup'.
+     */
+    public void setGraphGroup(
+            final int graphGroup) {
+        this._graphGroup = graphGroup;
+        this._has_graphGroup = true;
+    }
+
+    /**
+     * Sets the value of field 'graphType'.
+     * 
+     * @param graphType the value of field 'graphType'.
+     */
+    public void setGraphType(
+            final int graphType) {
+        this._graphType = graphType;
+        this._has_graphType = true;
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'label'.
+     * 
+     * @param label the value of field 'label'.
+     */
+    public void setLabel(
+            final java.lang.String label) {
+        this._label = label;
+    }
+
+    /**
+     * Sets the value of field 'score'.
+     * 
+     * @param score the value of field 'score'.
+     */
+    public void setScore(
+            final double score) {
+        this._score = score;
+        this._has_score = true;
+    }
+
+    /**
+     * Sets the value of field 'scoreOnly'.
+     * 
+     * @param scoreOnly the value of field 'scoreOnly'.
+     */
+    public void setScoreOnly(
+            final boolean scoreOnly) {
+        this._scoreOnly = scoreOnly;
+        this._has_scoreOnly = true;
+    }
+
+    /**
+     * Sets the value of field 'sequenceRef'.
+     * 
+     * @param sequenceRef the value of field 'sequenceRef'.
+     */
+    public void setSequenceRef(
+            final java.lang.String sequenceRef) {
+        this._sequenceRef = sequenceRef;
+    }
+
+    /**
+     * Sets the value of field 'thresholdLine'.
+     * 
+     * @param thresholdLine the value of field 'thresholdLine'.
+     */
+    public void setThresholdLine(
+            final jalview.schemabinding.version2.ThresholdLine thresholdLine) {
+        this._thresholdLine = thresholdLine;
+    }
+
+    /**
+     * Sets the value of field 'visible'.
+     * 
+     * @param visible the value of field 'visible'.
+     */
+    public void setVisible(
+            final boolean visible) {
+        this._visible = visible;
+        this._has_visible = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.Annotation
+     */
+    public static jalview.schemabinding.version2.Annotation unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Annotation) Unmarshaller.unmarshal(jalview.schemabinding.version2.Annotation.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/AnnotationColours.java b/src/jalview/schemabinding/version2/AnnotationColours.java
index ff6dea7..36f9f93 100755
--- a/src/jalview/schemabinding/version2/AnnotationColours.java
+++ b/src/jalview/schemabinding/version2/AnnotationColours.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,364 +19,344 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class AnnotationColours implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _aboveThreshold.
-   */
-  private int _aboveThreshold;
-
-  /**
-   * keeps track of state for field: _aboveThreshold
-   */
-  private boolean _has_aboveThreshold;
-
-  /**
-   * Field _annotation.
-   */
-  private java.lang.String _annotation;
-
-  /**
-   * Field _minColour.
-   */
-  private int _minColour;
-
-  /**
-   * keeps track of state for field: _minColour
-   */
-  private boolean _has_minColour;
-
-  /**
-   * Field _maxColour.
-   */
-  private int _maxColour;
-
-  /**
-   * keeps track of state for field: _maxColour
-   */
-  private boolean _has_maxColour;
-
-  /**
-   * Field _colourScheme.
-   */
-  private java.lang.String _colourScheme;
-
-  /**
-   * Field _threshold.
-   */
-  private float _threshold;
-
-  /**
-   * keeps track of state for field: _threshold
-   */
-  private boolean _has_threshold;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AnnotationColours()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteAboveThreshold()
-  {
-    this._has_aboveThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteMaxColour()
-  {
-    this._has_maxColour = false;
-  }
-
-  /**
-   */
-  public void deleteMinColour()
-  {
-    this._has_minColour = false;
-  }
-
-  /**
-   */
-  public void deleteThreshold()
-  {
-    this._has_threshold = false;
-  }
-
-  /**
-   * Returns the value of field 'aboveThreshold'.
-   * 
-   * @return the value of field 'AboveThreshold'.
-   */
-  public int getAboveThreshold()
-  {
-    return this._aboveThreshold;
-  }
-
-  /**
-   * Returns the value of field 'annotation'.
-   * 
-   * @return the value of field 'Annotation'.
-   */
-  public java.lang.String getAnnotation()
-  {
-    return this._annotation;
-  }
-
-  /**
-   * Returns the value of field 'colourScheme'.
-   * 
-   * @return the value of field 'ColourScheme'.
-   */
-  public java.lang.String getColourScheme()
-  {
-    return this._colourScheme;
-  }
-
-  /**
-   * Returns the value of field 'maxColour'.
-   * 
-   * @return the value of field 'MaxColour'.
-   */
-  public int getMaxColour()
-  {
-    return this._maxColour;
-  }
-
-  /**
-   * Returns the value of field 'minColour'.
-   * 
-   * @return the value of field 'MinColour'.
-   */
-  public int getMinColour()
-  {
-    return this._minColour;
-  }
-
-  /**
-   * Returns the value of field 'threshold'.
-   * 
-   * @return the value of field 'Threshold'.
-   */
-  public float getThreshold()
-  {
-    return this._threshold;
-  }
-
-  /**
-   * Method hasAboveThreshold.
-   * 
-   * @return true if at least one AboveThreshold has been added
-   */
-  public boolean hasAboveThreshold()
-  {
-    return this._has_aboveThreshold;
-  }
-
-  /**
-   * Method hasMaxColour.
-   * 
-   * @return true if at least one MaxColour has been added
-   */
-  public boolean hasMaxColour()
-  {
-    return this._has_maxColour;
-  }
-
-  /**
-   * Method hasMinColour.
-   * 
-   * @return true if at least one MinColour has been added
-   */
-  public boolean hasMinColour()
-  {
-    return this._has_minColour;
-  }
-
-  /**
-   * Method hasThreshold.
-   * 
-   * @return true if at least one Threshold has been added
-   */
-  public boolean hasThreshold()
-  {
-    return this._has_threshold;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class AnnotationColours implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _aboveThreshold.
+     */
+    private int _aboveThreshold;
+
+    /**
+     * keeps track of state for field: _aboveThreshold
+     */
+    private boolean _has_aboveThreshold;
+
+    /**
+     * Field _annotation.
+     */
+    private java.lang.String _annotation;
+
+    /**
+     * Field _minColour.
+     */
+    private int _minColour;
+
+    /**
+     * keeps track of state for field: _minColour
+     */
+    private boolean _has_minColour;
+
+    /**
+     * Field _maxColour.
+     */
+    private int _maxColour;
+
+    /**
+     * keeps track of state for field: _maxColour
+     */
+    private boolean _has_maxColour;
+
+    /**
+     * Field _colourScheme.
+     */
+    private java.lang.String _colourScheme;
+
+    /**
+     * Field _threshold.
+     */
+    private float _threshold;
+
+    /**
+     * keeps track of state for field: _threshold
+     */
+    private boolean _has_threshold;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AnnotationColours() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteAboveThreshold(
+    ) {
+        this._has_aboveThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteMaxColour(
+    ) {
+        this._has_maxColour= false;
+    }
+
+    /**
+     */
+    public void deleteMinColour(
+    ) {
+        this._has_minColour= false;
+    }
+
+    /**
+     */
+    public void deleteThreshold(
+    ) {
+        this._has_threshold= false;
+    }
+
+    /**
+     * Returns the value of field 'aboveThreshold'.
+     * 
+     * @return the value of field 'AboveThreshold'.
+     */
+    public int getAboveThreshold(
+    ) {
+        return this._aboveThreshold;
+    }
+
+    /**
+     * Returns the value of field 'annotation'.
+     * 
+     * @return the value of field 'Annotation'.
+     */
+    public java.lang.String getAnnotation(
+    ) {
+        return this._annotation;
+    }
+
+    /**
+     * Returns the value of field 'colourScheme'.
+     * 
+     * @return the value of field 'ColourScheme'.
+     */
+    public java.lang.String getColourScheme(
+    ) {
+        return this._colourScheme;
+    }
+
+    /**
+     * Returns the value of field 'maxColour'.
+     * 
+     * @return the value of field 'MaxColour'.
+     */
+    public int getMaxColour(
+    ) {
+        return this._maxColour;
+    }
+
+    /**
+     * Returns the value of field 'minColour'.
+     * 
+     * @return the value of field 'MinColour'.
+     */
+    public int getMinColour(
+    ) {
+        return this._minColour;
+    }
+
+    /**
+     * Returns the value of field 'threshold'.
+     * 
+     * @return the value of field 'Threshold'.
+     */
+    public float getThreshold(
+    ) {
+        return this._threshold;
+    }
+
+    /**
+     * Method hasAboveThreshold.
+     * 
+     * @return true if at least one AboveThreshold has been added
+     */
+    public boolean hasAboveThreshold(
+    ) {
+        return this._has_aboveThreshold;
+    }
+
+    /**
+     * Method hasMaxColour.
+     * 
+     * @return true if at least one MaxColour has been added
+     */
+    public boolean hasMaxColour(
+    ) {
+        return this._has_maxColour;
+    }
+
+    /**
+     * Method hasMinColour.
+     * 
+     * @return true if at least one MinColour has been added
+     */
+    public boolean hasMinColour(
+    ) {
+        return this._has_minColour;
+    }
+
+    /**
+     * Method hasThreshold.
+     * 
+     * @return true if at least one Threshold has been added
+     */
+    public boolean hasThreshold(
+    ) {
+        return this._has_threshold;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'aboveThreshold'.
+     * 
+     * @param aboveThreshold the value of field 'aboveThreshold'.
+     */
+    public void setAboveThreshold(
+            final int aboveThreshold) {
+        this._aboveThreshold = aboveThreshold;
+        this._has_aboveThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'annotation'.
+     * 
+     * @param annotation the value of field 'annotation'.
+     */
+    public void setAnnotation(
+            final java.lang.String annotation) {
+        this._annotation = annotation;
+    }
+
+    /**
+     * Sets the value of field 'colourScheme'.
+     * 
+     * @param colourScheme the value of field 'colourScheme'.
+     */
+    public void setColourScheme(
+            final java.lang.String colourScheme) {
+        this._colourScheme = colourScheme;
+    }
+
+    /**
+     * Sets the value of field 'maxColour'.
+     * 
+     * @param maxColour the value of field 'maxColour'.
+     */
+    public void setMaxColour(
+            final int maxColour) {
+        this._maxColour = maxColour;
+        this._has_maxColour = true;
+    }
+
+    /**
+     * Sets the value of field 'minColour'.
+     * 
+     * @param minColour the value of field 'minColour'.
+     */
+    public void setMinColour(
+            final int minColour) {
+        this._minColour = minColour;
+        this._has_minColour = true;
+    }
+
+    /**
+     * Sets the value of field 'threshold'.
+     * 
+     * @param threshold the value of field 'threshold'.
+     */
+    public void setThreshold(
+            final float threshold) {
+        this._threshold = threshold;
+        this._has_threshold = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.AnnotationColours
+     */
+    public static jalview.schemabinding.version2.AnnotationColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.AnnotationColours) Unmarshaller.unmarshal(jalview.schemabinding.version2.AnnotationColours.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'aboveThreshold'.
-   * 
-   * @param aboveThreshold
-   *                the value of field 'aboveThreshold'.
-   */
-  public void setAboveThreshold(final int aboveThreshold)
-  {
-    this._aboveThreshold = aboveThreshold;
-    this._has_aboveThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'annotation'.
-   * 
-   * @param annotation
-   *                the value of field 'annotation'.
-   */
-  public void setAnnotation(final java.lang.String annotation)
-  {
-    this._annotation = annotation;
-  }
-
-  /**
-   * Sets the value of field 'colourScheme'.
-   * 
-   * @param colourScheme
-   *                the value of field 'colourScheme'.
-   */
-  public void setColourScheme(final java.lang.String colourScheme)
-  {
-    this._colourScheme = colourScheme;
-  }
-
-  /**
-   * Sets the value of field 'maxColour'.
-   * 
-   * @param maxColour
-   *                the value of field 'maxColour'.
-   */
-  public void setMaxColour(final int maxColour)
-  {
-    this._maxColour = maxColour;
-    this._has_maxColour = true;
-  }
-
-  /**
-   * Sets the value of field 'minColour'.
-   * 
-   * @param minColour
-   *                the value of field 'minColour'.
-   */
-  public void setMinColour(final int minColour)
-  {
-    this._minColour = minColour;
-    this._has_minColour = true;
-  }
-
-  /**
-   * Sets the value of field 'threshold'.
-   * 
-   * @param threshold
-   *                the value of field 'threshold'.
-   */
-  public void setThreshold(final float threshold)
-  {
-    this._threshold = threshold;
-    this._has_threshold = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.AnnotationColours
-   */
-  public static jalview.schemabinding.version2.AnnotationColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.AnnotationColours) Unmarshaller
-            .unmarshal(
-                    jalview.schemabinding.version2.AnnotationColours.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/AnnotationElement.java b/src/jalview/schemabinding/version2/AnnotationElement.java
index 576b4ad..eca3e6a 100755
--- a/src/jalview/schemabinding/version2/AnnotationElement.java
+++ b/src/jalview/schemabinding/version2/AnnotationElement.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,342 +19,322 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class AnnotationElement implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _position.
-   */
-  private int _position;
-
-  /**
-   * keeps track of state for field: _position
-   */
-  private boolean _has_position;
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  /**
-   * Field _displayCharacter.
-   */
-  private java.lang.String _displayCharacter;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _secondaryStructure.
-   */
-  private java.lang.String _secondaryStructure;
-
-  /**
-   * Field _value.
-   */
-  private float _value;
-
-  /**
-   * keeps track of state for field: _value
-   */
-  private boolean _has_value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AnnotationElement()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
-
-  /**
-   */
-  public void deletePosition()
-  {
-    this._has_position = false;
-  }
-
-  /**
-   */
-  public void deleteValue()
-  {
-    this._has_value = false;
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'displayCharacter'.
-   * 
-   * @return the value of field 'DisplayCharacter'.
-   */
-  public java.lang.String getDisplayCharacter()
-  {
-    return this._displayCharacter;
-  }
-
-  /**
-   * Returns the value of field 'position'.
-   * 
-   * @return the value of field 'Position'.
-   */
-  public int getPosition()
-  {
-    return this._position;
-  }
-
-  /**
-   * Returns the value of field 'secondaryStructure'.
-   * 
-   * @return the value of field 'SecondaryStructure'.
-   */
-  public java.lang.String getSecondaryStructure()
-  {
-    return this._secondaryStructure;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public float getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasPosition.
-   * 
-   * @return true if at least one Position has been added
-   */
-  public boolean hasPosition()
-  {
-    return this._has_position;
-  }
-
-  /**
-   * Method hasValue.
-   * 
-   * @return true if at least one Value has been added
-   */
-  public boolean hasValue()
-  {
-    return this._has_value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class AnnotationElement implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _position.
+     */
+    private int _position;
+
+    /**
+     * keeps track of state for field: _position
+     */
+    private boolean _has_position;
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+    /**
+     * Field _displayCharacter.
+     */
+    private java.lang.String _displayCharacter;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _secondaryStructure.
+     */
+    private java.lang.String _secondaryStructure;
+
+    /**
+     * Field _value.
+     */
+    private float _value;
+
+    /**
+     * keeps track of state for field: _value
+     */
+    private boolean _has_value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AnnotationElement() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deletePosition(
+    ) {
+        this._has_position= false;
+    }
+
+    /**
+     */
+    public void deleteValue(
+    ) {
+        this._has_value= false;
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'displayCharacter'.
+     * 
+     * @return the value of field 'DisplayCharacter'.
+     */
+    public java.lang.String getDisplayCharacter(
+    ) {
+        return this._displayCharacter;
+    }
+
+    /**
+     * Returns the value of field 'position'.
+     * 
+     * @return the value of field 'Position'.
+     */
+    public int getPosition(
+    ) {
+        return this._position;
+    }
+
+    /**
+     * Returns the value of field 'secondaryStructure'.
+     * 
+     * @return the value of field 'SecondaryStructure'.
+     */
+    public java.lang.String getSecondaryStructure(
+    ) {
+        return this._secondaryStructure;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public float getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasPosition.
+     * 
+     * @return true if at least one Position has been added
+     */
+    public boolean hasPosition(
+    ) {
+        return this._has_position;
+    }
+
+    /**
+     * Method hasValue.
+     * 
+     * @return true if at least one Value has been added
+     */
+    public boolean hasValue(
+    ) {
+        return this._has_value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'displayCharacter'.
+     * 
+     * @param displayCharacter the value of field 'displayCharacter'
+     */
+    public void setDisplayCharacter(
+            final java.lang.String displayCharacter) {
+        this._displayCharacter = displayCharacter;
+    }
+
+    /**
+     * Sets the value of field 'position'.
+     * 
+     * @param position the value of field 'position'.
+     */
+    public void setPosition(
+            final int position) {
+        this._position = position;
+        this._has_position = true;
+    }
+
+    /**
+     * Sets the value of field 'secondaryStructure'.
+     * 
+     * @param secondaryStructure the value of field
+     * 'secondaryStructure'.
+     */
+    public void setSecondaryStructure(
+            final java.lang.String secondaryStructure) {
+        this._secondaryStructure = secondaryStructure;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final float value) {
+        this._value = value;
+        this._has_value = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.AnnotationElement
+     */
+    public static jalview.schemabinding.version2.AnnotationElement unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.AnnotationElement) Unmarshaller.unmarshal(jalview.schemabinding.version2.AnnotationElement.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *                the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'displayCharacter'.
-   * 
-   * @param displayCharacter
-   *                the value of field 'displayCharacter'
-   */
-  public void setDisplayCharacter(final java.lang.String displayCharacter)
-  {
-    this._displayCharacter = displayCharacter;
-  }
-
-  /**
-   * Sets the value of field 'position'.
-   * 
-   * @param position
-   *                the value of field 'position'.
-   */
-  public void setPosition(final int position)
-  {
-    this._position = position;
-    this._has_position = true;
-  }
-
-  /**
-   * Sets the value of field 'secondaryStructure'.
-   * 
-   * @param secondaryStructure
-   *                the value of field 'secondaryStructure'.
-   */
-  public void setSecondaryStructure(
-          final java.lang.String secondaryStructure)
-  {
-    this._secondaryStructure = secondaryStructure;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *                the value of field 'value'.
-   */
-  public void setValue(final float value)
-  {
-    this._value = value;
-    this._has_value = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.AnnotationElement
-   */
-  public static jalview.schemabinding.version2.AnnotationElement unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.AnnotationElement) Unmarshaller
-            .unmarshal(
-                    jalview.schemabinding.version2.AnnotationElement.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Colour.java b/src/jalview/schemabinding/version2/Colour.java
index c1c1751..54d64ff 100755
--- a/src/jalview/schemabinding/version2/Colour.java
+++ b/src/jalview/schemabinding/version2/Colour.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,166 +19,151 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Colour implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _RGB.
-   */
-  private java.lang.String _RGB;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Colour()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'RGB'.
-   * 
-   * @return the value of field 'RGB'.
-   */
-  public java.lang.String getRGB()
-  {
-    return this._RGB;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Colour implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _RGB.
+     */
+    private java.lang.String _RGB;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Colour() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'RGB'.
+     * 
+     * @return the value of field 'RGB'.
+     */
+    public java.lang.String getRGB(
+    ) {
+        return this._RGB;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'RGB'.
+     * 
+     * @param RGB the value of field 'RGB'.
+     */
+    public void setRGB(
+            final java.lang.String RGB) {
+        this._RGB = RGB;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.Colour
+     */
+    public static jalview.schemabinding.version2.Colour unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Colour) Unmarshaller.unmarshal(jalview.schemabinding.version2.Colour.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'RGB'.
-   * 
-   * @param RGB
-   *                the value of field 'RGB'.
-   */
-  public void setRGB(final java.lang.String RGB)
-  {
-    this._RGB = RGB;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Colour
-   */
-  public static jalview.schemabinding.version2.Colour unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Colour) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.Colour.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/DBRef.java b/src/jalview/schemabinding/version2/DBRef.java
index a232298..4d67250 100644
--- a/src/jalview/schemabinding/version2/DBRef.java
+++ b/src/jalview/schemabinding/version2/DBRef.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,219 +19,201 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class DBRef implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _source.
-   */
-  private java.lang.String _source;
-
-  /**
-   * Field _version.
-   */
-  private java.lang.String _version;
-
-  /**
-   * Field _accessionId.
-   */
-  private java.lang.String _accessionId;
-
-  /**
-   * Field _mapping.
-   */
-  private jalview.schemabinding.version2.Mapping _mapping;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public DBRef()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'accessionId'.
-   * 
-   * @return the value of field 'AccessionId'.
-   */
-  public java.lang.String getAccessionId()
-  {
-    return this._accessionId;
-  }
-
-  /**
-   * Returns the value of field 'mapping'.
-   * 
-   * @return the value of field 'Mapping'.
-   */
-  public jalview.schemabinding.version2.Mapping getMapping()
-  {
-    return this._mapping;
-  }
-
-  /**
-   * Returns the value of field 'source'.
-   * 
-   * @return the value of field 'Source'.
-   */
-  public java.lang.String getSource()
-  {
-    return this._source;
-  }
-
-  /**
-   * Returns the value of field 'version'.
-   * 
-   * @return the value of field 'Version'.
-   */
-  public java.lang.String getVersion()
-  {
-    return this._version;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class DBRef implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _source.
+     */
+    private java.lang.String _source;
+
+    /**
+     * Field _version.
+     */
+    private java.lang.String _version;
+
+    /**
+     * Field _accessionId.
+     */
+    private java.lang.String _accessionId;
+
+    /**
+     * Field _mapping.
+     */
+    private jalview.schemabinding.version2.Mapping _mapping;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public DBRef() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'accessionId'.
+     * 
+     * @return the value of field 'AccessionId'.
+     */
+    public java.lang.String getAccessionId(
+    ) {
+        return this._accessionId;
+    }
+
+    /**
+     * Returns the value of field 'mapping'.
+     * 
+     * @return the value of field 'Mapping'.
+     */
+    public jalview.schemabinding.version2.Mapping getMapping(
+    ) {
+        return this._mapping;
+    }
+
+    /**
+     * Returns the value of field 'source'.
+     * 
+     * @return the value of field 'Source'.
+     */
+    public java.lang.String getSource(
+    ) {
+        return this._source;
+    }
+
+    /**
+     * Returns the value of field 'version'.
+     * 
+     * @return the value of field 'Version'.
+     */
+    public java.lang.String getVersion(
+    ) {
+        return this._version;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'accessionId'.
+     * 
+     * @param accessionId the value of field 'accessionId'.
+     */
+    public void setAccessionId(
+            final java.lang.String accessionId) {
+        this._accessionId = accessionId;
+    }
+
+    /**
+     * Sets the value of field 'mapping'.
+     * 
+     * @param mapping the value of field 'mapping'.
+     */
+    public void setMapping(
+            final jalview.schemabinding.version2.Mapping mapping) {
+        this._mapping = mapping;
+    }
+
+    /**
+     * Sets the value of field 'source'.
+     * 
+     * @param source the value of field 'source'.
+     */
+    public void setSource(
+            final java.lang.String source) {
+        this._source = source;
+    }
+
+    /**
+     * Sets the value of field 'version'.
+     * 
+     * @param version the value of field 'version'.
+     */
+    public void setVersion(
+            final java.lang.String version) {
+        this._version = version;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.DBRef
+     */
+    public static jalview.schemabinding.version2.DBRef unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.DBRef) Unmarshaller.unmarshal(jalview.schemabinding.version2.DBRef.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'accessionId'.
-   * 
-   * @param accessionId
-   *                the value of field 'accessionId'.
-   */
-  public void setAccessionId(final java.lang.String accessionId)
-  {
-    this._accessionId = accessionId;
-  }
-
-  /**
-   * Sets the value of field 'mapping'.
-   * 
-   * @param mapping
-   *                the value of field 'mapping'.
-   */
-  public void setMapping(
-          final jalview.schemabinding.version2.Mapping mapping)
-  {
-    this._mapping = mapping;
-  }
-
-  /**
-   * Sets the value of field 'source'.
-   * 
-   * @param source
-   *                the value of field 'source'.
-   */
-  public void setSource(final java.lang.String source)
-  {
-    this._source = source;
-  }
-
-  /**
-   * Sets the value of field 'version'.
-   * 
-   * @param version
-   *                the value of field 'version'.
-   */
-  public void setVersion(final java.lang.String version)
-  {
-    this._version = version;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.DBRef
-   */
-  public static jalview.schemabinding.version2.DBRef unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.DBRef) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.DBRef.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Feature.java b/src/jalview/schemabinding/version2/Feature.java
index 90aba34..109ec6e 100755
--- a/src/jalview/schemabinding/version2/Feature.java
+++ b/src/jalview/schemabinding/version2/Feature.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,534 +19,501 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Feature implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _begin.
-   */
-  private int _begin;
-
-  /**
-   * keeps track of state for field: _begin
-   */
-  private boolean _has_begin;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _status.
-   */
-  private java.lang.String _status;
-
-  /**
-   * Field _featureGroup.
-   */
-  private java.lang.String _featureGroup;
-
-  /**
-   * Field _score.
-   */
-  private float _score;
-
-  /**
-   * keeps track of state for field: _score
-   */
-  private boolean _has_score;
-
-  /**
-   * Field _otherDataList.
-   */
-  private java.util.Vector _otherDataList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Feature()
-  {
-    super();
-    this._otherDataList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vOtherData
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addOtherData(
-          final jalview.schemabinding.version2.OtherData vOtherData)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._otherDataList.addElement(vOtherData);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vOtherData
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addOtherData(final int index,
-          final jalview.schemabinding.version2.OtherData vOtherData)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._otherDataList.add(index, vOtherData);
-  }
-
-  /**
-   */
-  public void deleteBegin()
-  {
-    this._has_begin = false;
-  }
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteScore()
-  {
-    this._has_score = false;
-  }
-
-  /**
-   * Method enumerateOtherData.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.OtherData
-   *         elements
-   */
-  public java.util.Enumeration enumerateOtherData()
-  {
-    return this._otherDataList.elements();
-  }
-
-  /**
-   * Returns the value of field 'begin'.
-   * 
-   * @return the value of field 'Begin'.
-   */
-  public int getBegin()
-  {
-    return this._begin;
-  }
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'featureGroup'.
-   * 
-   * @return the value of field 'FeatureGroup'.
-   */
-  public java.lang.String getFeatureGroup()
-  {
-    return this._featureGroup;
-  }
-
-  /**
-   * Method getOtherData.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.OtherData at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.OtherData getOtherData(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._otherDataList.size())
-    {
-      throw new IndexOutOfBoundsException("getOtherData: Index value '"
-              + index + "' not in range [0.."
-              + (this._otherDataList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.OtherData) _otherDataList
-            .get(index);
-  }
-
-  /**
-   * Method getOtherData.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.OtherData[] getOtherData()
-  {
-    jalview.schemabinding.version2.OtherData[] array = new jalview.schemabinding.version2.OtherData[0];
-    return (jalview.schemabinding.version2.OtherData[]) this._otherDataList
-            .toArray(array);
-  }
-
-  /**
-   * Method getOtherDataCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getOtherDataCount()
-  {
-    return this._otherDataList.size();
-  }
-
-  /**
-   * Returns the value of field 'score'.
-   * 
-   * @return the value of field 'Score'.
-   */
-  public float getScore()
-  {
-    return this._score;
-  }
-
-  /**
-   * Returns the value of field 'status'.
-   * 
-   * @return the value of field 'Status'.
-   */
-  public java.lang.String getStatus()
-  {
-    return this._status;
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method hasBegin.
-   * 
-   * @return true if at least one Begin has been added
-   */
-  public boolean hasBegin()
-  {
-    return this._has_begin;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasScore.
-   * 
-   * @return true if at least one Score has been added
-   */
-  public boolean hasScore()
-  {
-    return this._has_score;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllOtherData()
-  {
-    this._otherDataList.clear();
-  }
-
-  /**
-   * Method removeOtherData.
-   * 
-   * @param vOtherData
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeOtherData(
-          final jalview.schemabinding.version2.OtherData vOtherData)
-  {
-    boolean removed = _otherDataList.remove(vOtherData);
-    return removed;
-  }
-
-  /**
-   * Method removeOtherDataAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.OtherData removeOtherDataAt(
-          final int index)
-  {
-    java.lang.Object obj = this._otherDataList.remove(index);
-    return (jalview.schemabinding.version2.OtherData) obj;
-  }
-
-  /**
-   * Sets the value of field 'begin'.
-   * 
-   * @param begin
-   *                the value of field 'begin'.
-   */
-  public void setBegin(final int begin)
-  {
-    this._begin = begin;
-    this._has_begin = true;
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *                the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'featureGroup'.
-   * 
-   * @param featureGroup
-   *                the value of field 'featureGroup'.
-   */
-  public void setFeatureGroup(final java.lang.String featureGroup)
-  {
-    this._featureGroup = featureGroup;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vOtherData
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setOtherData(final int index,
-          final jalview.schemabinding.version2.OtherData vOtherData)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._otherDataList.size())
-    {
-      throw new IndexOutOfBoundsException("setOtherData: Index value '"
-              + index + "' not in range [0.."
-              + (this._otherDataList.size() - 1) + "]");
-    }
-
-    this._otherDataList.set(index, vOtherData);
-  }
-
-  /**
-   * 
-   * 
-   * @param vOtherDataArray
-   */
-  public void setOtherData(
-          final jalview.schemabinding.version2.OtherData[] vOtherDataArray)
-  {
-    // -- copy array
-    _otherDataList.clear();
-
-    for (int i = 0; i < vOtherDataArray.length; i++)
-    {
-      this._otherDataList.add(vOtherDataArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'score'.
-   * 
-   * @param score
-   *                the value of field 'score'.
-   */
-  public void setScore(final float score)
-  {
-    this._score = score;
-    this._has_score = true;
-  }
-
-  /**
-   * Sets the value of field 'status'.
-   * 
-   * @param status
-   *                the value of field 'status'.
-   */
-  public void setStatus(final java.lang.String status)
-  {
-    this._status = status;
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *                the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Featur
-   */
-  public static jalview.schemabinding.version2.Feature unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Feature) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.Feature.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Feature implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _begin.
+     */
+    private int _begin;
+
+    /**
+     * keeps track of state for field: _begin
+     */
+    private boolean _has_begin;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _status.
+     */
+    private java.lang.String _status;
+
+    /**
+     * Field _featureGroup.
+     */
+    private java.lang.String _featureGroup;
+
+    /**
+     * Field _score.
+     */
+    private float _score;
+
+    /**
+     * keeps track of state for field: _score
+     */
+    private boolean _has_score;
+
+    /**
+     * Field _otherDataList.
+     */
+    private java.util.Vector _otherDataList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Feature() {
+        super();
+        this._otherDataList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vOtherData
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addOtherData(
+            final jalview.schemabinding.version2.OtherData vOtherData)
+    throws java.lang.IndexOutOfBoundsException {
+        this._otherDataList.addElement(vOtherData);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vOtherData
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addOtherData(
+            final int index,
+            final jalview.schemabinding.version2.OtherData vOtherData)
+    throws java.lang.IndexOutOfBoundsException {
+        this._otherDataList.add(index, vOtherData);
+    }
+
+    /**
+     */
+    public void deleteBegin(
+    ) {
+        this._has_begin= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteScore(
+    ) {
+        this._has_score= false;
+    }
+
+    /**
+     * Method enumerateOtherData.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.OtherData elements
+     */
+    public java.util.Enumeration enumerateOtherData(
+    ) {
+        return this._otherDataList.elements();
+    }
+
+    /**
+     * Returns the value of field 'begin'.
+     * 
+     * @return the value of field 'Begin'.
+     */
+    public int getBegin(
+    ) {
+        return this._begin;
+    }
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'featureGroup'.
+     * 
+     * @return the value of field 'FeatureGroup'.
+     */
+    public java.lang.String getFeatureGroup(
+    ) {
+        return this._featureGroup;
+    }
+
+    /**
+     * Method getOtherData.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.OtherData at the given index
+     */
+    public jalview.schemabinding.version2.OtherData getOtherData(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._otherDataList.size()) {
+            throw new IndexOutOfBoundsException("getOtherData: Index value '" + index + "' not in range [0.." + (this._otherDataList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.OtherData) _otherDataList.get(index);
+    }
+
+    /**
+     * Method getOtherData.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.OtherData[] getOtherData(
+    ) {
+        jalview.schemabinding.version2.OtherData[] array = new jalview.schemabinding.version2.OtherData[0];
+        return (jalview.schemabinding.version2.OtherData[]) this._otherDataList.toArray(array);
+    }
+
+    /**
+     * Method getOtherDataCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getOtherDataCount(
+    ) {
+        return this._otherDataList.size();
+    }
+
+    /**
+     * Returns the value of field 'score'.
+     * 
+     * @return the value of field 'Score'.
+     */
+    public float getScore(
+    ) {
+        return this._score;
+    }
+
+    /**
+     * Returns the value of field 'status'.
+     * 
+     * @return the value of field 'Status'.
+     */
+    public java.lang.String getStatus(
+    ) {
+        return this._status;
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method hasBegin.
+     * 
+     * @return true if at least one Begin has been added
+     */
+    public boolean hasBegin(
+    ) {
+        return this._has_begin;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasScore.
+     * 
+     * @return true if at least one Score has been added
+     */
+    public boolean hasScore(
+    ) {
+        return this._has_score;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllOtherData(
+    ) {
+        this._otherDataList.clear();
+    }
+
+    /**
+     * Method removeOtherData.
+     * 
+     * @param vOtherData
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeOtherData(
+            final jalview.schemabinding.version2.OtherData vOtherData) {
+        boolean removed = _otherDataList.remove(vOtherData);
+        return removed;
+    }
+
+    /**
+     * Method removeOtherDataAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.OtherData removeOtherDataAt(
+            final int index) {
+        java.lang.Object obj = this._otherDataList.remove(index);
+        return (jalview.schemabinding.version2.OtherData) obj;
+    }
+
+    /**
+     * Sets the value of field 'begin'.
+     * 
+     * @param begin the value of field 'begin'.
+     */
+    public void setBegin(
+            final int begin) {
+        this._begin = begin;
+        this._has_begin = true;
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'featureGroup'.
+     * 
+     * @param featureGroup the value of field 'featureGroup'.
+     */
+    public void setFeatureGroup(
+            final java.lang.String featureGroup) {
+        this._featureGroup = featureGroup;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vOtherData
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setOtherData(
+            final int index,
+            final jalview.schemabinding.version2.OtherData vOtherData)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._otherDataList.size()) {
+            throw new IndexOutOfBoundsException("setOtherData: Index value '" + index + "' not in range [0.." + (this._otherDataList.size() - 1) + "]");
+        }
+        
+        this._otherDataList.set(index, vOtherData);
+    }
+
+    /**
+     * 
+     * 
+     * @param vOtherDataArray
+     */
+    public void setOtherData(
+            final jalview.schemabinding.version2.OtherData[] vOtherDataArray) {
+        //-- copy array
+        _otherDataList.clear();
+        
+        for (int i = 0; i < vOtherDataArray.length; i++) {
+                this._otherDataList.add(vOtherDataArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'score'.
+     * 
+     * @param score the value of field 'score'.
+     */
+    public void setScore(
+            final float score) {
+        this._score = score;
+        this._has_score = true;
+    }
+
+    /**
+     * Sets the value of field 'status'.
+     * 
+     * @param status the value of field 'status'.
+     */
+    public void setStatus(
+            final java.lang.String status) {
+        this._status = status;
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.Featur
+     */
+    public static jalview.schemabinding.version2.Feature unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Feature) Unmarshaller.unmarshal(jalview.schemabinding.version2.Feature.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/FeatureSettings.java b/src/jalview/schemabinding/version2/FeatureSettings.java
index 819b05d..5ce4054 100755
--- a/src/jalview/schemabinding/version2/FeatureSettings.java
+++ b/src/jalview/schemabinding/version2/FeatureSettings.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,448 +19,414 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class FeatureSettings implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _settingList.
-   */
-  private java.util.Vector _settingList;
-
-  /**
-   * Field _groupList.
-   */
-  private java.util.Vector _groupList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public FeatureSettings()
-  {
-    super();
-    this._settingList = new java.util.Vector();
-    this._groupList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addGroup(final jalview.schemabinding.version2.Group vGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._groupList.addElement(vGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addGroup(final int index,
-          final jalview.schemabinding.version2.Group vGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._groupList.add(index, vGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSetting(
-          final jalview.schemabinding.version2.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._settingList.addElement(vSetting);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSetting(final int index,
-          final jalview.schemabinding.version2.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._settingList.add(index, vSetting);
-  }
-
-  /**
-   * Method enumerateGroup.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Group
-   *         elements
-   */
-  public java.util.Enumeration enumerateGroup()
-  {
-    return this._groupList.elements();
-  }
-
-  /**
-   * Method enumerateSetting.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Setting
-   *         elements
-   */
-  public java.util.Enumeration enumerateSetting()
-  {
-    return this._settingList.elements();
-  }
-
-  /**
-   * Method getGroup.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Group at the given
-   *         index
-   */
-  public jalview.schemabinding.version2.Group getGroup(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._groupList.size())
-    {
-      throw new IndexOutOfBoundsException("getGroup: Index value '" + index
-              + "' not in range [0.." + (this._groupList.size() - 1) + "]");
+public class FeatureSettings implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _settingList.
+     */
+    private java.util.Vector _settingList;
+
+    /**
+     * Field _groupList.
+     */
+    private java.util.Vector _groupList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public FeatureSettings() {
+        super();
+        this._settingList = new java.util.Vector();
+        this._groupList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addGroup(
+            final jalview.schemabinding.version2.Group vGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._groupList.addElement(vGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addGroup(
+            final int index,
+            final jalview.schemabinding.version2.Group vGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._groupList.add(index, vGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSetting(
+            final jalview.schemabinding.version2.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        this._settingList.addElement(vSetting);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSetting(
+            final int index,
+            final jalview.schemabinding.version2.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        this._settingList.add(index, vSetting);
+    }
+
+    /**
+     * Method enumerateGroup.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Group elements
+     */
+    public java.util.Enumeration enumerateGroup(
+    ) {
+        return this._groupList.elements();
+    }
+
+    /**
+     * Method enumerateSetting.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Setting elements
+     */
+    public java.util.Enumeration enumerateSetting(
+    ) {
+        return this._settingList.elements();
+    }
+
+    /**
+     * Method getGroup.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Group at the given index
+     */
+    public jalview.schemabinding.version2.Group getGroup(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._groupList.size()) {
+            throw new IndexOutOfBoundsException("getGroup: Index value '" + index + "' not in range [0.." + (this._groupList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Group) _groupList.get(index);
+    }
+
+    /**
+     * Method getGroup.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Group[] getGroup(
+    ) {
+        jalview.schemabinding.version2.Group[] array = new jalview.schemabinding.version2.Group[0];
+        return (jalview.schemabinding.version2.Group[]) this._groupList.toArray(array);
     }
 
-    return (jalview.schemabinding.version2.Group) _groupList.get(index);
-  }
-
-  /**
-   * Method getGroup.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Group[] getGroup()
-  {
-    jalview.schemabinding.version2.Group[] array = new jalview.schemabinding.version2.Group[0];
-    return (jalview.schemabinding.version2.Group[]) this._groupList
-            .toArray(array);
-  }
-
-  /**
-   * Method getGroupCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getGroupCount()
-  {
-    return this._groupList.size();
-  }
-
-  /**
-   * Method getSetting.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Setting at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.Setting getSetting(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._settingList.size())
-    {
-      throw new IndexOutOfBoundsException("getSetting: Index value '"
-              + index + "' not in range [0.."
-              + (this._settingList.size() - 1) + "]");
+    /**
+     * Method getGroupCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getGroupCount(
+    ) {
+        return this._groupList.size();
     }
 
-    return (jalview.schemabinding.version2.Setting) _settingList.get(index);
-  }
-
-  /**
-   * Method getSetting.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Setting[] getSetting()
-  {
-    jalview.schemabinding.version2.Setting[] array = new jalview.schemabinding.version2.Setting[0];
-    return (jalview.schemabinding.version2.Setting[]) this._settingList
-            .toArray(array);
-  }
-
-  /**
-   * Method getSettingCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSettingCount()
-  {
-    return this._settingList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method getSetting.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Setting at the given index
+     */
+    public jalview.schemabinding.version2.Setting getSetting(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._settingList.size()) {
+            throw new IndexOutOfBoundsException("getSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Setting) _settingList.get(index);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllGroup()
-  {
-    this._groupList.clear();
-  }
-
-  /**
-   */
-  public void removeAllSetting()
-  {
-    this._settingList.clear();
-  }
-
-  /**
-   * Method removeGroup.
-   * 
-   * @param vGroup
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeGroup(
-          final jalview.schemabinding.version2.Group vGroup)
-  {
-    boolean removed = _groupList.remove(vGroup);
-    return removed;
-  }
-
-  /**
-   * Method removeGroupAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Group removeGroupAt(final int index)
-  {
-    java.lang.Object obj = this._groupList.remove(index);
-    return (jalview.schemabinding.version2.Group) obj;
-  }
-
-  /**
-   * Method removeSetting.
-   * 
-   * @param vSetting
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSetting(
-          final jalview.schemabinding.version2.Setting vSetting)
-  {
-    boolean removed = _settingList.remove(vSetting);
-    return removed;
-  }
-
-  /**
-   * Method removeSettingAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Setting removeSettingAt(
-          final int index)
-  {
-    java.lang.Object obj = this._settingList.remove(index);
-    return (jalview.schemabinding.version2.Setting) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setGroup(final int index,
-          final jalview.schemabinding.version2.Group vGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._groupList.size())
-    {
-      throw new IndexOutOfBoundsException("setGroup: Index value '" + index
-              + "' not in range [0.." + (this._groupList.size() - 1) + "]");
+
+    /**
+     * Method getSetting.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Setting[] getSetting(
+    ) {
+        jalview.schemabinding.version2.Setting[] array = new jalview.schemabinding.version2.Setting[0];
+        return (jalview.schemabinding.version2.Setting[]) this._settingList.toArray(array);
+    }
+
+    /**
+     * Method getSettingCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSettingCount(
+    ) {
+        return this._settingList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllGroup(
+    ) {
+        this._groupList.clear();
+    }
+
+    /**
+     */
+    public void removeAllSetting(
+    ) {
+        this._settingList.clear();
+    }
+
+    /**
+     * Method removeGroup.
+     * 
+     * @param vGroup
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeGroup(
+            final jalview.schemabinding.version2.Group vGroup) {
+        boolean removed = _groupList.remove(vGroup);
+        return removed;
+    }
+
+    /**
+     * Method removeGroupAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Group removeGroupAt(
+            final int index) {
+        java.lang.Object obj = this._groupList.remove(index);
+        return (jalview.schemabinding.version2.Group) obj;
+    }
+
+    /**
+     * Method removeSetting.
+     * 
+     * @param vSetting
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSetting(
+            final jalview.schemabinding.version2.Setting vSetting) {
+        boolean removed = _settingList.remove(vSetting);
+        return removed;
+    }
+
+    /**
+     * Method removeSettingAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Setting removeSettingAt(
+            final int index) {
+        java.lang.Object obj = this._settingList.remove(index);
+        return (jalview.schemabinding.version2.Setting) obj;
     }
 
-    this._groupList.set(index, vGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vGroupArray
-   */
-  public void setGroup(
-          final jalview.schemabinding.version2.Group[] vGroupArray)
-  {
-    // -- copy array
-    _groupList.clear();
-
-    for (int i = 0; i < vGroupArray.length; i++)
-    {
-      this._groupList.add(vGroupArray[i]);
+    /**
+     * 
+     * 
+     * @param index
+     * @param vGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setGroup(
+            final int index,
+            final jalview.schemabinding.version2.Group vGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._groupList.size()) {
+            throw new IndexOutOfBoundsException("setGroup: Index value '" + index + "' not in range [0.." + (this._groupList.size() - 1) + "]");
+        }
+        
+        this._groupList.set(index, vGroup);
     }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSetting
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSetting(final int index,
-          final jalview.schemabinding.version2.Setting vSetting)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._settingList.size())
-    {
-      throw new IndexOutOfBoundsException("setSetting: Index value '"
-              + index + "' not in range [0.."
-              + (this._settingList.size() - 1) + "]");
+
+    /**
+     * 
+     * 
+     * @param vGroupArray
+     */
+    public void setGroup(
+            final jalview.schemabinding.version2.Group[] vGroupArray) {
+        //-- copy array
+        _groupList.clear();
+        
+        for (int i = 0; i < vGroupArray.length; i++) {
+                this._groupList.add(vGroupArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSetting
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSetting(
+            final int index,
+            final jalview.schemabinding.version2.Setting vSetting)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._settingList.size()) {
+            throw new IndexOutOfBoundsException("setSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+        }
+        
+        this._settingList.set(index, vSetting);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSettingArray
+     */
+    public void setSetting(
+            final jalview.schemabinding.version2.Setting[] vSettingArray) {
+        //-- copy array
+        _settingList.clear();
+        
+        for (int i = 0; i < vSettingArray.length; i++) {
+                this._settingList.add(vSettingArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.FeatureSettings
+     */
+    public static jalview.schemabinding.version2.FeatureSettings unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.FeatureSettings) Unmarshaller.unmarshal(jalview.schemabinding.version2.FeatureSettings.class, reader);
     }
 
-    this._settingList.set(index, vSetting);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSettingArray
-   */
-  public void setSetting(
-          final jalview.schemabinding.version2.Setting[] vSettingArray)
-  {
-    // -- copy array
-    _settingList.clear();
-
-    for (int i = 0; i < vSettingArray.length; i++)
-    {
-      this._settingList.add(vSettingArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.FeatureSettings
-   */
-  public static jalview.schemabinding.version2.FeatureSettings unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.FeatureSettings) Unmarshaller
-            .unmarshal(
-                    jalview.schemabinding.version2.FeatureSettings.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Features.java b/src/jalview/schemabinding/version2/Features.java
index d577efc..47b28a3 100755
--- a/src/jalview/schemabinding/version2/Features.java
+++ b/src/jalview/schemabinding/version2/Features.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,110 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Features extends Feature implements java.io.Serializable
+public class Features extends Feature 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public Features()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Features() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Featur
-   */
-  public static jalview.schemabinding.version2.Feature unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Feature) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.Features.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.Featur
+     */
+    public static jalview.schemabinding.version2.Feature unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Feature) Unmarshaller.unmarshal(jalview.schemabinding.version2.Features.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/Group.java b/src/jalview/schemabinding/version2/Group.java
index bcc26d1..826667e 100644
--- a/src/jalview/schemabinding/version2/Group.java
+++ b/src/jalview/schemabinding/version2/Group.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,199 +19,184 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Group implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _display.
-   */
-  private boolean _display;
-
-  /**
-   * keeps track of state for field: _display
-   */
-  private boolean _has_display;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Group()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteDisplay()
-  {
-    this._has_display = false;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean getDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Method hasDisplay.
-   * 
-   * @return true if at least one Display has been added
-   */
-  public boolean hasDisplay()
-  {
-    return this._has_display;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean isDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Group implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _display.
+     */
+    private boolean _display;
+
+    /**
+     * keeps track of state for field: _display
+     */
+    private boolean _has_display;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Group() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteDisplay(
+    ) {
+        this._has_display= false;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean getDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Method hasDisplay.
+     * 
+     * @return true if at least one Display has been added
+     */
+    public boolean hasDisplay(
+    ) {
+        return this._has_display;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean isDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'display'.
+     * 
+     * @param display the value of field 'display'.
+     */
+    public void setDisplay(
+            final boolean display) {
+        this._display = display;
+        this._has_display = true;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.Group
+     */
+    public static jalview.schemabinding.version2.Group unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Group) Unmarshaller.unmarshal(jalview.schemabinding.version2.Group.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'display'.
-   * 
-   * @param display
-   *                the value of field 'display'.
-   */
-  public void setDisplay(final boolean display)
-  {
-    this._display = display;
-    this._has_display = true;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Group
-   */
-  public static jalview.schemabinding.version2.Group unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Group) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.Group.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/HiddenColumns.java b/src/jalview/schemabinding/version2/HiddenColumns.java
index 2e201c9..716bfbc 100644
--- a/src/jalview/schemabinding/version2/HiddenColumns.java
+++ b/src/jalview/schemabinding/version2/HiddenColumns.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,213 +19,198 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class HiddenColumns implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public HiddenColumns()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class HiddenColumns implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public HiddenColumns() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.HiddenColumns
+     */
+    public static jalview.schemabinding.version2.HiddenColumns unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.HiddenColumns) Unmarshaller.unmarshal(jalview.schemabinding.version2.HiddenColumns.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *                the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.HiddenColumns
-   */
-  public static jalview.schemabinding.version2.HiddenColumns unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.HiddenColumns) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.HiddenColumns.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/JGroup.java b/src/jalview/schemabinding/version2/JGroup.java
index c24533e..ca77ed2 100755
--- a/src/jalview/schemabinding/version2/JGroup.java
+++ b/src/jalview/schemabinding/version2/JGroup.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,892 +19,863 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JGroup implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _colour.
-   */
-  private java.lang.String _colour;
-
-  /**
-   * Field _consThreshold.
-   */
-  private int _consThreshold;
-
-  /**
-   * keeps track of state for field: _consThreshold
-   */
-  private boolean _has_consThreshold;
-
-  /**
-   * Field _pidThreshold.
-   */
-  private int _pidThreshold;
-
-  /**
-   * keeps track of state for field: _pidThreshold
-   */
-  private boolean _has_pidThreshold;
-
-  /**
-   * Field _outlineColour.
-   */
-  private int _outlineColour;
-
-  /**
-   * keeps track of state for field: _outlineColour
-   */
-  private boolean _has_outlineColour;
-
-  /**
-   * Field _displayBoxes.
-   */
-  private boolean _displayBoxes;
-
-  /**
-   * keeps track of state for field: _displayBoxes
-   */
-  private boolean _has_displayBoxes;
-
-  /**
-   * Field _displayText.
-   */
-  private boolean _displayText;
-
-  /**
-   * keeps track of state for field: _displayText
-   */
-  private boolean _has_displayText;
-
-  /**
-   * Field _colourText.
-   */
-  private boolean _colourText;
-
-  /**
-   * keeps track of state for field: _colourText
-   */
-  private boolean _has_colourText;
-
-  /**
-   * Field _textCol1.
-   */
-  private int _textCol1;
-
-  /**
-   * keeps track of state for field: _textCol1
-   */
-  private boolean _has_textCol1;
-
-  /**
-   * Field _textCol2.
-   */
-  private int _textCol2;
-
-  /**
-   * keeps track of state for field: _textCol2
-   */
-  private boolean _has_textCol2;
-
-  /**
-   * Field _textColThreshold.
-   */
-  private int _textColThreshold;
-
-  /**
-   * keeps track of state for field: _textColThreshold
-   */
-  private boolean _has_textColThreshold;
-
-  /**
-   * Field _seqList.
-   */
-  private java.util.Vector _seqList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JGroup()
-  {
-    super();
-    this._seqList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSeq(final java.lang.String vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._seqList.addElement(vSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSeq(final int index, final java.lang.String vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._seqList.add(index, vSeq);
-  }
-
-  /**
-   */
-  public void deleteColourText()
-  {
-    this._has_colourText = false;
-  }
-
-  /**
-   */
-  public void deleteConsThreshold()
-  {
-    this._has_consThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteDisplayBoxes()
-  {
-    this._has_displayBoxes = false;
-  }
-
-  /**
-   */
-  public void deleteDisplayText()
-  {
-    this._has_displayText = false;
-  }
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteOutlineColour()
-  {
-    this._has_outlineColour = false;
-  }
-
-  /**
-   */
-  public void deletePidThreshold()
-  {
-    this._has_pidThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   */
-  public void deleteTextCol1()
-  {
-    this._has_textCol1 = false;
-  }
-
-  /**
-   */
-  public void deleteTextCol2()
-  {
-    this._has_textCol2 = false;
-  }
-
-  /**
-   */
-  public void deleteTextColThreshold()
-  {
-    this._has_textColThreshold = false;
-  }
-
-  /**
-   * Method enumerateSeq.
-   * 
-   * @return an Enumeration over all java.lang.String elements
-   */
-  public java.util.Enumeration enumerateSeq()
-  {
-    return this._seqList.elements();
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public java.lang.String getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'colourText'.
-   * 
-   * @return the value of field 'ColourText'.
-   */
-  public boolean getColourText()
-  {
-    return this._colourText;
-  }
-
-  /**
-   * Returns the value of field 'consThreshold'.
-   * 
-   * @return the value of field 'ConsThreshold'.
-   */
-  public int getConsThreshold()
-  {
-    return this._consThreshold;
-  }
-
-  /**
-   * Returns the value of field 'displayBoxes'.
-   * 
-   * @return the value of field 'DisplayBoxes'.
-   */
-  public boolean getDisplayBoxes()
-  {
-    return this._displayBoxes;
-  }
-
-  /**
-   * Returns the value of field 'displayText'.
-   * 
-   * @return the value of field 'DisplayText'.
-   */
-  public boolean getDisplayText()
-  {
-    return this._displayText;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'outlineColour'.
-   * 
-   * @return the value of field 'OutlineColour'.
-   */
-  public int getOutlineColour()
-  {
-    return this._outlineColour;
-  }
-
-  /**
-   * Returns the value of field 'pidThreshold'.
-   * 
-   * @return the value of field 'PidThreshold'.
-   */
-  public int getPidThreshold()
-  {
-    return this._pidThreshold;
-  }
-
-  /**
-   * Method getSeq.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the java.lang.String at the given index
-   */
-  public java.lang.String getSeq(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._seqList.size())
-    {
-      throw new IndexOutOfBoundsException("getSeq: Index value '" + index
-              + "' not in range [0.." + (this._seqList.size() - 1) + "]");
-    }
-
-    return (java.lang.String) _seqList.get(index);
-  }
-
-  /**
-   * Method getSeq.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public java.lang.String[] getSeq()
-  {
-    java.lang.String[] array = new java.lang.String[0];
-    return (java.lang.String[]) this._seqList.toArray(array);
-  }
-
-  /**
-   * Method getSeqCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSeqCount()
-  {
-    return this._seqList.size();
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Returns the value of field 'textCol1'.
-   * 
-   * @return the value of field 'TextCol1'.
-   */
-  public int getTextCol1()
-  {
-    return this._textCol1;
-  }
-
-  /**
-   * Returns the value of field 'textCol2'.
-   * 
-   * @return the value of field 'TextCol2'.
-   */
-  public int getTextCol2()
-  {
-    return this._textCol2;
-  }
-
-  /**
-   * Returns the value of field 'textColThreshold'.
-   * 
-   * @return the value of field 'TextColThreshold'.
-   */
-  public int getTextColThreshold()
-  {
-    return this._textColThreshold;
-  }
-
-  /**
-   * Method hasColourText.
-   * 
-   * @return true if at least one ColourText has been added
-   */
-  public boolean hasColourText()
-  {
-    return this._has_colourText;
-  }
-
-  /**
-   * Method hasConsThreshold.
-   * 
-   * @return true if at least one ConsThreshold has been added
-   */
-  public boolean hasConsThreshold()
-  {
-    return this._has_consThreshold;
-  }
-
-  /**
-   * Method hasDisplayBoxes.
-   * 
-   * @return true if at least one DisplayBoxes has been added
-   */
-  public boolean hasDisplayBoxes()
-  {
-    return this._has_displayBoxes;
-  }
-
-  /**
-   * Method hasDisplayText.
-   * 
-   * @return true if at least one DisplayText has been added
-   */
-  public boolean hasDisplayText()
-  {
-    return this._has_displayText;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasOutlineColour.
-   * 
-   * @return true if at least one OutlineColour has been added
-   */
-  public boolean hasOutlineColour()
-  {
-    return this._has_outlineColour;
-  }
-
-  /**
-   * Method hasPidThreshold.
-   * 
-   * @return true if at least one PidThreshold has been added
-   */
-  public boolean hasPidThreshold()
-  {
-    return this._has_pidThreshold;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Method hasTextCol1.
-   * 
-   * @return true if at least one TextCol1 has been added
-   */
-  public boolean hasTextCol1()
-  {
-    return this._has_textCol1;
-  }
-
-  /**
-   * Method hasTextCol2.
-   * 
-   * @return true if at least one TextCol2 has been added
-   */
-  public boolean hasTextCol2()
-  {
-    return this._has_textCol2;
-  }
-
-  /**
-   * Method hasTextColThreshold.
-   * 
-   * @return true if at least one TextColThreshold has been added
-   */
-  public boolean hasTextColThreshold()
-  {
-    return this._has_textColThreshold;
-  }
-
-  /**
-   * Returns the value of field 'colourText'.
-   * 
-   * @return the value of field 'ColourText'.
-   */
-  public boolean isColourText()
-  {
-    return this._colourText;
-  }
-
-  /**
-   * Returns the value of field 'displayBoxes'.
-   * 
-   * @return the value of field 'DisplayBoxes'.
-   */
-  public boolean isDisplayBoxes()
-  {
-    return this._displayBoxes;
-  }
-
-  /**
-   * Returns the value of field 'displayText'.
-   * 
-   * @return the value of field 'DisplayText'.
-   */
-  public boolean isDisplayText()
-  {
-    return this._displayText;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllSeq()
-  {
-    this._seqList.clear();
-  }
-
-  /**
-   * Method removeSeq.
-   * 
-   * @param vSeq
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSeq(final java.lang.String vSeq)
-  {
-    boolean removed = _seqList.remove(vSeq);
-    return removed;
-  }
-
-  /**
-   * Method removeSeqAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public java.lang.String removeSeqAt(final int index)
-  {
-    java.lang.Object obj = this._seqList.remove(index);
-    return (java.lang.String) obj;
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final java.lang.String colour)
-  {
-    this._colour = colour;
-  }
-
-  /**
-   * Sets the value of field 'colourText'.
-   * 
-   * @param colourText
-   *                the value of field 'colourText'.
-   */
-  public void setColourText(final boolean colourText)
-  {
-    this._colourText = colourText;
-    this._has_colourText = true;
-  }
-
-  /**
-   * Sets the value of field 'consThreshold'.
-   * 
-   * @param consThreshold
-   *                the value of field 'consThreshold'.
-   */
-  public void setConsThreshold(final int consThreshold)
-  {
-    this._consThreshold = consThreshold;
-    this._has_consThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'displayBoxes'.
-   * 
-   * @param displayBoxes
-   *                the value of field 'displayBoxes'.
-   */
-  public void setDisplayBoxes(final boolean displayBoxes)
-  {
-    this._displayBoxes = displayBoxes;
-    this._has_displayBoxes = true;
-  }
-
-  /**
-   * Sets the value of field 'displayText'.
-   * 
-   * @param displayText
-   *                the value of field 'displayText'.
-   */
-  public void setDisplayText(final boolean displayText)
-  {
-    this._displayText = displayText;
-    this._has_displayText = true;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'outlineColour'.
-   * 
-   * @param outlineColour
-   *                the value of field 'outlineColour'.
-   */
-  public void setOutlineColour(final int outlineColour)
-  {
-    this._outlineColour = outlineColour;
-    this._has_outlineColour = true;
-  }
-
-  /**
-   * Sets the value of field 'pidThreshold'.
-   * 
-   * @param pidThreshold
-   *                the value of field 'pidThreshold'.
-   */
-  public void setPidThreshold(final int pidThreshold)
-  {
-    this._pidThreshold = pidThreshold;
-    this._has_pidThreshold = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSeq(final int index, final java.lang.String vSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._seqList.size())
-    {
-      throw new IndexOutOfBoundsException("setSeq: Index value '" + index
-              + "' not in range [0.." + (this._seqList.size() - 1) + "]");
-    }
-
-    this._seqList.set(index, vSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSeqArray
-   */
-  public void setSeq(final java.lang.String[] vSeqArray)
-  {
-    // -- copy array
-    _seqList.clear();
-
-    for (int i = 0; i < vSeqArray.length; i++)
-    {
-      this._seqList.add(vSeqArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *                the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Sets the value of field 'textCol1'.
-   * 
-   * @param textCol1
-   *                the value of field 'textCol1'.
-   */
-  public void setTextCol1(final int textCol1)
-  {
-    this._textCol1 = textCol1;
-    this._has_textCol1 = true;
-  }
-
-  /**
-   * Sets the value of field 'textCol2'.
-   * 
-   * @param textCol2
-   *                the value of field 'textCol2'.
-   */
-  public void setTextCol2(final int textCol2)
-  {
-    this._textCol2 = textCol2;
-    this._has_textCol2 = true;
-  }
-
-  /**
-   * Sets the value of field 'textColThreshold'.
-   * 
-   * @param textColThreshold
-   *                the value of field 'textColThreshold'
-   */
-  public void setTextColThreshold(final int textColThreshold)
-  {
-    this._textColThreshold = textColThreshold;
-    this._has_textColThreshold = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.JGroup
-   */
-  public static jalview.schemabinding.version2.JGroup unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.JGroup) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.JGroup.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JGroup implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _colour.
+     */
+    private java.lang.String _colour;
+
+    /**
+     * Field _consThreshold.
+     */
+    private int _consThreshold;
+
+    /**
+     * keeps track of state for field: _consThreshold
+     */
+    private boolean _has_consThreshold;
+
+    /**
+     * Field _pidThreshold.
+     */
+    private int _pidThreshold;
+
+    /**
+     * keeps track of state for field: _pidThreshold
+     */
+    private boolean _has_pidThreshold;
+
+    /**
+     * Field _outlineColour.
+     */
+    private int _outlineColour;
+
+    /**
+     * keeps track of state for field: _outlineColour
+     */
+    private boolean _has_outlineColour;
+
+    /**
+     * Field _displayBoxes.
+     */
+    private boolean _displayBoxes;
+
+    /**
+     * keeps track of state for field: _displayBoxes
+     */
+    private boolean _has_displayBoxes;
+
+    /**
+     * Field _displayText.
+     */
+    private boolean _displayText;
+
+    /**
+     * keeps track of state for field: _displayText
+     */
+    private boolean _has_displayText;
+
+    /**
+     * Field _colourText.
+     */
+    private boolean _colourText;
+
+    /**
+     * keeps track of state for field: _colourText
+     */
+    private boolean _has_colourText;
+
+    /**
+     * Field _textCol1.
+     */
+    private int _textCol1;
+
+    /**
+     * keeps track of state for field: _textCol1
+     */
+    private boolean _has_textCol1;
+
+    /**
+     * Field _textCol2.
+     */
+    private int _textCol2;
+
+    /**
+     * keeps track of state for field: _textCol2
+     */
+    private boolean _has_textCol2;
+
+    /**
+     * Field _textColThreshold.
+     */
+    private int _textColThreshold;
+
+    /**
+     * keeps track of state for field: _textColThreshold
+     */
+    private boolean _has_textColThreshold;
+
+    /**
+     * Field _seqList.
+     */
+    private java.util.Vector _seqList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JGroup() {
+        super();
+        this._seqList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSeq(
+            final java.lang.String vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._seqList.addElement(vSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSeq(
+            final int index,
+            final java.lang.String vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._seqList.add(index, vSeq);
+    }
+
+    /**
+     */
+    public void deleteColourText(
+    ) {
+        this._has_colourText= false;
+    }
+
+    /**
+     */
+    public void deleteConsThreshold(
+    ) {
+        this._has_consThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteDisplayBoxes(
+    ) {
+        this._has_displayBoxes= false;
+    }
+
+    /**
+     */
+    public void deleteDisplayText(
+    ) {
+        this._has_displayText= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteOutlineColour(
+    ) {
+        this._has_outlineColour= false;
+    }
+
+    /**
+     */
+    public void deletePidThreshold(
+    ) {
+        this._has_pidThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     */
+    public void deleteTextCol1(
+    ) {
+        this._has_textCol1= false;
+    }
+
+    /**
+     */
+    public void deleteTextCol2(
+    ) {
+        this._has_textCol2= false;
+    }
+
+    /**
+     */
+    public void deleteTextColThreshold(
+    ) {
+        this._has_textColThreshold= false;
+    }
+
+    /**
+     * Method enumerateSeq.
+     * 
+     * @return an Enumeration over all java.lang.String elements
+     */
+    public java.util.Enumeration enumerateSeq(
+    ) {
+        return this._seqList.elements();
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public java.lang.String getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'colourText'.
+     * 
+     * @return the value of field 'ColourText'.
+     */
+    public boolean getColourText(
+    ) {
+        return this._colourText;
+    }
+
+    /**
+     * Returns the value of field 'consThreshold'.
+     * 
+     * @return the value of field 'ConsThreshold'.
+     */
+    public int getConsThreshold(
+    ) {
+        return this._consThreshold;
+    }
+
+    /**
+     * Returns the value of field 'displayBoxes'.
+     * 
+     * @return the value of field 'DisplayBoxes'.
+     */
+    public boolean getDisplayBoxes(
+    ) {
+        return this._displayBoxes;
+    }
+
+    /**
+     * Returns the value of field 'displayText'.
+     * 
+     * @return the value of field 'DisplayText'.
+     */
+    public boolean getDisplayText(
+    ) {
+        return this._displayText;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'outlineColour'.
+     * 
+     * @return the value of field 'OutlineColour'.
+     */
+    public int getOutlineColour(
+    ) {
+        return this._outlineColour;
+    }
+
+    /**
+     * Returns the value of field 'pidThreshold'.
+     * 
+     * @return the value of field 'PidThreshold'.
+     */
+    public int getPidThreshold(
+    ) {
+        return this._pidThreshold;
+    }
+
+    /**
+     * Method getSeq.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the java.lang.String at the given index
+     */
+    public java.lang.String getSeq(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._seqList.size()) {
+            throw new IndexOutOfBoundsException("getSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+        }
+        
+        return (java.lang.String) _seqList.get(index);
+    }
+
+    /**
+     * Method getSeq.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public java.lang.String[] getSeq(
+    ) {
+        java.lang.String[] array = new java.lang.String[0];
+        return (java.lang.String[]) this._seqList.toArray(array);
+    }
+
+    /**
+     * Method getSeqCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSeqCount(
+    ) {
+        return this._seqList.size();
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Returns the value of field 'textCol1'.
+     * 
+     * @return the value of field 'TextCol1'.
+     */
+    public int getTextCol1(
+    ) {
+        return this._textCol1;
+    }
+
+    /**
+     * Returns the value of field 'textCol2'.
+     * 
+     * @return the value of field 'TextCol2'.
+     */
+    public int getTextCol2(
+    ) {
+        return this._textCol2;
+    }
+
+    /**
+     * Returns the value of field 'textColThreshold'.
+     * 
+     * @return the value of field 'TextColThreshold'.
+     */
+    public int getTextColThreshold(
+    ) {
+        return this._textColThreshold;
+    }
+
+    /**
+     * Method hasColourText.
+     * 
+     * @return true if at least one ColourText has been added
+     */
+    public boolean hasColourText(
+    ) {
+        return this._has_colourText;
+    }
+
+    /**
+     * Method hasConsThreshold.
+     * 
+     * @return true if at least one ConsThreshold has been added
+     */
+    public boolean hasConsThreshold(
+    ) {
+        return this._has_consThreshold;
+    }
+
+    /**
+     * Method hasDisplayBoxes.
+     * 
+     * @return true if at least one DisplayBoxes has been added
+     */
+    public boolean hasDisplayBoxes(
+    ) {
+        return this._has_displayBoxes;
+    }
+
+    /**
+     * Method hasDisplayText.
+     * 
+     * @return true if at least one DisplayText has been added
+     */
+    public boolean hasDisplayText(
+    ) {
+        return this._has_displayText;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasOutlineColour.
+     * 
+     * @return true if at least one OutlineColour has been added
+     */
+    public boolean hasOutlineColour(
+    ) {
+        return this._has_outlineColour;
+    }
+
+    /**
+     * Method hasPidThreshold.
+     * 
+     * @return true if at least one PidThreshold has been added
+     */
+    public boolean hasPidThreshold(
+    ) {
+        return this._has_pidThreshold;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Method hasTextCol1.
+     * 
+     * @return true if at least one TextCol1 has been added
+     */
+    public boolean hasTextCol1(
+    ) {
+        return this._has_textCol1;
+    }
+
+    /**
+     * Method hasTextCol2.
+     * 
+     * @return true if at least one TextCol2 has been added
+     */
+    public boolean hasTextCol2(
+    ) {
+        return this._has_textCol2;
+    }
+
+    /**
+     * Method hasTextColThreshold.
+     * 
+     * @return true if at least one TextColThreshold has been added
+     */
+    public boolean hasTextColThreshold(
+    ) {
+        return this._has_textColThreshold;
+    }
+
+    /**
+     * Returns the value of field 'colourText'.
+     * 
+     * @return the value of field 'ColourText'.
+     */
+    public boolean isColourText(
+    ) {
+        return this._colourText;
+    }
+
+    /**
+     * Returns the value of field 'displayBoxes'.
+     * 
+     * @return the value of field 'DisplayBoxes'.
+     */
+    public boolean isDisplayBoxes(
+    ) {
+        return this._displayBoxes;
+    }
+
+    /**
+     * Returns the value of field 'displayText'.
+     * 
+     * @return the value of field 'DisplayText'.
+     */
+    public boolean isDisplayText(
+    ) {
+        return this._displayText;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllSeq(
+    ) {
+        this._seqList.clear();
+    }
+
+    /**
+     * Method removeSeq.
+     * 
+     * @param vSeq
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSeq(
+            final java.lang.String vSeq) {
+        boolean removed = _seqList.remove(vSeq);
+        return removed;
+    }
+
+    /**
+     * Method removeSeqAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public java.lang.String removeSeqAt(
+            final int index) {
+        java.lang.Object obj = this._seqList.remove(index);
+        return (java.lang.String) obj;
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final java.lang.String colour) {
+        this._colour = colour;
+    }
+
+    /**
+     * Sets the value of field 'colourText'.
+     * 
+     * @param colourText the value of field 'colourText'.
+     */
+    public void setColourText(
+            final boolean colourText) {
+        this._colourText = colourText;
+        this._has_colourText = true;
+    }
+
+    /**
+     * Sets the value of field 'consThreshold'.
+     * 
+     * @param consThreshold the value of field 'consThreshold'.
+     */
+    public void setConsThreshold(
+            final int consThreshold) {
+        this._consThreshold = consThreshold;
+        this._has_consThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'displayBoxes'.
+     * 
+     * @param displayBoxes the value of field 'displayBoxes'.
+     */
+    public void setDisplayBoxes(
+            final boolean displayBoxes) {
+        this._displayBoxes = displayBoxes;
+        this._has_displayBoxes = true;
+    }
+
+    /**
+     * Sets the value of field 'displayText'.
+     * 
+     * @param displayText the value of field 'displayText'.
+     */
+    public void setDisplayText(
+            final boolean displayText) {
+        this._displayText = displayText;
+        this._has_displayText = true;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'outlineColour'.
+     * 
+     * @param outlineColour the value of field 'outlineColour'.
+     */
+    public void setOutlineColour(
+            final int outlineColour) {
+        this._outlineColour = outlineColour;
+        this._has_outlineColour = true;
+    }
+
+    /**
+     * Sets the value of field 'pidThreshold'.
+     * 
+     * @param pidThreshold the value of field 'pidThreshold'.
+     */
+    public void setPidThreshold(
+            final int pidThreshold) {
+        this._pidThreshold = pidThreshold;
+        this._has_pidThreshold = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSeq(
+            final int index,
+            final java.lang.String vSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._seqList.size()) {
+            throw new IndexOutOfBoundsException("setSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+        }
+        
+        this._seqList.set(index, vSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSeqArray
+     */
+    public void setSeq(
+            final java.lang.String[] vSeqArray) {
+        //-- copy array
+        _seqList.clear();
+        
+        for (int i = 0; i < vSeqArray.length; i++) {
+                this._seqList.add(vSeqArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Sets the value of field 'textCol1'.
+     * 
+     * @param textCol1 the value of field 'textCol1'.
+     */
+    public void setTextCol1(
+            final int textCol1) {
+        this._textCol1 = textCol1;
+        this._has_textCol1 = true;
+    }
+
+    /**
+     * Sets the value of field 'textCol2'.
+     * 
+     * @param textCol2 the value of field 'textCol2'.
+     */
+    public void setTextCol2(
+            final int textCol2) {
+        this._textCol2 = textCol2;
+        this._has_textCol2 = true;
+    }
+
+    /**
+     * Sets the value of field 'textColThreshold'.
+     * 
+     * @param textColThreshold the value of field 'textColThreshold'
+     */
+    public void setTextColThreshold(
+            final int textColThreshold) {
+        this._textColThreshold = textColThreshold;
+        this._has_textColThreshold = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.JGroup
+     */
+    public static jalview.schemabinding.version2.JGroup unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.JGroup) Unmarshaller.unmarshal(jalview.schemabinding.version2.JGroup.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/JSeq.java b/src/jalview/schemabinding/version2/JSeq.java
index 90bee0f..a5dc2f7 100755
--- a/src/jalview/schemabinding/version2/JSeq.java
+++ b/src/jalview/schemabinding/version2/JSeq.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,851 +19,796 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JSeq implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _hidden.
-   */
-  private boolean _hidden;
-
-  /**
-   * keeps track of state for field: _hidden
-   */
-  private boolean _has_hidden;
-
-  /**
-   * Field _featuresList.
-   */
-  private java.util.Vector _featuresList;
-
-  /**
-   * Field _pdbidsList.
-   */
-  private java.util.Vector _pdbidsList;
-
-  /**
-   * Field _hiddenSequencesList.
-   */
-  private java.util.Vector _hiddenSequencesList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JSeq()
-  {
-    super();
-    this._featuresList = new java.util.Vector();
-    this._pdbidsList = new java.util.Vector();
-    this._hiddenSequencesList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addFeatures(
-          final jalview.schemabinding.version2.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._featuresList.addElement(vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addFeatures(final int index,
-          final jalview.schemabinding.version2.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._featuresList.add(index, vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param vHiddenSequences
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addHiddenSequences(final int vHiddenSequences)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._hiddenSequencesList.addElement(new java.lang.Integer(
-            vHiddenSequences));
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vHiddenSequences
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addHiddenSequences(final int index, final int vHiddenSequences)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._hiddenSequencesList.add(index, new java.lang.Integer(
-            vHiddenSequences));
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbids(final jalview.schemabinding.version2.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._pdbidsList.addElement(vPdbids);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbids(final int index,
-          final jalview.schemabinding.version2.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._pdbidsList.add(index, vPdbids);
-  }
-
-  /**
-   */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteHidden()
-  {
-    this._has_hidden = false;
-  }
-
-  /**
-   */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Method enumerateFeatures.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Features
-   *         elements
-   */
-  public java.util.Enumeration enumerateFeatures()
-  {
-    return this._featuresList.elements();
-  }
-
-  /**
-   * Method enumerateHiddenSequences.
-   * 
-   * @return an Enumeration over all int elements
-   */
-  public java.util.Enumeration enumerateHiddenSequences()
-  {
-    return this._hiddenSequencesList.elements();
-  }
-
-  /**
-   * Method enumeratePdbids.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Pdbids
-   *         elements
-   */
-  public java.util.Enumeration enumeratePdbids()
-  {
-    return this._pdbidsList.elements();
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Method getFeatures.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Features at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.Features getFeatures(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._featuresList.size())
-    {
-      throw new IndexOutOfBoundsException("getFeatures: Index value '"
-              + index + "' not in range [0.."
-              + (this._featuresList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.Features) _featuresList
-            .get(index);
-  }
-
-  /**
-   * Method getFeatures.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Features[] getFeatures()
-  {
-    jalview.schemabinding.version2.Features[] array = new jalview.schemabinding.version2.Features[0];
-    return (jalview.schemabinding.version2.Features[]) this._featuresList
-            .toArray(array);
-  }
-
-  /**
-   * Method getFeaturesCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getFeaturesCount()
-  {
-    return this._featuresList.size();
-  }
-
-  /**
-   * Returns the value of field 'hidden'.
-   * 
-   * @return the value of field 'Hidden'.
-   */
-  public boolean getHidden()
-  {
-    return this._hidden;
-  }
-
-  /**
-   * Method getHiddenSequences.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the int at the given index
-   */
-  public int getHiddenSequences(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._hiddenSequencesList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "getHiddenSequences: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._hiddenSequencesList.size() - 1) + "]");
-    }
-
-    return ((java.lang.Integer) _hiddenSequencesList.get(index)).intValue();
-  }
-
-  /**
-   * Method getHiddenSequences.Returns the contents of the collection in an
-   * Array.
-   * 
-   * @return this collection as an Array
-   */
-  public int[] getHiddenSequences()
-  {
-    int size = this._hiddenSequencesList.size();
-    int[] array = new int[size];
-    java.util.Iterator iter = _hiddenSequencesList.iterator();
-    for (int index = 0; index < size; index++)
-    {
-      array[index] = ((java.lang.Integer) iter.next()).intValue();
-    }
-    return array;
-  }
-
-  /**
-   * Method getHiddenSequencesCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getHiddenSequencesCount()
-  {
-    return this._hiddenSequencesList.size();
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Method getPdbids.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Pdbids at the given
-   *         index
-   */
-  public jalview.schemabinding.version2.Pdbids getPdbids(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._pdbidsList.size())
-    {
-      throw new IndexOutOfBoundsException("getPdbids: Index value '"
-              + index + "' not in range [0.."
-              + (this._pdbidsList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.Pdbids) _pdbidsList.get(index);
-  }
-
-  /**
-   * Method getPdbids.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Pdbids[] getPdbids()
-  {
-    jalview.schemabinding.version2.Pdbids[] array = new jalview.schemabinding.version2.Pdbids[0];
-    return (jalview.schemabinding.version2.Pdbids[]) this._pdbidsList
-            .toArray(array);
-  }
-
-  /**
-   * Method getPdbidsCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPdbidsCount()
-  {
-    return this._pdbidsList.size();
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasHidden.
-   * 
-   * @return true if at least one Hidden has been added
-   */
-  public boolean hasHidden()
-  {
-    return this._has_hidden;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Returns the value of field 'hidden'.
-   * 
-   * @return the value of field 'Hidden'.
-   */
-  public boolean isHidden()
-  {
-    return this._hidden;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllFeatures()
-  {
-    this._featuresList.clear();
-  }
-
-  /**
-   */
-  public void removeAllHiddenSequences()
-  {
-    this._hiddenSequencesList.clear();
-  }
-
-  /**
-   */
-  public void removeAllPdbids()
-  {
-    this._pdbidsList.clear();
-  }
-
-  /**
-   * Method removeFeatures.
-   * 
-   * @param vFeatures
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeFeatures(
-          final jalview.schemabinding.version2.Features vFeatures)
-  {
-    boolean removed = _featuresList.remove(vFeatures);
-    return removed;
-  }
-
-  /**
-   * Method removeFeaturesAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Features removeFeaturesAt(
-          final int index)
-  {
-    java.lang.Object obj = this._featuresList.remove(index);
-    return (jalview.schemabinding.version2.Features) obj;
-  }
-
-  /**
-   * Method removeHiddenSequences.
-   * 
-   * @param vHiddenSequences
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeHiddenSequences(final int vHiddenSequences)
-  {
-    boolean removed = _hiddenSequencesList.remove(new java.lang.Integer(
-            vHiddenSequences));
-    return removed;
-  }
-
-  /**
-   * Method removeHiddenSequencesAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public int removeHiddenSequencesAt(final int index)
-  {
-    java.lang.Object obj = this._hiddenSequencesList.remove(index);
-    return ((java.lang.Integer) obj).intValue();
-  }
-
-  /**
-   * Method removePdbids.
-   * 
-   * @param vPdbids
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removePdbids(
-          final jalview.schemabinding.version2.Pdbids vPdbids)
-  {
-    boolean removed = _pdbidsList.remove(vPdbids);
-    return removed;
-  }
-
-  /**
-   * Method removePdbidsAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Pdbids removePdbidsAt(
-          final int index)
-  {
-    java.lang.Object obj = this._pdbidsList.remove(index);
-    return (jalview.schemabinding.version2.Pdbids) obj;
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vFeatures
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setFeatures(final int index,
-          final jalview.schemabinding.version2.Features vFeatures)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._featuresList.size())
-    {
-      throw new IndexOutOfBoundsException("setFeatures: Index value '"
-              + index + "' not in range [0.."
-              + (this._featuresList.size() - 1) + "]");
-    }
-
-    this._featuresList.set(index, vFeatures);
-  }
-
-  /**
-   * 
-   * 
-   * @param vFeaturesArray
-   */
-  public void setFeatures(
-          final jalview.schemabinding.version2.Features[] vFeaturesArray)
-  {
-    // -- copy array
-    _featuresList.clear();
-
-    for (int i = 0; i < vFeaturesArray.length; i++)
-    {
-      this._featuresList.add(vFeaturesArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'hidden'.
-   * 
-   * @param hidden
-   *                the value of field 'hidden'.
-   */
-  public void setHidden(final boolean hidden)
-  {
-    this._hidden = hidden;
-    this._has_hidden = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vHiddenSequences
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setHiddenSequences(final int index, final int vHiddenSequences)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._hiddenSequencesList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "setHiddenSequences: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._hiddenSequencesList.size() - 1) + "]");
-    }
-
-    this._hiddenSequencesList.set(index, new java.lang.Integer(
-            vHiddenSequences));
-  }
-
-  /**
-   * 
-   * 
-   * @param vHiddenSequencesArray
-   */
-  public void setHiddenSequences(final int[] vHiddenSequencesArray)
-  {
-    // -- copy array
-    _hiddenSequencesList.clear();
-
-    for (int i = 0; i < vHiddenSequencesArray.length; i++)
-    {
-      this._hiddenSequencesList.add(new java.lang.Integer(
-              vHiddenSequencesArray[i]));
-    }
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbids
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setPdbids(final int index,
-          final jalview.schemabinding.version2.Pdbids vPdbids)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._pdbidsList.size())
-    {
-      throw new IndexOutOfBoundsException("setPdbids: Index value '"
-              + index + "' not in range [0.."
-              + (this._pdbidsList.size() - 1) + "]");
-    }
-
-    this._pdbidsList.set(index, vPdbids);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbidsArray
-   */
-  public void setPdbids(
-          final jalview.schemabinding.version2.Pdbids[] vPdbidsArray)
-  {
-    // -- copy array
-    _pdbidsList.clear();
-
-    for (int i = 0; i < vPdbidsArray.length; i++)
-    {
-      this._pdbidsList.add(vPdbidsArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *                the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.JSeq
-   */
-  public static jalview.schemabinding.version2.JSeq unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.JSeq) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.JSeq.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JSeq implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _hidden.
+     */
+    private boolean _hidden;
+
+    /**
+     * keeps track of state for field: _hidden
+     */
+    private boolean _has_hidden;
+
+    /**
+     * Field _featuresList.
+     */
+    private java.util.Vector _featuresList;
+
+    /**
+     * Field _pdbidsList.
+     */
+    private java.util.Vector _pdbidsList;
+
+    /**
+     * Field _hiddenSequencesList.
+     */
+    private java.util.Vector _hiddenSequencesList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JSeq() {
+        super();
+        this._featuresList = new java.util.Vector();
+        this._pdbidsList = new java.util.Vector();
+        this._hiddenSequencesList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addFeatures(
+            final jalview.schemabinding.version2.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        this._featuresList.addElement(vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addFeatures(
+            final int index,
+            final jalview.schemabinding.version2.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        this._featuresList.add(index, vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param vHiddenSequences
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addHiddenSequences(
+            final int vHiddenSequences)
+    throws java.lang.IndexOutOfBoundsException {
+        this._hiddenSequencesList.addElement(new java.lang.Integer(vHiddenSequences));
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vHiddenSequences
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addHiddenSequences(
+            final int index,
+            final int vHiddenSequences)
+    throws java.lang.IndexOutOfBoundsException {
+        this._hiddenSequencesList.add(index, new java.lang.Integer(vHiddenSequences));
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbids(
+            final jalview.schemabinding.version2.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        this._pdbidsList.addElement(vPdbids);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbids(
+            final int index,
+            final jalview.schemabinding.version2.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        this._pdbidsList.add(index, vPdbids);
+    }
+
+    /**
+     */
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteHidden(
+    ) {
+        this._has_hidden= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Method enumerateFeatures.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Features elements
+     */
+    public java.util.Enumeration enumerateFeatures(
+    ) {
+        return this._featuresList.elements();
+    }
+
+    /**
+     * Method enumerateHiddenSequences.
+     * 
+     * @return an Enumeration over all int elements
+     */
+    public java.util.Enumeration enumerateHiddenSequences(
+    ) {
+        return this._hiddenSequencesList.elements();
+    }
+
+    /**
+     * Method enumeratePdbids.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Pdbids elements
+     */
+    public java.util.Enumeration enumeratePdbids(
+    ) {
+        return this._pdbidsList.elements();
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Method getFeatures.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Features at the given index
+     */
+    public jalview.schemabinding.version2.Features getFeatures(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._featuresList.size()) {
+            throw new IndexOutOfBoundsException("getFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Features) _featuresList.get(index);
+    }
+
+    /**
+     * Method getFeatures.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Features[] getFeatures(
+    ) {
+        jalview.schemabinding.version2.Features[] array = new jalview.schemabinding.version2.Features[0];
+        return (jalview.schemabinding.version2.Features[]) this._featuresList.toArray(array);
+    }
+
+    /**
+     * Method getFeaturesCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getFeaturesCount(
+    ) {
+        return this._featuresList.size();
+    }
+
+    /**
+     * Returns the value of field 'hidden'.
+     * 
+     * @return the value of field 'Hidden'.
+     */
+    public boolean getHidden(
+    ) {
+        return this._hidden;
+    }
+
+    /**
+     * Method getHiddenSequences.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the int at the given index
+     */
+    public int getHiddenSequences(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._hiddenSequencesList.size()) {
+            throw new IndexOutOfBoundsException("getHiddenSequences: Index value '" + index + "' not in range [0.." + (this._hiddenSequencesList.size() - 1) + "]");
+        }
+        
+        return ((java.lang.Integer) _hiddenSequencesList.get(index)).intValue();
+    }
+
+    /**
+     * Method getHiddenSequences.Returns the contents of the
+     * collection in an Array.  
+     * 
+     * @return this collection as an Array
+     */
+    public int[] getHiddenSequences(
+    ) {
+        int size = this._hiddenSequencesList.size();
+        int[] array = new int[size];
+        java.util.Iterator iter = _hiddenSequencesList.iterator();
+        for (int index = 0; index < size; index++) {
+            array[index] = ((java.lang.Integer) iter.next()).intValue();
+        }
+        return array;
+    }
+
+    /**
+     * Method getHiddenSequencesCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getHiddenSequencesCount(
+    ) {
+        return this._hiddenSequencesList.size();
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Method getPdbids.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Pdbids at the given index
+     */
+    public jalview.schemabinding.version2.Pdbids getPdbids(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._pdbidsList.size()) {
+            throw new IndexOutOfBoundsException("getPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Pdbids) _pdbidsList.get(index);
+    }
+
+    /**
+     * Method getPdbids.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Pdbids[] getPdbids(
+    ) {
+        jalview.schemabinding.version2.Pdbids[] array = new jalview.schemabinding.version2.Pdbids[0];
+        return (jalview.schemabinding.version2.Pdbids[]) this._pdbidsList.toArray(array);
+    }
+
+    /**
+     * Method getPdbidsCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPdbidsCount(
+    ) {
+        return this._pdbidsList.size();
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasHidden.
+     * 
+     * @return true if at least one Hidden has been added
+     */
+    public boolean hasHidden(
+    ) {
+        return this._has_hidden;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Returns the value of field 'hidden'.
+     * 
+     * @return the value of field 'Hidden'.
+     */
+    public boolean isHidden(
+    ) {
+        return this._hidden;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllFeatures(
+    ) {
+        this._featuresList.clear();
+    }
+
+    /**
+     */
+    public void removeAllHiddenSequences(
+    ) {
+        this._hiddenSequencesList.clear();
+    }
+
+    /**
+     */
+    public void removeAllPdbids(
+    ) {
+        this._pdbidsList.clear();
+    }
+
+    /**
+     * Method removeFeatures.
+     * 
+     * @param vFeatures
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeFeatures(
+            final jalview.schemabinding.version2.Features vFeatures) {
+        boolean removed = _featuresList.remove(vFeatures);
+        return removed;
+    }
+
+    /**
+     * Method removeFeaturesAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Features removeFeaturesAt(
+            final int index) {
+        java.lang.Object obj = this._featuresList.remove(index);
+        return (jalview.schemabinding.version2.Features) obj;
+    }
+
+    /**
+     * Method removeHiddenSequences.
+     * 
+     * @param vHiddenSequences
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeHiddenSequences(
+            final int vHiddenSequences) {
+        boolean removed = _hiddenSequencesList.remove(new java.lang.Integer(vHiddenSequences));
+        return removed;
+    }
+
+    /**
+     * Method removeHiddenSequencesAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public int removeHiddenSequencesAt(
+            final int index) {
+        java.lang.Object obj = this._hiddenSequencesList.remove(index);
+        return ((java.lang.Integer) obj).intValue();
+    }
+
+    /**
+     * Method removePdbids.
+     * 
+     * @param vPdbids
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removePdbids(
+            final jalview.schemabinding.version2.Pdbids vPdbids) {
+        boolean removed = _pdbidsList.remove(vPdbids);
+        return removed;
+    }
+
+    /**
+     * Method removePdbidsAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Pdbids removePdbidsAt(
+            final int index) {
+        java.lang.Object obj = this._pdbidsList.remove(index);
+        return (jalview.schemabinding.version2.Pdbids) obj;
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vFeatures
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setFeatures(
+            final int index,
+            final jalview.schemabinding.version2.Features vFeatures)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._featuresList.size()) {
+            throw new IndexOutOfBoundsException("setFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+        }
+        
+        this._featuresList.set(index, vFeatures);
+    }
+
+    /**
+     * 
+     * 
+     * @param vFeaturesArray
+     */
+    public void setFeatures(
+            final jalview.schemabinding.version2.Features[] vFeaturesArray) {
+        //-- copy array
+        _featuresList.clear();
+        
+        for (int i = 0; i < vFeaturesArray.length; i++) {
+                this._featuresList.add(vFeaturesArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'hidden'.
+     * 
+     * @param hidden the value of field 'hidden'.
+     */
+    public void setHidden(
+            final boolean hidden) {
+        this._hidden = hidden;
+        this._has_hidden = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vHiddenSequences
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setHiddenSequences(
+            final int index,
+            final int vHiddenSequences)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._hiddenSequencesList.size()) {
+            throw new IndexOutOfBoundsException("setHiddenSequences: Index value '" + index + "' not in range [0.." + (this._hiddenSequencesList.size() - 1) + "]");
+        }
+        
+        this._hiddenSequencesList.set(index, new java.lang.Integer(vHiddenSequences));
+    }
+
+    /**
+     * 
+     * 
+     * @param vHiddenSequencesArray
+     */
+    public void setHiddenSequences(
+            final int[] vHiddenSequencesArray) {
+        //-- copy array
+        _hiddenSequencesList.clear();
+        
+        for (int i = 0; i < vHiddenSequencesArray.length; i++) {
+                this._hiddenSequencesList.add(new java.lang.Integer(vHiddenSequencesArray[i]));
+        }
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbids
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setPdbids(
+            final int index,
+            final jalview.schemabinding.version2.Pdbids vPdbids)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._pdbidsList.size()) {
+            throw new IndexOutOfBoundsException("setPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+        }
+        
+        this._pdbidsList.set(index, vPdbids);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbidsArray
+     */
+    public void setPdbids(
+            final jalview.schemabinding.version2.Pdbids[] vPdbidsArray) {
+        //-- copy array
+        _pdbidsList.clear();
+        
+        for (int i = 0; i < vPdbidsArray.length; i++) {
+                this._pdbidsList.add(vPdbidsArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.JSeq
+     */
+    public static jalview.schemabinding.version2.JSeq unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.JSeq) Unmarshaller.unmarshal(jalview.schemabinding.version2.JSeq.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/JalviewModel.java b/src/jalview/schemabinding/version2/JalviewModel.java
index 9c7fead..f7e049a 100755
--- a/src/jalview/schemabinding/version2/JalviewModel.java
+++ b/src/jalview/schemabinding/version2/JalviewModel.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,221 +19,203 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModel implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _creationDate.
-   */
-  private java.util.Date _creationDate;
-
-  /**
-   * Field _version.
-   */
-  private java.lang.String _version;
-
-  /**
-   * Field _vamsasModel.
-   */
-  private jalview.schemabinding.version2.VamsasModel _vamsasModel;
-
-  /**
-   * Field _jalviewModelSequence.
-   */
-  private jalview.schemabinding.version2.JalviewModelSequence _jalviewModelSequence;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModel()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'creationDate'.
-   * 
-   * @return the value of field 'CreationDate'.
-   */
-  public java.util.Date getCreationDate()
-  {
-    return this._creationDate;
-  }
-
-  /**
-   * Returns the value of field 'jalviewModelSequence'.
-   * 
-   * @return the value of field 'JalviewModelSequence'.
-   */
-  public jalview.schemabinding.version2.JalviewModelSequence getJalviewModelSequence()
-  {
-    return this._jalviewModelSequence;
-  }
-
-  /**
-   * Returns the value of field 'vamsasModel'.
-   * 
-   * @return the value of field 'VamsasModel'.
-   */
-  public jalview.schemabinding.version2.VamsasModel getVamsasModel()
-  {
-    return this._vamsasModel;
-  }
-
-  /**
-   * Returns the value of field 'version'.
-   * 
-   * @return the value of field 'Version'.
-   */
-  public java.lang.String getVersion()
-  {
-    return this._version;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class JalviewModel implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _creationDate.
+     */
+    private java.util.Date _creationDate;
+
+    /**
+     * Field _version.
+     */
+    private java.lang.String _version;
+
+    /**
+     * Field _vamsasModel.
+     */
+    private jalview.schemabinding.version2.VamsasModel _vamsasModel;
+
+    /**
+     * Field _jalviewModelSequence.
+     */
+    private jalview.schemabinding.version2.JalviewModelSequence _jalviewModelSequence;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModel() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'creationDate'.
+     * 
+     * @return the value of field 'CreationDate'.
+     */
+    public java.util.Date getCreationDate(
+    ) {
+        return this._creationDate;
+    }
+
+    /**
+     * Returns the value of field 'jalviewModelSequence'.
+     * 
+     * @return the value of field 'JalviewModelSequence'.
+     */
+    public jalview.schemabinding.version2.JalviewModelSequence getJalviewModelSequence(
+    ) {
+        return this._jalviewModelSequence;
+    }
+
+    /**
+     * Returns the value of field 'vamsasModel'.
+     * 
+     * @return the value of field 'VamsasModel'.
+     */
+    public jalview.schemabinding.version2.VamsasModel getVamsasModel(
+    ) {
+        return this._vamsasModel;
+    }
+
+    /**
+     * Returns the value of field 'version'.
+     * 
+     * @return the value of field 'Version'.
+     */
+    public java.lang.String getVersion(
+    ) {
+        return this._version;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'creationDate'.
+     * 
+     * @param creationDate the value of field 'creationDate'.
+     */
+    public void setCreationDate(
+            final java.util.Date creationDate) {
+        this._creationDate = creationDate;
+    }
+
+    /**
+     * Sets the value of field 'jalviewModelSequence'.
+     * 
+     * @param jalviewModelSequence the value of field
+     * 'jalviewModelSequence'.
+     */
+    public void setJalviewModelSequence(
+            final jalview.schemabinding.version2.JalviewModelSequence jalviewModelSequence) {
+        this._jalviewModelSequence = jalviewModelSequence;
+    }
+
+    /**
+     * Sets the value of field 'vamsasModel'.
+     * 
+     * @param vamsasModel the value of field 'vamsasModel'.
+     */
+    public void setVamsasModel(
+            final jalview.schemabinding.version2.VamsasModel vamsasModel) {
+        this._vamsasModel = vamsasModel;
+    }
+
+    /**
+     * Sets the value of field 'version'.
+     * 
+     * @param version the value of field 'version'.
+     */
+    public void setVersion(
+            final java.lang.String version) {
+        this._version = version;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.JalviewModel
+     */
+    public static jalview.schemabinding.version2.JalviewModel unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.JalviewModel) Unmarshaller.unmarshal(jalview.schemabinding.version2.JalviewModel.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'creationDate'.
-   * 
-   * @param creationDate
-   *                the value of field 'creationDate'.
-   */
-  public void setCreationDate(final java.util.Date creationDate)
-  {
-    this._creationDate = creationDate;
-  }
-
-  /**
-   * Sets the value of field 'jalviewModelSequence'.
-   * 
-   * @param jalviewModelSequence
-   *                the value of field 'jalviewModelSequence'.
-   */
-  public void setJalviewModelSequence(
-          final jalview.schemabinding.version2.JalviewModelSequence jalviewModelSequence)
-  {
-    this._jalviewModelSequence = jalviewModelSequence;
-  }
-
-  /**
-   * Sets the value of field 'vamsasModel'.
-   * 
-   * @param vamsasModel
-   *                the value of field 'vamsasModel'.
-   */
-  public void setVamsasModel(
-          final jalview.schemabinding.version2.VamsasModel vamsasModel)
-  {
-    this._vamsasModel = vamsasModel;
-  }
-
-  /**
-   * Sets the value of field 'version'.
-   * 
-   * @param version
-   *                the value of field 'version'.
-   */
-  public void setVersion(final java.lang.String version)
-  {
-    this._version = version;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.JalviewModel
-   */
-  public static jalview.schemabinding.version2.JalviewModel unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.JalviewModel) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.JalviewModel.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/JalviewModelSequence.java b/src/jalview/schemabinding/version2/JalviewModelSequence.java
index 8d5cda1..cb66b37 100755
--- a/src/jalview/schemabinding/version2/JalviewModelSequence.java
+++ b/src/jalview/schemabinding/version2/JalviewModelSequence.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,972 +19,907 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModelSequence implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _JSeqList.
-   */
-  private java.util.Vector _JSeqList;
-
-  /**
-   * Field _JGroupList.
-   */
-  private java.util.Vector _JGroupList;
-
-  /**
-   * Field _viewportList.
-   */
-  private java.util.Vector _viewportList;
-
-  /**
-   * Field _userColoursList.
-   */
-  private java.util.Vector _userColoursList;
-
-  /**
-   * Field _treeList.
-   */
-  private java.util.Vector _treeList;
-
-  /**
-   * Field _featureSettings.
-   */
-  private jalview.schemabinding.version2.FeatureSettings _featureSettings;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModelSequence()
-  {
-    super();
-    this._JSeqList = new java.util.Vector();
-    this._JGroupList = new java.util.Vector();
-    this._viewportList = new java.util.Vector();
-    this._userColoursList = new java.util.Vector();
-    this._treeList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJGroup(final jalview.schemabinding.version2.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JGroupList.addElement(vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJGroup(final int index,
-          final jalview.schemabinding.version2.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JGroupList.add(index, vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJSeq(final jalview.schemabinding.version2.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JSeqList.addElement(vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addJSeq(final int index,
-          final jalview.schemabinding.version2.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._JSeqList.add(index, vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final jalview.schemabinding.version2.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.addElement(vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final int index,
-          final jalview.schemabinding.version2.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.add(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addUserColours(
-          final jalview.schemabinding.version2.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._userColoursList.addElement(vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addUserColours(final int index,
-          final jalview.schemabinding.version2.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._userColoursList.add(index, vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addViewport(
-          final jalview.schemabinding.version2.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._viewportList.addElement(vViewport);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addViewport(final int index,
-          final jalview.schemabinding.version2.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._viewportList.add(index, vViewport);
-  }
-
-  /**
-   * Method enumerateJGroup.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.JGroup
-   *         elements
-   */
-  public java.util.Enumeration enumerateJGroup()
-  {
-    return this._JGroupList.elements();
-  }
-
-  /**
-   * Method enumerateJSeq.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.JSeq
-   *         elements
-   */
-  public java.util.Enumeration enumerateJSeq()
-  {
-    return this._JSeqList.elements();
-  }
-
-  /**
-   * Method enumerateTree.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Tree
-   *         elements
-   */
-  public java.util.Enumeration enumerateTree()
-  {
-    return this._treeList.elements();
-  }
-
-  /**
-   * Method enumerateUserColours.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.UserColours
-   *         elements
-   */
-  public java.util.Enumeration enumerateUserColours()
-  {
-    return this._userColoursList.elements();
-  }
-
-  /**
-   * Method enumerateViewport.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Viewport
-   *         elements
-   */
-  public java.util.Enumeration enumerateViewport()
-  {
-    return this._viewportList.elements();
-  }
-
-  /**
-   * Returns the value of field 'featureSettings'.
-   * 
-   * @return the value of field 'FeatureSettings'.
-   */
-  public jalview.schemabinding.version2.FeatureSettings getFeatureSettings()
-  {
-    return this._featureSettings;
-  }
-
-  /**
-   * Method getJGroup.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.JGroup at the given
-   *         index
-   */
-  public jalview.schemabinding.version2.JGroup getJGroup(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JGroupList.size())
-    {
-      throw new IndexOutOfBoundsException("getJGroup: Index value '"
-              + index + "' not in range [0.."
-              + (this._JGroupList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.JGroup) _JGroupList.get(index);
-  }
-
-  /**
-   * Method getJGroup.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.JGroup[] getJGroup()
-  {
-    jalview.schemabinding.version2.JGroup[] array = new jalview.schemabinding.version2.JGroup[0];
-    return (jalview.schemabinding.version2.JGroup[]) this._JGroupList
-            .toArray(array);
-  }
-
-  /**
-   * Method getJGroupCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getJGroupCount()
-  {
-    return this._JGroupList.size();
-  }
-
-  /**
-   * Method getJSeq.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.JSeq at the given
-   *         index
-   */
-  public jalview.schemabinding.version2.JSeq getJSeq(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JSeqList.size())
-    {
-      throw new IndexOutOfBoundsException("getJSeq: Index value '" + index
-              + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.JSeq) _JSeqList.get(index);
-  }
-
-  /**
-   * Method getJSeq.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.JSeq[] getJSeq()
-  {
-    jalview.schemabinding.version2.JSeq[] array = new jalview.schemabinding.version2.JSeq[0];
-    return (jalview.schemabinding.version2.JSeq[]) this._JSeqList
-            .toArray(array);
-  }
-
-  /**
-   * Method getJSeqCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getJSeqCount()
-  {
-    return this._JSeqList.size();
-  }
-
-  /**
-   * Method getTree.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Tree at the given
-   *         index
-   */
-  public jalview.schemabinding.version2.Tree getTree(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("getTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.Tree) _treeList.get(index);
-  }
-
-  /**
-   * Method getTree.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Tree[] getTree()
-  {
-    jalview.schemabinding.version2.Tree[] array = new jalview.schemabinding.version2.Tree[0];
-    return (jalview.schemabinding.version2.Tree[]) this._treeList
-            .toArray(array);
-  }
-
-  /**
-   * Method getTreeCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getTreeCount()
-  {
-    return this._treeList.size();
-  }
-
-  /**
-   * Method getUserColours.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.UserColours at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.UserColours getUserColours(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._userColoursList.size())
-    {
-      throw new IndexOutOfBoundsException("getUserColours: Index value '"
-              + index + "' not in range [0.."
-              + (this._userColoursList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.UserColours) _userColoursList
-            .get(index);
-  }
-
-  /**
-   * Method getUserColours.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.UserColours[] getUserColours()
-  {
-    jalview.schemabinding.version2.UserColours[] array = new jalview.schemabinding.version2.UserColours[0];
-    return (jalview.schemabinding.version2.UserColours[]) this._userColoursList
-            .toArray(array);
-  }
-
-  /**
-   * Method getUserColoursCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getUserColoursCount()
-  {
-    return this._userColoursList.size();
-  }
-
-  /**
-   * Method getViewport.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Viewport at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.Viewport getViewport(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._viewportList.size())
-    {
-      throw new IndexOutOfBoundsException("getViewport: Index value '"
-              + index + "' not in range [0.."
-              + (this._viewportList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.Viewport) _viewportList
-            .get(index);
-  }
-
-  /**
-   * Method getViewport.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Viewport[] getViewport()
-  {
-    jalview.schemabinding.version2.Viewport[] array = new jalview.schemabinding.version2.Viewport[0];
-    return (jalview.schemabinding.version2.Viewport[]) this._viewportList
-            .toArray(array);
-  }
-
-  /**
-   * Method getViewportCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getViewportCount()
-  {
-    return this._viewportList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllJGroup()
-  {
-    this._JGroupList.clear();
-  }
-
-  /**
-   */
-  public void removeAllJSeq()
-  {
-    this._JSeqList.clear();
-  }
-
-  /**
-   */
-  public void removeAllTree()
-  {
-    this._treeList.clear();
-  }
-
-  /**
-   */
-  public void removeAllUserColours()
-  {
-    this._userColoursList.clear();
-  }
-
-  /**
-   */
-  public void removeAllViewport()
-  {
-    this._viewportList.clear();
-  }
-
-  /**
-   * Method removeJGroup.
-   * 
-   * @param vJGroup
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeJGroup(
-          final jalview.schemabinding.version2.JGroup vJGroup)
-  {
-    boolean removed = _JGroupList.remove(vJGroup);
-    return removed;
-  }
-
-  /**
-   * Method removeJGroupAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.JGroup removeJGroupAt(
-          final int index)
-  {
-    java.lang.Object obj = this._JGroupList.remove(index);
-    return (jalview.schemabinding.version2.JGroup) obj;
-  }
-
-  /**
-   * Method removeJSeq.
-   * 
-   * @param vJSeq
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeJSeq(final jalview.schemabinding.version2.JSeq vJSeq)
-  {
-    boolean removed = _JSeqList.remove(vJSeq);
-    return removed;
-  }
-
-  /**
-   * Method removeJSeqAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.JSeq removeJSeqAt(final int index)
-  {
-    java.lang.Object obj = this._JSeqList.remove(index);
-    return (jalview.schemabinding.version2.JSeq) obj;
-  }
-
-  /**
-   * Method removeTree.
-   * 
-   * @param vTree
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeTree(final jalview.schemabinding.version2.Tree vTree)
-  {
-    boolean removed = _treeList.remove(vTree);
-    return removed;
-  }
-
-  /**
-   * Method removeTreeAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Tree removeTreeAt(final int index)
-  {
-    java.lang.Object obj = this._treeList.remove(index);
-    return (jalview.schemabinding.version2.Tree) obj;
-  }
-
-  /**
-   * Method removeUserColours.
-   * 
-   * @param vUserColours
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeUserColours(
-          final jalview.schemabinding.version2.UserColours vUserColours)
-  {
-    boolean removed = _userColoursList.remove(vUserColours);
-    return removed;
-  }
-
-  /**
-   * Method removeUserColoursAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.UserColours removeUserColoursAt(
-          final int index)
-  {
-    java.lang.Object obj = this._userColoursList.remove(index);
-    return (jalview.schemabinding.version2.UserColours) obj;
-  }
-
-  /**
-   * Method removeViewport.
-   * 
-   * @param vViewport
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeViewport(
-          final jalview.schemabinding.version2.Viewport vViewport)
-  {
-    boolean removed = _viewportList.remove(vViewport);
-    return removed;
-  }
-
-  /**
-   * Method removeViewportAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Viewport removeViewportAt(
-          final int index)
-  {
-    java.lang.Object obj = this._viewportList.remove(index);
-    return (jalview.schemabinding.version2.Viewport) obj;
-  }
-
-  /**
-   * Sets the value of field 'featureSettings'.
-   * 
-   * @param featureSettings
-   *                the value of field 'featureSettings'.
-   */
-  public void setFeatureSettings(
-          final jalview.schemabinding.version2.FeatureSettings featureSettings)
-  {
-    this._featureSettings = featureSettings;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJGroup
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setJGroup(final int index,
-          final jalview.schemabinding.version2.JGroup vJGroup)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JGroupList.size())
-    {
-      throw new IndexOutOfBoundsException("setJGroup: Index value '"
-              + index + "' not in range [0.."
-              + (this._JGroupList.size() - 1) + "]");
-    }
-
-    this._JGroupList.set(index, vJGroup);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJGroupArray
-   */
-  public void setJGroup(
-          final jalview.schemabinding.version2.JGroup[] vJGroupArray)
-  {
-    // -- copy array
-    _JGroupList.clear();
-
-    for (int i = 0; i < vJGroupArray.length; i++)
-    {
-      this._JGroupList.add(vJGroupArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vJSeq
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setJSeq(final int index,
-          final jalview.schemabinding.version2.JSeq vJSeq)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._JSeqList.size())
-    {
-      throw new IndexOutOfBoundsException("setJSeq: Index value '" + index
-              + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
-    }
-
-    this._JSeqList.set(index, vJSeq);
-  }
-
-  /**
-   * 
-   * 
-   * @param vJSeqArray
-   */
-  public void setJSeq(final jalview.schemabinding.version2.JSeq[] vJSeqArray)
-  {
-    // -- copy array
-    _JSeqList.clear();
-
-    for (int i = 0; i < vJSeqArray.length; i++)
-    {
-      this._JSeqList.add(vJSeqArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setTree(final int index,
-          final jalview.schemabinding.version2.Tree vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("setTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
-    }
-
-    this._treeList.set(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTreeArray
-   */
-  public void setTree(final jalview.schemabinding.version2.Tree[] vTreeArray)
-  {
-    // -- copy array
-    _treeList.clear();
-
-    for (int i = 0; i < vTreeArray.length; i++)
-    {
-      this._treeList.add(vTreeArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vUserColours
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setUserColours(final int index,
-          final jalview.schemabinding.version2.UserColours vUserColours)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._userColoursList.size())
-    {
-      throw new IndexOutOfBoundsException("setUserColours: Index value '"
-              + index + "' not in range [0.."
-              + (this._userColoursList.size() - 1) + "]");
-    }
-
-    this._userColoursList.set(index, vUserColours);
-  }
-
-  /**
-   * 
-   * 
-   * @param vUserColoursArray
-   */
-  public void setUserColours(
-          final jalview.schemabinding.version2.UserColours[] vUserColoursArray)
-  {
-    // -- copy array
-    _userColoursList.clear();
-
-    for (int i = 0; i < vUserColoursArray.length; i++)
-    {
-      this._userColoursList.add(vUserColoursArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vViewport
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setViewport(final int index,
-          final jalview.schemabinding.version2.Viewport vViewport)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._viewportList.size())
-    {
-      throw new IndexOutOfBoundsException("setViewport: Index value '"
-              + index + "' not in range [0.."
-              + (this._viewportList.size() - 1) + "]");
-    }
-
-    this._viewportList.set(index, vViewport);
-  }
-
-  /**
-   * 
-   * 
-   * @param vViewportArray
-   */
-  public void setViewport(
-          final jalview.schemabinding.version2.Viewport[] vViewportArray)
-  {
-    // -- copy array
-    _viewportList.clear();
-
-    for (int i = 0; i < vViewportArray.length; i++)
-    {
-      this._viewportList.add(vViewportArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.JalviewModelSequence
-   */
-  public static jalview.schemabinding.version2.JalviewModelSequence unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.JalviewModelSequence) Unmarshaller
-            .unmarshal(
-                    jalview.schemabinding.version2.JalviewModelSequence.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class JalviewModelSequence implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _JSeqList.
+     */
+    private java.util.Vector _JSeqList;
+
+    /**
+     * Field _JGroupList.
+     */
+    private java.util.Vector _JGroupList;
+
+    /**
+     * Field _viewportList.
+     */
+    private java.util.Vector _viewportList;
+
+    /**
+     * Field _userColoursList.
+     */
+    private java.util.Vector _userColoursList;
+
+    /**
+     * Field _treeList.
+     */
+    private java.util.Vector _treeList;
+
+    /**
+     * Field _featureSettings.
+     */
+    private jalview.schemabinding.version2.FeatureSettings _featureSettings;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModelSequence() {
+        super();
+        this._JSeqList = new java.util.Vector();
+        this._JGroupList = new java.util.Vector();
+        this._viewportList = new java.util.Vector();
+        this._userColoursList = new java.util.Vector();
+        this._treeList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJGroup(
+            final jalview.schemabinding.version2.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JGroupList.addElement(vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJGroup(
+            final int index,
+            final jalview.schemabinding.version2.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JGroupList.add(index, vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJSeq(
+            final jalview.schemabinding.version2.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JSeqList.addElement(vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addJSeq(
+            final int index,
+            final jalview.schemabinding.version2.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        this._JSeqList.add(index, vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final jalview.schemabinding.version2.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.addElement(vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final int index,
+            final jalview.schemabinding.version2.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.add(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addUserColours(
+            final jalview.schemabinding.version2.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        this._userColoursList.addElement(vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addUserColours(
+            final int index,
+            final jalview.schemabinding.version2.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        this._userColoursList.add(index, vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addViewport(
+            final jalview.schemabinding.version2.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        this._viewportList.addElement(vViewport);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addViewport(
+            final int index,
+            final jalview.schemabinding.version2.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        this._viewportList.add(index, vViewport);
+    }
+
+    /**
+     * Method enumerateJGroup.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.JGroup elements
+     */
+    public java.util.Enumeration enumerateJGroup(
+    ) {
+        return this._JGroupList.elements();
+    }
+
+    /**
+     * Method enumerateJSeq.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.JSeq elements
+     */
+    public java.util.Enumeration enumerateJSeq(
+    ) {
+        return this._JSeqList.elements();
+    }
+
+    /**
+     * Method enumerateTree.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Tree elements
+     */
+    public java.util.Enumeration enumerateTree(
+    ) {
+        return this._treeList.elements();
+    }
+
+    /**
+     * Method enumerateUserColours.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.UserColours elements
+     */
+    public java.util.Enumeration enumerateUserColours(
+    ) {
+        return this._userColoursList.elements();
+    }
+
+    /**
+     * Method enumerateViewport.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Viewport elements
+     */
+    public java.util.Enumeration enumerateViewport(
+    ) {
+        return this._viewportList.elements();
+    }
+
+    /**
+     * Returns the value of field 'featureSettings'.
+     * 
+     * @return the value of field 'FeatureSettings'.
+     */
+    public jalview.schemabinding.version2.FeatureSettings getFeatureSettings(
+    ) {
+        return this._featureSettings;
+    }
+
+    /**
+     * Method getJGroup.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.JGroup at the given index
+     */
+    public jalview.schemabinding.version2.JGroup getJGroup(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JGroupList.size()) {
+            throw new IndexOutOfBoundsException("getJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.JGroup) _JGroupList.get(index);
+    }
+
+    /**
+     * Method getJGroup.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.JGroup[] getJGroup(
+    ) {
+        jalview.schemabinding.version2.JGroup[] array = new jalview.schemabinding.version2.JGroup[0];
+        return (jalview.schemabinding.version2.JGroup[]) this._JGroupList.toArray(array);
+    }
+
+    /**
+     * Method getJGroupCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getJGroupCount(
+    ) {
+        return this._JGroupList.size();
+    }
+
+    /**
+     * Method getJSeq.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.schemabinding.version2.JSeq
+     * at the given index
+     */
+    public jalview.schemabinding.version2.JSeq getJSeq(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JSeqList.size()) {
+            throw new IndexOutOfBoundsException("getJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.JSeq) _JSeqList.get(index);
+    }
+
+    /**
+     * Method getJSeq.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.JSeq[] getJSeq(
+    ) {
+        jalview.schemabinding.version2.JSeq[] array = new jalview.schemabinding.version2.JSeq[0];
+        return (jalview.schemabinding.version2.JSeq[]) this._JSeqList.toArray(array);
+    }
+
+    /**
+     * Method getJSeqCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getJSeqCount(
+    ) {
+        return this._JSeqList.size();
+    }
+
+    /**
+     * Method getTree.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the jalview.schemabinding.version2.Tree
+     * at the given index
+     */
+    public jalview.schemabinding.version2.Tree getTree(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Tree) _treeList.get(index);
+    }
+
+    /**
+     * Method getTree.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Tree[] getTree(
+    ) {
+        jalview.schemabinding.version2.Tree[] array = new jalview.schemabinding.version2.Tree[0];
+        return (jalview.schemabinding.version2.Tree[]) this._treeList.toArray(array);
+    }
+
+    /**
+     * Method getTreeCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getTreeCount(
+    ) {
+        return this._treeList.size();
+    }
+
+    /**
+     * Method getUserColours.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.UserColours at the given index
+     */
+    public jalview.schemabinding.version2.UserColours getUserColours(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._userColoursList.size()) {
+            throw new IndexOutOfBoundsException("getUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.UserColours) _userColoursList.get(index);
+    }
+
+    /**
+     * Method getUserColours.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.UserColours[] getUserColours(
+    ) {
+        jalview.schemabinding.version2.UserColours[] array = new jalview.schemabinding.version2.UserColours[0];
+        return (jalview.schemabinding.version2.UserColours[]) this._userColoursList.toArray(array);
+    }
+
+    /**
+     * Method getUserColoursCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getUserColoursCount(
+    ) {
+        return this._userColoursList.size();
+    }
+
+    /**
+     * Method getViewport.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Viewport at the given index
+     */
+    public jalview.schemabinding.version2.Viewport getViewport(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._viewportList.size()) {
+            throw new IndexOutOfBoundsException("getViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Viewport) _viewportList.get(index);
+    }
+
+    /**
+     * Method getViewport.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Viewport[] getViewport(
+    ) {
+        jalview.schemabinding.version2.Viewport[] array = new jalview.schemabinding.version2.Viewport[0];
+        return (jalview.schemabinding.version2.Viewport[]) this._viewportList.toArray(array);
+    }
+
+    /**
+     * Method getViewportCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getViewportCount(
+    ) {
+        return this._viewportList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllJGroup(
+    ) {
+        this._JGroupList.clear();
+    }
+
+    /**
+     */
+    public void removeAllJSeq(
+    ) {
+        this._JSeqList.clear();
+    }
+
+    /**
+     */
+    public void removeAllTree(
+    ) {
+        this._treeList.clear();
+    }
+
+    /**
+     */
+    public void removeAllUserColours(
+    ) {
+        this._userColoursList.clear();
+    }
+
+    /**
+     */
+    public void removeAllViewport(
+    ) {
+        this._viewportList.clear();
+    }
+
+    /**
+     * Method removeJGroup.
+     * 
+     * @param vJGroup
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeJGroup(
+            final jalview.schemabinding.version2.JGroup vJGroup) {
+        boolean removed = _JGroupList.remove(vJGroup);
+        return removed;
+    }
+
+    /**
+     * Method removeJGroupAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.JGroup removeJGroupAt(
+            final int index) {
+        java.lang.Object obj = this._JGroupList.remove(index);
+        return (jalview.schemabinding.version2.JGroup) obj;
+    }
+
+    /**
+     * Method removeJSeq.
+     * 
+     * @param vJSeq
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeJSeq(
+            final jalview.schemabinding.version2.JSeq vJSeq) {
+        boolean removed = _JSeqList.remove(vJSeq);
+        return removed;
+    }
+
+    /**
+     * Method removeJSeqAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.JSeq removeJSeqAt(
+            final int index) {
+        java.lang.Object obj = this._JSeqList.remove(index);
+        return (jalview.schemabinding.version2.JSeq) obj;
+    }
+
+    /**
+     * Method removeTree.
+     * 
+     * @param vTree
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeTree(
+            final jalview.schemabinding.version2.Tree vTree) {
+        boolean removed = _treeList.remove(vTree);
+        return removed;
+    }
+
+    /**
+     * Method removeTreeAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Tree removeTreeAt(
+            final int index) {
+        java.lang.Object obj = this._treeList.remove(index);
+        return (jalview.schemabinding.version2.Tree) obj;
+    }
+
+    /**
+     * Method removeUserColours.
+     * 
+     * @param vUserColours
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeUserColours(
+            final jalview.schemabinding.version2.UserColours vUserColours) {
+        boolean removed = _userColoursList.remove(vUserColours);
+        return removed;
+    }
+
+    /**
+     * Method removeUserColoursAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.UserColours removeUserColoursAt(
+            final int index) {
+        java.lang.Object obj = this._userColoursList.remove(index);
+        return (jalview.schemabinding.version2.UserColours) obj;
+    }
+
+    /**
+     * Method removeViewport.
+     * 
+     * @param vViewport
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeViewport(
+            final jalview.schemabinding.version2.Viewport vViewport) {
+        boolean removed = _viewportList.remove(vViewport);
+        return removed;
+    }
+
+    /**
+     * Method removeViewportAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Viewport removeViewportAt(
+            final int index) {
+        java.lang.Object obj = this._viewportList.remove(index);
+        return (jalview.schemabinding.version2.Viewport) obj;
+    }
+
+    /**
+     * Sets the value of field 'featureSettings'.
+     * 
+     * @param featureSettings the value of field 'featureSettings'.
+     */
+    public void setFeatureSettings(
+            final jalview.schemabinding.version2.FeatureSettings featureSettings) {
+        this._featureSettings = featureSettings;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJGroup
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setJGroup(
+            final int index,
+            final jalview.schemabinding.version2.JGroup vJGroup)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JGroupList.size()) {
+            throw new IndexOutOfBoundsException("setJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+        }
+        
+        this._JGroupList.set(index, vJGroup);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJGroupArray
+     */
+    public void setJGroup(
+            final jalview.schemabinding.version2.JGroup[] vJGroupArray) {
+        //-- copy array
+        _JGroupList.clear();
+        
+        for (int i = 0; i < vJGroupArray.length; i++) {
+                this._JGroupList.add(vJGroupArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vJSeq
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setJSeq(
+            final int index,
+            final jalview.schemabinding.version2.JSeq vJSeq)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._JSeqList.size()) {
+            throw new IndexOutOfBoundsException("setJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+        }
+        
+        this._JSeqList.set(index, vJSeq);
+    }
+
+    /**
+     * 
+     * 
+     * @param vJSeqArray
+     */
+    public void setJSeq(
+            final jalview.schemabinding.version2.JSeq[] vJSeqArray) {
+        //-- copy array
+        _JSeqList.clear();
+        
+        for (int i = 0; i < vJSeqArray.length; i++) {
+                this._JSeqList.add(vJSeqArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setTree(
+            final int index,
+            final jalview.schemabinding.version2.Tree vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        this._treeList.set(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTreeArray
+     */
+    public void setTree(
+            final jalview.schemabinding.version2.Tree[] vTreeArray) {
+        //-- copy array
+        _treeList.clear();
+        
+        for (int i = 0; i < vTreeArray.length; i++) {
+                this._treeList.add(vTreeArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vUserColours
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setUserColours(
+            final int index,
+            final jalview.schemabinding.version2.UserColours vUserColours)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._userColoursList.size()) {
+            throw new IndexOutOfBoundsException("setUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+        }
+        
+        this._userColoursList.set(index, vUserColours);
+    }
+
+    /**
+     * 
+     * 
+     * @param vUserColoursArray
+     */
+    public void setUserColours(
+            final jalview.schemabinding.version2.UserColours[] vUserColoursArray) {
+        //-- copy array
+        _userColoursList.clear();
+        
+        for (int i = 0; i < vUserColoursArray.length; i++) {
+                this._userColoursList.add(vUserColoursArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vViewport
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setViewport(
+            final int index,
+            final jalview.schemabinding.version2.Viewport vViewport)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._viewportList.size()) {
+            throw new IndexOutOfBoundsException("setViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+        }
+        
+        this._viewportList.set(index, vViewport);
+    }
+
+    /**
+     * 
+     * 
+     * @param vViewportArray
+     */
+    public void setViewport(
+            final jalview.schemabinding.version2.Viewport[] vViewportArray) {
+        //-- copy array
+        _viewportList.clear();
+        
+        for (int i = 0; i < vViewportArray.length; i++) {
+                this._viewportList.add(vViewportArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.JalviewModelSequence
+     */
+    public static jalview.schemabinding.version2.JalviewModelSequence unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.JalviewModelSequence) Unmarshaller.unmarshal(jalview.schemabinding.version2.JalviewModelSequence.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/JalviewUserColours.java b/src/jalview/schemabinding/version2/JalviewUserColours.java
index 72126e0..7c059da 100755
--- a/src/jalview/schemabinding/version2/JalviewUserColours.java
+++ b/src/jalview/schemabinding/version2/JalviewUserColours.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,301 +19,281 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewUserColours implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _schemeName.
-   */
-  private java.lang.String _schemeName;
-
-  /**
-   * Field _colourList.
-   */
-  private java.util.Vector _colourList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewUserColours()
-  {
-    super();
-    this._colourList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addColour(final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._colourList.addElement(vColour);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addColour(final int index, final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._colourList.add(index, vColour);
-  }
-
-  /**
-   * Method enumerateColour.
-   * 
-   * @return an Enumeration over all Colour elements
-   */
-  public java.util.Enumeration enumerateColour()
-  {
-    return this._colourList.elements();
-  }
-
-  /**
-   * Method getColour.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the Colour at the given index
-   */
-  public Colour getColour(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._colourList.size())
-    {
-      throw new IndexOutOfBoundsException("getColour: Index value '"
-              + index + "' not in range [0.."
-              + (this._colourList.size() - 1) + "]");
+public class JalviewUserColours implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _schemeName.
+     */
+    private java.lang.String _schemeName;
+
+    /**
+     * Field _colourList.
+     */
+    private java.util.Vector _colourList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewUserColours() {
+        super();
+        this._colourList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addColour(
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        this._colourList.addElement(vColour);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addColour(
+            final int index,
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        this._colourList.add(index, vColour);
+    }
+
+    /**
+     * Method enumerateColour.
+     * 
+     * @return an Enumeration over all Colour elements
+     */
+    public java.util.Enumeration enumerateColour(
+    ) {
+        return this._colourList.elements();
+    }
+
+    /**
+     * Method getColour.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the Colour at the given index
+     */
+    public Colour getColour(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._colourList.size()) {
+            throw new IndexOutOfBoundsException("getColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+        }
+        
+        return (Colour) _colourList.get(index);
+    }
+
+    /**
+     * Method getColour.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public Colour[] getColour(
+    ) {
+        Colour[] array = new Colour[0];
+        return (Colour[]) this._colourList.toArray(array);
+    }
+
+    /**
+     * Method getColourCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getColourCount(
+    ) {
+        return this._colourList.size();
+    }
+
+    /**
+     * Returns the value of field 'schemeName'.
+     * 
+     * @return the value of field 'SchemeName'.
+     */
+    public java.lang.String getSchemeName(
+    ) {
+        return this._schemeName;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
     }
 
-    return (Colour) _colourList.get(index);
-  }
-
-  /**
-   * Method getColour.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public Colour[] getColour()
-  {
-    Colour[] array = new Colour[0];
-    return (Colour[]) this._colourList.toArray(array);
-  }
-
-  /**
-   * Method getColourCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getColourCount()
-  {
-    return this._colourList.size();
-  }
-
-  /**
-   * Returns the value of field 'schemeName'.
-   * 
-   * @return the value of field 'SchemeName'.
-   */
-  public java.lang.String getSchemeName()
-  {
-    return this._schemeName;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     */
+    public void removeAllColour(
+    ) {
+        this._colourList.clear();
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllColour()
-  {
-    this._colourList.clear();
-  }
-
-  /**
-   * Method removeColour.
-   * 
-   * @param vColour
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeColour(final Colour vColour)
-  {
-    boolean removed = _colourList.remove(vColour);
-    return removed;
-  }
-
-  /**
-   * Method removeColourAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public Colour removeColourAt(final int index)
-  {
-    java.lang.Object obj = this._colourList.remove(index);
-    return (Colour) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vColour
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setColour(final int index, final Colour vColour)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._colourList.size())
-    {
-      throw new IndexOutOfBoundsException("setColour: Index value '"
-              + index + "' not in range [0.."
-              + (this._colourList.size() - 1) + "]");
+
+    /**
+     * Method removeColour.
+     * 
+     * @param vColour
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeColour(
+            final Colour vColour) {
+        boolean removed = _colourList.remove(vColour);
+        return removed;
+    }
+
+    /**
+     * Method removeColourAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public Colour removeColourAt(
+            final int index) {
+        java.lang.Object obj = this._colourList.remove(index);
+        return (Colour) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vColour
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setColour(
+            final int index,
+            final Colour vColour)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._colourList.size()) {
+            throw new IndexOutOfBoundsException("setColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+        }
+        
+        this._colourList.set(index, vColour);
+    }
+
+    /**
+     * 
+     * 
+     * @param vColourArray
+     */
+    public void setColour(
+            final Colour[] vColourArray) {
+        //-- copy array
+        _colourList.clear();
+        
+        for (int i = 0; i < vColourArray.length; i++) {
+                this._colourList.add(vColourArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'schemeName'.
+     * 
+     * @param schemeName the value of field 'schemeName'.
+     */
+    public void setSchemeName(
+            final java.lang.String schemeName) {
+        this._schemeName = schemeName;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.JalviewUserColours
+     */
+    public static jalview.schemabinding.version2.JalviewUserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.JalviewUserColours) Unmarshaller.unmarshal(jalview.schemabinding.version2.JalviewUserColours.class, reader);
     }
 
-    this._colourList.set(index, vColour);
-  }
-
-  /**
-   * 
-   * 
-   * @param vColourArray
-   */
-  public void setColour(final Colour[] vColourArray)
-  {
-    // -- copy array
-    _colourList.clear();
-
-    for (int i = 0; i < vColourArray.length; i++)
-    {
-      this._colourList.add(vColourArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'schemeName'.
-   * 
-   * @param schemeName
-   *                the value of field 'schemeName'.
-   */
-  public void setSchemeName(final java.lang.String schemeName)
-  {
-    this._schemeName = schemeName;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.JalviewUserColours
-   */
-  public static jalview.schemabinding.version2.JalviewUserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.JalviewUserColours) Unmarshaller
-            .unmarshal(
-                    jalview.schemabinding.version2.JalviewUserColours.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/MapListFrom.java b/src/jalview/schemabinding/version2/MapListFrom.java
index 3ecf00f..acfe18e 100644
--- a/src/jalview/schemabinding/version2/MapListFrom.java
+++ b/src/jalview/schemabinding/version2/MapListFrom.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,213 +19,198 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class MapListFrom implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MapListFrom()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class MapListFrom implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MapListFrom() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.MapListFrom
+     */
+    public static jalview.schemabinding.version2.MapListFrom unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.MapListFrom) Unmarshaller.unmarshal(jalview.schemabinding.version2.MapListFrom.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *                the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.MapListFrom
-   */
-  public static jalview.schemabinding.version2.MapListFrom unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.MapListFrom) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.MapListFrom.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/MapListTo.java b/src/jalview/schemabinding/version2/MapListTo.java
index 0bb9fc6..8c3a7e0 100644
--- a/src/jalview/schemabinding/version2/MapListTo.java
+++ b/src/jalview/schemabinding/version2/MapListTo.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,213 +19,198 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class MapListTo implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _start.
-   */
-  private int _start;
-
-  /**
-   * keeps track of state for field: _start
-   */
-  private boolean _has_start;
-
-  /**
-   * Field _end.
-   */
-  private int _end;
-
-  /**
-   * keeps track of state for field: _end
-   */
-  private boolean _has_end;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MapListTo()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteEnd()
-  {
-    this._has_end = false;
-  }
-
-  /**
-   */
-  public void deleteStart()
-  {
-    this._has_start = false;
-  }
-
-  /**
-   * Returns the value of field 'end'.
-   * 
-   * @return the value of field 'End'.
-   */
-  public int getEnd()
-  {
-    return this._end;
-  }
-
-  /**
-   * Returns the value of field 'start'.
-   * 
-   * @return the value of field 'Start'.
-   */
-  public int getStart()
-  {
-    return this._start;
-  }
-
-  /**
-   * Method hasEnd.
-   * 
-   * @return true if at least one End has been added
-   */
-  public boolean hasEnd()
-  {
-    return this._has_end;
-  }
-
-  /**
-   * Method hasStart.
-   * 
-   * @return true if at least one Start has been added
-   */
-  public boolean hasStart()
-  {
-    return this._has_start;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class MapListTo implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _start.
+     */
+    private int _start;
+
+    /**
+     * keeps track of state for field: _start
+     */
+    private boolean _has_start;
+
+    /**
+     * Field _end.
+     */
+    private int _end;
+
+    /**
+     * keeps track of state for field: _end
+     */
+    private boolean _has_end;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MapListTo() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteEnd(
+    ) {
+        this._has_end= false;
+    }
+
+    /**
+     */
+    public void deleteStart(
+    ) {
+        this._has_start= false;
+    }
+
+    /**
+     * Returns the value of field 'end'.
+     * 
+     * @return the value of field 'End'.
+     */
+    public int getEnd(
+    ) {
+        return this._end;
+    }
+
+    /**
+     * Returns the value of field 'start'.
+     * 
+     * @return the value of field 'Start'.
+     */
+    public int getStart(
+    ) {
+        return this._start;
+    }
+
+    /**
+     * Method hasEnd.
+     * 
+     * @return true if at least one End has been added
+     */
+    public boolean hasEnd(
+    ) {
+        return this._has_end;
+    }
+
+    /**
+     * Method hasStart.
+     * 
+     * @return true if at least one Start has been added
+     */
+    public boolean hasStart(
+    ) {
+        return this._has_start;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'end'.
+     * 
+     * @param end the value of field 'end'.
+     */
+    public void setEnd(
+            final int end) {
+        this._end = end;
+        this._has_end = true;
+    }
+
+    /**
+     * Sets the value of field 'start'.
+     * 
+     * @param start the value of field 'start'.
+     */
+    public void setStart(
+            final int start) {
+        this._start = start;
+        this._has_start = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.MapListTo
+     */
+    public static jalview.schemabinding.version2.MapListTo unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.MapListTo) Unmarshaller.unmarshal(jalview.schemabinding.version2.MapListTo.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'end'.
-   * 
-   * @param end
-   *                the value of field 'end'.
-   */
-  public void setEnd(final int end)
-  {
-    this._end = end;
-    this._has_end = true;
-  }
-
-  /**
-   * Sets the value of field 'start'.
-   * 
-   * @param start
-   *                the value of field 'start'.
-   */
-  public void setStart(final int start)
-  {
-    this._start = start;
-    this._has_start = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.MapListTo
-   */
-  public static jalview.schemabinding.version2.MapListTo unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.MapListTo) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.MapListTo.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/MapListType.java b/src/jalview/schemabinding/version2/MapListType.java
index efb1bc5..21d56e7 100644
--- a/src/jalview/schemabinding/version2/MapListType.java
+++ b/src/jalview/schemabinding/version2/MapListType.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -28,585 +17,566 @@ import org.exolab.castor.xml.Unmarshaller;
 /**
  * developed after mapRangeType from
  * http://www.vamsas.ac.uk/schemas/1.0/vamsasTypes
- * 
- * This effectively represents a java.util.MapList object
- * 
+ *  
+ *  This effectively represents a java.util.MapList object
+ *  
  * 
  * @version $Revision$ $Date$
  */
-public class MapListType implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * number of dictionary symbol widths involved in each mapped position on this
-   * sequence (for example, 3 for a dna sequence exon region that is being
-   * mapped to a protein sequence). This is optional, since the unit can be
-   * usually be inferred from the dictionary type of each sequence involved in
-   * the mapping.
-   */
-  private long _mapFromUnit;
-
-  /**
-   * keeps track of state for field: _mapFromUnit
-   */
-  private boolean _has_mapFromUnit;
-
-  /**
-   * number of dictionary symbol widths involved in each mapped position on this
-   * sequence (for example, 3 for a dna sequence exon region that is being
-   * mapped to a protein sequence). This is optional, since the unit can be
-   * usually be inferred from the dictionary type of each sequence involved in
-   * the mapping.
-   */
-  private long _mapToUnit;
-
-  /**
-   * keeps track of state for field: _mapToUnit
-   */
-  private boolean _has_mapToUnit;
-
-  /**
-   * a region from start to end inclusive
-   */
-  private java.util.Vector _mapListFromList;
-
-  /**
-   * a region from start to end inclusive
-   */
-  private java.util.Vector _mapListToList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MapListType()
-  {
-    super();
-    this._mapListFromList = new java.util.Vector();
-    this._mapListToList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vMapListFrom
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addMapListFrom(
-          final jalview.schemabinding.version2.MapListFrom vMapListFrom)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._mapListFromList.addElement(vMapListFrom);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vMapListFrom
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addMapListFrom(final int index,
-          final jalview.schemabinding.version2.MapListFrom vMapListFrom)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._mapListFromList.add(index, vMapListFrom);
-  }
-
-  /**
-   * 
-   * 
-   * @param vMapListTo
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addMapListTo(
-          final jalview.schemabinding.version2.MapListTo vMapListTo)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._mapListToList.addElement(vMapListTo);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vMapListTo
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addMapListTo(final int index,
-          final jalview.schemabinding.version2.MapListTo vMapListTo)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._mapListToList.add(index, vMapListTo);
-  }
-
-  /**
-   */
-  public void deleteMapFromUnit()
-  {
-    this._has_mapFromUnit = false;
-  }
-
-  /**
-   */
-  public void deleteMapToUnit()
-  {
-    this._has_mapToUnit = false;
-  }
-
-  /**
-   * Method enumerateMapListFrom.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.MapListFrom
-   *         elements
-   */
-  public java.util.Enumeration enumerateMapListFrom()
-  {
-    return this._mapListFromList.elements();
-  }
-
-  /**
-   * Method enumerateMapListTo.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.MapListTo
-   *         elements
-   */
-  public java.util.Enumeration enumerateMapListTo()
-  {
-    return this._mapListToList.elements();
-  }
-
-  /**
-   * Returns the value of field 'mapFromUnit'. The field 'mapFromUnit' has the
-   * following description: number of dictionary symbol widths involved in each
-   * mapped position on this sequence (for example, 3 for a dna sequence exon
-   * region that is being mapped to a protein sequence). This is optional, since
-   * the unit can be usually be inferred from the dictionary type of each
-   * sequence involved in the mapping.
-   * 
-   * @return the value of field 'MapFromUnit'.
-   */
-  public long getMapFromUnit()
-  {
-    return this._mapFromUnit;
-  }
-
-  /**
-   * Method getMapListFrom.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.MapListFrom at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.MapListFrom getMapListFrom(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._mapListFromList.size())
-    {
-      throw new IndexOutOfBoundsException("getMapListFrom: Index value '"
-              + index + "' not in range [0.."
-              + (this._mapListFromList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.MapListFrom) _mapListFromList
-            .get(index);
-  }
-
-  /**
-   * Method getMapListFrom.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.MapListFrom[] getMapListFrom()
-  {
-    jalview.schemabinding.version2.MapListFrom[] array = new jalview.schemabinding.version2.MapListFrom[0];
-    return (jalview.schemabinding.version2.MapListFrom[]) this._mapListFromList
-            .toArray(array);
-  }
-
-  /**
-   * Method getMapListFromCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getMapListFromCount()
-  {
-    return this._mapListFromList.size();
-  }
-
-  /**
-   * Method getMapListTo.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.MapListTo at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.MapListTo getMapListTo(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._mapListToList.size())
-    {
-      throw new IndexOutOfBoundsException("getMapListTo: Index value '"
-              + index + "' not in range [0.."
-              + (this._mapListToList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.MapListTo) _mapListToList
-            .get(index);
-  }
-
-  /**
-   * Method getMapListTo.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.MapListTo[] getMapListTo()
-  {
-    jalview.schemabinding.version2.MapListTo[] array = new jalview.schemabinding.version2.MapListTo[0];
-    return (jalview.schemabinding.version2.MapListTo[]) this._mapListToList
-            .toArray(array);
-  }
-
-  /**
-   * Method getMapListToCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getMapListToCount()
-  {
-    return this._mapListToList.size();
-  }
-
-  /**
-   * Returns the value of field 'mapToUnit'. The field 'mapToUnit' has the
-   * following description: number of dictionary symbol widths involved in each
-   * mapped position on this sequence (for example, 3 for a dna sequence exon
-   * region that is being mapped to a protein sequence). This is optional, since
-   * the unit can be usually be inferred from the dictionary type of each
-   * sequence involved in the mapping.
-   * 
-   * @return the value of field 'MapToUnit'.
-   */
-  public long getMapToUnit()
-  {
-    return this._mapToUnit;
-  }
-
-  /**
-   * Method hasMapFromUnit.
-   * 
-   * @return true if at least one MapFromUnit has been added
-   */
-  public boolean hasMapFromUnit()
-  {
-    return this._has_mapFromUnit;
-  }
-
-  /**
-   * Method hasMapToUnit.
-   * 
-   * @return true if at least one MapToUnit has been added
-   */
-  public boolean hasMapToUnit()
-  {
-    return this._has_mapToUnit;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllMapListFrom()
-  {
-    this._mapListFromList.clear();
-  }
-
-  /**
-   */
-  public void removeAllMapListTo()
-  {
-    this._mapListToList.clear();
-  }
-
-  /**
-   * Method removeMapListFrom.
-   * 
-   * @param vMapListFrom
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeMapListFrom(
-          final jalview.schemabinding.version2.MapListFrom vMapListFrom)
-  {
-    boolean removed = _mapListFromList.remove(vMapListFrom);
-    return removed;
-  }
-
-  /**
-   * Method removeMapListFromAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.MapListFrom removeMapListFromAt(
-          final int index)
-  {
-    java.lang.Object obj = this._mapListFromList.remove(index);
-    return (jalview.schemabinding.version2.MapListFrom) obj;
-  }
-
-  /**
-   * Method removeMapListTo.
-   * 
-   * @param vMapListTo
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeMapListTo(
-          final jalview.schemabinding.version2.MapListTo vMapListTo)
-  {
-    boolean removed = _mapListToList.remove(vMapListTo);
-    return removed;
-  }
-
-  /**
-   * Method removeMapListToAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.MapListTo removeMapListToAt(
-          final int index)
-  {
-    java.lang.Object obj = this._mapListToList.remove(index);
-    return (jalview.schemabinding.version2.MapListTo) obj;
-  }
-
-  /**
-   * Sets the value of field 'mapFromUnit'. The field 'mapFromUnit' has the
-   * following description: number of dictionary symbol widths involved in each
-   * mapped position on this sequence (for example, 3 for a dna sequence exon
-   * region that is being mapped to a protein sequence). This is optional, since
-   * the unit can be usually be inferred from the dictionary type of each
-   * sequence involved in the mapping.
-   * 
-   * @param mapFromUnit
-   *                the value of field 'mapFromUnit'.
-   */
-  public void setMapFromUnit(final long mapFromUnit)
-  {
-    this._mapFromUnit = mapFromUnit;
-    this._has_mapFromUnit = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vMapListFrom
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setMapListFrom(final int index,
-          final jalview.schemabinding.version2.MapListFrom vMapListFrom)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._mapListFromList.size())
-    {
-      throw new IndexOutOfBoundsException("setMapListFrom: Index value '"
-              + index + "' not in range [0.."
-              + (this._mapListFromList.size() - 1) + "]");
-    }
-
-    this._mapListFromList.set(index, vMapListFrom);
-  }
-
-  /**
-   * 
-   * 
-   * @param vMapListFromArray
-   */
-  public void setMapListFrom(
-          final jalview.schemabinding.version2.MapListFrom[] vMapListFromArray)
-  {
-    // -- copy array
-    _mapListFromList.clear();
-
-    for (int i = 0; i < vMapListFromArray.length; i++)
-    {
-      this._mapListFromList.add(vMapListFromArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vMapListTo
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setMapListTo(final int index,
-          final jalview.schemabinding.version2.MapListTo vMapListTo)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._mapListToList.size())
-    {
-      throw new IndexOutOfBoundsException("setMapListTo: Index value '"
-              + index + "' not in range [0.."
-              + (this._mapListToList.size() - 1) + "]");
-    }
-
-    this._mapListToList.set(index, vMapListTo);
-  }
-
-  /**
-   * 
-   * 
-   * @param vMapListToArray
-   */
-  public void setMapListTo(
-          final jalview.schemabinding.version2.MapListTo[] vMapListToArray)
-  {
-    // -- copy array
-    _mapListToList.clear();
-
-    for (int i = 0; i < vMapListToArray.length; i++)
-    {
-      this._mapListToList.add(vMapListToArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'mapToUnit'. The field 'mapToUnit' has the
-   * following description: number of dictionary symbol widths involved in each
-   * mapped position on this sequence (for example, 3 for a dna sequence exon
-   * region that is being mapped to a protein sequence). This is optional, since
-   * the unit can be usually be inferred from the dictionary type of each
-   * sequence involved in the mapping.
-   * 
-   * @param mapToUnit
-   *                the value of field 'mapToUnit'.
-   */
-  public void setMapToUnit(final long mapToUnit)
-  {
-    this._mapToUnit = mapToUnit;
-    this._has_mapToUnit = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.MapListType
-   */
-  public static jalview.schemabinding.version2.MapListType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.MapListType) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.MapListType.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class MapListType implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * number of dictionary symbol widths involved in each
+     *  mapped position on this sequence (for example, 3 for a dna
+     * sequence exon
+     *  region that is being mapped to a protein sequence). This is
+     * optional,
+     *  since the unit can be usually be inferred from the
+     * dictionary type of
+     *  each sequence involved in the mapping. 
+     */
+    private long _mapFromUnit;
+
+    /**
+     * keeps track of state for field: _mapFromUnit
+     */
+    private boolean _has_mapFromUnit;
+
+    /**
+     * number of dictionary symbol widths involved in each
+     *  mapped position on this sequence (for example, 3 for a dna
+     * sequence exon
+     *  region that is being mapped to a protein sequence). This is
+     * optional,
+     *  since the unit can be usually be inferred from the
+     * dictionary type of
+     *  each sequence involved in the mapping. 
+     */
+    private long _mapToUnit;
+
+    /**
+     * keeps track of state for field: _mapToUnit
+     */
+    private boolean _has_mapToUnit;
+
+    /**
+     * a region from start to end inclusive
+     */
+    private java.util.Vector _mapListFromList;
+
+    /**
+     * a region from start to end inclusive
+     */
+    private java.util.Vector _mapListToList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MapListType() {
+        super();
+        this._mapListFromList = new java.util.Vector();
+        this._mapListToList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vMapListFrom
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addMapListFrom(
+            final jalview.schemabinding.version2.MapListFrom vMapListFrom)
+    throws java.lang.IndexOutOfBoundsException {
+        this._mapListFromList.addElement(vMapListFrom);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vMapListFrom
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addMapListFrom(
+            final int index,
+            final jalview.schemabinding.version2.MapListFrom vMapListFrom)
+    throws java.lang.IndexOutOfBoundsException {
+        this._mapListFromList.add(index, vMapListFrom);
+    }
+
+    /**
+     * 
+     * 
+     * @param vMapListTo
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addMapListTo(
+            final jalview.schemabinding.version2.MapListTo vMapListTo)
+    throws java.lang.IndexOutOfBoundsException {
+        this._mapListToList.addElement(vMapListTo);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vMapListTo
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addMapListTo(
+            final int index,
+            final jalview.schemabinding.version2.MapListTo vMapListTo)
+    throws java.lang.IndexOutOfBoundsException {
+        this._mapListToList.add(index, vMapListTo);
+    }
+
+    /**
+     */
+    public void deleteMapFromUnit(
+    ) {
+        this._has_mapFromUnit= false;
+    }
+
+    /**
+     */
+    public void deleteMapToUnit(
+    ) {
+        this._has_mapToUnit= false;
+    }
+
+    /**
+     * Method enumerateMapListFrom.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.MapListFrom elements
+     */
+    public java.util.Enumeration enumerateMapListFrom(
+    ) {
+        return this._mapListFromList.elements();
+    }
+
+    /**
+     * Method enumerateMapListTo.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.MapListTo elements
+     */
+    public java.util.Enumeration enumerateMapListTo(
+    ) {
+        return this._mapListToList.elements();
+    }
+
+    /**
+     * Returns the value of field 'mapFromUnit'. The field
+     * 'mapFromUnit' has the following description: number of
+     * dictionary symbol widths involved in each
+     *  mapped position on this sequence (for example, 3 for a dna
+     * sequence exon
+     *  region that is being mapped to a protein sequence). This is
+     * optional,
+     *  since the unit can be usually be inferred from the
+     * dictionary type of
+     *  each sequence involved in the mapping. 
+     * 
+     * @return the value of field 'MapFromUnit'.
+     */
+    public long getMapFromUnit(
+    ) {
+        return this._mapFromUnit;
+    }
+
+    /**
+     * Method getMapListFrom.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.MapListFrom at the given index
+     */
+    public jalview.schemabinding.version2.MapListFrom getMapListFrom(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._mapListFromList.size()) {
+            throw new IndexOutOfBoundsException("getMapListFrom: Index value '" + index + "' not in range [0.." + (this._mapListFromList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.MapListFrom) _mapListFromList.get(index);
+    }
+
+    /**
+     * Method getMapListFrom.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.MapListFrom[] getMapListFrom(
+    ) {
+        jalview.schemabinding.version2.MapListFrom[] array = new jalview.schemabinding.version2.MapListFrom[0];
+        return (jalview.schemabinding.version2.MapListFrom[]) this._mapListFromList.toArray(array);
+    }
+
+    /**
+     * Method getMapListFromCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getMapListFromCount(
+    ) {
+        return this._mapListFromList.size();
+    }
+
+    /**
+     * Method getMapListTo.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.MapListTo at the given index
+     */
+    public jalview.schemabinding.version2.MapListTo getMapListTo(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._mapListToList.size()) {
+            throw new IndexOutOfBoundsException("getMapListTo: Index value '" + index + "' not in range [0.." + (this._mapListToList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.MapListTo) _mapListToList.get(index);
+    }
+
+    /**
+     * Method getMapListTo.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.MapListTo[] getMapListTo(
+    ) {
+        jalview.schemabinding.version2.MapListTo[] array = new jalview.schemabinding.version2.MapListTo[0];
+        return (jalview.schemabinding.version2.MapListTo[]) this._mapListToList.toArray(array);
+    }
+
+    /**
+     * Method getMapListToCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getMapListToCount(
+    ) {
+        return this._mapListToList.size();
+    }
+
+    /**
+     * Returns the value of field 'mapToUnit'. The field
+     * 'mapToUnit' has the following description: number of
+     * dictionary symbol widths involved in each
+     *  mapped position on this sequence (for example, 3 for a dna
+     * sequence exon
+     *  region that is being mapped to a protein sequence). This is
+     * optional,
+     *  since the unit can be usually be inferred from the
+     * dictionary type of
+     *  each sequence involved in the mapping. 
+     * 
+     * @return the value of field 'MapToUnit'.
+     */
+    public long getMapToUnit(
+    ) {
+        return this._mapToUnit;
+    }
+
+    /**
+     * Method hasMapFromUnit.
+     * 
+     * @return true if at least one MapFromUnit has been added
+     */
+    public boolean hasMapFromUnit(
+    ) {
+        return this._has_mapFromUnit;
+    }
+
+    /**
+     * Method hasMapToUnit.
+     * 
+     * @return true if at least one MapToUnit has been added
+     */
+    public boolean hasMapToUnit(
+    ) {
+        return this._has_mapToUnit;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllMapListFrom(
+    ) {
+        this._mapListFromList.clear();
+    }
+
+    /**
+     */
+    public void removeAllMapListTo(
+    ) {
+        this._mapListToList.clear();
+    }
+
+    /**
+     * Method removeMapListFrom.
+     * 
+     * @param vMapListFrom
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeMapListFrom(
+            final jalview.schemabinding.version2.MapListFrom vMapListFrom) {
+        boolean removed = _mapListFromList.remove(vMapListFrom);
+        return removed;
+    }
+
+    /**
+     * Method removeMapListFromAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.MapListFrom removeMapListFromAt(
+            final int index) {
+        java.lang.Object obj = this._mapListFromList.remove(index);
+        return (jalview.schemabinding.version2.MapListFrom) obj;
+    }
+
+    /**
+     * Method removeMapListTo.
+     * 
+     * @param vMapListTo
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeMapListTo(
+            final jalview.schemabinding.version2.MapListTo vMapListTo) {
+        boolean removed = _mapListToList.remove(vMapListTo);
+        return removed;
+    }
+
+    /**
+     * Method removeMapListToAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.MapListTo removeMapListToAt(
+            final int index) {
+        java.lang.Object obj = this._mapListToList.remove(index);
+        return (jalview.schemabinding.version2.MapListTo) obj;
+    }
+
+    /**
+     * Sets the value of field 'mapFromUnit'. The field
+     * 'mapFromUnit' has the following description: number of
+     * dictionary symbol widths involved in each
+     *  mapped position on this sequence (for example, 3 for a dna
+     * sequence exon
+     *  region that is being mapped to a protein sequence). This is
+     * optional,
+     *  since the unit can be usually be inferred from the
+     * dictionary type of
+     *  each sequence involved in the mapping. 
+     * 
+     * @param mapFromUnit the value of field 'mapFromUnit'.
+     */
+    public void setMapFromUnit(
+            final long mapFromUnit) {
+        this._mapFromUnit = mapFromUnit;
+        this._has_mapFromUnit = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vMapListFrom
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setMapListFrom(
+            final int index,
+            final jalview.schemabinding.version2.MapListFrom vMapListFrom)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._mapListFromList.size()) {
+            throw new IndexOutOfBoundsException("setMapListFrom: Index value '" + index + "' not in range [0.." + (this._mapListFromList.size() - 1) + "]");
+        }
+        
+        this._mapListFromList.set(index, vMapListFrom);
+    }
+
+    /**
+     * 
+     * 
+     * @param vMapListFromArray
+     */
+    public void setMapListFrom(
+            final jalview.schemabinding.version2.MapListFrom[] vMapListFromArray) {
+        //-- copy array
+        _mapListFromList.clear();
+        
+        for (int i = 0; i < vMapListFromArray.length; i++) {
+                this._mapListFromList.add(vMapListFromArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vMapListTo
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setMapListTo(
+            final int index,
+            final jalview.schemabinding.version2.MapListTo vMapListTo)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._mapListToList.size()) {
+            throw new IndexOutOfBoundsException("setMapListTo: Index value '" + index + "' not in range [0.." + (this._mapListToList.size() - 1) + "]");
+        }
+        
+        this._mapListToList.set(index, vMapListTo);
+    }
+
+    /**
+     * 
+     * 
+     * @param vMapListToArray
+     */
+    public void setMapListTo(
+            final jalview.schemabinding.version2.MapListTo[] vMapListToArray) {
+        //-- copy array
+        _mapListToList.clear();
+        
+        for (int i = 0; i < vMapListToArray.length; i++) {
+                this._mapListToList.add(vMapListToArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'mapToUnit'. The field 'mapToUnit'
+     * has the following description: number of dictionary symbol
+     * widths involved in each
+     *  mapped position on this sequence (for example, 3 for a dna
+     * sequence exon
+     *  region that is being mapped to a protein sequence). This is
+     * optional,
+     *  since the unit can be usually be inferred from the
+     * dictionary type of
+     *  each sequence involved in the mapping. 
+     * 
+     * @param mapToUnit the value of field 'mapToUnit'.
+     */
+    public void setMapToUnit(
+            final long mapToUnit) {
+        this._mapToUnit = mapToUnit;
+        this._has_mapToUnit = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.MapListType
+     */
+    public static jalview.schemabinding.version2.MapListType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.MapListType) Unmarshaller.unmarshal(jalview.schemabinding.version2.MapListType.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/Mapping.java b/src/jalview/schemabinding/version2/Mapping.java
index fc9edc9..8dbc12f 100644
--- a/src/jalview/schemabinding/version2/Mapping.java
+++ b/src/jalview/schemabinding/version2/Mapping.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,159 +19,147 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Mapping extends jalview.schemabinding.version2.MapListType
-        implements java.io.Serializable
+public class Mapping extends jalview.schemabinding.version2.MapListType 
+implements java.io.Serializable
 {
 
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Internal choice value storage
-   */
-  private java.lang.Object _choiceValue;
-
-  /**
-   * Field _mappingChoice.
-   */
-  private jalview.schemabinding.version2.MappingChoice _mappingChoice;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Mapping()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'choiceValue'. The field 'choiceValue' has the
-   * following description: Internal choice value storage
-   * 
-   * @return the value of field 'ChoiceValue'.
-   */
-  public java.lang.Object getChoiceValue()
-  {
-    return this._choiceValue;
-  }
-
-  /**
-   * Returns the value of field 'mappingChoice'.
-   * 
-   * @return the value of field 'MappingChoice'.
-   */
-  public jalview.schemabinding.version2.MappingChoice getMappingChoice()
-  {
-    return this._mappingChoice;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Internal choice value storage
+     */
+    private java.lang.Object _choiceValue;
+
+    /**
+     * Field _mappingChoice.
+     */
+    private jalview.schemabinding.version2.MappingChoice _mappingChoice;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Mapping() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'choiceValue'. The field
+     * 'choiceValue' has the following description: Internal choice
+     * value storage
+     * 
+     * @return the value of field 'ChoiceValue'.
+     */
+    public java.lang.Object getChoiceValue(
+    ) {
+        return this._choiceValue;
+    }
+
+    /**
+     * Returns the value of field 'mappingChoice'.
+     * 
+     * @return the value of field 'MappingChoice'.
+     */
+    public jalview.schemabinding.version2.MappingChoice getMappingChoice(
+    ) {
+        return this._mappingChoice;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'mappingChoice'.
+     * 
+     * @param mappingChoice the value of field 'mappingChoice'.
+     */
+    public void setMappingChoice(
+            final jalview.schemabinding.version2.MappingChoice mappingChoice) {
+        this._mappingChoice = mappingChoice;
+        this._choiceValue = mappingChoice;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.MapListType
+     */
+    public static jalview.schemabinding.version2.MapListType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.MapListType) Unmarshaller.unmarshal(jalview.schemabinding.version2.Mapping.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'mappingChoice'.
-   * 
-   * @param mappingChoice
-   *                the value of field 'mappingChoice'.
-   */
-  public void setMappingChoice(
-          final jalview.schemabinding.version2.MappingChoice mappingChoice)
-  {
-    this._mappingChoice = mappingChoice;
-    this._choiceValue = mappingChoice;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.MapListType
-   */
-  public static jalview.schemabinding.version2.MapListType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.MapListType) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.Mapping.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/MappingChoice.java b/src/jalview/schemabinding/version2/MappingChoice.java
index ae49027..5f1930d 100644
--- a/src/jalview/schemabinding/version2/MappingChoice.java
+++ b/src/jalview/schemabinding/version2/MappingChoice.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,168 +19,152 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class MappingChoice implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _sequence.
-   */
-  private jalview.schemabinding.version2.Sequence _sequence;
-
-  /**
-   * Field _dseqFor.
-   */
-  private java.lang.String _dseqFor;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MappingChoice()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'dseqFor'.
-   * 
-   * @return the value of field 'DseqFor'.
-   */
-  public java.lang.String getDseqFor()
-  {
-    return this._dseqFor;
-  }
-
-  /**
-   * Returns the value of field 'sequence'.
-   * 
-   * @return the value of field 'Sequence'.
-   */
-  public jalview.schemabinding.version2.Sequence getSequence()
-  {
-    return this._sequence;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class MappingChoice implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _sequence.
+     */
+    private jalview.schemabinding.version2.Sequence _sequence;
+
+    /**
+     * Field _dseqFor.
+     */
+    private java.lang.String _dseqFor;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MappingChoice() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'dseqFor'.
+     * 
+     * @return the value of field 'DseqFor'.
+     */
+    public java.lang.String getDseqFor(
+    ) {
+        return this._dseqFor;
+    }
+
+    /**
+     * Returns the value of field 'sequence'.
+     * 
+     * @return the value of field 'Sequence'.
+     */
+    public jalview.schemabinding.version2.Sequence getSequence(
+    ) {
+        return this._sequence;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'dseqFor'.
+     * 
+     * @param dseqFor the value of field 'dseqFor'.
+     */
+    public void setDseqFor(
+            final java.lang.String dseqFor) {
+        this._dseqFor = dseqFor;
+    }
+
+    /**
+     * Sets the value of field 'sequence'.
+     * 
+     * @param sequence the value of field 'sequence'.
+     */
+    public void setSequence(
+            final jalview.schemabinding.version2.Sequence sequence) {
+        this._sequence = sequence;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.MappingChoice
+     */
+    public static jalview.schemabinding.version2.MappingChoice unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.MappingChoice) Unmarshaller.unmarshal(jalview.schemabinding.version2.MappingChoice.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'dseqFor'.
-   * 
-   * @param dseqFor
-   *                the value of field 'dseqFor'.
-   */
-  public void setDseqFor(final java.lang.String dseqFor)
-  {
-    this._dseqFor = dseqFor;
-  }
-
-  /**
-   * Sets the value of field 'sequence'.
-   * 
-   * @param sequence
-   *                the value of field 'sequence'.
-   */
-  public void setSequence(
-          final jalview.schemabinding.version2.Sequence sequence)
-  {
-    this._sequence = sequence;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.MappingChoice
-   */
-  public static jalview.schemabinding.version2.MappingChoice unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.MappingChoice) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.MappingChoice.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/OtherData.java b/src/jalview/schemabinding/version2/OtherData.java
index 54b63a8..94a5566 100644
--- a/src/jalview/schemabinding/version2/OtherData.java
+++ b/src/jalview/schemabinding/version2/OtherData.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,167 +19,152 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class OtherData implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _key.
-   */
-  private java.lang.String _key;
-
-  /**
-   * Field _value.
-   */
-  private java.lang.String _value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public OtherData()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'key'.
-   * 
-   * @return the value of field 'Key'.
-   */
-  public java.lang.String getKey()
-  {
-    return this._key;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public java.lang.String getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class OtherData implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _key.
+     */
+    private java.lang.String _key;
+
+    /**
+     * Field _value.
+     */
+    private java.lang.String _value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public OtherData() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'key'.
+     * 
+     * @return the value of field 'Key'.
+     */
+    public java.lang.String getKey(
+    ) {
+        return this._key;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public java.lang.String getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'key'.
+     * 
+     * @param key the value of field 'key'.
+     */
+    public void setKey(
+            final java.lang.String key) {
+        this._key = key;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final java.lang.String value) {
+        this._value = value;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.OtherData
+     */
+    public static jalview.schemabinding.version2.OtherData unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.OtherData) Unmarshaller.unmarshal(jalview.schemabinding.version2.OtherData.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'key'.
-   * 
-   * @param key
-   *                the value of field 'key'.
-   */
-  public void setKey(final java.lang.String key)
-  {
-    this._key = key;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *                the value of field 'value'.
-   */
-  public void setValue(final java.lang.String value)
-  {
-    this._value = value;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.OtherData
-   */
-  public static jalview.schemabinding.version2.OtherData unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.OtherData) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.OtherData.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Pdbentry.java b/src/jalview/schemabinding/version2/Pdbentry.java
index 1d4fff0..6ff1819 100755
--- a/src/jalview/schemabinding/version2/Pdbentry.java
+++ b/src/jalview/schemabinding/version2/Pdbentry.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,361 +19,334 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Pdbentry implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _file.
-   */
-  private java.lang.String _file;
-
-  /**
-   * Field _items.
-   */
-  private java.util.Vector _items;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Pdbentry()
-  {
-    super();
-    this._items = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbentryItem(
-          final jalview.schemabinding.version2.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._items.addElement(vPdbentryItem);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addPdbentryItem(final int index,
-          final jalview.schemabinding.version2.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._items.add(index, vPdbentryItem);
-  }
-
-  /**
-   * Method enumeratePdbentryItem.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.PdbentryItem
-   *         elements
-   */
-  public java.util.Enumeration enumeratePdbentryItem()
-  {
-    return this._items.elements();
-  }
-
-  /**
-   * Returns the value of field 'file'.
-   * 
-   * @return the value of field 'File'.
-   */
-  public java.lang.String getFile()
-  {
-    return this._file;
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Method getPdbentryItem.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.PdbentryItem at the
-   *         given inde
-   */
-  public jalview.schemabinding.version2.PdbentryItem getPdbentryItem(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._items.size())
-    {
-      throw new IndexOutOfBoundsException("getPdbentryItem: Index value '"
-              + index + "' not in range [0.." + (this._items.size() - 1)
-              + "]");
+public class Pdbentry implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _file.
+     */
+    private java.lang.String _file;
+
+    /**
+     * Field _items.
+     */
+    private java.util.Vector _items;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Pdbentry() {
+        super();
+        this._items = new java.util.Vector();
     }
 
-    return (jalview.schemabinding.version2.PdbentryItem) _items.get(index);
-  }
-
-  /**
-   * Method getPdbentryItem.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.PdbentryItem[] getPdbentryItem()
-  {
-    jalview.schemabinding.version2.PdbentryItem[] array = new jalview.schemabinding.version2.PdbentryItem[0];
-    return (jalview.schemabinding.version2.PdbentryItem[]) this._items
-            .toArray(array);
-  }
-
-  /**
-   * Method getPdbentryItemCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPdbentryItemCount()
-  {
-    return this._items.size();
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbentryItem(
+            final jalview.schemabinding.version2.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        this._items.addElement(vPdbentryItem);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllPdbentryItem()
-  {
-    this._items.clear();
-  }
-
-  /**
-   * Method removePdbentryItem.
-   * 
-   * @param vPdbentryItem
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removePdbentryItem(
-          final jalview.schemabinding.version2.PdbentryItem vPdbentryItem)
-  {
-    boolean removed = _items.remove(vPdbentryItem);
-    return removed;
-  }
-
-  /**
-   * Method removePdbentryItemAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.PdbentryItem removePdbentryItemAt(
-          final int index)
-  {
-    java.lang.Object obj = this._items.remove(index);
-    return (jalview.schemabinding.version2.PdbentryItem) obj;
-  }
-
-  /**
-   * Sets the value of field 'file'.
-   * 
-   * @param file
-   *                the value of field 'file'.
-   */
-  public void setFile(final java.lang.String file)
-  {
-    this._file = file;
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vPdbentryItem
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setPdbentryItem(final int index,
-          final jalview.schemabinding.version2.PdbentryItem vPdbentryItem)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._items.size())
-    {
-      throw new IndexOutOfBoundsException("setPdbentryItem: Index value '"
-              + index + "' not in range [0.." + (this._items.size() - 1)
-              + "]");
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addPdbentryItem(
+            final int index,
+            final jalview.schemabinding.version2.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        this._items.add(index, vPdbentryItem);
+    }
+
+    /**
+     * Method enumeratePdbentryItem.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.PdbentryItem elements
+     */
+    public java.util.Enumeration enumeratePdbentryItem(
+    ) {
+        return this._items.elements();
+    }
+
+    /**
+     * Returns the value of field 'file'.
+     * 
+     * @return the value of field 'File'.
+     */
+    public java.lang.String getFile(
+    ) {
+        return this._file;
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Method getPdbentryItem.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.PdbentryItem at the given inde
+     */
+    public jalview.schemabinding.version2.PdbentryItem getPdbentryItem(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._items.size()) {
+            throw new IndexOutOfBoundsException("getPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.PdbentryItem) _items.get(index);
+    }
+
+    /**
+     * Method getPdbentryItem.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.PdbentryItem[] getPdbentryItem(
+    ) {
+        jalview.schemabinding.version2.PdbentryItem[] array = new jalview.schemabinding.version2.PdbentryItem[0];
+        return (jalview.schemabinding.version2.PdbentryItem[]) this._items.toArray(array);
+    }
+
+    /**
+     * Method getPdbentryItemCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPdbentryItemCount(
+    ) {
+        return this._items.size();
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllPdbentryItem(
+    ) {
+        this._items.clear();
+    }
+
+    /**
+     * Method removePdbentryItem.
+     * 
+     * @param vPdbentryItem
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removePdbentryItem(
+            final jalview.schemabinding.version2.PdbentryItem vPdbentryItem) {
+        boolean removed = _items.remove(vPdbentryItem);
+        return removed;
+    }
+
+    /**
+     * Method removePdbentryItemAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.PdbentryItem removePdbentryItemAt(
+            final int index) {
+        java.lang.Object obj = this._items.remove(index);
+        return (jalview.schemabinding.version2.PdbentryItem) obj;
+    }
+
+    /**
+     * Sets the value of field 'file'.
+     * 
+     * @param file the value of field 'file'.
+     */
+    public void setFile(
+            final java.lang.String file) {
+        this._file = file;
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vPdbentryItem
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setPdbentryItem(
+            final int index,
+            final jalview.schemabinding.version2.PdbentryItem vPdbentryItem)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._items.size()) {
+            throw new IndexOutOfBoundsException("setPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+        }
+        
+        this._items.set(index, vPdbentryItem);
+    }
+
+    /**
+     * 
+     * 
+     * @param vPdbentryItemArray
+     */
+    public void setPdbentryItem(
+            final jalview.schemabinding.version2.PdbentryItem[] vPdbentryItemArray) {
+        //-- copy array
+        _items.clear();
+        
+        for (int i = 0; i < vPdbentryItemArray.length; i++) {
+                this._items.add(vPdbentryItemArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.Pdbentry
+     */
+    public static jalview.schemabinding.version2.Pdbentry unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Pdbentry) Unmarshaller.unmarshal(jalview.schemabinding.version2.Pdbentry.class, reader);
     }
 
-    this._items.set(index, vPdbentryItem);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPdbentryItemArray
-   */
-  public void setPdbentryItem(
-          final jalview.schemabinding.version2.PdbentryItem[] vPdbentryItemArray)
-  {
-    // -- copy array
-    _items.clear();
-
-    for (int i = 0; i < vPdbentryItemArray.length; i++)
-    {
-      this._items.add(vPdbentryItemArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *                the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Pdbentry
-   */
-  public static jalview.schemabinding.version2.Pdbentry unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Pdbentry) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.Pdbentry.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/PdbentryItem.java b/src/jalview/schemabinding/version2/PdbentryItem.java
index 94de615..3dbc99c 100755
--- a/src/jalview/schemabinding/version2/PdbentryItem.java
+++ b/src/jalview/schemabinding/version2/PdbentryItem.java
@@ -1,21 +1,10 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
 /**
@@ -23,193 +12,181 @@ package jalview.schemabinding.version2;
  * 
  * @version $Revision$ $Date$
  */
-public class PdbentryItem implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _propertyList.
-   */
-  private java.util.Vector _propertyList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public PdbentryItem()
-  {
-    super();
-    this._propertyList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addProperty(
-          final jalview.schemabinding.version2.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._propertyList.addElement(vProperty);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addProperty(final int index,
-          final jalview.schemabinding.version2.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._propertyList.add(index, vProperty);
-  }
-
-  /**
-   * Method enumerateProperty.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Property
-   *         elements
-   */
-  public java.util.Enumeration enumerateProperty()
-  {
-    return this._propertyList.elements();
-  }
-
-  /**
-   * Method getProperty.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Property at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.Property getProperty(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._propertyList.size())
-    {
-      throw new IndexOutOfBoundsException("getProperty: Index value '"
-              + index + "' not in range [0.."
-              + (this._propertyList.size() - 1) + "]");
+public class PdbentryItem implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _propertyList.
+     */
+    private java.util.Vector _propertyList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public PdbentryItem() {
+        super();
+        this._propertyList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addProperty(
+            final jalview.schemabinding.version2.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        this._propertyList.addElement(vProperty);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addProperty(
+            final int index,
+            final jalview.schemabinding.version2.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        this._propertyList.add(index, vProperty);
+    }
+
+    /**
+     * Method enumerateProperty.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Property elements
+     */
+    public java.util.Enumeration enumerateProperty(
+    ) {
+        return this._propertyList.elements();
+    }
+
+    /**
+     * Method getProperty.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Property at the given index
+     */
+    public jalview.schemabinding.version2.Property getProperty(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._propertyList.size()) {
+            throw new IndexOutOfBoundsException("getProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Property) _propertyList.get(index);
+    }
+
+    /**
+     * Method getProperty.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Property[] getProperty(
+    ) {
+        jalview.schemabinding.version2.Property[] array = new jalview.schemabinding.version2.Property[0];
+        return (jalview.schemabinding.version2.Property[]) this._propertyList.toArray(array);
+    }
+
+    /**
+     * Method getPropertyCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getPropertyCount(
+    ) {
+        return this._propertyList.size();
+    }
+
+    /**
+     */
+    public void removeAllProperty(
+    ) {
+        this._propertyList.clear();
+    }
+
+    /**
+     * Method removeProperty.
+     * 
+     * @param vProperty
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeProperty(
+            final jalview.schemabinding.version2.Property vProperty) {
+        boolean removed = _propertyList.remove(vProperty);
+        return removed;
+    }
+
+    /**
+     * Method removePropertyAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Property removePropertyAt(
+            final int index) {
+        java.lang.Object obj = this._propertyList.remove(index);
+        return (jalview.schemabinding.version2.Property) obj;
     }
 
-    return (jalview.schemabinding.version2.Property) _propertyList
-            .get(index);
-  }
-
-  /**
-   * Method getProperty.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Property[] getProperty()
-  {
-    jalview.schemabinding.version2.Property[] array = new jalview.schemabinding.version2.Property[0];
-    return (jalview.schemabinding.version2.Property[]) this._propertyList
-            .toArray(array);
-  }
-
-  /**
-   * Method getPropertyCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getPropertyCount()
-  {
-    return this._propertyList.size();
-  }
-
-  /**
-   */
-  public void removeAllProperty()
-  {
-    this._propertyList.clear();
-  }
-
-  /**
-   * Method removeProperty.
-   * 
-   * @param vProperty
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeProperty(
-          final jalview.schemabinding.version2.Property vProperty)
-  {
-    boolean removed = _propertyList.remove(vProperty);
-    return removed;
-  }
-
-  /**
-   * Method removePropertyAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Property removePropertyAt(
-          final int index)
-  {
-    java.lang.Object obj = this._propertyList.remove(index);
-    return (jalview.schemabinding.version2.Property) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vProperty
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setProperty(final int index,
-          final jalview.schemabinding.version2.Property vProperty)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._propertyList.size())
-    {
-      throw new IndexOutOfBoundsException("setProperty: Index value '"
-              + index + "' not in range [0.."
-              + (this._propertyList.size() - 1) + "]");
+    /**
+     * 
+     * 
+     * @param index
+     * @param vProperty
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setProperty(
+            final int index,
+            final jalview.schemabinding.version2.Property vProperty)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._propertyList.size()) {
+            throw new IndexOutOfBoundsException("setProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+        }
+        
+        this._propertyList.set(index, vProperty);
     }
 
-    this._propertyList.set(index, vProperty);
-  }
-
-  /**
-   * 
-   * 
-   * @param vPropertyArray
-   */
-  public void setProperty(
-          final jalview.schemabinding.version2.Property[] vPropertyArray)
-  {
-    // -- copy array
-    _propertyList.clear();
-
-    for (int i = 0; i < vPropertyArray.length; i++)
-    {
-      this._propertyList.add(vPropertyArray[i]);
+    /**
+     * 
+     * 
+     * @param vPropertyArray
+     */
+    public void setProperty(
+            final jalview.schemabinding.version2.Property[] vPropertyArray) {
+        //-- copy array
+        _propertyList.clear();
+        
+        for (int i = 0; i < vPropertyArray.length; i++) {
+                this._propertyList.add(vPropertyArray[i]);
+        }
     }
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Pdbids.java b/src/jalview/schemabinding/version2/Pdbids.java
index d0556c0..04685b9 100755
--- a/src/jalview/schemabinding/version2/Pdbids.java
+++ b/src/jalview/schemabinding/version2/Pdbids.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,289 +19,262 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Pdbids extends jalview.schemabinding.version2.Pdbentry
-        implements java.io.Serializable
+public class Pdbids extends jalview.schemabinding.version2.Pdbentry 
+implements java.io.Serializable
 {
 
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
 
-  /**
-   * Field _structureStateList.
-   */
-  private java.util.Vector _structureStateList;
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
+    /**
+     * Field _structureStateList.
+     */
+    private java.util.Vector _structureStateList;
 
-  public Pdbids()
-  {
-    super();
-    this._structureStateList = new java.util.Vector();
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //----------------/
+     //- Constructors -/
+    //----------------/
 
-  /**
-   * 
-   * 
-   * @param vStructureState
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addStructureState(
-          final jalview.schemabinding.version2.StructureState vStructureState)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._structureStateList.addElement(vStructureState);
-  }
+    public Pdbids() {
+        super();
+        this._structureStateList = new java.util.Vector();
+    }
 
-  /**
-   * 
-   * 
-   * @param index
-   * @param vStructureState
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addStructureState(
-          final int index,
-          final jalview.schemabinding.version2.StructureState vStructureState)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._structureStateList.add(index, vStructureState);
-  }
 
-  /**
-   * Method enumerateStructureState.
-   * 
-   * @return an Enumeration over all
-   *         jalview.schemabinding.version2.StructureState elements
-   */
-  public java.util.Enumeration enumerateStructureState()
-  {
-    return this._structureStateList.elements();
-  }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method getStructureState.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.StructureState at
-   *         the given index
-   */
-  public jalview.schemabinding.version2.StructureState getStructureState(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._structureStateList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "getStructureState: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._structureStateList.size() - 1) + "]");
+    /**
+     * 
+     * 
+     * @param vStructureState
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addStructureState(
+            final jalview.schemabinding.version2.StructureState vStructureState)
+    throws java.lang.IndexOutOfBoundsException {
+        this._structureStateList.addElement(vStructureState);
     }
 
-    return (jalview.schemabinding.version2.StructureState) _structureStateList
-            .get(index);
-  }
+    /**
+     * 
+     * 
+     * @param index
+     * @param vStructureState
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addStructureState(
+            final int index,
+            final jalview.schemabinding.version2.StructureState vStructureState)
+    throws java.lang.IndexOutOfBoundsException {
+        this._structureStateList.add(index, vStructureState);
+    }
 
-  /**
-   * Method getStructureState.Returns the contents of the collection in an
-   * Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.StructureState[] getStructureState()
-  {
-    jalview.schemabinding.version2.StructureState[] array = new jalview.schemabinding.version2.StructureState[0];
-    return (jalview.schemabinding.version2.StructureState[]) this._structureStateList
-            .toArray(array);
-  }
+    /**
+     * Method enumerateStructureState.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.StructureState elements
+     */
+    public java.util.Enumeration enumerateStructureState(
+    ) {
+        return this._structureStateList.elements();
+    }
 
-  /**
-   * Method getStructureStateCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getStructureStateCount()
-  {
-    return this._structureStateList.size();
-  }
+    /**
+     * Method getStructureState.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.StructureState at the given
+     * index
+     */
+    public jalview.schemabinding.version2.StructureState getStructureState(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._structureStateList.size()) {
+            throw new IndexOutOfBoundsException("getStructureState: Index value '" + index + "' not in range [0.." + (this._structureStateList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.StructureState) _structureStateList.get(index);
+    }
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method getStructureState.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.StructureState[] getStructureState(
+    ) {
+        jalview.schemabinding.version2.StructureState[] array = new jalview.schemabinding.version2.StructureState[0];
+        return (jalview.schemabinding.version2.StructureState[]) this._structureStateList.toArray(array);
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * Method getStructureStateCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getStructureStateCount(
+    ) {
+        return this._structureStateList.size();
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
 
-  /**
-   */
-  public void removeAllStructureState()
-  {
-    this._structureStateList.clear();
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * Method removeStructureState.
-   * 
-   * @param vStructureState
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeStructureState(
-          final jalview.schemabinding.version2.StructureState vStructureState)
-  {
-    boolean removed = _structureStateList.remove(vStructureState);
-    return removed;
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method removeStructureStateAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.StructureState removeStructureStateAt(
-          final int index)
-  {
-    java.lang.Object obj = this._structureStateList.remove(index);
-    return (jalview.schemabinding.version2.StructureState) obj;
-  }
+    /**
+     */
+    public void removeAllStructureState(
+    ) {
+        this._structureStateList.clear();
+    }
 
-  /**
-   * 
-   * 
-   * @param index
-   * @param vStructureState
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setStructureState(
-          final int index,
-          final jalview.schemabinding.version2.StructureState vStructureState)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._structureStateList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "setStructureState: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._structureStateList.size() - 1) + "]");
+    /**
+     * Method removeStructureState.
+     * 
+     * @param vStructureState
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeStructureState(
+            final jalview.schemabinding.version2.StructureState vStructureState) {
+        boolean removed = _structureStateList.remove(vStructureState);
+        return removed;
     }
 
-    this._structureStateList.set(index, vStructureState);
-  }
+    /**
+     * Method removeStructureStateAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.StructureState removeStructureStateAt(
+            final int index) {
+        java.lang.Object obj = this._structureStateList.remove(index);
+        return (jalview.schemabinding.version2.StructureState) obj;
+    }
 
-  /**
-   * 
-   * 
-   * @param vStructureStateArray
-   */
-  public void setStructureState(
-          final jalview.schemabinding.version2.StructureState[] vStructureStateArray)
-  {
-    // -- copy array
-    _structureStateList.clear();
+    /**
+     * 
+     * 
+     * @param index
+     * @param vStructureState
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setStructureState(
+            final int index,
+            final jalview.schemabinding.version2.StructureState vStructureState)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._structureStateList.size()) {
+            throw new IndexOutOfBoundsException("setStructureState: Index value '" + index + "' not in range [0.." + (this._structureStateList.size() - 1) + "]");
+        }
+        
+        this._structureStateList.set(index, vStructureState);
+    }
 
-    for (int i = 0; i < vStructureStateArray.length; i++)
-    {
-      this._structureStateList.add(vStructureStateArray[i]);
+    /**
+     * 
+     * 
+     * @param vStructureStateArray
+     */
+    public void setStructureState(
+            final jalview.schemabinding.version2.StructureState[] vStructureStateArray) {
+        //-- copy array
+        _structureStateList.clear();
+        
+        for (int i = 0; i < vStructureStateArray.length; i++) {
+                this._structureStateList.add(vStructureStateArray[i]);
+        }
     }
-  }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Pdbentry
-   */
-  public static jalview.schemabinding.version2.Pdbentry unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Pdbentry) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.Pdbids.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.Pdbentry
+     */
+    public static jalview.schemabinding.version2.Pdbentry unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Pdbentry) Unmarshaller.unmarshal(jalview.schemabinding.version2.Pdbids.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/Property.java b/src/jalview/schemabinding/version2/Property.java
index ce54ffd..bfc4dde 100755
--- a/src/jalview/schemabinding/version2/Property.java
+++ b/src/jalview/schemabinding/version2/Property.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,167 +19,152 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Property implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  /**
-   * Field _value.
-   */
-  private java.lang.String _value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Property()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public java.lang.String getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Property implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+    /**
+     * Field _value.
+     */
+    private java.lang.String _value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Property() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public java.lang.String getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final java.lang.String value) {
+        this._value = value;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.Property
+     */
+    public static jalview.schemabinding.version2.Property unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Property) Unmarshaller.unmarshal(jalview.schemabinding.version2.Property.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *                the value of field 'value'.
-   */
-  public void setValue(final java.lang.String value)
-  {
-    this._value = value;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Property
-   */
-  public static jalview.schemabinding.version2.Property unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Property) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.Property.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Sequence.java b/src/jalview/schemabinding/version2/Sequence.java
index 7360772..e606eeb 100755
--- a/src/jalview/schemabinding/version2/Sequence.java
+++ b/src/jalview/schemabinding/version2/Sequence.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,314 +19,293 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Sequence extends jalview.schemabinding.version2.SequenceType
-        implements java.io.Serializable
+public class Sequence extends jalview.schemabinding.version2.SequenceType 
+implements java.io.Serializable
 {
 
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * dataset sequence id for this sequence. Will be created as union of
-   * sequences.
-   * 
-   */
-  private java.lang.String _dsseqid;
-
-  /**
-   * Field _DBRefList.
-   */
-  private java.util.Vector _DBRefList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Sequence()
-  {
-    super();
-    this._DBRefList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vDBRef
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addDBRef(final jalview.schemabinding.version2.DBRef vDBRef)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._DBRefList.addElement(vDBRef);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vDBRef
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addDBRef(final int index,
-          final jalview.schemabinding.version2.DBRef vDBRef)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._DBRefList.add(index, vDBRef);
-  }
-
-  /**
-   * Method enumerateDBRef.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.DBRef
-   *         elements
-   */
-  public java.util.Enumeration enumerateDBRef()
-  {
-    return this._DBRefList.elements();
-  }
-
-  /**
-   * Method getDBRef.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.DBRef at the given
-   *         index
-   */
-  public jalview.schemabinding.version2.DBRef getDBRef(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._DBRefList.size())
-    {
-      throw new IndexOutOfBoundsException("getDBRef: Index value '" + index
-              + "' not in range [0.." + (this._DBRefList.size() - 1) + "]");
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * dataset sequence id for this sequence. Will be created as
+     * union of sequences.
+     *  
+     */
+    private java.lang.String _dsseqid;
+
+    /**
+     * Field _DBRefList.
+     */
+    private java.util.Vector _DBRefList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Sequence() {
+        super();
+        this._DBRefList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vDBRef
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addDBRef(
+            final jalview.schemabinding.version2.DBRef vDBRef)
+    throws java.lang.IndexOutOfBoundsException {
+        this._DBRefList.addElement(vDBRef);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vDBRef
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addDBRef(
+            final int index,
+            final jalview.schemabinding.version2.DBRef vDBRef)
+    throws java.lang.IndexOutOfBoundsException {
+        this._DBRefList.add(index, vDBRef);
+    }
+
+    /**
+     * Method enumerateDBRef.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.DBRef elements
+     */
+    public java.util.Enumeration enumerateDBRef(
+    ) {
+        return this._DBRefList.elements();
+    }
+
+    /**
+     * Method getDBRef.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.DBRef at the given index
+     */
+    public jalview.schemabinding.version2.DBRef getDBRef(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._DBRefList.size()) {
+            throw new IndexOutOfBoundsException("getDBRef: Index value '" + index + "' not in range [0.." + (this._DBRefList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.DBRef) _DBRefList.get(index);
+    }
+
+    /**
+     * Method getDBRef.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.DBRef[] getDBRef(
+    ) {
+        jalview.schemabinding.version2.DBRef[] array = new jalview.schemabinding.version2.DBRef[0];
+        return (jalview.schemabinding.version2.DBRef[]) this._DBRefList.toArray(array);
     }
 
-    return (jalview.schemabinding.version2.DBRef) _DBRefList.get(index);
-  }
-
-  /**
-   * Method getDBRef.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.DBRef[] getDBRef()
-  {
-    jalview.schemabinding.version2.DBRef[] array = new jalview.schemabinding.version2.DBRef[0];
-    return (jalview.schemabinding.version2.DBRef[]) this._DBRefList
-            .toArray(array);
-  }
-
-  /**
-   * Method getDBRefCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getDBRefCount()
-  {
-    return this._DBRefList.size();
-  }
-
-  /**
-   * Returns the value of field 'dsseqid'. The field 'dsseqid' has the following
-   * description: dataset sequence id for this sequence. Will be created as
-   * union of sequences.
-   * 
-   * 
-   * @return the value of field 'Dsseqid'.
-   */
-  public java.lang.String getDsseqid()
-  {
-    return this._dsseqid;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method getDBRefCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getDBRefCount(
+    ) {
+        return this._DBRefList.size();
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllDBRef()
-  {
-    this._DBRefList.clear();
-  }
-
-  /**
-   * Method removeDBRef.
-   * 
-   * @param vDBRef
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeDBRef(
-          final jalview.schemabinding.version2.DBRef vDBRef)
-  {
-    boolean removed = _DBRefList.remove(vDBRef);
-    return removed;
-  }
-
-  /**
-   * Method removeDBRefAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.DBRef removeDBRefAt(final int index)
-  {
-    java.lang.Object obj = this._DBRefList.remove(index);
-    return (jalview.schemabinding.version2.DBRef) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vDBRef
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setDBRef(final int index,
-          final jalview.schemabinding.version2.DBRef vDBRef)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._DBRefList.size())
-    {
-      throw new IndexOutOfBoundsException("setDBRef: Index value '" + index
-              + "' not in range [0.." + (this._DBRefList.size() - 1) + "]");
+
+    /**
+     * Returns the value of field 'dsseqid'. The field 'dsseqid'
+     * has the following description: dataset sequence id for this
+     * sequence. Will be created as union of sequences.
+     *  
+     * 
+     * @return the value of field 'Dsseqid'.
+     */
+    public java.lang.String getDsseqid(
+    ) {
+        return this._dsseqid;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllDBRef(
+    ) {
+        this._DBRefList.clear();
+    }
+
+    /**
+     * Method removeDBRef.
+     * 
+     * @param vDBRef
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeDBRef(
+            final jalview.schemabinding.version2.DBRef vDBRef) {
+        boolean removed = _DBRefList.remove(vDBRef);
+        return removed;
+    }
+
+    /**
+     * Method removeDBRefAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.DBRef removeDBRefAt(
+            final int index) {
+        java.lang.Object obj = this._DBRefList.remove(index);
+        return (jalview.schemabinding.version2.DBRef) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vDBRef
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setDBRef(
+            final int index,
+            final jalview.schemabinding.version2.DBRef vDBRef)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._DBRefList.size()) {
+            throw new IndexOutOfBoundsException("setDBRef: Index value '" + index + "' not in range [0.." + (this._DBRefList.size() - 1) + "]");
+        }
+        
+        this._DBRefList.set(index, vDBRef);
+    }
+
+    /**
+     * 
+     * 
+     * @param vDBRefArray
+     */
+    public void setDBRef(
+            final jalview.schemabinding.version2.DBRef[] vDBRefArray) {
+        //-- copy array
+        _DBRefList.clear();
+        
+        for (int i = 0; i < vDBRefArray.length; i++) {
+                this._DBRefList.add(vDBRefArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'dsseqid'. The field 'dsseqid' has
+     * the following description: dataset sequence id for this
+     * sequence. Will be created as union of sequences.
+     *  
+     * 
+     * @param dsseqid the value of field 'dsseqid'.
+     */
+    public void setDsseqid(
+            final java.lang.String dsseqid) {
+        this._dsseqid = dsseqid;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.SequenceType
+     */
+    public static jalview.schemabinding.version2.SequenceType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.SequenceType) Unmarshaller.unmarshal(jalview.schemabinding.version2.Sequence.class, reader);
     }
 
-    this._DBRefList.set(index, vDBRef);
-  }
-
-  /**
-   * 
-   * 
-   * @param vDBRefArray
-   */
-  public void setDBRef(
-          final jalview.schemabinding.version2.DBRef[] vDBRefArray)
-  {
-    // -- copy array
-    _DBRefList.clear();
-
-    for (int i = 0; i < vDBRefArray.length; i++)
-    {
-      this._DBRefList.add(vDBRefArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Sets the value of field 'dsseqid'. The field 'dsseqid' has the following
-   * description: dataset sequence id for this sequence. Will be created as
-   * union of sequences.
-   * 
-   * 
-   * @param dsseqid
-   *                the value of field 'dsseqid'.
-   */
-  public void setDsseqid(final java.lang.String dsseqid)
-  {
-    this._dsseqid = dsseqid;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.SequenceType
-   */
-  public static jalview.schemabinding.version2.SequenceType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.SequenceType) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.Sequence.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/SequenceSet.java b/src/jalview/schemabinding/version2/SequenceSet.java
index 3179078..481c37f 100755
--- a/src/jalview/schemabinding/version2/SequenceSet.java
+++ b/src/jalview/schemabinding/version2/SequenceSet.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,858 +19,789 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceSet implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _gapChar.
-   */
-  private java.lang.String _gapChar;
-
-  /**
-   * reference to set where jalview will gather the dataset sequences for all
-   * sequences in the set.
-   * 
-   */
-  private java.lang.String _datasetId;
-
-  /**
-   * Field _sequenceList.
-   */
-  private java.util.Vector _sequenceList;
-
-  /**
-   * Field _annotationList.
-   */
-  private java.util.Vector _annotationList;
-
-  /**
-   * Field _sequenceSetPropertiesList.
-   */
-  private java.util.Vector _sequenceSetPropertiesList;
-
-  /**
-   * Field _alcodonFrameList.
-   */
-  private java.util.Vector _alcodonFrameList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceSet()
-  {
-    super();
-    this._sequenceList = new java.util.Vector();
-    this._annotationList = new java.util.Vector();
-    this._sequenceSetPropertiesList = new java.util.Vector();
-    this._alcodonFrameList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vAlcodonFrame
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlcodonFrame(
-          final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alcodonFrameList.addElement(vAlcodonFrame);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlcodonFrame
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAlcodonFrame(final int index,
-          final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._alcodonFrameList.add(index, vAlcodonFrame);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotation(
-          final jalview.schemabinding.version2.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationList.addElement(vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addAnnotation(final int index,
-          final jalview.schemabinding.version2.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._annotationList.add(index, vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequence(
-          final jalview.schemabinding.version2.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceList.addElement(vSequence);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequence(final int index,
-          final jalview.schemabinding.version2.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceList.add(index, vSequence);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceSetProperties
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSetProperties(
-          final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetPropertiesList.addElement(vSequenceSetProperties);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSetProperties
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSetProperties(
-          final int index,
-          final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetPropertiesList.add(index, vSequenceSetProperties);
-  }
-
-  /**
-   * Method enumerateAlcodonFrame.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.AlcodonFrame
-   *         elements
-   */
-  public java.util.Enumeration enumerateAlcodonFrame()
-  {
-    return this._alcodonFrameList.elements();
-  }
-
-  /**
-   * Method enumerateAnnotation.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Annotation
-   *         elements
-   */
-  public java.util.Enumeration enumerateAnnotation()
-  {
-    return this._annotationList.elements();
-  }
-
-  /**
-   * Method enumerateSequence.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.Sequence
-   *         elements
-   */
-  public java.util.Enumeration enumerateSequence()
-  {
-    return this._sequenceList.elements();
-  }
-
-  /**
-   * Method enumerateSequenceSetProperties.
-   * 
-   * @return an Enumeration over all
-   *         jalview.schemabinding.version2.SequenceSetProperties elements
-   */
-  public java.util.Enumeration enumerateSequenceSetProperties()
-  {
-    return this._sequenceSetPropertiesList.elements();
-  }
-
-  /**
-   * Method getAlcodonFrame.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.AlcodonFrame at the
-   *         given inde
-   */
-  public jalview.schemabinding.version2.AlcodonFrame getAlcodonFrame(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alcodonFrameList.size())
-    {
-      throw new IndexOutOfBoundsException("getAlcodonFrame: Index value '"
-              + index + "' not in range [0.."
-              + (this._alcodonFrameList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.AlcodonFrame) _alcodonFrameList
-            .get(index);
-  }
-
-  /**
-   * Method getAlcodonFrame.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.AlcodonFrame[] getAlcodonFrame()
-  {
-    jalview.schemabinding.version2.AlcodonFrame[] array = new jalview.schemabinding.version2.AlcodonFrame[0];
-    return (jalview.schemabinding.version2.AlcodonFrame[]) this._alcodonFrameList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAlcodonFrameCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAlcodonFrameCount()
-  {
-    return this._alcodonFrameList.size();
-  }
-
-  /**
-   * Method getAnnotation.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Annotation at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.Annotation getAnnotation(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationList.size())
-    {
-      throw new IndexOutOfBoundsException("getAnnotation: Index value '"
-              + index + "' not in range [0.."
-              + (this._annotationList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.Annotation) _annotationList
-            .get(index);
-  }
-
-  /**
-   * Method getAnnotation.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Annotation[] getAnnotation()
-  {
-    jalview.schemabinding.version2.Annotation[] array = new jalview.schemabinding.version2.Annotation[0];
-    return (jalview.schemabinding.version2.Annotation[]) this._annotationList
-            .toArray(array);
-  }
-
-  /**
-   * Method getAnnotationCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getAnnotationCount()
-  {
-    return this._annotationList.size();
-  }
-
-  /**
-   * Returns the value of field 'datasetId'. The field 'datasetId' has the
-   * following description: reference to set where jalview will gather the
-   * dataset sequences for all sequences in the set.
-   * 
-   * 
-   * @return the value of field 'DatasetId'.
-   */
-  public java.lang.String getDatasetId()
-  {
-    return this._datasetId;
-  }
-
-  /**
-   * Returns the value of field 'gapChar'.
-   * 
-   * @return the value of field 'GapChar'.
-   */
-  public java.lang.String getGapChar()
-  {
-    return this._gapChar;
-  }
-
-  /**
-   * Method getSequence.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.Sequence at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.Sequence getSequence(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceList.size())
-    {
-      throw new IndexOutOfBoundsException("getSequence: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.Sequence) _sequenceList
-            .get(index);
-  }
-
-  /**
-   * Method getSequence.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.Sequence[] getSequence()
-  {
-    jalview.schemabinding.version2.Sequence[] array = new jalview.schemabinding.version2.Sequence[0];
-    return (jalview.schemabinding.version2.Sequence[]) this._sequenceList
-            .toArray(array);
-  }
-
-  /**
-   * Method getSequenceCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSequenceCount()
-  {
-    return this._sequenceList.size();
-  }
-
-  /**
-   * Method getSequenceSetProperties.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the
-   *         jalview.schemabinding.version2.SequenceSetProperties at the given
-   *         index
-   */
-  public jalview.schemabinding.version2.SequenceSetProperties getSequenceSetProperties(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetPropertiesList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "getSequenceSetProperties: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._sequenceSetPropertiesList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.SequenceSetProperties) _sequenceSetPropertiesList
-            .get(index);
-  }
-
-  /**
-   * Method getSequenceSetProperties.Returns the contents of the collection in
-   * an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.SequenceSetProperties[] getSequenceSetProperties()
-  {
-    jalview.schemabinding.version2.SequenceSetProperties[] array = new jalview.schemabinding.version2.SequenceSetProperties[0];
-    return (jalview.schemabinding.version2.SequenceSetProperties[]) this._sequenceSetPropertiesList
-            .toArray(array);
-  }
-
-  /**
-   * Method getSequenceSetPropertiesCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSequenceSetPropertiesCount()
-  {
-    return this._sequenceSetPropertiesList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Method removeAlcodonFrame.
-   * 
-   * @param vAlcodonFrame
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAlcodonFrame(
-          final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame)
-  {
-    boolean removed = _alcodonFrameList.remove(vAlcodonFrame);
-    return removed;
-  }
-
-  /**
-   * Method removeAlcodonFrameAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.AlcodonFrame removeAlcodonFrameAt(
-          final int index)
-  {
-    java.lang.Object obj = this._alcodonFrameList.remove(index);
-    return (jalview.schemabinding.version2.AlcodonFrame) obj;
-  }
-
-  /**
-   */
-  public void removeAllAlcodonFrame()
-  {
-    this._alcodonFrameList.clear();
-  }
-
-  /**
-   */
-  public void removeAllAnnotation()
-  {
-    this._annotationList.clear();
-  }
-
-  /**
-   */
-  public void removeAllSequence()
-  {
-    this._sequenceList.clear();
-  }
-
-  /**
-   */
-  public void removeAllSequenceSetProperties()
-  {
-    this._sequenceSetPropertiesList.clear();
-  }
-
-  /**
-   * Method removeAnnotation.
-   * 
-   * @param vAnnotation
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeAnnotation(
-          final jalview.schemabinding.version2.Annotation vAnnotation)
-  {
-    boolean removed = _annotationList.remove(vAnnotation);
-    return removed;
-  }
-
-  /**
-   * Method removeAnnotationAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Annotation removeAnnotationAt(
-          final int index)
-  {
-    java.lang.Object obj = this._annotationList.remove(index);
-    return (jalview.schemabinding.version2.Annotation) obj;
-  }
-
-  /**
-   * Method removeSequence.
-   * 
-   * @param vSequence
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSequence(
-          final jalview.schemabinding.version2.Sequence vSequence)
-  {
-    boolean removed = _sequenceList.remove(vSequence);
-    return removed;
-  }
-
-  /**
-   * Method removeSequenceAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.Sequence removeSequenceAt(
-          final int index)
-  {
-    java.lang.Object obj = this._sequenceList.remove(index);
-    return (jalview.schemabinding.version2.Sequence) obj;
-  }
-
-  /**
-   * Method removeSequenceSetProperties.
-   * 
-   * @param vSequenceSetProperties
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSequenceSetProperties(
-          final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties)
-  {
-    boolean removed = _sequenceSetPropertiesList
-            .remove(vSequenceSetProperties);
-    return removed;
-  }
-
-  /**
-   * Method removeSequenceSetPropertiesAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.SequenceSetProperties removeSequenceSetPropertiesAt(
-          final int index)
-  {
-    java.lang.Object obj = this._sequenceSetPropertiesList.remove(index);
-    return (jalview.schemabinding.version2.SequenceSetProperties) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAlcodonFrame
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAlcodonFrame(final int index,
-          final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._alcodonFrameList.size())
-    {
-      throw new IndexOutOfBoundsException("setAlcodonFrame: Index value '"
-              + index + "' not in range [0.."
-              + (this._alcodonFrameList.size() - 1) + "]");
-    }
-
-    this._alcodonFrameList.set(index, vAlcodonFrame);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAlcodonFrameArray
-   */
-  public void setAlcodonFrame(
-          final jalview.schemabinding.version2.AlcodonFrame[] vAlcodonFrameArray)
-  {
-    // -- copy array
-    _alcodonFrameList.clear();
-
-    for (int i = 0; i < vAlcodonFrameArray.length; i++)
-    {
-      this._alcodonFrameList.add(vAlcodonFrameArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vAnnotation
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setAnnotation(final int index,
-          final jalview.schemabinding.version2.Annotation vAnnotation)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._annotationList.size())
-    {
-      throw new IndexOutOfBoundsException("setAnnotation: Index value '"
-              + index + "' not in range [0.."
-              + (this._annotationList.size() - 1) + "]");
-    }
-
-    this._annotationList.set(index, vAnnotation);
-  }
-
-  /**
-   * 
-   * 
-   * @param vAnnotationArray
-   */
-  public void setAnnotation(
-          final jalview.schemabinding.version2.Annotation[] vAnnotationArray)
-  {
-    // -- copy array
-    _annotationList.clear();
-
-    for (int i = 0; i < vAnnotationArray.length; i++)
-    {
-      this._annotationList.add(vAnnotationArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'datasetId'. The field 'datasetId' has the
-   * following description: reference to set where jalview will gather the
-   * dataset sequences for all sequences in the set.
-   * 
-   * 
-   * @param datasetId
-   *                the value of field 'datasetId'.
-   */
-  public void setDatasetId(final java.lang.String datasetId)
-  {
-    this._datasetId = datasetId;
-  }
-
-  /**
-   * Sets the value of field 'gapChar'.
-   * 
-   * @param gapChar
-   *                the value of field 'gapChar'.
-   */
-  public void setGapChar(final java.lang.String gapChar)
-  {
-    this._gapChar = gapChar;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequence
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSequence(final int index,
-          final jalview.schemabinding.version2.Sequence vSequence)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceList.size())
-    {
-      throw new IndexOutOfBoundsException("setSequence: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceList.size() - 1) + "]");
-    }
-
-    this._sequenceList.set(index, vSequence);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceArray
-   */
-  public void setSequence(
-          final jalview.schemabinding.version2.Sequence[] vSequenceArray)
-  {
-    // -- copy array
-    _sequenceList.clear();
-
-    for (int i = 0; i < vSequenceArray.length; i++)
-    {
-      this._sequenceList.add(vSequenceArray[i]);
-    }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSetProperties
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSequenceSetProperties(
-          final int index,
-          final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetPropertiesList.size())
-    {
-      throw new IndexOutOfBoundsException(
-              "setSequenceSetProperties: Index value '" + index
-                      + "' not in range [0.."
-                      + (this._sequenceSetPropertiesList.size() - 1) + "]");
-    }
-
-    this._sequenceSetPropertiesList.set(index, vSequenceSetProperties);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceSetPropertiesArray
-   */
-  public void setSequenceSetProperties(
-          final jalview.schemabinding.version2.SequenceSetProperties[] vSequenceSetPropertiesArray)
-  {
-    // -- copy array
-    _sequenceSetPropertiesList.clear();
-
-    for (int i = 0; i < vSequenceSetPropertiesArray.length; i++)
-    {
-      this._sequenceSetPropertiesList.add(vSequenceSetPropertiesArray[i]);
-    }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.SequenceSet
-   */
-  public static jalview.schemabinding.version2.SequenceSet unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.SequenceSet) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.SequenceSet.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class SequenceSet implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _gapChar.
+     */
+    private java.lang.String _gapChar;
+
+    /**
+     * reference to set where jalview will gather the dataset
+     * sequences for all sequences in the set. 
+     *  
+     */
+    private java.lang.String _datasetId;
+
+    /**
+     * Field _sequenceList.
+     */
+    private java.util.Vector _sequenceList;
+
+    /**
+     * Field _annotationList.
+     */
+    private java.util.Vector _annotationList;
+
+    /**
+     * Field _sequenceSetPropertiesList.
+     */
+    private java.util.Vector _sequenceSetPropertiesList;
+
+    /**
+     * Field _alcodonFrameList.
+     */
+    private java.util.Vector _alcodonFrameList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceSet() {
+        super();
+        this._sequenceList = new java.util.Vector();
+        this._annotationList = new java.util.Vector();
+        this._sequenceSetPropertiesList = new java.util.Vector();
+        this._alcodonFrameList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vAlcodonFrame
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlcodonFrame(
+            final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alcodonFrameList.addElement(vAlcodonFrame);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlcodonFrame
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAlcodonFrame(
+            final int index,
+            final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame)
+    throws java.lang.IndexOutOfBoundsException {
+        this._alcodonFrameList.add(index, vAlcodonFrame);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotation(
+            final jalview.schemabinding.version2.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationList.addElement(vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addAnnotation(
+            final int index,
+            final jalview.schemabinding.version2.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        this._annotationList.add(index, vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequence(
+            final jalview.schemabinding.version2.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceList.addElement(vSequence);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequence(
+            final int index,
+            final jalview.schemabinding.version2.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceList.add(index, vSequence);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceSetProperties
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSetProperties(
+            final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetPropertiesList.addElement(vSequenceSetProperties);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSetProperties
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSetProperties(
+            final int index,
+            final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetPropertiesList.add(index, vSequenceSetProperties);
+    }
+
+    /**
+     * Method enumerateAlcodonFrame.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.AlcodonFrame elements
+     */
+    public java.util.Enumeration enumerateAlcodonFrame(
+    ) {
+        return this._alcodonFrameList.elements();
+    }
+
+    /**
+     * Method enumerateAnnotation.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Annotation elements
+     */
+    public java.util.Enumeration enumerateAnnotation(
+    ) {
+        return this._annotationList.elements();
+    }
+
+    /**
+     * Method enumerateSequence.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.Sequence elements
+     */
+    public java.util.Enumeration enumerateSequence(
+    ) {
+        return this._sequenceList.elements();
+    }
+
+    /**
+     * Method enumerateSequenceSetProperties.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.SequenceSetProperties elements
+     */
+    public java.util.Enumeration enumerateSequenceSetProperties(
+    ) {
+        return this._sequenceSetPropertiesList.elements();
+    }
+
+    /**
+     * Method getAlcodonFrame.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.AlcodonFrame at the given inde
+     */
+    public jalview.schemabinding.version2.AlcodonFrame getAlcodonFrame(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alcodonFrameList.size()) {
+            throw new IndexOutOfBoundsException("getAlcodonFrame: Index value '" + index + "' not in range [0.." + (this._alcodonFrameList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.AlcodonFrame) _alcodonFrameList.get(index);
+    }
+
+    /**
+     * Method getAlcodonFrame.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.AlcodonFrame[] getAlcodonFrame(
+    ) {
+        jalview.schemabinding.version2.AlcodonFrame[] array = new jalview.schemabinding.version2.AlcodonFrame[0];
+        return (jalview.schemabinding.version2.AlcodonFrame[]) this._alcodonFrameList.toArray(array);
+    }
+
+    /**
+     * Method getAlcodonFrameCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAlcodonFrameCount(
+    ) {
+        return this._alcodonFrameList.size();
+    }
+
+    /**
+     * Method getAnnotation.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Annotation at the given index
+     */
+    public jalview.schemabinding.version2.Annotation getAnnotation(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationList.size()) {
+            throw new IndexOutOfBoundsException("getAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Annotation) _annotationList.get(index);
+    }
+
+    /**
+     * Method getAnnotation.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Annotation[] getAnnotation(
+    ) {
+        jalview.schemabinding.version2.Annotation[] array = new jalview.schemabinding.version2.Annotation[0];
+        return (jalview.schemabinding.version2.Annotation[]) this._annotationList.toArray(array);
+    }
+
+    /**
+     * Method getAnnotationCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getAnnotationCount(
+    ) {
+        return this._annotationList.size();
+    }
+
+    /**
+     * Returns the value of field 'datasetId'. The field
+     * 'datasetId' has the following description: reference to set
+     * where jalview will gather the dataset sequences for all
+     * sequences in the set. 
+     *  
+     * 
+     * @return the value of field 'DatasetId'.
+     */
+    public java.lang.String getDatasetId(
+    ) {
+        return this._datasetId;
+    }
+
+    /**
+     * Returns the value of field 'gapChar'.
+     * 
+     * @return the value of field 'GapChar'.
+     */
+    public java.lang.String getGapChar(
+    ) {
+        return this._gapChar;
+    }
+
+    /**
+     * Method getSequence.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.Sequence at the given index
+     */
+    public jalview.schemabinding.version2.Sequence getSequence(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceList.size()) {
+            throw new IndexOutOfBoundsException("getSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.Sequence) _sequenceList.get(index);
+    }
+
+    /**
+     * Method getSequence.Returns the contents of the collection in
+     * an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.Sequence[] getSequence(
+    ) {
+        jalview.schemabinding.version2.Sequence[] array = new jalview.schemabinding.version2.Sequence[0];
+        return (jalview.schemabinding.version2.Sequence[]) this._sequenceList.toArray(array);
+    }
+
+    /**
+     * Method getSequenceCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSequenceCount(
+    ) {
+        return this._sequenceList.size();
+    }
+
+    /**
+     * Method getSequenceSetProperties.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.SequenceSetProperties at the
+     * given index
+     */
+    public jalview.schemabinding.version2.SequenceSetProperties getSequenceSetProperties(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetPropertiesList.size()) {
+            throw new IndexOutOfBoundsException("getSequenceSetProperties: Index value '" + index + "' not in range [0.." + (this._sequenceSetPropertiesList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.SequenceSetProperties) _sequenceSetPropertiesList.get(index);
+    }
+
+    /**
+     * Method getSequenceSetProperties.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.SequenceSetProperties[] getSequenceSetProperties(
+    ) {
+        jalview.schemabinding.version2.SequenceSetProperties[] array = new jalview.schemabinding.version2.SequenceSetProperties[0];
+        return (jalview.schemabinding.version2.SequenceSetProperties[]) this._sequenceSetPropertiesList.toArray(array);
+    }
+
+    /**
+     * Method getSequenceSetPropertiesCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSequenceSetPropertiesCount(
+    ) {
+        return this._sequenceSetPropertiesList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Method removeAlcodonFrame.
+     * 
+     * @param vAlcodonFrame
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAlcodonFrame(
+            final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame) {
+        boolean removed = _alcodonFrameList.remove(vAlcodonFrame);
+        return removed;
+    }
+
+    /**
+     * Method removeAlcodonFrameAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.AlcodonFrame removeAlcodonFrameAt(
+            final int index) {
+        java.lang.Object obj = this._alcodonFrameList.remove(index);
+        return (jalview.schemabinding.version2.AlcodonFrame) obj;
+    }
+
+    /**
+     */
+    public void removeAllAlcodonFrame(
+    ) {
+        this._alcodonFrameList.clear();
+    }
+
+    /**
+     */
+    public void removeAllAnnotation(
+    ) {
+        this._annotationList.clear();
+    }
+
+    /**
+     */
+    public void removeAllSequence(
+    ) {
+        this._sequenceList.clear();
+    }
+
+    /**
+     */
+    public void removeAllSequenceSetProperties(
+    ) {
+        this._sequenceSetPropertiesList.clear();
+    }
+
+    /**
+     * Method removeAnnotation.
+     * 
+     * @param vAnnotation
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeAnnotation(
+            final jalview.schemabinding.version2.Annotation vAnnotation) {
+        boolean removed = _annotationList.remove(vAnnotation);
+        return removed;
+    }
+
+    /**
+     * Method removeAnnotationAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Annotation removeAnnotationAt(
+            final int index) {
+        java.lang.Object obj = this._annotationList.remove(index);
+        return (jalview.schemabinding.version2.Annotation) obj;
+    }
+
+    /**
+     * Method removeSequence.
+     * 
+     * @param vSequence
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSequence(
+            final jalview.schemabinding.version2.Sequence vSequence) {
+        boolean removed = _sequenceList.remove(vSequence);
+        return removed;
+    }
+
+    /**
+     * Method removeSequenceAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.Sequence removeSequenceAt(
+            final int index) {
+        java.lang.Object obj = this._sequenceList.remove(index);
+        return (jalview.schemabinding.version2.Sequence) obj;
+    }
+
+    /**
+     * Method removeSequenceSetProperties.
+     * 
+     * @param vSequenceSetProperties
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSequenceSetProperties(
+            final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties) {
+        boolean removed = _sequenceSetPropertiesList.remove(vSequenceSetProperties);
+        return removed;
+    }
+
+    /**
+     * Method removeSequenceSetPropertiesAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.SequenceSetProperties removeSequenceSetPropertiesAt(
+            final int index) {
+        java.lang.Object obj = this._sequenceSetPropertiesList.remove(index);
+        return (jalview.schemabinding.version2.SequenceSetProperties) obj;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAlcodonFrame
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAlcodonFrame(
+            final int index,
+            final jalview.schemabinding.version2.AlcodonFrame vAlcodonFrame)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._alcodonFrameList.size()) {
+            throw new IndexOutOfBoundsException("setAlcodonFrame: Index value '" + index + "' not in range [0.." + (this._alcodonFrameList.size() - 1) + "]");
+        }
+        
+        this._alcodonFrameList.set(index, vAlcodonFrame);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAlcodonFrameArray
+     */
+    public void setAlcodonFrame(
+            final jalview.schemabinding.version2.AlcodonFrame[] vAlcodonFrameArray) {
+        //-- copy array
+        _alcodonFrameList.clear();
+        
+        for (int i = 0; i < vAlcodonFrameArray.length; i++) {
+                this._alcodonFrameList.add(vAlcodonFrameArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vAnnotation
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setAnnotation(
+            final int index,
+            final jalview.schemabinding.version2.Annotation vAnnotation)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._annotationList.size()) {
+            throw new IndexOutOfBoundsException("setAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+        }
+        
+        this._annotationList.set(index, vAnnotation);
+    }
+
+    /**
+     * 
+     * 
+     * @param vAnnotationArray
+     */
+    public void setAnnotation(
+            final jalview.schemabinding.version2.Annotation[] vAnnotationArray) {
+        //-- copy array
+        _annotationList.clear();
+        
+        for (int i = 0; i < vAnnotationArray.length; i++) {
+                this._annotationList.add(vAnnotationArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'datasetId'. The field 'datasetId'
+     * has the following description: reference to set where
+     * jalview will gather the dataset sequences for all sequences
+     * in the set. 
+     *  
+     * 
+     * @param datasetId the value of field 'datasetId'.
+     */
+    public void setDatasetId(
+            final java.lang.String datasetId) {
+        this._datasetId = datasetId;
+    }
+
+    /**
+     * Sets the value of field 'gapChar'.
+     * 
+     * @param gapChar the value of field 'gapChar'.
+     */
+    public void setGapChar(
+            final java.lang.String gapChar) {
+        this._gapChar = gapChar;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequence
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSequence(
+            final int index,
+            final jalview.schemabinding.version2.Sequence vSequence)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceList.size()) {
+            throw new IndexOutOfBoundsException("setSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+        }
+        
+        this._sequenceList.set(index, vSequence);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceArray
+     */
+    public void setSequence(
+            final jalview.schemabinding.version2.Sequence[] vSequenceArray) {
+        //-- copy array
+        _sequenceList.clear();
+        
+        for (int i = 0; i < vSequenceArray.length; i++) {
+                this._sequenceList.add(vSequenceArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSetProperties
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSequenceSetProperties(
+            final int index,
+            final jalview.schemabinding.version2.SequenceSetProperties vSequenceSetProperties)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetPropertiesList.size()) {
+            throw new IndexOutOfBoundsException("setSequenceSetProperties: Index value '" + index + "' not in range [0.." + (this._sequenceSetPropertiesList.size() - 1) + "]");
+        }
+        
+        this._sequenceSetPropertiesList.set(index, vSequenceSetProperties);
+    }
+
+    /**
+     * 
+     * 
+     * @param vSequenceSetPropertiesArray
+     */
+    public void setSequenceSetProperties(
+            final jalview.schemabinding.version2.SequenceSetProperties[] vSequenceSetPropertiesArray) {
+        //-- copy array
+        _sequenceSetPropertiesList.clear();
+        
+        for (int i = 0; i < vSequenceSetPropertiesArray.length; i++) {
+                this._sequenceSetPropertiesList.add(vSequenceSetPropertiesArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.SequenceSet
+     */
+    public static jalview.schemabinding.version2.SequenceSet unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.SequenceSet) Unmarshaller.unmarshal(jalview.schemabinding.version2.SequenceSet.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/SequenceSetProperties.java b/src/jalview/schemabinding/version2/SequenceSetProperties.java
index c48c247..a078c78 100644
--- a/src/jalview/schemabinding/version2/SequenceSetProperties.java
+++ b/src/jalview/schemabinding/version2/SequenceSetProperties.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,169 +19,152 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceSetProperties implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _key.
-   */
-  private java.lang.String _key;
-
-  /**
-   * Field _value.
-   */
-  private java.lang.String _value;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceSetProperties()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'key'.
-   * 
-   * @return the value of field 'Key'.
-   */
-  public java.lang.String getKey()
-  {
-    return this._key;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public java.lang.String getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class SequenceSetProperties implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _key.
+     */
+    private java.lang.String _key;
+
+    /**
+     * Field _value.
+     */
+    private java.lang.String _value;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceSetProperties() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'key'.
+     * 
+     * @return the value of field 'Key'.
+     */
+    public java.lang.String getKey(
+    ) {
+        return this._key;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public java.lang.String getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'key'.
+     * 
+     * @param key the value of field 'key'.
+     */
+    public void setKey(
+            final java.lang.String key) {
+        this._key = key;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final java.lang.String value) {
+        this._value = value;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.SequenceSetProperties
+     */
+    public static jalview.schemabinding.version2.SequenceSetProperties unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.SequenceSetProperties) Unmarshaller.unmarshal(jalview.schemabinding.version2.SequenceSetProperties.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'key'.
-   * 
-   * @param key
-   *                the value of field 'key'.
-   */
-  public void setKey(final java.lang.String key)
-  {
-    this._key = key;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *                the value of field 'value'.
-   */
-  public void setValue(final java.lang.String value)
-  {
-    this._value = value;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled
-   *         jalview.schemabinding.version2.SequenceSetProperties
-   */
-  public static jalview.schemabinding.version2.SequenceSetProperties unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.SequenceSetProperties) Unmarshaller
-            .unmarshal(
-                    jalview.schemabinding.version2.SequenceSetProperties.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/SequenceType.java b/src/jalview/schemabinding/version2/SequenceType.java
index 7f61b94..0d07812 100755
--- a/src/jalview/schemabinding/version2/SequenceType.java
+++ b/src/jalview/schemabinding/version2/SequenceType.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,219 +19,202 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceType implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _description.
-   */
-  private java.lang.String _description;
-
-  /**
-   * Field _sequence.
-   */
-  private java.lang.String _sequence;
-
-  /**
-   * Field _name.
-   */
-  private java.lang.String _name;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceType()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'description'.
-   * 
-   * @return the value of field 'Description'.
-   */
-  public java.lang.String getDescription()
-  {
-    return this._description;
-  }
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Returns the value of field 'name'.
-   * 
-   * @return the value of field 'Name'.
-   */
-  public java.lang.String getName()
-  {
-    return this._name;
-  }
-
-  /**
-   * Returns the value of field 'sequence'.
-   * 
-   * @return the value of field 'Sequence'.
-   */
-  public java.lang.String getSequence()
-  {
-    return this._sequence;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class SequenceType implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _description.
+     */
+    private java.lang.String _description;
+
+    /**
+     * Field _sequence.
+     */
+    private java.lang.String _sequence;
+
+    /**
+     * Field _name.
+     */
+    private java.lang.String _name;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceType() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'description'.
+     * 
+     * @return the value of field 'Description'.
+     */
+    public java.lang.String getDescription(
+    ) {
+        return this._description;
+    }
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'name'.
+     * 
+     * @return the value of field 'Name'.
+     */
+    public java.lang.String getName(
+    ) {
+        return this._name;
+    }
+
+    /**
+     * Returns the value of field 'sequence'.
+     * 
+     * @return the value of field 'Sequence'.
+     */
+    public java.lang.String getSequence(
+    ) {
+        return this._sequence;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'description'.
+     * 
+     * @param description the value of field 'description'.
+     */
+    public void setDescription(
+            final java.lang.String description) {
+        this._description = description;
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'name'.
+     * 
+     * @param name the value of field 'name'.
+     */
+    public void setName(
+            final java.lang.String name) {
+        this._name = name;
+    }
+
+    /**
+     * Sets the value of field 'sequence'.
+     * 
+     * @param sequence the value of field 'sequence'.
+     */
+    public void setSequence(
+            final java.lang.String sequence) {
+        this._sequence = sequence;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.SequenceType
+     */
+    public static jalview.schemabinding.version2.SequenceType unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.SequenceType) Unmarshaller.unmarshal(jalview.schemabinding.version2.SequenceType.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'description'.
-   * 
-   * @param description
-   *                the value of field 'description'.
-   */
-  public void setDescription(final java.lang.String description)
-  {
-    this._description = description;
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * Sets the value of field 'name'.
-   * 
-   * @param name
-   *                the value of field 'name'.
-   */
-  public void setName(final java.lang.String name)
-  {
-    this._name = name;
-  }
-
-  /**
-   * Sets the value of field 'sequence'.
-   * 
-   * @param sequence
-   *                the value of field 'sequence'.
-   */
-  public void setSequence(final java.lang.String sequence)
-  {
-    this._sequence = sequence;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.SequenceType
-   */
-  public static jalview.schemabinding.version2.SequenceType unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.SequenceType) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.SequenceType.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Setting.java b/src/jalview/schemabinding/version2/Setting.java
index 56c3fe6..5cd78bd 100755
--- a/src/jalview/schemabinding/version2/Setting.java
+++ b/src/jalview/schemabinding/version2/Setting.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,297 +19,280 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Setting implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _type.
-   */
-  private java.lang.String _type;
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  /**
-   * Field _display.
-   */
-  private boolean _display;
-
-  /**
-   * keeps track of state for field: _display
-   */
-  private boolean _has_display;
-
-  /**
-   * Field _order.
-   */
-  private float _order;
-
-  /**
-   * keeps track of state for field: _order
-   */
-  private boolean _has_order;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Setting()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
-
-  /**
-   */
-  public void deleteDisplay()
-  {
-    this._has_display = false;
-  }
-
-  /**
-   */
-  public void deleteOrder()
-  {
-    this._has_order = false;
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean getDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Returns the value of field 'order'.
-   * 
-   * @return the value of field 'Order'.
-   */
-  public float getOrder()
-  {
-    return this._order;
-  }
-
-  /**
-   * Returns the value of field 'type'.
-   * 
-   * @return the value of field 'Type'.
-   */
-  public java.lang.String getType()
-  {
-    return this._type;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasDisplay.
-   * 
-   * @return true if at least one Display has been added
-   */
-  public boolean hasDisplay()
-  {
-    return this._has_display;
-  }
-
-  /**
-   * Method hasOrder.
-   * 
-   * @return true if at least one Order has been added
-   */
-  public boolean hasOrder()
-  {
-    return this._has_order;
-  }
-
-  /**
-   * Returns the value of field 'display'.
-   * 
-   * @return the value of field 'Display'.
-   */
-  public boolean isDisplay()
-  {
-    return this._display;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class Setting implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _type.
+     */
+    private java.lang.String _type;
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+    /**
+     * Field _display.
+     */
+    private boolean _display;
+
+    /**
+     * keeps track of state for field: _display
+     */
+    private boolean _has_display;
+
+    /**
+     * Field _order.
+     */
+    private float _order;
+
+    /**
+     * keeps track of state for field: _order
+     */
+    private boolean _has_order;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Setting() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deleteDisplay(
+    ) {
+        this._has_display= false;
+    }
+
+    /**
+     */
+    public void deleteOrder(
+    ) {
+        this._has_order= false;
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean getDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Returns the value of field 'order'.
+     * 
+     * @return the value of field 'Order'.
+     */
+    public float getOrder(
+    ) {
+        return this._order;
+    }
+
+    /**
+     * Returns the value of field 'type'.
+     * 
+     * @return the value of field 'Type'.
+     */
+    public java.lang.String getType(
+    ) {
+        return this._type;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasDisplay.
+     * 
+     * @return true if at least one Display has been added
+     */
+    public boolean hasDisplay(
+    ) {
+        return this._has_display;
+    }
+
+    /**
+     * Method hasOrder.
+     * 
+     * @return true if at least one Order has been added
+     */
+    public boolean hasOrder(
+    ) {
+        return this._has_order;
+    }
+
+    /**
+     * Returns the value of field 'display'.
+     * 
+     * @return the value of field 'Display'.
+     */
+    public boolean isDisplay(
+    ) {
+        return this._display;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'display'.
+     * 
+     * @param display the value of field 'display'.
+     */
+    public void setDisplay(
+            final boolean display) {
+        this._display = display;
+        this._has_display = true;
+    }
+
+    /**
+     * Sets the value of field 'order'.
+     * 
+     * @param order the value of field 'order'.
+     */
+    public void setOrder(
+            final float order) {
+        this._order = order;
+        this._has_order = true;
+    }
+
+    /**
+     * Sets the value of field 'type'.
+     * 
+     * @param type the value of field 'type'.
+     */
+    public void setType(
+            final java.lang.String type) {
+        this._type = type;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.Settin
+     */
+    public static jalview.schemabinding.version2.Setting unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Setting) Unmarshaller.unmarshal(jalview.schemabinding.version2.Setting.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'display'.
-   * 
-   * @param display
-   *                the value of field 'display'.
-   */
-  public void setDisplay(final boolean display)
-  {
-    this._display = display;
-    this._has_display = true;
-  }
-
-  /**
-   * Sets the value of field 'order'.
-   * 
-   * @param order
-   *                the value of field 'order'.
-   */
-  public void setOrder(final float order)
-  {
-    this._order = order;
-    this._has_order = true;
-  }
-
-  /**
-   * Sets the value of field 'type'.
-   * 
-   * @param type
-   *                the value of field 'type'.
-   */
-  public void setType(final java.lang.String type)
-  {
-    this._type = type;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Settin
-   */
-  public static jalview.schemabinding.version2.Setting unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Setting) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.Setting.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/StructureState.java b/src/jalview/schemabinding/version2/StructureState.java
index 373db78..6f43108 100644
--- a/src/jalview/schemabinding/version2/StructureState.java
+++ b/src/jalview/schemabinding/version2/StructureState.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,399 +19,405 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class StructureState implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * internal content storage
-   */
-  private java.lang.String _content = "";
-
-  /**
-   * Field _visible.
-   */
-  private boolean _visible;
-
-  /**
-   * keeps track of state for field: _visible
-   */
-  private boolean _has_visible;
-
-  /**
-   * Field _xpos.
-   */
-  private int _xpos;
-
-  /**
-   * keeps track of state for field: _xpos
-   */
-  private boolean _has_xpos;
-
-  /**
-   * Field _ypos.
-   */
-  private int _ypos;
-
-  /**
-   * keeps track of state for field: _ypos
-   */
-  private boolean _has_ypos;
-
-  /**
-   * Field _width.
-   */
-  private int _width;
-
-  /**
-   * keeps track of state for field: _width
-   */
-  private boolean _has_width;
-
-  /**
-   * Field _height.
-   */
-  private int _height;
-
-  /**
-   * keeps track of state for field: _height
-   */
-  private boolean _has_height;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public StructureState()
-  {
-    super();
-    setContent("");
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteHeight()
-  {
-    this._has_height = false;
-  }
-
-  /**
-   */
-  public void deleteVisible()
-  {
-    this._has_visible = false;
-  }
-
-  /**
-   */
-  public void deleteWidth()
-  {
-    this._has_width = false;
-  }
-
-  /**
-   */
-  public void deleteXpos()
-  {
-    this._has_xpos = false;
-  }
-
-  /**
-   */
-  public void deleteYpos()
-  {
-    this._has_ypos = false;
-  }
-
-  /**
-   * Returns the value of field 'content'. The field 'content' has the following
-   * description: internal content storage
-   * 
-   * @return the value of field 'Content'.
-   */
-  public java.lang.String getContent()
-  {
-    return this._content;
-  }
-
-  /**
-   * Returns the value of field 'height'.
-   * 
-   * @return the value of field 'Height'.
-   */
-  public int getHeight()
-  {
-    return this._height;
-  }
-
-  /**
-   * Returns the value of field 'visible'.
-   * 
-   * @return the value of field 'Visible'.
-   */
-  public boolean getVisible()
-  {
-    return this._visible;
-  }
-
-  /**
-   * Returns the value of field 'width'.
-   * 
-   * @return the value of field 'Width'.
-   */
-  public int getWidth()
-  {
-    return this._width;
-  }
-
-  /**
-   * Returns the value of field 'xpos'.
-   * 
-   * @return the value of field 'Xpos'.
-   */
-  public int getXpos()
-  {
-    return this._xpos;
-  }
-
-  /**
-   * Returns the value of field 'ypos'.
-   * 
-   * @return the value of field 'Ypos'.
-   */
-  public int getYpos()
-  {
-    return this._ypos;
-  }
-
-  /**
-   * Method hasHeight.
-   * 
-   * @return true if at least one Height has been added
-   */
-  public boolean hasHeight()
-  {
-    return this._has_height;
-  }
-
-  /**
-   * Method hasVisible.
-   * 
-   * @return true if at least one Visible has been added
-   */
-  public boolean hasVisible()
-  {
-    return this._has_visible;
-  }
-
-  /**
-   * Method hasWidth.
-   * 
-   * @return true if at least one Width has been added
-   */
-  public boolean hasWidth()
-  {
-    return this._has_width;
-  }
-
-  /**
-   * Method hasXpos.
-   * 
-   * @return true if at least one Xpos has been added
-   */
-  public boolean hasXpos()
-  {
-    return this._has_xpos;
-  }
-
-  /**
-   * Method hasYpos.
-   * 
-   * @return true if at least one Ypos has been added
-   */
-  public boolean hasYpos()
-  {
-    return this._has_ypos;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class StructureState implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * internal content storage
+     */
+    private java.lang.String _content = "";
+
+    /**
+     * Field _visible.
+     */
+    private boolean _visible;
+
+    /**
+     * keeps track of state for field: _visible
+     */
+    private boolean _has_visible;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _viewId.
+     */
+    private java.lang.String _viewId;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public StructureState() {
+        super();
+        setContent("");
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deleteVisible(
+    ) {
+        this._has_visible= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Returns the value of field 'content'. The field 'content'
+     * has the following description: internal content storage
+     * 
+     * @return the value of field 'Content'.
+     */
+    public java.lang.String getContent(
+    ) {
+        return this._content;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Returns the value of field 'viewId'.
+     * 
+     * @return the value of field 'ViewId'.
+     */
+    public java.lang.String getViewId(
+    ) {
+        return this._viewId;
+    }
+
+    /**
+     * Returns the value of field 'visible'.
+     * 
+     * @return the value of field 'Visible'.
+     */
+    public boolean getVisible(
+    ) {
+        return this._visible;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasVisible.
+     * 
+     * @return true if at least one Visible has been added
+     */
+    public boolean hasVisible(
+    ) {
+        return this._has_visible;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Returns the value of field 'visible'.
+     * 
+     * @return the value of field 'Visible'.
+     */
+    public boolean isVisible(
+    ) {
+        return this._visible;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'content'. The field 'content' has
+     * the following description: internal content storage
+     * 
+     * @param content the value of field 'content'.
+     */
+    public void setContent(
+            final java.lang.String content) {
+        this._content = content;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * Sets the value of field 'viewId'.
+     * 
+     * @param viewId the value of field 'viewId'.
+     */
+    public void setViewId(
+            final java.lang.String viewId) {
+        this._viewId = viewId;
+    }
+
+    /**
+     * Sets the value of field 'visible'.
+     * 
+     * @param visible the value of field 'visible'.
+     */
+    public void setVisible(
+            final boolean visible) {
+        this._visible = visible;
+        this._has_visible = true;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.StructureState
+     */
+    public static jalview.schemabinding.version2.StructureState unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.StructureState) Unmarshaller.unmarshal(jalview.schemabinding.version2.StructureState.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * Returns the value of field 'visible'.
-   * 
-   * @return the value of field 'Visible'.
-   */
-  public boolean isVisible()
-  {
-    return this._visible;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'content'. The field 'content' has the following
-   * description: internal content storage
-   * 
-   * @param content
-   *                the value of field 'content'.
-   */
-  public void setContent(final java.lang.String content)
-  {
-    this._content = content;
-  }
-
-  /**
-   * Sets the value of field 'height'.
-   * 
-   * @param height
-   *                the value of field 'height'.
-   */
-  public void setHeight(final int height)
-  {
-    this._height = height;
-    this._has_height = true;
-  }
-
-  /**
-   * Sets the value of field 'visible'.
-   * 
-   * @param visible
-   *                the value of field 'visible'.
-   */
-  public void setVisible(final boolean visible)
-  {
-    this._visible = visible;
-    this._has_visible = true;
-  }
-
-  /**
-   * Sets the value of field 'width'.
-   * 
-   * @param width
-   *                the value of field 'width'.
-   */
-  public void setWidth(final int width)
-  {
-    this._width = width;
-    this._has_width = true;
-  }
-
-  /**
-   * Sets the value of field 'xpos'.
-   * 
-   * @param xpos
-   *                the value of field 'xpos'.
-   */
-  public void setXpos(final int xpos)
-  {
-    this._xpos = xpos;
-    this._has_xpos = true;
-  }
-
-  /**
-   * Sets the value of field 'ypos'.
-   * 
-   * @param ypos
-   *                the value of field 'ypos'.
-   */
-  public void setYpos(final int ypos)
-  {
-    this._ypos = ypos;
-    this._has_ypos = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.StructureState
-   */
-  public static jalview.schemabinding.version2.StructureState unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.StructureState) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.StructureState.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/ThresholdLine.java b/src/jalview/schemabinding/version2/ThresholdLine.java
index 91bdfc6..4e3f124 100755
--- a/src/jalview/schemabinding/version2/ThresholdLine.java
+++ b/src/jalview/schemabinding/version2/ThresholdLine.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,239 +19,223 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class ThresholdLine implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _label.
-   */
-  private java.lang.String _label;
-
-  /**
-   * Field _value.
-   */
-  private float _value;
-
-  /**
-   * keeps track of state for field: _value
-   */
-  private boolean _has_value;
-
-  /**
-   * Field _colour.
-   */
-  private int _colour;
-
-  /**
-   * keeps track of state for field: _colour
-   */
-  private boolean _has_colour;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public ThresholdLine()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteColour()
-  {
-    this._has_colour = false;
-  }
-
-  /**
-   */
-  public void deleteValue()
-  {
-    this._has_value = false;
-  }
-
-  /**
-   * Returns the value of field 'colour'.
-   * 
-   * @return the value of field 'Colour'.
-   */
-  public int getColour()
-  {
-    return this._colour;
-  }
-
-  /**
-   * Returns the value of field 'label'.
-   * 
-   * @return the value of field 'Label'.
-   */
-  public java.lang.String getLabel()
-  {
-    return this._label;
-  }
-
-  /**
-   * Returns the value of field 'value'.
-   * 
-   * @return the value of field 'Value'.
-   */
-  public float getValue()
-  {
-    return this._value;
-  }
-
-  /**
-   * Method hasColour.
-   * 
-   * @return true if at least one Colour has been added
-   */
-  public boolean hasColour()
-  {
-    return this._has_colour;
-  }
-
-  /**
-   * Method hasValue.
-   * 
-   * @return true if at least one Value has been added
-   */
-  public boolean hasValue()
-  {
-    return this._has_value;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class ThresholdLine implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _label.
+     */
+    private java.lang.String _label;
+
+    /**
+     * Field _value.
+     */
+    private float _value;
+
+    /**
+     * keeps track of state for field: _value
+     */
+    private boolean _has_value;
+
+    /**
+     * Field _colour.
+     */
+    private int _colour;
+
+    /**
+     * keeps track of state for field: _colour
+     */
+    private boolean _has_colour;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public ThresholdLine() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteColour(
+    ) {
+        this._has_colour= false;
+    }
+
+    /**
+     */
+    public void deleteValue(
+    ) {
+        this._has_value= false;
+    }
+
+    /**
+     * Returns the value of field 'colour'.
+     * 
+     * @return the value of field 'Colour'.
+     */
+    public int getColour(
+    ) {
+        return this._colour;
+    }
+
+    /**
+     * Returns the value of field 'label'.
+     * 
+     * @return the value of field 'Label'.
+     */
+    public java.lang.String getLabel(
+    ) {
+        return this._label;
+    }
+
+    /**
+     * Returns the value of field 'value'.
+     * 
+     * @return the value of field 'Value'.
+     */
+    public float getValue(
+    ) {
+        return this._value;
+    }
+
+    /**
+     * Method hasColour.
+     * 
+     * @return true if at least one Colour has been added
+     */
+    public boolean hasColour(
+    ) {
+        return this._has_colour;
+    }
+
+    /**
+     * Method hasValue.
+     * 
+     * @return true if at least one Value has been added
+     */
+    public boolean hasValue(
+    ) {
+        return this._has_value;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'colour'.
+     * 
+     * @param colour the value of field 'colour'.
+     */
+    public void setColour(
+            final int colour) {
+        this._colour = colour;
+        this._has_colour = true;
+    }
+
+    /**
+     * Sets the value of field 'label'.
+     * 
+     * @param label the value of field 'label'.
+     */
+    public void setLabel(
+            final java.lang.String label) {
+        this._label = label;
+    }
+
+    /**
+     * Sets the value of field 'value'.
+     * 
+     * @param value the value of field 'value'.
+     */
+    public void setValue(
+            final float value) {
+        this._value = value;
+        this._has_value = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.ThresholdLine
+     */
+    public static jalview.schemabinding.version2.ThresholdLine unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.ThresholdLine) Unmarshaller.unmarshal(jalview.schemabinding.version2.ThresholdLine.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'colour'.
-   * 
-   * @param colour
-   *                the value of field 'colour'.
-   */
-  public void setColour(final int colour)
-  {
-    this._colour = colour;
-    this._has_colour = true;
-  }
-
-  /**
-   * Sets the value of field 'label'.
-   * 
-   * @param label
-   *                the value of field 'label'.
-   */
-  public void setLabel(final java.lang.String label)
-  {
-    this._label = label;
-  }
-
-  /**
-   * Sets the value of field 'value'.
-   * 
-   * @param value
-   *                the value of field 'value'.
-   */
-  public void setValue(final float value)
-  {
-    this._value = value;
-    this._has_value = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.ThresholdLine
-   */
-  public static jalview.schemabinding.version2.ThresholdLine unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.ThresholdLine) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.ThresholdLine.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/Tree.java b/src/jalview/schemabinding/version2/Tree.java
index b523c44..c73cb12 100755
--- a/src/jalview/schemabinding/version2/Tree.java
+++ b/src/jalview/schemabinding/version2/Tree.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,830 +19,834 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Tree implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _width.
-   */
-  private int _width;
-
-  /**
-   * keeps track of state for field: _width
-   */
-  private boolean _has_width;
-
-  /**
-   * Field _height.
-   */
-  private int _height;
-
-  /**
-   * keeps track of state for field: _height
-   */
-  private boolean _has_height;
-
-  /**
-   * Field _xpos.
-   */
-  private int _xpos;
-
-  /**
-   * keeps track of state for field: _xpos
-   */
-  private boolean _has_xpos;
-
-  /**
-   * Field _ypos.
-   */
-  private int _ypos;
-
-  /**
-   * keeps track of state for field: _ypos
-   */
-  private boolean _has_ypos;
-
-  /**
-   * Field _fontName.
-   */
-  private java.lang.String _fontName;
-
-  /**
-   * Field _fontSize.
-   */
-  private int _fontSize;
-
-  /**
-   * keeps track of state for field: _fontSize
-   */
-  private boolean _has_fontSize;
-
-  /**
-   * Field _fontStyle.
-   */
-  private int _fontStyle;
-
-  /**
-   * keeps track of state for field: _fontStyle
-   */
-  private boolean _has_fontStyle;
-
-  /**
-   * Field _threshold.
-   */
-  private float _threshold;
-
-  /**
-   * keeps track of state for field: _threshold
-   */
-  private boolean _has_threshold;
-
-  /**
-   * Field _showBootstrap.
-   */
-  private boolean _showBootstrap;
-
-  /**
-   * keeps track of state for field: _showBootstrap
-   */
-  private boolean _has_showBootstrap;
-
-  /**
-   * Field _showDistances.
-   */
-  private boolean _showDistances;
-
-  /**
-   * keeps track of state for field: _showDistances
-   */
-  private boolean _has_showDistances;
-
-  /**
-   * Field _markUnlinked.
-   */
-  private boolean _markUnlinked;
-
-  /**
-   * keeps track of state for field: _markUnlinked
-   */
-  private boolean _has_markUnlinked;
-
-  /**
-   * Field _fitToWindow.
-   */
-  private boolean _fitToWindow;
-
-  /**
-   * keeps track of state for field: _fitToWindow
-   */
-  private boolean _has_fitToWindow;
-
-  /**
-   * Field _currentTree.
-   */
-  private boolean _currentTree;
-
-  /**
-   * keeps track of state for field: _currentTree
-   */
-  private boolean _has_currentTree;
-
-  /**
-   * Field _title.
-   */
-  private java.lang.String _title;
-
-  /**
-   * Field _newick.
-   */
-  private java.lang.String _newick;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Tree()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   */
-  public void deleteCurrentTree()
-  {
-    this._has_currentTree = false;
-  }
-
-  /**
-   */
-  public void deleteFitToWindow()
-  {
-    this._has_fitToWindow = false;
-  }
-
-  /**
-   */
-  public void deleteFontSize()
-  {
-    this._has_fontSize = false;
-  }
-
-  /**
-   */
-  public void deleteFontStyle()
-  {
-    this._has_fontStyle = false;
-  }
-
-  /**
-   */
-  public void deleteHeight()
-  {
-    this._has_height = false;
-  }
-
-  /**
-   */
-  public void deleteMarkUnlinked()
-  {
-    this._has_markUnlinked = false;
-  }
-
-  /**
-   */
-  public void deleteShowBootstrap()
-  {
-    this._has_showBootstrap = false;
-  }
-
-  /**
-   */
-  public void deleteShowDistances()
-  {
-    this._has_showDistances = false;
-  }
-
-  /**
-   */
-  public void deleteThreshold()
-  {
-    this._has_threshold = false;
-  }
-
-  /**
-   */
-  public void deleteWidth()
-  {
-    this._has_width = false;
-  }
-
-  /**
-   */
-  public void deleteXpos()
-  {
-    this._has_xpos = false;
-  }
-
-  /**
-   */
-  public void deleteYpos()
-  {
-    this._has_ypos = false;
-  }
-
-  /**
-   * Returns the value of field 'currentTree'.
-   * 
-   * @return the value of field 'CurrentTree'.
-   */
-  public boolean getCurrentTree()
-  {
-    return this._currentTree;
-  }
-
-  /**
-   * Returns the value of field 'fitToWindow'.
-   * 
-   * @return the value of field 'FitToWindow'.
-   */
-  public boolean getFitToWindow()
-  {
-    return this._fitToWindow;
-  }
-
-  /**
-   * Returns the value of field 'fontName'.
-   * 
-   * @return the value of field 'FontName'.
-   */
-  public java.lang.String getFontName()
-  {
-    return this._fontName;
-  }
-
-  /**
-   * Returns the value of field 'fontSize'.
-   * 
-   * @return the value of field 'FontSize'.
-   */
-  public int getFontSize()
-  {
-    return this._fontSize;
-  }
-
-  /**
-   * Returns the value of field 'fontStyle'.
-   * 
-   * @return the value of field 'FontStyle'.
-   */
-  public int getFontStyle()
-  {
-    return this._fontStyle;
-  }
-
-  /**
-   * Returns the value of field 'height'.
-   * 
-   * @return the value of field 'Height'.
-   */
-  public int getHeight()
-  {
-    return this._height;
-  }
-
-  /**
-   * Returns the value of field 'markUnlinked'.
-   * 
-   * @return the value of field 'MarkUnlinked'.
-   */
-  public boolean getMarkUnlinked()
-  {
-    return this._markUnlinked;
-  }
-
-  /**
-   * Returns the value of field 'newick'.
-   * 
-   * @return the value of field 'Newick'.
-   */
-  public java.lang.String getNewick()
-  {
-    return this._newick;
-  }
-
-  /**
-   * Returns the value of field 'showBootstrap'.
-   * 
-   * @return the value of field 'ShowBootstrap'.
-   */
-  public boolean getShowBootstrap()
-  {
-    return this._showBootstrap;
-  }
-
-  /**
-   * Returns the value of field 'showDistances'.
-   * 
-   * @return the value of field 'ShowDistances'.
-   */
-  public boolean getShowDistances()
-  {
-    return this._showDistances;
-  }
-
-  /**
-   * Returns the value of field 'threshold'.
-   * 
-   * @return the value of field 'Threshold'.
-   */
-  public float getThreshold()
-  {
-    return this._threshold;
-  }
-
-  /**
-   * Returns the value of field 'title'.
-   * 
-   * @return the value of field 'Title'.
-   */
-  public java.lang.String getTitle()
-  {
-    return this._title;
-  }
-
-  /**
-   * Returns the value of field 'width'.
-   * 
-   * @return the value of field 'Width'.
-   */
-  public int getWidth()
-  {
-    return this._width;
-  }
-
-  /**
-   * Returns the value of field 'xpos'.
-   * 
-   * @return the value of field 'Xpos'.
-   */
-  public int getXpos()
-  {
-    return this._xpos;
-  }
-
-  /**
-   * Returns the value of field 'ypos'.
-   * 
-   * @return the value of field 'Ypos'.
-   */
-  public int getYpos()
-  {
-    return this._ypos;
-  }
-
-  /**
-   * Method hasCurrentTree.
-   * 
-   * @return true if at least one CurrentTree has been added
-   */
-  public boolean hasCurrentTree()
-  {
-    return this._has_currentTree;
-  }
-
-  /**
-   * Method hasFitToWindow.
-   * 
-   * @return true if at least one FitToWindow has been added
-   */
-  public boolean hasFitToWindow()
-  {
-    return this._has_fitToWindow;
-  }
-
-  /**
-   * Method hasFontSize.
-   * 
-   * @return true if at least one FontSize has been added
-   */
-  public boolean hasFontSize()
-  {
-    return this._has_fontSize;
-  }
-
-  /**
-   * Method hasFontStyle.
-   * 
-   * @return true if at least one FontStyle has been added
-   */
-  public boolean hasFontStyle()
-  {
-    return this._has_fontStyle;
-  }
-
-  /**
-   * Method hasHeight.
-   * 
-   * @return true if at least one Height has been added
-   */
-  public boolean hasHeight()
-  {
-    return this._has_height;
-  }
-
-  /**
-   * Method hasMarkUnlinked.
-   * 
-   * @return true if at least one MarkUnlinked has been added
-   */
-  public boolean hasMarkUnlinked()
-  {
-    return this._has_markUnlinked;
-  }
-
-  /**
-   * Method hasShowBootstrap.
-   * 
-   * @return true if at least one ShowBootstrap has been added
-   */
-  public boolean hasShowBootstrap()
-  {
-    return this._has_showBootstrap;
-  }
-
-  /**
-   * Method hasShowDistances.
-   * 
-   * @return true if at least one ShowDistances has been added
-   */
-  public boolean hasShowDistances()
-  {
-    return this._has_showDistances;
-  }
-
-  /**
-   * Method hasThreshold.
-   * 
-   * @return true if at least one Threshold has been added
-   */
-  public boolean hasThreshold()
-  {
-    return this._has_threshold;
-  }
-
-  /**
-   * Method hasWidth.
-   * 
-   * @return true if at least one Width has been added
-   */
-  public boolean hasWidth()
-  {
-    return this._has_width;
-  }
-
-  /**
-   * Method hasXpos.
-   * 
-   * @return true if at least one Xpos has been added
-   */
-  public boolean hasXpos()
-  {
-    return this._has_xpos;
-  }
-
-  /**
-   * Method hasYpos.
-   * 
-   * @return true if at least one Ypos has been added
-   */
-  public boolean hasYpos()
-  {
-    return this._has_ypos;
-  }
-
-  /**
-   * Returns the value of field 'currentTree'.
-   * 
-   * @return the value of field 'CurrentTree'.
-   */
-  public boolean isCurrentTree()
-  {
-    return this._currentTree;
-  }
-
-  /**
-   * Returns the value of field 'fitToWindow'.
-   * 
-   * @return the value of field 'FitToWindow'.
-   */
-  public boolean isFitToWindow()
-  {
-    return this._fitToWindow;
-  }
-
-  /**
-   * Returns the value of field 'markUnlinked'.
-   * 
-   * @return the value of field 'MarkUnlinked'.
-   */
-  public boolean isMarkUnlinked()
-  {
-    return this._markUnlinked;
-  }
-
-  /**
-   * Returns the value of field 'showBootstrap'.
-   * 
-   * @return the value of field 'ShowBootstrap'.
-   */
-  public boolean isShowBootstrap()
-  {
-    return this._showBootstrap;
-  }
-
-  /**
-   * Returns the value of field 'showDistances'.
-   * 
-   * @return the value of field 'ShowDistances'.
-   */
-  public boolean isShowDistances()
-  {
-    return this._showDistances;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'currentTree'.
-   * 
-   * @param currentTree
-   *                the value of field 'currentTree'.
-   */
-  public void setCurrentTree(final boolean currentTree)
-  {
-    this._currentTree = currentTree;
-    this._has_currentTree = true;
-  }
-
-  /**
-   * Sets the value of field 'fitToWindow'.
-   * 
-   * @param fitToWindow
-   *                the value of field 'fitToWindow'.
-   */
-  public void setFitToWindow(final boolean fitToWindow)
-  {
-    this._fitToWindow = fitToWindow;
-    this._has_fitToWindow = true;
-  }
-
-  /**
-   * Sets the value of field 'fontName'.
-   * 
-   * @param fontName
-   *                the value of field 'fontName'.
-   */
-  public void setFontName(final java.lang.String fontName)
-  {
-    this._fontName = fontName;
-  }
-
-  /**
-   * Sets the value of field 'fontSize'.
-   * 
-   * @param fontSize
-   *                the value of field 'fontSize'.
-   */
-  public void setFontSize(final int fontSize)
-  {
-    this._fontSize = fontSize;
-    this._has_fontSize = true;
-  }
-
-  /**
-   * Sets the value of field 'fontStyle'.
-   * 
-   * @param fontStyle
-   *                the value of field 'fontStyle'.
-   */
-  public void setFontStyle(final int fontStyle)
-  {
-    this._fontStyle = fontStyle;
-    this._has_fontStyle = true;
-  }
-
-  /**
-   * Sets the value of field 'height'.
-   * 
-   * @param height
-   *                the value of field 'height'.
-   */
-  public void setHeight(final int height)
-  {
-    this._height = height;
-    this._has_height = true;
-  }
-
-  /**
-   * Sets the value of field 'markUnlinked'.
-   * 
-   * @param markUnlinked
-   *                the value of field 'markUnlinked'.
-   */
-  public void setMarkUnlinked(final boolean markUnlinked)
-  {
-    this._markUnlinked = markUnlinked;
-    this._has_markUnlinked = true;
-  }
-
-  /**
-   * Sets the value of field 'newick'.
-   * 
-   * @param newick
-   *                the value of field 'newick'.
-   */
-  public void setNewick(final java.lang.String newick)
-  {
-    this._newick = newick;
-  }
-
-  /**
-   * Sets the value of field 'showBootstrap'.
-   * 
-   * @param showBootstrap
-   *                the value of field 'showBootstrap'.
-   */
-  public void setShowBootstrap(final boolean showBootstrap)
-  {
-    this._showBootstrap = showBootstrap;
-    this._has_showBootstrap = true;
-  }
-
-  /**
-   * Sets the value of field 'showDistances'.
-   * 
-   * @param showDistances
-   *                the value of field 'showDistances'.
-   */
-  public void setShowDistances(final boolean showDistances)
-  {
-    this._showDistances = showDistances;
-    this._has_showDistances = true;
-  }
-
-  /**
-   * Sets the value of field 'threshold'.
-   * 
-   * @param threshold
-   *                the value of field 'threshold'.
-   */
-  public void setThreshold(final float threshold)
-  {
-    this._threshold = threshold;
-    this._has_threshold = true;
-  }
-
-  /**
-   * Sets the value of field 'title'.
-   * 
-   * @param title
-   *                the value of field 'title'.
-   */
-  public void setTitle(final java.lang.String title)
-  {
-    this._title = title;
-  }
-
-  /**
-   * Sets the value of field 'width'.
-   * 
-   * @param width
-   *                the value of field 'width'.
-   */
-  public void setWidth(final int width)
-  {
-    this._width = width;
-    this._has_width = true;
-  }
-
-  /**
-   * Sets the value of field 'xpos'.
-   * 
-   * @param xpos
-   *                the value of field 'xpos'.
-   */
-  public void setXpos(final int xpos)
-  {
-    this._xpos = xpos;
-    this._has_xpos = true;
-  }
-
-  /**
-   * Sets the value of field 'ypos'.
-   * 
-   * @param ypos
-   *                the value of field 'ypos'.
-   */
-  public void setYpos(final int ypos)
-  {
-    this._ypos = ypos;
-    this._has_ypos = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Tree
-   */
-  public static jalview.schemabinding.version2.Tree unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Tree) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.Tree.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Tree implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _fontName.
+     */
+    private java.lang.String _fontName;
+
+    /**
+     * Field _fontSize.
+     */
+    private int _fontSize;
+
+    /**
+     * keeps track of state for field: _fontSize
+     */
+    private boolean _has_fontSize;
+
+    /**
+     * Field _fontStyle.
+     */
+    private int _fontStyle;
+
+    /**
+     * keeps track of state for field: _fontStyle
+     */
+    private boolean _has_fontStyle;
+
+    /**
+     * Field _threshold.
+     */
+    private float _threshold;
+
+    /**
+     * keeps track of state for field: _threshold
+     */
+    private boolean _has_threshold;
+
+    /**
+     * Field _showBootstrap.
+     */
+    private boolean _showBootstrap;
+
+    /**
+     * keeps track of state for field: _showBootstrap
+     */
+    private boolean _has_showBootstrap;
+
+    /**
+     * Field _showDistances.
+     */
+    private boolean _showDistances;
+
+    /**
+     * keeps track of state for field: _showDistances
+     */
+    private boolean _has_showDistances;
+
+    /**
+     * Field _markUnlinked.
+     */
+    private boolean _markUnlinked;
+
+    /**
+     * keeps track of state for field: _markUnlinked
+     */
+    private boolean _has_markUnlinked;
+
+    /**
+     * Field _fitToWindow.
+     */
+    private boolean _fitToWindow;
+
+    /**
+     * keeps track of state for field: _fitToWindow
+     */
+    private boolean _has_fitToWindow;
+
+    /**
+     * Field _currentTree.
+     */
+    private boolean _currentTree;
+
+    /**
+     * keeps track of state for field: _currentTree
+     */
+    private boolean _has_currentTree;
+
+    /**
+     * Tree ID added for binding tree visualization settings to
+     * vamsas document trees in jalview 2.4.1
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * Field _newick.
+     */
+    private java.lang.String _newick;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Tree() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     */
+    public void deleteCurrentTree(
+    ) {
+        this._has_currentTree= false;
+    }
+
+    /**
+     */
+    public void deleteFitToWindow(
+    ) {
+        this._has_fitToWindow= false;
+    }
+
+    /**
+     */
+    public void deleteFontSize(
+    ) {
+        this._has_fontSize= false;
+    }
+
+    /**
+     */
+    public void deleteFontStyle(
+    ) {
+        this._has_fontStyle= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deleteMarkUnlinked(
+    ) {
+        this._has_markUnlinked= false;
+    }
+
+    /**
+     */
+    public void deleteShowBootstrap(
+    ) {
+        this._has_showBootstrap= false;
+    }
+
+    /**
+     */
+    public void deleteShowDistances(
+    ) {
+        this._has_showDistances= false;
+    }
+
+    /**
+     */
+    public void deleteThreshold(
+    ) {
+        this._has_threshold= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Returns the value of field 'currentTree'.
+     * 
+     * @return the value of field 'CurrentTree'.
+     */
+    public boolean getCurrentTree(
+    ) {
+        return this._currentTree;
+    }
+
+    /**
+     * Returns the value of field 'fitToWindow'.
+     * 
+     * @return the value of field 'FitToWindow'.
+     */
+    public boolean getFitToWindow(
+    ) {
+        return this._fitToWindow;
+    }
+
+    /**
+     * Returns the value of field 'fontName'.
+     * 
+     * @return the value of field 'FontName'.
+     */
+    public java.lang.String getFontName(
+    ) {
+        return this._fontName;
+    }
+
+    /**
+     * Returns the value of field 'fontSize'.
+     * 
+     * @return the value of field 'FontSize'.
+     */
+    public int getFontSize(
+    ) {
+        return this._fontSize;
+    }
+
+    /**
+     * Returns the value of field 'fontStyle'.
+     * 
+     * @return the value of field 'FontStyle'.
+     */
+    public int getFontStyle(
+    ) {
+        return this._fontStyle;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Returns the value of field 'id'. The field 'id' has the
+     * following description: Tree ID added for binding tree
+     * visualization settings to vamsas document trees in jalview
+     * 2.4.1
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'markUnlinked'.
+     * 
+     * @return the value of field 'MarkUnlinked'.
+     */
+    public boolean getMarkUnlinked(
+    ) {
+        return this._markUnlinked;
+    }
+
+    /**
+     * Returns the value of field 'newick'.
+     * 
+     * @return the value of field 'Newick'.
+     */
+    public java.lang.String getNewick(
+    ) {
+        return this._newick;
+    }
+
+    /**
+     * Returns the value of field 'showBootstrap'.
+     * 
+     * @return the value of field 'ShowBootstrap'.
+     */
+    public boolean getShowBootstrap(
+    ) {
+        return this._showBootstrap;
+    }
+
+    /**
+     * Returns the value of field 'showDistances'.
+     * 
+     * @return the value of field 'ShowDistances'.
+     */
+    public boolean getShowDistances(
+    ) {
+        return this._showDistances;
+    }
+
+    /**
+     * Returns the value of field 'threshold'.
+     * 
+     * @return the value of field 'Threshold'.
+     */
+    public float getThreshold(
+    ) {
+        return this._threshold;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasCurrentTree.
+     * 
+     * @return true if at least one CurrentTree has been added
+     */
+    public boolean hasCurrentTree(
+    ) {
+        return this._has_currentTree;
+    }
+
+    /**
+     * Method hasFitToWindow.
+     * 
+     * @return true if at least one FitToWindow has been added
+     */
+    public boolean hasFitToWindow(
+    ) {
+        return this._has_fitToWindow;
+    }
+
+    /**
+     * Method hasFontSize.
+     * 
+     * @return true if at least one FontSize has been added
+     */
+    public boolean hasFontSize(
+    ) {
+        return this._has_fontSize;
+    }
+
+    /**
+     * Method hasFontStyle.
+     * 
+     * @return true if at least one FontStyle has been added
+     */
+    public boolean hasFontStyle(
+    ) {
+        return this._has_fontStyle;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasMarkUnlinked.
+     * 
+     * @return true if at least one MarkUnlinked has been added
+     */
+    public boolean hasMarkUnlinked(
+    ) {
+        return this._has_markUnlinked;
+    }
+
+    /**
+     * Method hasShowBootstrap.
+     * 
+     * @return true if at least one ShowBootstrap has been added
+     */
+    public boolean hasShowBootstrap(
+    ) {
+        return this._has_showBootstrap;
+    }
+
+    /**
+     * Method hasShowDistances.
+     * 
+     * @return true if at least one ShowDistances has been added
+     */
+    public boolean hasShowDistances(
+    ) {
+        return this._has_showDistances;
+    }
+
+    /**
+     * Method hasThreshold.
+     * 
+     * @return true if at least one Threshold has been added
+     */
+    public boolean hasThreshold(
+    ) {
+        return this._has_threshold;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Returns the value of field 'currentTree'.
+     * 
+     * @return the value of field 'CurrentTree'.
+     */
+    public boolean isCurrentTree(
+    ) {
+        return this._currentTree;
+    }
+
+    /**
+     * Returns the value of field 'fitToWindow'.
+     * 
+     * @return the value of field 'FitToWindow'.
+     */
+    public boolean isFitToWindow(
+    ) {
+        return this._fitToWindow;
+    }
+
+    /**
+     * Returns the value of field 'markUnlinked'.
+     * 
+     * @return the value of field 'MarkUnlinked'.
+     */
+    public boolean isMarkUnlinked(
+    ) {
+        return this._markUnlinked;
+    }
+
+    /**
+     * Returns the value of field 'showBootstrap'.
+     * 
+     * @return the value of field 'ShowBootstrap'.
+     */
+    public boolean isShowBootstrap(
+    ) {
+        return this._showBootstrap;
+    }
+
+    /**
+     * Returns the value of field 'showDistances'.
+     * 
+     * @return the value of field 'ShowDistances'.
+     */
+    public boolean isShowDistances(
+    ) {
+        return this._showDistances;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'currentTree'.
+     * 
+     * @param currentTree the value of field 'currentTree'.
+     */
+    public void setCurrentTree(
+            final boolean currentTree) {
+        this._currentTree = currentTree;
+        this._has_currentTree = true;
+    }
+
+    /**
+     * Sets the value of field 'fitToWindow'.
+     * 
+     * @param fitToWindow the value of field 'fitToWindow'.
+     */
+    public void setFitToWindow(
+            final boolean fitToWindow) {
+        this._fitToWindow = fitToWindow;
+        this._has_fitToWindow = true;
+    }
+
+    /**
+     * Sets the value of field 'fontName'.
+     * 
+     * @param fontName the value of field 'fontName'.
+     */
+    public void setFontName(
+            final java.lang.String fontName) {
+        this._fontName = fontName;
+    }
+
+    /**
+     * Sets the value of field 'fontSize'.
+     * 
+     * @param fontSize the value of field 'fontSize'.
+     */
+    public void setFontSize(
+            final int fontSize) {
+        this._fontSize = fontSize;
+        this._has_fontSize = true;
+    }
+
+    /**
+     * Sets the value of field 'fontStyle'.
+     * 
+     * @param fontStyle the value of field 'fontStyle'.
+     */
+    public void setFontStyle(
+            final int fontStyle) {
+        this._fontStyle = fontStyle;
+        this._has_fontStyle = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * Sets the value of field 'id'. The field 'id' has the
+     * following description: Tree ID added for binding tree
+     * visualization settings to vamsas document trees in jalview
+     * 2.4.1
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'markUnlinked'.
+     * 
+     * @param markUnlinked the value of field 'markUnlinked'.
+     */
+    public void setMarkUnlinked(
+            final boolean markUnlinked) {
+        this._markUnlinked = markUnlinked;
+        this._has_markUnlinked = true;
+    }
+
+    /**
+     * Sets the value of field 'newick'.
+     * 
+     * @param newick the value of field 'newick'.
+     */
+    public void setNewick(
+            final java.lang.String newick) {
+        this._newick = newick;
+    }
+
+    /**
+     * Sets the value of field 'showBootstrap'.
+     * 
+     * @param showBootstrap the value of field 'showBootstrap'.
+     */
+    public void setShowBootstrap(
+            final boolean showBootstrap) {
+        this._showBootstrap = showBootstrap;
+        this._has_showBootstrap = true;
+    }
+
+    /**
+     * Sets the value of field 'showDistances'.
+     * 
+     * @param showDistances the value of field 'showDistances'.
+     */
+    public void setShowDistances(
+            final boolean showDistances) {
+        this._showDistances = showDistances;
+        this._has_showDistances = true;
+    }
+
+    /**
+     * Sets the value of field 'threshold'.
+     * 
+     * @param threshold the value of field 'threshold'.
+     */
+    public void setThreshold(
+            final float threshold) {
+        this._threshold = threshold;
+        this._has_threshold = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.Tree
+     */
+    public static jalview.schemabinding.version2.Tree unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Tree) Unmarshaller.unmarshal(jalview.schemabinding.version2.Tree.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/UserColourScheme.java b/src/jalview/schemabinding/version2/UserColourScheme.java
index 6e3b6c9..3cb65e0 100755
--- a/src/jalview/schemabinding/version2/UserColourScheme.java
+++ b/src/jalview/schemabinding/version2/UserColourScheme.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,113 +19,99 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColourScheme extends JalviewUserColours implements
-        java.io.Serializable
+public class UserColourScheme extends JalviewUserColours 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public UserColourScheme()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColourScheme() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.JalviewUserColours
-   */
-  public static jalview.schemabinding.version2.JalviewUserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.JalviewUserColours) Unmarshaller
-            .unmarshal(
-                    jalview.schemabinding.version2.UserColourScheme.class,
-                    reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.JalviewUserColours
+     */
+    public static jalview.schemabinding.version2.JalviewUserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.JalviewUserColours) Unmarshaller.unmarshal(jalview.schemabinding.version2.UserColourScheme.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/UserColours.java b/src/jalview/schemabinding/version2/UserColours.java
index b52eba7..062024f 100755
--- a/src/jalview/schemabinding/version2/UserColours.java
+++ b/src/jalview/schemabinding/version2/UserColours.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,168 +19,152 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColours implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _id.
-   */
-  private java.lang.String _id;
-
-  /**
-   * Field _userColourScheme.
-   */
-  private jalview.schemabinding.version2.UserColourScheme _userColourScheme;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public UserColours()
-  {
-    super();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Returns the value of field 'id'.
-   * 
-   * @return the value of field 'Id'.
-   */
-  public java.lang.String getId()
-  {
-    return this._id;
-  }
-
-  /**
-   * Returns the value of field 'userColourScheme'.
-   * 
-   * @return the value of field 'UserColourScheme'.
-   */
-  public jalview.schemabinding.version2.UserColourScheme getUserColourScheme()
-  {
-    return this._userColourScheme;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+public class UserColours implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _id.
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _userColourScheme.
+     */
+    private jalview.schemabinding.version2.UserColourScheme _userColourScheme;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColours() {
+        super();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Returns the value of field 'id'.
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'userColourScheme'.
+     * 
+     * @return the value of field 'UserColourScheme'.
+     */
+    public jalview.schemabinding.version2.UserColourScheme getUserColourScheme(
+    ) {
+        return this._userColourScheme;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     * Sets the value of field 'id'.
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'userColourScheme'.
+     * 
+     * @param userColourScheme the value of field 'userColourScheme'
+     */
+    public void setUserColourScheme(
+            final jalview.schemabinding.version2.UserColourScheme userColourScheme) {
+        this._userColourScheme = userColourScheme;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.UserColours
+     */
+    public static jalview.schemabinding.version2.UserColours unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.UserColours) Unmarshaller.unmarshal(jalview.schemabinding.version2.UserColours.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   * Sets the value of field 'id'.
-   * 
-   * @param id
-   *                the value of field 'id'.
-   */
-  public void setId(final java.lang.String id)
-  {
-    this._id = id;
-  }
-
-  /**
-   * Sets the value of field 'userColourScheme'.
-   * 
-   * @param userColourScheme
-   *                the value of field 'userColourScheme'
-   */
-  public void setUserColourScheme(
-          final jalview.schemabinding.version2.UserColourScheme userColourScheme)
-  {
-    this._userColourScheme = userColourScheme;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.UserColours
-   */
-  public static jalview.schemabinding.version2.UserColours unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.UserColours) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.UserColours.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/VAMSAS.java b/src/jalview/schemabinding/version2/VAMSAS.java
index 7a7edf5..ae8e17f 100755
--- a/src/jalview/schemabinding/version2/VAMSAS.java
+++ b/src/jalview/schemabinding/version2/VAMSAS.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,440 +19,411 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class VAMSAS implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _treeList.
-   */
-  private java.util.Vector _treeList;
-
-  /**
-   * Field _sequenceSetList.
-   */
-  private java.util.Vector _sequenceSetList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public VAMSAS()
-  {
-    super();
-    this._treeList = new java.util.Vector();
-    this._sequenceSetList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSet(
-          final jalview.schemabinding.version2.SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetList.addElement(vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addSequenceSet(final int index,
-          final jalview.schemabinding.version2.SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._sequenceSetList.add(index, vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.addElement(vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addTree(final int index, final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._treeList.add(index, vTree);
-  }
-
-  /**
-   * Method enumerateSequenceSet.
-   * 
-   * @return an Enumeration over all jalview.schemabinding.version2.SequenceSet
-   *         elements
-   */
-  public java.util.Enumeration enumerateSequenceSet()
-  {
-    return this._sequenceSetList.elements();
-  }
-
-  /**
-   * Method enumerateTree.
-   * 
-   * @return an Enumeration over all java.lang.String elements
-   */
-  public java.util.Enumeration enumerateTree()
-  {
-    return this._treeList.elements();
-  }
-
-  /**
-   * Method getSequenceSet.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.SequenceSet at the
-   *         given index
-   */
-  public jalview.schemabinding.version2.SequenceSet getSequenceSet(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetList.size())
-    {
-      throw new IndexOutOfBoundsException("getSequenceSet: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceSetList.size() - 1) + "]");
+public class VAMSAS implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _treeList.
+     */
+    private java.util.Vector _treeList;
+
+    /**
+     * Field _sequenceSetList.
+     */
+    private java.util.Vector _sequenceSetList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VAMSAS() {
+        super();
+        this._treeList = new java.util.Vector();
+        this._sequenceSetList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSet(
+            final jalview.schemabinding.version2.SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetList.addElement(vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addSequenceSet(
+            final int index,
+            final jalview.schemabinding.version2.SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        this._sequenceSetList.add(index, vSequenceSet);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.addElement(vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addTree(
+            final int index,
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        this._treeList.add(index, vTree);
+    }
+
+    /**
+     * Method enumerateSequenceSet.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.SequenceSet elements
+     */
+    public java.util.Enumeration enumerateSequenceSet(
+    ) {
+        return this._sequenceSetList.elements();
+    }
+
+    /**
+     * Method enumerateTree.
+     * 
+     * @return an Enumeration over all java.lang.String elements
+     */
+    public java.util.Enumeration enumerateTree(
+    ) {
+        return this._treeList.elements();
+    }
+
+    /**
+     * Method getSequenceSet.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.SequenceSet at the given index
+     */
+    public jalview.schemabinding.version2.SequenceSet getSequenceSet(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetList.size()) {
+            throw new IndexOutOfBoundsException("getSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.SequenceSet) _sequenceSetList.get(index);
+    }
+
+    /**
+     * Method getSequenceSet.Returns the contents of the collection
+     * in an Array.  <p>Note:  Just in case the collection contents
+     * are changing in another thread, we pass a 0-length Array of
+     * the correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.SequenceSet[] getSequenceSet(
+    ) {
+        jalview.schemabinding.version2.SequenceSet[] array = new jalview.schemabinding.version2.SequenceSet[0];
+        return (jalview.schemabinding.version2.SequenceSet[]) this._sequenceSetList.toArray(array);
     }
 
-    return (jalview.schemabinding.version2.SequenceSet) _sequenceSetList
-            .get(index);
-  }
-
-  /**
-   * Method getSequenceSet.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.SequenceSet[] getSequenceSet()
-  {
-    jalview.schemabinding.version2.SequenceSet[] array = new jalview.schemabinding.version2.SequenceSet[0];
-    return (jalview.schemabinding.version2.SequenceSet[]) this._sequenceSetList
-            .toArray(array);
-  }
-
-  /**
-   * Method getSequenceSetCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getSequenceSetCount()
-  {
-    return this._sequenceSetList.size();
-  }
-
-  /**
-   * Method getTree.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the java.lang.String at the given index
-   */
-  public java.lang.String getTree(final int index)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("getTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+    /**
+     * Method getSequenceSetCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getSequenceSetCount(
+    ) {
+        return this._sequenceSetList.size();
     }
 
-    return (java.lang.String) _treeList.get(index);
-  }
-
-  /**
-   * Method getTree.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public java.lang.String[] getTree()
-  {
-    java.lang.String[] array = new java.lang.String[0];
-    return (java.lang.String[]) this._treeList.toArray(array);
-  }
-
-  /**
-   * Method getTreeCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getTreeCount()
-  {
-    return this._treeList.size();
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+    /**
+     * Method getTree.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the java.lang.String at the given index
+     */
+    public java.lang.String getTree(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        return (java.lang.String) _treeList.get(index);
     }
-    return true;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllSequenceSet()
-  {
-    this._sequenceSetList.clear();
-  }
-
-  /**
-   */
-  public void removeAllTree()
-  {
-    this._treeList.clear();
-  }
-
-  /**
-   * Method removeSequenceSet.
-   * 
-   * @param vSequenceSet
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeSequenceSet(
-          final jalview.schemabinding.version2.SequenceSet vSequenceSet)
-  {
-    boolean removed = _sequenceSetList.remove(vSequenceSet);
-    return removed;
-  }
-
-  /**
-   * Method removeSequenceSetAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.SequenceSet removeSequenceSetAt(
-          final int index)
-  {
-    java.lang.Object obj = this._sequenceSetList.remove(index);
-    return (jalview.schemabinding.version2.SequenceSet) obj;
-  }
-
-  /**
-   * Method removeTree.
-   * 
-   * @param vTree
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeTree(final java.lang.String vTree)
-  {
-    boolean removed = _treeList.remove(vTree);
-    return removed;
-  }
-
-  /**
-   * Method removeTreeAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public java.lang.String removeTreeAt(final int index)
-  {
-    java.lang.Object obj = this._treeList.remove(index);
-    return (java.lang.String) obj;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vSequenceSet
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setSequenceSet(final int index,
-          final jalview.schemabinding.version2.SequenceSet vSequenceSet)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._sequenceSetList.size())
-    {
-      throw new IndexOutOfBoundsException("setSequenceSet: Index value '"
-              + index + "' not in range [0.."
-              + (this._sequenceSetList.size() - 1) + "]");
+
+    /**
+     * Method getTree.Returns the contents of the collection in an
+     * Array.  <p>Note:  Just in case the collection contents are
+     * changing in another thread, we pass a 0-length Array of the
+     * correct type into the API call.  This way we <i>know</i>
+     * that the Array returned is of exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public java.lang.String[] getTree(
+    ) {
+        java.lang.String[] array = new java.lang.String[0];
+        return (java.lang.String[]) this._treeList.toArray(array);
+    }
+
+    /**
+     * Method getTreeCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getTreeCount(
+    ) {
+        return this._treeList.size();
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllSequenceSet(
+    ) {
+        this._sequenceSetList.clear();
+    }
+
+    /**
+     */
+    public void removeAllTree(
+    ) {
+        this._treeList.clear();
+    }
+
+    /**
+     * Method removeSequenceSet.
+     * 
+     * @param vSequenceSet
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeSequenceSet(
+            final jalview.schemabinding.version2.SequenceSet vSequenceSet) {
+        boolean removed = _sequenceSetList.remove(vSequenceSet);
+        return removed;
+    }
+
+    /**
+     * Method removeSequenceSetAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.SequenceSet removeSequenceSetAt(
+            final int index) {
+        java.lang.Object obj = this._sequenceSetList.remove(index);
+        return (jalview.schemabinding.version2.SequenceSet) obj;
+    }
+
+    /**
+     * Method removeTree.
+     * 
+     * @param vTree
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeTree(
+            final java.lang.String vTree) {
+        boolean removed = _treeList.remove(vTree);
+        return removed;
+    }
+
+    /**
+     * Method removeTreeAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public java.lang.String removeTreeAt(
+            final int index) {
+        java.lang.Object obj = this._treeList.remove(index);
+        return (java.lang.String) obj;
     }
 
-    this._sequenceSetList.set(index, vSequenceSet);
-  }
-
-  /**
-   * 
-   * 
-   * @param vSequenceSetArray
-   */
-  public void setSequenceSet(
-          final jalview.schemabinding.version2.SequenceSet[] vSequenceSetArray)
-  {
-    // -- copy array
-    _sequenceSetList.clear();
-
-    for (int i = 0; i < vSequenceSetArray.length; i++)
-    {
-      this._sequenceSetList.add(vSequenceSetArray[i]);
+    /**
+     * 
+     * 
+     * @param index
+     * @param vSequenceSet
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setSequenceSet(
+            final int index,
+            final jalview.schemabinding.version2.SequenceSet vSequenceSet)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._sequenceSetList.size()) {
+            throw new IndexOutOfBoundsException("setSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+        }
+        
+        this._sequenceSetList.set(index, vSequenceSet);
     }
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vTree
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setTree(final int index, final java.lang.String vTree)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._treeList.size())
-    {
-      throw new IndexOutOfBoundsException("setTree: Index value '" + index
-              + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+
+    /**
+     * 
+     * 
+     * @param vSequenceSetArray
+     */
+    public void setSequenceSet(
+            final jalview.schemabinding.version2.SequenceSet[] vSequenceSetArray) {
+        //-- copy array
+        _sequenceSetList.clear();
+        
+        for (int i = 0; i < vSequenceSetArray.length; i++) {
+                this._sequenceSetList.add(vSequenceSetArray[i]);
+        }
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vTree
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setTree(
+            final int index,
+            final java.lang.String vTree)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._treeList.size()) {
+            throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+        }
+        
+        this._treeList.set(index, vTree);
+    }
+
+    /**
+     * 
+     * 
+     * @param vTreeArray
+     */
+    public void setTree(
+            final java.lang.String[] vTreeArray) {
+        //-- copy array
+        _treeList.clear();
+        
+        for (int i = 0; i < vTreeArray.length; i++) {
+                this._treeList.add(vTreeArray[i]);
+        }
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.VAMSAS
+     */
+    public static jalview.schemabinding.version2.VAMSAS unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.VAMSAS) Unmarshaller.unmarshal(jalview.schemabinding.version2.VAMSAS.class, reader);
     }
 
-    this._treeList.set(index, vTree);
-  }
-
-  /**
-   * 
-   * 
-   * @param vTreeArray
-   */
-  public void setTree(final java.lang.String[] vTreeArray)
-  {
-    // -- copy array
-    _treeList.clear();
-
-    for (int i = 0; i < vTreeArray.length; i++)
-    {
-      this._treeList.add(vTreeArray[i]);
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
     }
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.VAMSAS
-   */
-  public static jalview.schemabinding.version2.VAMSAS unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.VAMSAS) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.VAMSAS.class, reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/VamsasModel.java b/src/jalview/schemabinding/version2/VamsasModel.java
index 135cbda..26814dc 100755
--- a/src/jalview/schemabinding/version2/VamsasModel.java
+++ b/src/jalview/schemabinding/version2/VamsasModel.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,110 +19,98 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class VamsasModel extends VAMSAS implements java.io.Serializable
+public class VamsasModel extends VAMSAS 
+implements java.io.Serializable
 {
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
 
-  public VamsasModel()
-  {
-    super();
-  }
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VamsasModel() {
+        super();
+    }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
     }
-    return true;
-  }
 
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
 
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
 
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.VAMSAS
-   */
-  public static jalview.schemabinding.version2.VAMSAS unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.VAMSAS) Unmarshaller.unmarshal(
-            jalview.schemabinding.version2.VamsasModel.class, reader);
-  }
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled jalview.schemabinding.version2.VAMSAS
+     */
+    public static jalview.schemabinding.version2.VAMSAS unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.VAMSAS) Unmarshaller.unmarshal(jalview.schemabinding.version2.VamsasModel.class, reader);
+    }
 
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/Viewport.java b/src/jalview/schemabinding/version2/Viewport.java
index 1e1c2b2..07ddd65 100755
--- a/src/jalview/schemabinding/version2/Viewport.java
+++ b/src/jalview/schemabinding/version2/Viewport.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.Unmarshaller;
@@ -30,1786 +19,1768 @@ import org.exolab.castor.xml.Unmarshaller;
  * 
  * @version $Revision$ $Date$
  */
-public class Viewport implements java.io.Serializable
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _conservationSelected.
-   */
-  private boolean _conservationSelected;
-
-  /**
-   * keeps track of state for field: _conservationSelected
-   */
-  private boolean _has_conservationSelected;
-
-  /**
-   * Field _pidSelected.
-   */
-  private boolean _pidSelected;
-
-  /**
-   * keeps track of state for field: _pidSelected
-   */
-  private boolean _has_pidSelected;
-
-  /**
-   * Field _bgColour.
-   */
-  private java.lang.String _bgColour;
-
-  /**
-   * Field _consThreshold.
-   */
-  private int _consThreshold;
-
-  /**
-   * keeps track of state for field: _consThreshold
-   */
-  private boolean _has_consThreshold;
-
-  /**
-   * Field _pidThreshold.
-   */
-  private int _pidThreshold;
-
-  /**
-   * keeps track of state for field: _pidThreshold
-   */
-  private boolean _has_pidThreshold;
-
-  /**
-   * Field _title.
-   */
-  private java.lang.String _title;
-
-  /**
-   * Field _showFullId.
-   */
-  private boolean _showFullId;
-
-  /**
-   * keeps track of state for field: _showFullId
-   */
-  private boolean _has_showFullId;
-
-  /**
-   * Field _rightAlignIds.
-   */
-  private boolean _rightAlignIds;
-
-  /**
-   * keeps track of state for field: _rightAlignIds
-   */
-  private boolean _has_rightAlignIds;
-
-  /**
-   * Field _showText.
-   */
-  private boolean _showText;
-
-  /**
-   * keeps track of state for field: _showText
-   */
-  private boolean _has_showText;
-
-  /**
-   * Field _showColourText.
-   */
-  private boolean _showColourText;
-
-  /**
-   * keeps track of state for field: _showColourText
-   */
-  private boolean _has_showColourText;
-
-  /**
-   * Field _showBoxes.
-   */
-  private boolean _showBoxes;
-
-  /**
-   * keeps track of state for field: _showBoxes
-   */
-  private boolean _has_showBoxes;
-
-  /**
-   * Field _wrapAlignment.
-   */
-  private boolean _wrapAlignment;
-
-  /**
-   * keeps track of state for field: _wrapAlignment
-   */
-  private boolean _has_wrapAlignment;
-
-  /**
-   * Field _renderGaps.
-   */
-  private boolean _renderGaps;
-
-  /**
-   * keeps track of state for field: _renderGaps
-   */
-  private boolean _has_renderGaps;
-
-  /**
-   * Field _showSequenceFeatures.
-   */
-  private boolean _showSequenceFeatures;
-
-  /**
-   * keeps track of state for field: _showSequenceFeatures
-   */
-  private boolean _has_showSequenceFeatures;
-
-  /**
-   * Field _showAnnotation.
-   */
-  private boolean _showAnnotation;
-
-  /**
-   * keeps track of state for field: _showAnnotation
-   */
-  private boolean _has_showAnnotation;
-
-  /**
-   * Field _xpos.
-   */
-  private int _xpos;
-
-  /**
-   * keeps track of state for field: _xpos
-   */
-  private boolean _has_xpos;
-
-  /**
-   * Field _ypos.
-   */
-  private int _ypos;
-
-  /**
-   * keeps track of state for field: _ypos
-   */
-  private boolean _has_ypos;
-
-  /**
-   * Field _width.
-   */
-  private int _width;
-
-  /**
-   * keeps track of state for field: _width
-   */
-  private boolean _has_width;
-
-  /**
-   * Field _height.
-   */
-  private int _height;
-
-  /**
-   * keeps track of state for field: _height
-   */
-  private boolean _has_height;
-
-  /**
-   * Field _startRes.
-   */
-  private int _startRes;
-
-  /**
-   * keeps track of state for field: _startRes
-   */
-  private boolean _has_startRes;
-
-  /**
-   * Field _startSeq.
-   */
-  private int _startSeq;
-
-  /**
-   * keeps track of state for field: _startSeq
-   */
-  private boolean _has_startSeq;
-
-  /**
-   * Field _fontName.
-   */
-  private java.lang.String _fontName;
-
-  /**
-   * Field _fontSize.
-   */
-  private int _fontSize;
-
-  /**
-   * keeps track of state for field: _fontSize
-   */
-  private boolean _has_fontSize;
-
-  /**
-   * Field _fontStyle.
-   */
-  private int _fontStyle;
-
-  /**
-   * keeps track of state for field: _fontStyle
-   */
-  private boolean _has_fontStyle;
-
-  /**
-   * Field _viewName.
-   */
-  private java.lang.String _viewName;
-
-  /**
-   * Field _sequenceSetId.
-   */
-  private java.lang.String _sequenceSetId;
-
-  /**
-   * Field _gatheredViews.
-   */
-  private boolean _gatheredViews;
-
-  /**
-   * keeps track of state for field: _gatheredViews
-   */
-  private boolean _has_gatheredViews;
-
-  /**
-   * Field _textCol1.
-   */
-  private int _textCol1;
-
-  /**
-   * keeps track of state for field: _textCol1
-   */
-  private boolean _has_textCol1;
-
-  /**
-   * Field _textCol2.
-   */
-  private int _textCol2;
-
-  /**
-   * keeps track of state for field: _textCol2
-   */
-  private boolean _has_textCol2;
-
-  /**
-   * Field _textColThreshold.
-   */
-  private int _textColThreshold;
-
-  /**
-   * keeps track of state for field: _textColThreshold
-   */
-  private boolean _has_textColThreshold;
-
-  /**
-   * Field _annotationColours.
-   */
-  private jalview.schemabinding.version2.AnnotationColours _annotationColours;
-
-  /**
-   * Field _hiddenColumnsList.
-   */
-  private java.util.Vector _hiddenColumnsList;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public Viewport()
-  {
-    super();
-    this._hiddenColumnsList = new java.util.Vector();
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * 
-   * 
-   * @param vHiddenColumns
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addHiddenColumns(
-          final jalview.schemabinding.version2.HiddenColumns vHiddenColumns)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._hiddenColumnsList.addElement(vHiddenColumns);
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vHiddenColumns
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void addHiddenColumns(final int index,
-          final jalview.schemabinding.version2.HiddenColumns vHiddenColumns)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    this._hiddenColumnsList.add(index, vHiddenColumns);
-  }
-
-  /**
-   */
-  public void deleteConsThreshold()
-  {
-    this._has_consThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteConservationSelected()
-  {
-    this._has_conservationSelected = false;
-  }
-
-  /**
-   */
-  public void deleteFontSize()
-  {
-    this._has_fontSize = false;
-  }
-
-  /**
-   */
-  public void deleteFontStyle()
-  {
-    this._has_fontStyle = false;
-  }
-
-  /**
-   */
-  public void deleteGatheredViews()
-  {
-    this._has_gatheredViews = false;
-  }
-
-  /**
-   */
-  public void deleteHeight()
-  {
-    this._has_height = false;
-  }
-
-  /**
-   */
-  public void deletePidSelected()
-  {
-    this._has_pidSelected = false;
-  }
-
-  /**
-   */
-  public void deletePidThreshold()
-  {
-    this._has_pidThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteRenderGaps()
-  {
-    this._has_renderGaps = false;
-  }
-
-  /**
-   */
-  public void deleteRightAlignIds()
-  {
-    this._has_rightAlignIds = false;
-  }
-
-  /**
-   */
-  public void deleteShowAnnotation()
-  {
-    this._has_showAnnotation = false;
-  }
-
-  /**
-   */
-  public void deleteShowBoxes()
-  {
-    this._has_showBoxes = false;
-  }
-
-  /**
-   */
-  public void deleteShowColourText()
-  {
-    this._has_showColourText = false;
-  }
-
-  /**
-   */
-  public void deleteShowFullId()
-  {
-    this._has_showFullId = false;
-  }
-
-  /**
-   */
-  public void deleteShowSequenceFeatures()
-  {
-    this._has_showSequenceFeatures = false;
-  }
-
-  /**
-   */
-  public void deleteShowText()
-  {
-    this._has_showText = false;
-  }
-
-  /**
-   */
-  public void deleteStartRes()
-  {
-    this._has_startRes = false;
-  }
-
-  /**
-   */
-  public void deleteStartSeq()
-  {
-    this._has_startSeq = false;
-  }
-
-  /**
-   */
-  public void deleteTextCol1()
-  {
-    this._has_textCol1 = false;
-  }
-
-  /**
-   */
-  public void deleteTextCol2()
-  {
-    this._has_textCol2 = false;
-  }
-
-  /**
-   */
-  public void deleteTextColThreshold()
-  {
-    this._has_textColThreshold = false;
-  }
-
-  /**
-   */
-  public void deleteWidth()
-  {
-    this._has_width = false;
-  }
-
-  /**
-   */
-  public void deleteWrapAlignment()
-  {
-    this._has_wrapAlignment = false;
-  }
-
-  /**
-   */
-  public void deleteXpos()
-  {
-    this._has_xpos = false;
-  }
-
-  /**
-   */
-  public void deleteYpos()
-  {
-    this._has_ypos = false;
-  }
-
-  /**
-   * Method enumerateHiddenColumns.
-   * 
-   * @return an Enumeration over all
-   *         jalview.schemabinding.version2.HiddenColumns elements
-   */
-  public java.util.Enumeration enumerateHiddenColumns()
-  {
-    return this._hiddenColumnsList.elements();
-  }
-
-  /**
-   * Returns the value of field 'annotationColours'.
-   * 
-   * @return the value of field 'AnnotationColours'.
-   */
-  public jalview.schemabinding.version2.AnnotationColours getAnnotationColours()
-  {
-    return this._annotationColours;
-  }
-
-  /**
-   * Returns the value of field 'bgColour'.
-   * 
-   * @return the value of field 'BgColour'.
-   */
-  public java.lang.String getBgColour()
-  {
-    return this._bgColour;
-  }
-
-  /**
-   * Returns the value of field 'consThreshold'.
-   * 
-   * @return the value of field 'ConsThreshold'.
-   */
-  public int getConsThreshold()
-  {
-    return this._consThreshold;
-  }
-
-  /**
-   * Returns the value of field 'conservationSelected'.
-   * 
-   * @return the value of field 'ConservationSelected'.
-   */
-  public boolean getConservationSelected()
-  {
-    return this._conservationSelected;
-  }
-
-  /**
-   * Returns the value of field 'fontName'.
-   * 
-   * @return the value of field 'FontName'.
-   */
-  public java.lang.String getFontName()
-  {
-    return this._fontName;
-  }
-
-  /**
-   * Returns the value of field 'fontSize'.
-   * 
-   * @return the value of field 'FontSize'.
-   */
-  public int getFontSize()
-  {
-    return this._fontSize;
-  }
-
-  /**
-   * Returns the value of field 'fontStyle'.
-   * 
-   * @return the value of field 'FontStyle'.
-   */
-  public int getFontStyle()
-  {
-    return this._fontStyle;
-  }
-
-  /**
-   * Returns the value of field 'gatheredViews'.
-   * 
-   * @return the value of field 'GatheredViews'.
-   */
-  public boolean getGatheredViews()
-  {
-    return this._gatheredViews;
-  }
-
-  /**
-   * Returns the value of field 'height'.
-   * 
-   * @return the value of field 'Height'.
-   */
-  public int getHeight()
-  {
-    return this._height;
-  }
-
-  /**
-   * Method getHiddenColumns.
-   * 
-   * @param index
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   * @return the value of the jalview.schemabinding.version2.HiddenColumns at
-   *         the given index
-   */
-  public jalview.schemabinding.version2.HiddenColumns getHiddenColumns(
-          final int index) throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._hiddenColumnsList.size())
-    {
-      throw new IndexOutOfBoundsException("getHiddenColumns: Index value '"
-              + index + "' not in range [0.."
-              + (this._hiddenColumnsList.size() - 1) + "]");
-    }
-
-    return (jalview.schemabinding.version2.HiddenColumns) _hiddenColumnsList
-            .get(index);
-  }
-
-  /**
-   * Method getHiddenColumns.Returns the contents of the collection in an Array.
-   * <p>
-   * Note: Just in case the collection contents are changing in another thread,
-   * we pass a 0-length Array of the correct type into the API call. This way we
-   * <i>know</i> that the Array returned is of exactly the correct length.
-   * 
-   * @return this collection as an Array
-   */
-  public jalview.schemabinding.version2.HiddenColumns[] getHiddenColumns()
-  {
-    jalview.schemabinding.version2.HiddenColumns[] array = new jalview.schemabinding.version2.HiddenColumns[0];
-    return (jalview.schemabinding.version2.HiddenColumns[]) this._hiddenColumnsList
-            .toArray(array);
-  }
-
-  /**
-   * Method getHiddenColumnsCount.
-   * 
-   * @return the size of this collection
-   */
-  public int getHiddenColumnsCount()
-  {
-    return this._hiddenColumnsList.size();
-  }
-
-  /**
-   * Returns the value of field 'pidSelected'.
-   * 
-   * @return the value of field 'PidSelected'.
-   */
-  public boolean getPidSelected()
-  {
-    return this._pidSelected;
-  }
-
-  /**
-   * Returns the value of field 'pidThreshold'.
-   * 
-   * @return the value of field 'PidThreshold'.
-   */
-  public int getPidThreshold()
-  {
-    return this._pidThreshold;
-  }
-
-  /**
-   * Returns the value of field 'renderGaps'.
-   * 
-   * @return the value of field 'RenderGaps'.
-   */
-  public boolean getRenderGaps()
-  {
-    return this._renderGaps;
-  }
-
-  /**
-   * Returns the value of field 'rightAlignIds'.
-   * 
-   * @return the value of field 'RightAlignIds'.
-   */
-  public boolean getRightAlignIds()
-  {
-    return this._rightAlignIds;
-  }
-
-  /**
-   * Returns the value of field 'sequenceSetId'.
-   * 
-   * @return the value of field 'SequenceSetId'.
-   */
-  public java.lang.String getSequenceSetId()
-  {
-    return this._sequenceSetId;
-  }
-
-  /**
-   * Returns the value of field 'showAnnotation'.
-   * 
-   * @return the value of field 'ShowAnnotation'.
-   */
-  public boolean getShowAnnotation()
-  {
-    return this._showAnnotation;
-  }
-
-  /**
-   * Returns the value of field 'showBoxes'.
-   * 
-   * @return the value of field 'ShowBoxes'.
-   */
-  public boolean getShowBoxes()
-  {
-    return this._showBoxes;
-  }
-
-  /**
-   * Returns the value of field 'showColourText'.
-   * 
-   * @return the value of field 'ShowColourText'.
-   */
-  public boolean getShowColourText()
-  {
-    return this._showColourText;
-  }
-
-  /**
-   * Returns the value of field 'showFullId'.
-   * 
-   * @return the value of field 'ShowFullId'.
-   */
-  public boolean getShowFullId()
-  {
-    return this._showFullId;
-  }
-
-  /**
-   * Returns the value of field 'showSequenceFeatures'.
-   * 
-   * @return the value of field 'ShowSequenceFeatures'.
-   */
-  public boolean getShowSequenceFeatures()
-  {
-    return this._showSequenceFeatures;
-  }
-
-  /**
-   * Returns the value of field 'showText'.
-   * 
-   * @return the value of field 'ShowText'.
-   */
-  public boolean getShowText()
-  {
-    return this._showText;
-  }
-
-  /**
-   * Returns the value of field 'startRes'.
-   * 
-   * @return the value of field 'StartRes'.
-   */
-  public int getStartRes()
-  {
-    return this._startRes;
-  }
-
-  /**
-   * Returns the value of field 'startSeq'.
-   * 
-   * @return the value of field 'StartSeq'.
-   */
-  public int getStartSeq()
-  {
-    return this._startSeq;
-  }
-
-  /**
-   * Returns the value of field 'textCol1'.
-   * 
-   * @return the value of field 'TextCol1'.
-   */
-  public int getTextCol1()
-  {
-    return this._textCol1;
-  }
-
-  /**
-   * Returns the value of field 'textCol2'.
-   * 
-   * @return the value of field 'TextCol2'.
-   */
-  public int getTextCol2()
-  {
-    return this._textCol2;
-  }
-
-  /**
-   * Returns the value of field 'textColThreshold'.
-   * 
-   * @return the value of field 'TextColThreshold'.
-   */
-  public int getTextColThreshold()
-  {
-    return this._textColThreshold;
-  }
-
-  /**
-   * Returns the value of field 'title'.
-   * 
-   * @return the value of field 'Title'.
-   */
-  public java.lang.String getTitle()
-  {
-    return this._title;
-  }
-
-  /**
-   * Returns the value of field 'viewName'.
-   * 
-   * @return the value of field 'ViewName'.
-   */
-  public java.lang.String getViewName()
-  {
-    return this._viewName;
-  }
-
-  /**
-   * Returns the value of field 'width'.
-   * 
-   * @return the value of field 'Width'.
-   */
-  public int getWidth()
-  {
-    return this._width;
-  }
-
-  /**
-   * Returns the value of field 'wrapAlignment'.
-   * 
-   * @return the value of field 'WrapAlignment'.
-   */
-  public boolean getWrapAlignment()
-  {
-    return this._wrapAlignment;
-  }
-
-  /**
-   * Returns the value of field 'xpos'.
-   * 
-   * @return the value of field 'Xpos'.
-   */
-  public int getXpos()
-  {
-    return this._xpos;
-  }
-
-  /**
-   * Returns the value of field 'ypos'.
-   * 
-   * @return the value of field 'Ypos'.
-   */
-  public int getYpos()
-  {
-    return this._ypos;
-  }
-
-  /**
-   * Method hasConsThreshold.
-   * 
-   * @return true if at least one ConsThreshold has been added
-   */
-  public boolean hasConsThreshold()
-  {
-    return this._has_consThreshold;
-  }
-
-  /**
-   * Method hasConservationSelected.
-   * 
-   * @return true if at least one ConservationSelected has been added
-   */
-  public boolean hasConservationSelected()
-  {
-    return this._has_conservationSelected;
-  }
-
-  /**
-   * Method hasFontSize.
-   * 
-   * @return true if at least one FontSize has been added
-   */
-  public boolean hasFontSize()
-  {
-    return this._has_fontSize;
-  }
-
-  /**
-   * Method hasFontStyle.
-   * 
-   * @return true if at least one FontStyle has been added
-   */
-  public boolean hasFontStyle()
-  {
-    return this._has_fontStyle;
-  }
-
-  /**
-   * Method hasGatheredViews.
-   * 
-   * @return true if at least one GatheredViews has been added
-   */
-  public boolean hasGatheredViews()
-  {
-    return this._has_gatheredViews;
-  }
-
-  /**
-   * Method hasHeight.
-   * 
-   * @return true if at least one Height has been added
-   */
-  public boolean hasHeight()
-  {
-    return this._has_height;
-  }
-
-  /**
-   * Method hasPidSelected.
-   * 
-   * @return true if at least one PidSelected has been added
-   */
-  public boolean hasPidSelected()
-  {
-    return this._has_pidSelected;
-  }
-
-  /**
-   * Method hasPidThreshold.
-   * 
-   * @return true if at least one PidThreshold has been added
-   */
-  public boolean hasPidThreshold()
-  {
-    return this._has_pidThreshold;
-  }
-
-  /**
-   * Method hasRenderGaps.
-   * 
-   * @return true if at least one RenderGaps has been added
-   */
-  public boolean hasRenderGaps()
-  {
-    return this._has_renderGaps;
-  }
-
-  /**
-   * Method hasRightAlignIds.
-   * 
-   * @return true if at least one RightAlignIds has been added
-   */
-  public boolean hasRightAlignIds()
-  {
-    return this._has_rightAlignIds;
-  }
-
-  /**
-   * Method hasShowAnnotation.
-   * 
-   * @return true if at least one ShowAnnotation has been added
-   */
-  public boolean hasShowAnnotation()
-  {
-    return this._has_showAnnotation;
-  }
-
-  /**
-   * Method hasShowBoxes.
-   * 
-   * @return true if at least one ShowBoxes has been added
-   */
-  public boolean hasShowBoxes()
-  {
-    return this._has_showBoxes;
-  }
-
-  /**
-   * Method hasShowColourText.
-   * 
-   * @return true if at least one ShowColourText has been added
-   */
-  public boolean hasShowColourText()
-  {
-    return this._has_showColourText;
-  }
-
-  /**
-   * Method hasShowFullId.
-   * 
-   * @return true if at least one ShowFullId has been added
-   */
-  public boolean hasShowFullId()
-  {
-    return this._has_showFullId;
-  }
-
-  /**
-   * Method hasShowSequenceFeatures.
-   * 
-   * @return true if at least one ShowSequenceFeatures has been added
-   */
-  public boolean hasShowSequenceFeatures()
-  {
-    return this._has_showSequenceFeatures;
-  }
-
-  /**
-   * Method hasShowText.
-   * 
-   * @return true if at least one ShowText has been added
-   */
-  public boolean hasShowText()
-  {
-    return this._has_showText;
-  }
-
-  /**
-   * Method hasStartRes.
-   * 
-   * @return true if at least one StartRes has been added
-   */
-  public boolean hasStartRes()
-  {
-    return this._has_startRes;
-  }
-
-  /**
-   * Method hasStartSeq.
-   * 
-   * @return true if at least one StartSeq has been added
-   */
-  public boolean hasStartSeq()
-  {
-    return this._has_startSeq;
-  }
-
-  /**
-   * Method hasTextCol1.
-   * 
-   * @return true if at least one TextCol1 has been added
-   */
-  public boolean hasTextCol1()
-  {
-    return this._has_textCol1;
-  }
-
-  /**
-   * Method hasTextCol2.
-   * 
-   * @return true if at least one TextCol2 has been added
-   */
-  public boolean hasTextCol2()
-  {
-    return this._has_textCol2;
-  }
-
-  /**
-   * Method hasTextColThreshold.
-   * 
-   * @return true if at least one TextColThreshold has been added
-   */
-  public boolean hasTextColThreshold()
-  {
-    return this._has_textColThreshold;
-  }
-
-  /**
-   * Method hasWidth.
-   * 
-   * @return true if at least one Width has been added
-   */
-  public boolean hasWidth()
-  {
-    return this._has_width;
-  }
-
-  /**
-   * Method hasWrapAlignment.
-   * 
-   * @return true if at least one WrapAlignment has been added
-   */
-  public boolean hasWrapAlignment()
-  {
-    return this._has_wrapAlignment;
-  }
-
-  /**
-   * Method hasXpos.
-   * 
-   * @return true if at least one Xpos has been added
-   */
-  public boolean hasXpos()
-  {
-    return this._has_xpos;
-  }
-
-  /**
-   * Method hasYpos.
-   * 
-   * @return true if at least one Ypos has been added
-   */
-  public boolean hasYpos()
-  {
-    return this._has_ypos;
-  }
-
-  /**
-   * Returns the value of field 'conservationSelected'.
-   * 
-   * @return the value of field 'ConservationSelected'.
-   */
-  public boolean isConservationSelected()
-  {
-    return this._conservationSelected;
-  }
-
-  /**
-   * Returns the value of field 'gatheredViews'.
-   * 
-   * @return the value of field 'GatheredViews'.
-   */
-  public boolean isGatheredViews()
-  {
-    return this._gatheredViews;
-  }
-
-  /**
-   * Returns the value of field 'pidSelected'.
-   * 
-   * @return the value of field 'PidSelected'.
-   */
-  public boolean isPidSelected()
-  {
-    return this._pidSelected;
-  }
-
-  /**
-   * Returns the value of field 'renderGaps'.
-   * 
-   * @return the value of field 'RenderGaps'.
-   */
-  public boolean isRenderGaps()
-  {
-    return this._renderGaps;
-  }
-
-  /**
-   * Returns the value of field 'rightAlignIds'.
-   * 
-   * @return the value of field 'RightAlignIds'.
-   */
-  public boolean isRightAlignIds()
-  {
-    return this._rightAlignIds;
-  }
-
-  /**
-   * Returns the value of field 'showAnnotation'.
-   * 
-   * @return the value of field 'ShowAnnotation'.
-   */
-  public boolean isShowAnnotation()
-  {
-    return this._showAnnotation;
-  }
-
-  /**
-   * Returns the value of field 'showBoxes'.
-   * 
-   * @return the value of field 'ShowBoxes'.
-   */
-  public boolean isShowBoxes()
-  {
-    return this._showBoxes;
-  }
-
-  /**
-   * Returns the value of field 'showColourText'.
-   * 
-   * @return the value of field 'ShowColourText'.
-   */
-  public boolean isShowColourText()
-  {
-    return this._showColourText;
-  }
-
-  /**
-   * Returns the value of field 'showFullId'.
-   * 
-   * @return the value of field 'ShowFullId'.
-   */
-  public boolean isShowFullId()
-  {
-    return this._showFullId;
-  }
-
-  /**
-   * Returns the value of field 'showSequenceFeatures'.
-   * 
-   * @return the value of field 'ShowSequenceFeatures'.
-   */
-  public boolean isShowSequenceFeatures()
-  {
-    return this._showSequenceFeatures;
-  }
-
-  /**
-   * Returns the value of field 'showText'.
-   * 
-   * @return the value of field 'ShowText'.
-   */
-  public boolean isShowText()
-  {
-    return this._showText;
-  }
-
-  /**
-   * Method isValid.
-   * 
-   * @return true if this object is valid according to the schema
-   */
-  public boolean isValid()
-  {
-    try
-    {
-      validate();
-    } catch (org.exolab.castor.xml.ValidationException vex)
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Returns the value of field 'wrapAlignment'.
-   * 
-   * @return the value of field 'WrapAlignment'.
-   */
-  public boolean isWrapAlignment()
-  {
-    return this._wrapAlignment;
-  }
-
-  /**
-   * 
-   * 
-   * @param out
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void marshal(final java.io.Writer out)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, out);
-  }
-
-  /**
-   * 
-   * 
-   * @param handler
-   * @throws java.io.IOException
-   *                 if an IOException occurs during marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   */
-  public void marshal(final org.xml.sax.ContentHandler handler)
-          throws java.io.IOException,
-          org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    Marshaller.marshal(this, handler);
-  }
-
-  /**
-   */
-  public void removeAllHiddenColumns()
-  {
-    this._hiddenColumnsList.clear();
-  }
-
-  /**
-   * Method removeHiddenColumns.
-   * 
-   * @param vHiddenColumns
-   * @return true if the object was removed from the collection.
-   */
-  public boolean removeHiddenColumns(
-          final jalview.schemabinding.version2.HiddenColumns vHiddenColumns)
-  {
-    boolean removed = _hiddenColumnsList.remove(vHiddenColumns);
-    return removed;
-  }
-
-  /**
-   * Method removeHiddenColumnsAt.
-   * 
-   * @param index
-   * @return the element removed from the collection
-   */
-  public jalview.schemabinding.version2.HiddenColumns removeHiddenColumnsAt(
-          final int index)
-  {
-    java.lang.Object obj = this._hiddenColumnsList.remove(index);
-    return (jalview.schemabinding.version2.HiddenColumns) obj;
-  }
-
-  /**
-   * Sets the value of field 'annotationColours'.
-   * 
-   * @param annotationColours
-   *                the value of field 'annotationColours'.
-   */
-  public void setAnnotationColours(
-          final jalview.schemabinding.version2.AnnotationColours annotationColours)
-  {
-    this._annotationColours = annotationColours;
-  }
-
-  /**
-   * Sets the value of field 'bgColour'.
-   * 
-   * @param bgColour
-   *                the value of field 'bgColour'.
-   */
-  public void setBgColour(final java.lang.String bgColour)
-  {
-    this._bgColour = bgColour;
-  }
-
-  /**
-   * Sets the value of field 'consThreshold'.
-   * 
-   * @param consThreshold
-   *                the value of field 'consThreshold'.
-   */
-  public void setConsThreshold(final int consThreshold)
-  {
-    this._consThreshold = consThreshold;
-    this._has_consThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'conservationSelected'.
-   * 
-   * @param conservationSelected
-   *                the value of field 'conservationSelected'.
-   */
-  public void setConservationSelected(final boolean conservationSelected)
-  {
-    this._conservationSelected = conservationSelected;
-    this._has_conservationSelected = true;
-  }
-
-  /**
-   * Sets the value of field 'fontName'.
-   * 
-   * @param fontName
-   *                the value of field 'fontName'.
-   */
-  public void setFontName(final java.lang.String fontName)
-  {
-    this._fontName = fontName;
-  }
-
-  /**
-   * Sets the value of field 'fontSize'.
-   * 
-   * @param fontSize
-   *                the value of field 'fontSize'.
-   */
-  public void setFontSize(final int fontSize)
-  {
-    this._fontSize = fontSize;
-    this._has_fontSize = true;
-  }
-
-  /**
-   * Sets the value of field 'fontStyle'.
-   * 
-   * @param fontStyle
-   *                the value of field 'fontStyle'.
-   */
-  public void setFontStyle(final int fontStyle)
-  {
-    this._fontStyle = fontStyle;
-    this._has_fontStyle = true;
-  }
-
-  /**
-   * Sets the value of field 'gatheredViews'.
-   * 
-   * @param gatheredViews
-   *                the value of field 'gatheredViews'.
-   */
-  public void setGatheredViews(final boolean gatheredViews)
-  {
-    this._gatheredViews = gatheredViews;
-    this._has_gatheredViews = true;
-  }
-
-  /**
-   * Sets the value of field 'height'.
-   * 
-   * @param height
-   *                the value of field 'height'.
-   */
-  public void setHeight(final int height)
-  {
-    this._height = height;
-    this._has_height = true;
-  }
-
-  /**
-   * 
-   * 
-   * @param index
-   * @param vHiddenColumns
-   * @throws java.lang.IndexOutOfBoundsException
-   *                 if the index given is outside the bounds of the collection
-   */
-  public void setHiddenColumns(final int index,
-          final jalview.schemabinding.version2.HiddenColumns vHiddenColumns)
-          throws java.lang.IndexOutOfBoundsException
-  {
-    // check bounds for index
-    if (index < 0 || index >= this._hiddenColumnsList.size())
-    {
-      throw new IndexOutOfBoundsException("setHiddenColumns: Index value '"
-              + index + "' not in range [0.."
-              + (this._hiddenColumnsList.size() - 1) + "]");
-    }
-
-    this._hiddenColumnsList.set(index, vHiddenColumns);
-  }
-
-  /**
-   * 
-   * 
-   * @param vHiddenColumnsArray
-   */
-  public void setHiddenColumns(
-          final jalview.schemabinding.version2.HiddenColumns[] vHiddenColumnsArray)
-  {
-    // -- copy array
-    _hiddenColumnsList.clear();
-
-    for (int i = 0; i < vHiddenColumnsArray.length; i++)
-    {
-      this._hiddenColumnsList.add(vHiddenColumnsArray[i]);
-    }
-  }
-
-  /**
-   * Sets the value of field 'pidSelected'.
-   * 
-   * @param pidSelected
-   *                the value of field 'pidSelected'.
-   */
-  public void setPidSelected(final boolean pidSelected)
-  {
-    this._pidSelected = pidSelected;
-    this._has_pidSelected = true;
-  }
-
-  /**
-   * Sets the value of field 'pidThreshold'.
-   * 
-   * @param pidThreshold
-   *                the value of field 'pidThreshold'.
-   */
-  public void setPidThreshold(final int pidThreshold)
-  {
-    this._pidThreshold = pidThreshold;
-    this._has_pidThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'renderGaps'.
-   * 
-   * @param renderGaps
-   *                the value of field 'renderGaps'.
-   */
-  public void setRenderGaps(final boolean renderGaps)
-  {
-    this._renderGaps = renderGaps;
-    this._has_renderGaps = true;
-  }
-
-  /**
-   * Sets the value of field 'rightAlignIds'.
-   * 
-   * @param rightAlignIds
-   *                the value of field 'rightAlignIds'.
-   */
-  public void setRightAlignIds(final boolean rightAlignIds)
-  {
-    this._rightAlignIds = rightAlignIds;
-    this._has_rightAlignIds = true;
-  }
-
-  /**
-   * Sets the value of field 'sequenceSetId'.
-   * 
-   * @param sequenceSetId
-   *                the value of field 'sequenceSetId'.
-   */
-  public void setSequenceSetId(final java.lang.String sequenceSetId)
-  {
-    this._sequenceSetId = sequenceSetId;
-  }
-
-  /**
-   * Sets the value of field 'showAnnotation'.
-   * 
-   * @param showAnnotation
-   *                the value of field 'showAnnotation'.
-   */
-  public void setShowAnnotation(final boolean showAnnotation)
-  {
-    this._showAnnotation = showAnnotation;
-    this._has_showAnnotation = true;
-  }
-
-  /**
-   * Sets the value of field 'showBoxes'.
-   * 
-   * @param showBoxes
-   *                the value of field 'showBoxes'.
-   */
-  public void setShowBoxes(final boolean showBoxes)
-  {
-    this._showBoxes = showBoxes;
-    this._has_showBoxes = true;
-  }
-
-  /**
-   * Sets the value of field 'showColourText'.
-   * 
-   * @param showColourText
-   *                the value of field 'showColourText'.
-   */
-  public void setShowColourText(final boolean showColourText)
-  {
-    this._showColourText = showColourText;
-    this._has_showColourText = true;
-  }
-
-  /**
-   * Sets the value of field 'showFullId'.
-   * 
-   * @param showFullId
-   *                the value of field 'showFullId'.
-   */
-  public void setShowFullId(final boolean showFullId)
-  {
-    this._showFullId = showFullId;
-    this._has_showFullId = true;
-  }
-
-  /**
-   * Sets the value of field 'showSequenceFeatures'.
-   * 
-   * @param showSequenceFeatures
-   *                the value of field 'showSequenceFeatures'.
-   */
-  public void setShowSequenceFeatures(final boolean showSequenceFeatures)
-  {
-    this._showSequenceFeatures = showSequenceFeatures;
-    this._has_showSequenceFeatures = true;
-  }
-
-  /**
-   * Sets the value of field 'showText'.
-   * 
-   * @param showText
-   *                the value of field 'showText'.
-   */
-  public void setShowText(final boolean showText)
-  {
-    this._showText = showText;
-    this._has_showText = true;
-  }
-
-  /**
-   * Sets the value of field 'startRes'.
-   * 
-   * @param startRes
-   *                the value of field 'startRes'.
-   */
-  public void setStartRes(final int startRes)
-  {
-    this._startRes = startRes;
-    this._has_startRes = true;
-  }
-
-  /**
-   * Sets the value of field 'startSeq'.
-   * 
-   * @param startSeq
-   *                the value of field 'startSeq'.
-   */
-  public void setStartSeq(final int startSeq)
-  {
-    this._startSeq = startSeq;
-    this._has_startSeq = true;
-  }
-
-  /**
-   * Sets the value of field 'textCol1'.
-   * 
-   * @param textCol1
-   *                the value of field 'textCol1'.
-   */
-  public void setTextCol1(final int textCol1)
-  {
-    this._textCol1 = textCol1;
-    this._has_textCol1 = true;
-  }
-
-  /**
-   * Sets the value of field 'textCol2'.
-   * 
-   * @param textCol2
-   *                the value of field 'textCol2'.
-   */
-  public void setTextCol2(final int textCol2)
-  {
-    this._textCol2 = textCol2;
-    this._has_textCol2 = true;
-  }
-
-  /**
-   * Sets the value of field 'textColThreshold'.
-   * 
-   * @param textColThreshold
-   *                the value of field 'textColThreshold'
-   */
-  public void setTextColThreshold(final int textColThreshold)
-  {
-    this._textColThreshold = textColThreshold;
-    this._has_textColThreshold = true;
-  }
-
-  /**
-   * Sets the value of field 'title'.
-   * 
-   * @param title
-   *                the value of field 'title'.
-   */
-  public void setTitle(final java.lang.String title)
-  {
-    this._title = title;
-  }
-
-  /**
-   * Sets the value of field 'viewName'.
-   * 
-   * @param viewName
-   *                the value of field 'viewName'.
-   */
-  public void setViewName(final java.lang.String viewName)
-  {
-    this._viewName = viewName;
-  }
-
-  /**
-   * Sets the value of field 'width'.
-   * 
-   * @param width
-   *                the value of field 'width'.
-   */
-  public void setWidth(final int width)
-  {
-    this._width = width;
-    this._has_width = true;
-  }
-
-  /**
-   * Sets the value of field 'wrapAlignment'.
-   * 
-   * @param wrapAlignment
-   *                the value of field 'wrapAlignment'.
-   */
-  public void setWrapAlignment(final boolean wrapAlignment)
-  {
-    this._wrapAlignment = wrapAlignment;
-    this._has_wrapAlignment = true;
-  }
-
-  /**
-   * Sets the value of field 'xpos'.
-   * 
-   * @param xpos
-   *                the value of field 'xpos'.
-   */
-  public void setXpos(final int xpos)
-  {
-    this._xpos = xpos;
-    this._has_xpos = true;
-  }
-
-  /**
-   * Sets the value of field 'ypos'.
-   * 
-   * @param ypos
-   *                the value of field 'ypos'.
-   */
-  public void setYpos(final int ypos)
-  {
-    this._ypos = ypos;
-    this._has_ypos = true;
-  }
-
-  /**
-   * Method unmarshal.
-   * 
-   * @param reader
-   * @throws org.exolab.castor.xml.MarshalException
-   *                 if object is null or if any SAXException is thrown during
-   *                 marshaling
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   * @return the unmarshaled jalview.schemabinding.version2.Viewport
-   */
-  public static jalview.schemabinding.version2.Viewport unmarshal(
-          final java.io.Reader reader)
-          throws org.exolab.castor.xml.MarshalException,
-          org.exolab.castor.xml.ValidationException
-  {
-    return (jalview.schemabinding.version2.Viewport) Unmarshaller
-            .unmarshal(jalview.schemabinding.version2.Viewport.class,
-                    reader);
-  }
-
-  /**
-   * 
-   * 
-   * @throws org.exolab.castor.xml.ValidationException
-   *                 if this object is an invalid instance according to the
-   *                 schema
-   */
-  public void validate() throws org.exolab.castor.xml.ValidationException
-  {
-    org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-    validator.validate(this);
-  }
+public class Viewport implements java.io.Serializable {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _conservationSelected.
+     */
+    private boolean _conservationSelected;
+
+    /**
+     * keeps track of state for field: _conservationSelected
+     */
+    private boolean _has_conservationSelected;
+
+    /**
+     * Field _pidSelected.
+     */
+    private boolean _pidSelected;
+
+    /**
+     * keeps track of state for field: _pidSelected
+     */
+    private boolean _has_pidSelected;
+
+    /**
+     * Field _bgColour.
+     */
+    private java.lang.String _bgColour;
+
+    /**
+     * Field _consThreshold.
+     */
+    private int _consThreshold;
+
+    /**
+     * keeps track of state for field: _consThreshold
+     */
+    private boolean _has_consThreshold;
+
+    /**
+     * Field _pidThreshold.
+     */
+    private int _pidThreshold;
+
+    /**
+     * keeps track of state for field: _pidThreshold
+     */
+    private boolean _has_pidThreshold;
+
+    /**
+     * Field _title.
+     */
+    private java.lang.String _title;
+
+    /**
+     * Field _showFullId.
+     */
+    private boolean _showFullId;
+
+    /**
+     * keeps track of state for field: _showFullId
+     */
+    private boolean _has_showFullId;
+
+    /**
+     * Field _rightAlignIds.
+     */
+    private boolean _rightAlignIds;
+
+    /**
+     * keeps track of state for field: _rightAlignIds
+     */
+    private boolean _has_rightAlignIds;
+
+    /**
+     * Field _showText.
+     */
+    private boolean _showText;
+
+    /**
+     * keeps track of state for field: _showText
+     */
+    private boolean _has_showText;
+
+    /**
+     * Field _showColourText.
+     */
+    private boolean _showColourText;
+
+    /**
+     * keeps track of state for field: _showColourText
+     */
+    private boolean _has_showColourText;
+
+    /**
+     * Field _showBoxes.
+     */
+    private boolean _showBoxes;
+
+    /**
+     * keeps track of state for field: _showBoxes
+     */
+    private boolean _has_showBoxes;
+
+    /**
+     * Field _wrapAlignment.
+     */
+    private boolean _wrapAlignment;
+
+    /**
+     * keeps track of state for field: _wrapAlignment
+     */
+    private boolean _has_wrapAlignment;
+
+    /**
+     * Field _renderGaps.
+     */
+    private boolean _renderGaps;
+
+    /**
+     * keeps track of state for field: _renderGaps
+     */
+    private boolean _has_renderGaps;
+
+    /**
+     * Field _showSequenceFeatures.
+     */
+    private boolean _showSequenceFeatures;
+
+    /**
+     * keeps track of state for field: _showSequenceFeatures
+     */
+    private boolean _has_showSequenceFeatures;
+
+    /**
+     * Field _showAnnotation.
+     */
+    private boolean _showAnnotation;
+
+    /**
+     * keeps track of state for field: _showAnnotation
+     */
+    private boolean _has_showAnnotation;
+
+    /**
+     * Field _xpos.
+     */
+    private int _xpos;
+
+    /**
+     * keeps track of state for field: _xpos
+     */
+    private boolean _has_xpos;
+
+    /**
+     * Field _ypos.
+     */
+    private int _ypos;
+
+    /**
+     * keeps track of state for field: _ypos
+     */
+    private boolean _has_ypos;
+
+    /**
+     * Field _width.
+     */
+    private int _width;
+
+    /**
+     * keeps track of state for field: _width
+     */
+    private boolean _has_width;
+
+    /**
+     * Field _height.
+     */
+    private int _height;
+
+    /**
+     * keeps track of state for field: _height
+     */
+    private boolean _has_height;
+
+    /**
+     * Field _startRes.
+     */
+    private int _startRes;
+
+    /**
+     * keeps track of state for field: _startRes
+     */
+    private boolean _has_startRes;
+
+    /**
+     * Field _startSeq.
+     */
+    private int _startSeq;
+
+    /**
+     * keeps track of state for field: _startSeq
+     */
+    private boolean _has_startSeq;
+
+    /**
+     * Field _fontName.
+     */
+    private java.lang.String _fontName;
+
+    /**
+     * Field _fontSize.
+     */
+    private int _fontSize;
+
+    /**
+     * keeps track of state for field: _fontSize
+     */
+    private boolean _has_fontSize;
+
+    /**
+     * Field _fontStyle.
+     */
+    private int _fontStyle;
+
+    /**
+     * keeps track of state for field: _fontStyle
+     */
+    private boolean _has_fontStyle;
+
+    /**
+     * Field _viewName.
+     */
+    private java.lang.String _viewName;
+
+    /**
+     * Field _sequenceSetId.
+     */
+    private java.lang.String _sequenceSetId;
+
+    /**
+     * Field _gatheredViews.
+     */
+    private boolean _gatheredViews;
+
+    /**
+     * keeps track of state for field: _gatheredViews
+     */
+    private boolean _has_gatheredViews;
+
+    /**
+     * Field _textCol1.
+     */
+    private int _textCol1;
+
+    /**
+     * keeps track of state for field: _textCol1
+     */
+    private boolean _has_textCol1;
+
+    /**
+     * Field _textCol2.
+     */
+    private int _textCol2;
+
+    /**
+     * keeps track of state for field: _textCol2
+     */
+    private boolean _has_textCol2;
+
+    /**
+     * Field _textColThreshold.
+     */
+    private int _textColThreshold;
+
+    /**
+     * keeps track of state for field: _textColThreshold
+     */
+    private boolean _has_textColThreshold;
+
+    /**
+     * unique id used by jalview to synchronize between stored and
+     * instantiated views
+     *  
+     */
+    private java.lang.String _id;
+
+    /**
+     * Field _annotationColours.
+     */
+    private jalview.schemabinding.version2.AnnotationColours _annotationColours;
+
+    /**
+     * Field _hiddenColumnsList.
+     */
+    private java.util.Vector _hiddenColumnsList;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public Viewport() {
+        super();
+        this._hiddenColumnsList = new java.util.Vector();
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * 
+     * 
+     * @param vHiddenColumns
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addHiddenColumns(
+            final jalview.schemabinding.version2.HiddenColumns vHiddenColumns)
+    throws java.lang.IndexOutOfBoundsException {
+        this._hiddenColumnsList.addElement(vHiddenColumns);
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vHiddenColumns
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void addHiddenColumns(
+            final int index,
+            final jalview.schemabinding.version2.HiddenColumns vHiddenColumns)
+    throws java.lang.IndexOutOfBoundsException {
+        this._hiddenColumnsList.add(index, vHiddenColumns);
+    }
+
+    /**
+     */
+    public void deleteConsThreshold(
+    ) {
+        this._has_consThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteConservationSelected(
+    ) {
+        this._has_conservationSelected= false;
+    }
+
+    /**
+     */
+    public void deleteFontSize(
+    ) {
+        this._has_fontSize= false;
+    }
+
+    /**
+     */
+    public void deleteFontStyle(
+    ) {
+        this._has_fontStyle= false;
+    }
+
+    /**
+     */
+    public void deleteGatheredViews(
+    ) {
+        this._has_gatheredViews= false;
+    }
+
+    /**
+     */
+    public void deleteHeight(
+    ) {
+        this._has_height= false;
+    }
+
+    /**
+     */
+    public void deletePidSelected(
+    ) {
+        this._has_pidSelected= false;
+    }
+
+    /**
+     */
+    public void deletePidThreshold(
+    ) {
+        this._has_pidThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteRenderGaps(
+    ) {
+        this._has_renderGaps= false;
+    }
+
+    /**
+     */
+    public void deleteRightAlignIds(
+    ) {
+        this._has_rightAlignIds= false;
+    }
+
+    /**
+     */
+    public void deleteShowAnnotation(
+    ) {
+        this._has_showAnnotation= false;
+    }
+
+    /**
+     */
+    public void deleteShowBoxes(
+    ) {
+        this._has_showBoxes= false;
+    }
+
+    /**
+     */
+    public void deleteShowColourText(
+    ) {
+        this._has_showColourText= false;
+    }
+
+    /**
+     */
+    public void deleteShowFullId(
+    ) {
+        this._has_showFullId= false;
+    }
+
+    /**
+     */
+    public void deleteShowSequenceFeatures(
+    ) {
+        this._has_showSequenceFeatures= false;
+    }
+
+    /**
+     */
+    public void deleteShowText(
+    ) {
+        this._has_showText= false;
+    }
+
+    /**
+     */
+    public void deleteStartRes(
+    ) {
+        this._has_startRes= false;
+    }
+
+    /**
+     */
+    public void deleteStartSeq(
+    ) {
+        this._has_startSeq= false;
+    }
+
+    /**
+     */
+    public void deleteTextCol1(
+    ) {
+        this._has_textCol1= false;
+    }
+
+    /**
+     */
+    public void deleteTextCol2(
+    ) {
+        this._has_textCol2= false;
+    }
+
+    /**
+     */
+    public void deleteTextColThreshold(
+    ) {
+        this._has_textColThreshold= false;
+    }
+
+    /**
+     */
+    public void deleteWidth(
+    ) {
+        this._has_width= false;
+    }
+
+    /**
+     */
+    public void deleteWrapAlignment(
+    ) {
+        this._has_wrapAlignment= false;
+    }
+
+    /**
+     */
+    public void deleteXpos(
+    ) {
+        this._has_xpos= false;
+    }
+
+    /**
+     */
+    public void deleteYpos(
+    ) {
+        this._has_ypos= false;
+    }
+
+    /**
+     * Method enumerateHiddenColumns.
+     * 
+     * @return an Enumeration over all
+     * jalview.schemabinding.version2.HiddenColumns elements
+     */
+    public java.util.Enumeration enumerateHiddenColumns(
+    ) {
+        return this._hiddenColumnsList.elements();
+    }
+
+    /**
+     * Returns the value of field 'annotationColours'.
+     * 
+     * @return the value of field 'AnnotationColours'.
+     */
+    public jalview.schemabinding.version2.AnnotationColours getAnnotationColours(
+    ) {
+        return this._annotationColours;
+    }
+
+    /**
+     * Returns the value of field 'bgColour'.
+     * 
+     * @return the value of field 'BgColour'.
+     */
+    public java.lang.String getBgColour(
+    ) {
+        return this._bgColour;
+    }
+
+    /**
+     * Returns the value of field 'consThreshold'.
+     * 
+     * @return the value of field 'ConsThreshold'.
+     */
+    public int getConsThreshold(
+    ) {
+        return this._consThreshold;
+    }
+
+    /**
+     * Returns the value of field 'conservationSelected'.
+     * 
+     * @return the value of field 'ConservationSelected'.
+     */
+    public boolean getConservationSelected(
+    ) {
+        return this._conservationSelected;
+    }
+
+    /**
+     * Returns the value of field 'fontName'.
+     * 
+     * @return the value of field 'FontName'.
+     */
+    public java.lang.String getFontName(
+    ) {
+        return this._fontName;
+    }
+
+    /**
+     * Returns the value of field 'fontSize'.
+     * 
+     * @return the value of field 'FontSize'.
+     */
+    public int getFontSize(
+    ) {
+        return this._fontSize;
+    }
+
+    /**
+     * Returns the value of field 'fontStyle'.
+     * 
+     * @return the value of field 'FontStyle'.
+     */
+    public int getFontStyle(
+    ) {
+        return this._fontStyle;
+    }
+
+    /**
+     * Returns the value of field 'gatheredViews'.
+     * 
+     * @return the value of field 'GatheredViews'.
+     */
+    public boolean getGatheredViews(
+    ) {
+        return this._gatheredViews;
+    }
+
+    /**
+     * Returns the value of field 'height'.
+     * 
+     * @return the value of field 'Height'.
+     */
+    public int getHeight(
+    ) {
+        return this._height;
+    }
+
+    /**
+     * Method getHiddenColumns.
+     * 
+     * @param index
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     * @return the value of the
+     * jalview.schemabinding.version2.HiddenColumns at the given
+     * index
+     */
+    public jalview.schemabinding.version2.HiddenColumns getHiddenColumns(
+            final int index)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._hiddenColumnsList.size()) {
+            throw new IndexOutOfBoundsException("getHiddenColumns: Index value '" + index + "' not in range [0.." + (this._hiddenColumnsList.size() - 1) + "]");
+        }
+        
+        return (jalview.schemabinding.version2.HiddenColumns) _hiddenColumnsList.get(index);
+    }
+
+    /**
+     * Method getHiddenColumns.Returns the contents of the
+     * collection in an Array.  <p>Note:  Just in case the
+     * collection contents are changing in another thread, we pass
+     * a 0-length Array of the correct type into the API call. 
+     * This way we <i>know</i> that the Array returned is of
+     * exactly the correct length.
+     * 
+     * @return this collection as an Array
+     */
+    public jalview.schemabinding.version2.HiddenColumns[] getHiddenColumns(
+    ) {
+        jalview.schemabinding.version2.HiddenColumns[] array = new jalview.schemabinding.version2.HiddenColumns[0];
+        return (jalview.schemabinding.version2.HiddenColumns[]) this._hiddenColumnsList.toArray(array);
+    }
+
+    /**
+     * Method getHiddenColumnsCount.
+     * 
+     * @return the size of this collection
+     */
+    public int getHiddenColumnsCount(
+    ) {
+        return this._hiddenColumnsList.size();
+    }
+
+    /**
+     * Returns the value of field 'id'. The field 'id' has the
+     * following description: unique id used by jalview to
+     * synchronize between stored and instantiated views
+     *  
+     * 
+     * @return the value of field 'Id'.
+     */
+    public java.lang.String getId(
+    ) {
+        return this._id;
+    }
+
+    /**
+     * Returns the value of field 'pidSelected'.
+     * 
+     * @return the value of field 'PidSelected'.
+     */
+    public boolean getPidSelected(
+    ) {
+        return this._pidSelected;
+    }
+
+    /**
+     * Returns the value of field 'pidThreshold'.
+     * 
+     * @return the value of field 'PidThreshold'.
+     */
+    public int getPidThreshold(
+    ) {
+        return this._pidThreshold;
+    }
+
+    /**
+     * Returns the value of field 'renderGaps'.
+     * 
+     * @return the value of field 'RenderGaps'.
+     */
+    public boolean getRenderGaps(
+    ) {
+        return this._renderGaps;
+    }
+
+    /**
+     * Returns the value of field 'rightAlignIds'.
+     * 
+     * @return the value of field 'RightAlignIds'.
+     */
+    public boolean getRightAlignIds(
+    ) {
+        return this._rightAlignIds;
+    }
+
+    /**
+     * Returns the value of field 'sequenceSetId'.
+     * 
+     * @return the value of field 'SequenceSetId'.
+     */
+    public java.lang.String getSequenceSetId(
+    ) {
+        return this._sequenceSetId;
+    }
+
+    /**
+     * Returns the value of field 'showAnnotation'.
+     * 
+     * @return the value of field 'ShowAnnotation'.
+     */
+    public boolean getShowAnnotation(
+    ) {
+        return this._showAnnotation;
+    }
+
+    /**
+     * Returns the value of field 'showBoxes'.
+     * 
+     * @return the value of field 'ShowBoxes'.
+     */
+    public boolean getShowBoxes(
+    ) {
+        return this._showBoxes;
+    }
+
+    /**
+     * Returns the value of field 'showColourText'.
+     * 
+     * @return the value of field 'ShowColourText'.
+     */
+    public boolean getShowColourText(
+    ) {
+        return this._showColourText;
+    }
+
+    /**
+     * Returns the value of field 'showFullId'.
+     * 
+     * @return the value of field 'ShowFullId'.
+     */
+    public boolean getShowFullId(
+    ) {
+        return this._showFullId;
+    }
+
+    /**
+     * Returns the value of field 'showSequenceFeatures'.
+     * 
+     * @return the value of field 'ShowSequenceFeatures'.
+     */
+    public boolean getShowSequenceFeatures(
+    ) {
+        return this._showSequenceFeatures;
+    }
+
+    /**
+     * Returns the value of field 'showText'.
+     * 
+     * @return the value of field 'ShowText'.
+     */
+    public boolean getShowText(
+    ) {
+        return this._showText;
+    }
+
+    /**
+     * Returns the value of field 'startRes'.
+     * 
+     * @return the value of field 'StartRes'.
+     */
+    public int getStartRes(
+    ) {
+        return this._startRes;
+    }
+
+    /**
+     * Returns the value of field 'startSeq'.
+     * 
+     * @return the value of field 'StartSeq'.
+     */
+    public int getStartSeq(
+    ) {
+        return this._startSeq;
+    }
+
+    /**
+     * Returns the value of field 'textCol1'.
+     * 
+     * @return the value of field 'TextCol1'.
+     */
+    public int getTextCol1(
+    ) {
+        return this._textCol1;
+    }
+
+    /**
+     * Returns the value of field 'textCol2'.
+     * 
+     * @return the value of field 'TextCol2'.
+     */
+    public int getTextCol2(
+    ) {
+        return this._textCol2;
+    }
+
+    /**
+     * Returns the value of field 'textColThreshold'.
+     * 
+     * @return the value of field 'TextColThreshold'.
+     */
+    public int getTextColThreshold(
+    ) {
+        return this._textColThreshold;
+    }
+
+    /**
+     * Returns the value of field 'title'.
+     * 
+     * @return the value of field 'Title'.
+     */
+    public java.lang.String getTitle(
+    ) {
+        return this._title;
+    }
+
+    /**
+     * Returns the value of field 'viewName'.
+     * 
+     * @return the value of field 'ViewName'.
+     */
+    public java.lang.String getViewName(
+    ) {
+        return this._viewName;
+    }
+
+    /**
+     * Returns the value of field 'width'.
+     * 
+     * @return the value of field 'Width'.
+     */
+    public int getWidth(
+    ) {
+        return this._width;
+    }
+
+    /**
+     * Returns the value of field 'wrapAlignment'.
+     * 
+     * @return the value of field 'WrapAlignment'.
+     */
+    public boolean getWrapAlignment(
+    ) {
+        return this._wrapAlignment;
+    }
+
+    /**
+     * Returns the value of field 'xpos'.
+     * 
+     * @return the value of field 'Xpos'.
+     */
+    public int getXpos(
+    ) {
+        return this._xpos;
+    }
+
+    /**
+     * Returns the value of field 'ypos'.
+     * 
+     * @return the value of field 'Ypos'.
+     */
+    public int getYpos(
+    ) {
+        return this._ypos;
+    }
+
+    /**
+     * Method hasConsThreshold.
+     * 
+     * @return true if at least one ConsThreshold has been added
+     */
+    public boolean hasConsThreshold(
+    ) {
+        return this._has_consThreshold;
+    }
+
+    /**
+     * Method hasConservationSelected.
+     * 
+     * @return true if at least one ConservationSelected has been
+     * added
+     */
+    public boolean hasConservationSelected(
+    ) {
+        return this._has_conservationSelected;
+    }
+
+    /**
+     * Method hasFontSize.
+     * 
+     * @return true if at least one FontSize has been added
+     */
+    public boolean hasFontSize(
+    ) {
+        return this._has_fontSize;
+    }
+
+    /**
+     * Method hasFontStyle.
+     * 
+     * @return true if at least one FontStyle has been added
+     */
+    public boolean hasFontStyle(
+    ) {
+        return this._has_fontStyle;
+    }
+
+    /**
+     * Method hasGatheredViews.
+     * 
+     * @return true if at least one GatheredViews has been added
+     */
+    public boolean hasGatheredViews(
+    ) {
+        return this._has_gatheredViews;
+    }
+
+    /**
+     * Method hasHeight.
+     * 
+     * @return true if at least one Height has been added
+     */
+    public boolean hasHeight(
+    ) {
+        return this._has_height;
+    }
+
+    /**
+     * Method hasPidSelected.
+     * 
+     * @return true if at least one PidSelected has been added
+     */
+    public boolean hasPidSelected(
+    ) {
+        return this._has_pidSelected;
+    }
+
+    /**
+     * Method hasPidThreshold.
+     * 
+     * @return true if at least one PidThreshold has been added
+     */
+    public boolean hasPidThreshold(
+    ) {
+        return this._has_pidThreshold;
+    }
+
+    /**
+     * Method hasRenderGaps.
+     * 
+     * @return true if at least one RenderGaps has been added
+     */
+    public boolean hasRenderGaps(
+    ) {
+        return this._has_renderGaps;
+    }
+
+    /**
+     * Method hasRightAlignIds.
+     * 
+     * @return true if at least one RightAlignIds has been added
+     */
+    public boolean hasRightAlignIds(
+    ) {
+        return this._has_rightAlignIds;
+    }
+
+    /**
+     * Method hasShowAnnotation.
+     * 
+     * @return true if at least one ShowAnnotation has been added
+     */
+    public boolean hasShowAnnotation(
+    ) {
+        return this._has_showAnnotation;
+    }
+
+    /**
+     * Method hasShowBoxes.
+     * 
+     * @return true if at least one ShowBoxes has been added
+     */
+    public boolean hasShowBoxes(
+    ) {
+        return this._has_showBoxes;
+    }
+
+    /**
+     * Method hasShowColourText.
+     * 
+     * @return true if at least one ShowColourText has been added
+     */
+    public boolean hasShowColourText(
+    ) {
+        return this._has_showColourText;
+    }
+
+    /**
+     * Method hasShowFullId.
+     * 
+     * @return true if at least one ShowFullId has been added
+     */
+    public boolean hasShowFullId(
+    ) {
+        return this._has_showFullId;
+    }
+
+    /**
+     * Method hasShowSequenceFeatures.
+     * 
+     * @return true if at least one ShowSequenceFeatures has been
+     * added
+     */
+    public boolean hasShowSequenceFeatures(
+    ) {
+        return this._has_showSequenceFeatures;
+    }
+
+    /**
+     * Method hasShowText.
+     * 
+     * @return true if at least one ShowText has been added
+     */
+    public boolean hasShowText(
+    ) {
+        return this._has_showText;
+    }
+
+    /**
+     * Method hasStartRes.
+     * 
+     * @return true if at least one StartRes has been added
+     */
+    public boolean hasStartRes(
+    ) {
+        return this._has_startRes;
+    }
+
+    /**
+     * Method hasStartSeq.
+     * 
+     * @return true if at least one StartSeq has been added
+     */
+    public boolean hasStartSeq(
+    ) {
+        return this._has_startSeq;
+    }
+
+    /**
+     * Method hasTextCol1.
+     * 
+     * @return true if at least one TextCol1 has been added
+     */
+    public boolean hasTextCol1(
+    ) {
+        return this._has_textCol1;
+    }
+
+    /**
+     * Method hasTextCol2.
+     * 
+     * @return true if at least one TextCol2 has been added
+     */
+    public boolean hasTextCol2(
+    ) {
+        return this._has_textCol2;
+    }
+
+    /**
+     * Method hasTextColThreshold.
+     * 
+     * @return true if at least one TextColThreshold has been added
+     */
+    public boolean hasTextColThreshold(
+    ) {
+        return this._has_textColThreshold;
+    }
+
+    /**
+     * Method hasWidth.
+     * 
+     * @return true if at least one Width has been added
+     */
+    public boolean hasWidth(
+    ) {
+        return this._has_width;
+    }
+
+    /**
+     * Method hasWrapAlignment.
+     * 
+     * @return true if at least one WrapAlignment has been added
+     */
+    public boolean hasWrapAlignment(
+    ) {
+        return this._has_wrapAlignment;
+    }
+
+    /**
+     * Method hasXpos.
+     * 
+     * @return true if at least one Xpos has been added
+     */
+    public boolean hasXpos(
+    ) {
+        return this._has_xpos;
+    }
+
+    /**
+     * Method hasYpos.
+     * 
+     * @return true if at least one Ypos has been added
+     */
+    public boolean hasYpos(
+    ) {
+        return this._has_ypos;
+    }
+
+    /**
+     * Returns the value of field 'conservationSelected'.
+     * 
+     * @return the value of field 'ConservationSelected'.
+     */
+    public boolean isConservationSelected(
+    ) {
+        return this._conservationSelected;
+    }
+
+    /**
+     * Returns the value of field 'gatheredViews'.
+     * 
+     * @return the value of field 'GatheredViews'.
+     */
+    public boolean isGatheredViews(
+    ) {
+        return this._gatheredViews;
+    }
+
+    /**
+     * Returns the value of field 'pidSelected'.
+     * 
+     * @return the value of field 'PidSelected'.
+     */
+    public boolean isPidSelected(
+    ) {
+        return this._pidSelected;
+    }
+
+    /**
+     * Returns the value of field 'renderGaps'.
+     * 
+     * @return the value of field 'RenderGaps'.
+     */
+    public boolean isRenderGaps(
+    ) {
+        return this._renderGaps;
+    }
+
+    /**
+     * Returns the value of field 'rightAlignIds'.
+     * 
+     * @return the value of field 'RightAlignIds'.
+     */
+    public boolean isRightAlignIds(
+    ) {
+        return this._rightAlignIds;
+    }
+
+    /**
+     * Returns the value of field 'showAnnotation'.
+     * 
+     * @return the value of field 'ShowAnnotation'.
+     */
+    public boolean isShowAnnotation(
+    ) {
+        return this._showAnnotation;
+    }
+
+    /**
+     * Returns the value of field 'showBoxes'.
+     * 
+     * @return the value of field 'ShowBoxes'.
+     */
+    public boolean isShowBoxes(
+    ) {
+        return this._showBoxes;
+    }
+
+    /**
+     * Returns the value of field 'showColourText'.
+     * 
+     * @return the value of field 'ShowColourText'.
+     */
+    public boolean isShowColourText(
+    ) {
+        return this._showColourText;
+    }
+
+    /**
+     * Returns the value of field 'showFullId'.
+     * 
+     * @return the value of field 'ShowFullId'.
+     */
+    public boolean isShowFullId(
+    ) {
+        return this._showFullId;
+    }
+
+    /**
+     * Returns the value of field 'showSequenceFeatures'.
+     * 
+     * @return the value of field 'ShowSequenceFeatures'.
+     */
+    public boolean isShowSequenceFeatures(
+    ) {
+        return this._showSequenceFeatures;
+    }
+
+    /**
+     * Returns the value of field 'showText'.
+     * 
+     * @return the value of field 'ShowText'.
+     */
+    public boolean isShowText(
+    ) {
+        return this._showText;
+    }
+
+    /**
+     * Method isValid.
+     * 
+     * @return true if this object is valid according to the schema
+     */
+    public boolean isValid(
+    ) {
+        try {
+            validate();
+        } catch (org.exolab.castor.xml.ValidationException vex) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Returns the value of field 'wrapAlignment'.
+     * 
+     * @return the value of field 'WrapAlignment'.
+     */
+    public boolean isWrapAlignment(
+    ) {
+        return this._wrapAlignment;
+    }
+
+    /**
+     * 
+     * 
+     * @param out
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void marshal(
+            final java.io.Writer out)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, out);
+    }
+
+    /**
+     * 
+     * 
+     * @param handler
+     * @throws java.io.IOException if an IOException occurs during
+     * marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     */
+    public void marshal(
+            final org.xml.sax.ContentHandler handler)
+    throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        Marshaller.marshal(this, handler);
+    }
+
+    /**
+     */
+    public void removeAllHiddenColumns(
+    ) {
+        this._hiddenColumnsList.clear();
+    }
+
+    /**
+     * Method removeHiddenColumns.
+     * 
+     * @param vHiddenColumns
+     * @return true if the object was removed from the collection.
+     */
+    public boolean removeHiddenColumns(
+            final jalview.schemabinding.version2.HiddenColumns vHiddenColumns) {
+        boolean removed = _hiddenColumnsList.remove(vHiddenColumns);
+        return removed;
+    }
+
+    /**
+     * Method removeHiddenColumnsAt.
+     * 
+     * @param index
+     * @return the element removed from the collection
+     */
+    public jalview.schemabinding.version2.HiddenColumns removeHiddenColumnsAt(
+            final int index) {
+        java.lang.Object obj = this._hiddenColumnsList.remove(index);
+        return (jalview.schemabinding.version2.HiddenColumns) obj;
+    }
+
+    /**
+     * Sets the value of field 'annotationColours'.
+     * 
+     * @param annotationColours the value of field
+     * 'annotationColours'.
+     */
+    public void setAnnotationColours(
+            final jalview.schemabinding.version2.AnnotationColours annotationColours) {
+        this._annotationColours = annotationColours;
+    }
+
+    /**
+     * Sets the value of field 'bgColour'.
+     * 
+     * @param bgColour the value of field 'bgColour'.
+     */
+    public void setBgColour(
+            final java.lang.String bgColour) {
+        this._bgColour = bgColour;
+    }
+
+    /**
+     * Sets the value of field 'consThreshold'.
+     * 
+     * @param consThreshold the value of field 'consThreshold'.
+     */
+    public void setConsThreshold(
+            final int consThreshold) {
+        this._consThreshold = consThreshold;
+        this._has_consThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'conservationSelected'.
+     * 
+     * @param conservationSelected the value of field
+     * 'conservationSelected'.
+     */
+    public void setConservationSelected(
+            final boolean conservationSelected) {
+        this._conservationSelected = conservationSelected;
+        this._has_conservationSelected = true;
+    }
+
+    /**
+     * Sets the value of field 'fontName'.
+     * 
+     * @param fontName the value of field 'fontName'.
+     */
+    public void setFontName(
+            final java.lang.String fontName) {
+        this._fontName = fontName;
+    }
+
+    /**
+     * Sets the value of field 'fontSize'.
+     * 
+     * @param fontSize the value of field 'fontSize'.
+     */
+    public void setFontSize(
+            final int fontSize) {
+        this._fontSize = fontSize;
+        this._has_fontSize = true;
+    }
+
+    /**
+     * Sets the value of field 'fontStyle'.
+     * 
+     * @param fontStyle the value of field 'fontStyle'.
+     */
+    public void setFontStyle(
+            final int fontStyle) {
+        this._fontStyle = fontStyle;
+        this._has_fontStyle = true;
+    }
+
+    /**
+     * Sets the value of field 'gatheredViews'.
+     * 
+     * @param gatheredViews the value of field 'gatheredViews'.
+     */
+    public void setGatheredViews(
+            final boolean gatheredViews) {
+        this._gatheredViews = gatheredViews;
+        this._has_gatheredViews = true;
+    }
+
+    /**
+     * Sets the value of field 'height'.
+     * 
+     * @param height the value of field 'height'.
+     */
+    public void setHeight(
+            final int height) {
+        this._height = height;
+        this._has_height = true;
+    }
+
+    /**
+     * 
+     * 
+     * @param index
+     * @param vHiddenColumns
+     * @throws java.lang.IndexOutOfBoundsException if the index
+     * given is outside the bounds of the collection
+     */
+    public void setHiddenColumns(
+            final int index,
+            final jalview.schemabinding.version2.HiddenColumns vHiddenColumns)
+    throws java.lang.IndexOutOfBoundsException {
+        // check bounds for index
+        if (index < 0 || index >= this._hiddenColumnsList.size()) {
+            throw new IndexOutOfBoundsException("setHiddenColumns: Index value '" + index + "' not in range [0.." + (this._hiddenColumnsList.size() - 1) + "]");
+        }
+        
+        this._hiddenColumnsList.set(index, vHiddenColumns);
+    }
+
+    /**
+     * 
+     * 
+     * @param vHiddenColumnsArray
+     */
+    public void setHiddenColumns(
+            final jalview.schemabinding.version2.HiddenColumns[] vHiddenColumnsArray) {
+        //-- copy array
+        _hiddenColumnsList.clear();
+        
+        for (int i = 0; i < vHiddenColumnsArray.length; i++) {
+                this._hiddenColumnsList.add(vHiddenColumnsArray[i]);
+        }
+    }
+
+    /**
+     * Sets the value of field 'id'. The field 'id' has the
+     * following description: unique id used by jalview to
+     * synchronize between stored and instantiated views
+     *  
+     * 
+     * @param id the value of field 'id'.
+     */
+    public void setId(
+            final java.lang.String id) {
+        this._id = id;
+    }
+
+    /**
+     * Sets the value of field 'pidSelected'.
+     * 
+     * @param pidSelected the value of field 'pidSelected'.
+     */
+    public void setPidSelected(
+            final boolean pidSelected) {
+        this._pidSelected = pidSelected;
+        this._has_pidSelected = true;
+    }
+
+    /**
+     * Sets the value of field 'pidThreshold'.
+     * 
+     * @param pidThreshold the value of field 'pidThreshold'.
+     */
+    public void setPidThreshold(
+            final int pidThreshold) {
+        this._pidThreshold = pidThreshold;
+        this._has_pidThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'renderGaps'.
+     * 
+     * @param renderGaps the value of field 'renderGaps'.
+     */
+    public void setRenderGaps(
+            final boolean renderGaps) {
+        this._renderGaps = renderGaps;
+        this._has_renderGaps = true;
+    }
+
+    /**
+     * Sets the value of field 'rightAlignIds'.
+     * 
+     * @param rightAlignIds the value of field 'rightAlignIds'.
+     */
+    public void setRightAlignIds(
+            final boolean rightAlignIds) {
+        this._rightAlignIds = rightAlignIds;
+        this._has_rightAlignIds = true;
+    }
+
+    /**
+     * Sets the value of field 'sequenceSetId'.
+     * 
+     * @param sequenceSetId the value of field 'sequenceSetId'.
+     */
+    public void setSequenceSetId(
+            final java.lang.String sequenceSetId) {
+        this._sequenceSetId = sequenceSetId;
+    }
+
+    /**
+     * Sets the value of field 'showAnnotation'.
+     * 
+     * @param showAnnotation the value of field 'showAnnotation'.
+     */
+    public void setShowAnnotation(
+            final boolean showAnnotation) {
+        this._showAnnotation = showAnnotation;
+        this._has_showAnnotation = true;
+    }
+
+    /**
+     * Sets the value of field 'showBoxes'.
+     * 
+     * @param showBoxes the value of field 'showBoxes'.
+     */
+    public void setShowBoxes(
+            final boolean showBoxes) {
+        this._showBoxes = showBoxes;
+        this._has_showBoxes = true;
+    }
+
+    /**
+     * Sets the value of field 'showColourText'.
+     * 
+     * @param showColourText the value of field 'showColourText'.
+     */
+    public void setShowColourText(
+            final boolean showColourText) {
+        this._showColourText = showColourText;
+        this._has_showColourText = true;
+    }
+
+    /**
+     * Sets the value of field 'showFullId'.
+     * 
+     * @param showFullId the value of field 'showFullId'.
+     */
+    public void setShowFullId(
+            final boolean showFullId) {
+        this._showFullId = showFullId;
+        this._has_showFullId = true;
+    }
+
+    /**
+     * Sets the value of field 'showSequenceFeatures'.
+     * 
+     * @param showSequenceFeatures the value of field
+     * 'showSequenceFeatures'.
+     */
+    public void setShowSequenceFeatures(
+            final boolean showSequenceFeatures) {
+        this._showSequenceFeatures = showSequenceFeatures;
+        this._has_showSequenceFeatures = true;
+    }
+
+    /**
+     * Sets the value of field 'showText'.
+     * 
+     * @param showText the value of field 'showText'.
+     */
+    public void setShowText(
+            final boolean showText) {
+        this._showText = showText;
+        this._has_showText = true;
+    }
+
+    /**
+     * Sets the value of field 'startRes'.
+     * 
+     * @param startRes the value of field 'startRes'.
+     */
+    public void setStartRes(
+            final int startRes) {
+        this._startRes = startRes;
+        this._has_startRes = true;
+    }
+
+    /**
+     * Sets the value of field 'startSeq'.
+     * 
+     * @param startSeq the value of field 'startSeq'.
+     */
+    public void setStartSeq(
+            final int startSeq) {
+        this._startSeq = startSeq;
+        this._has_startSeq = true;
+    }
+
+    /**
+     * Sets the value of field 'textCol1'.
+     * 
+     * @param textCol1 the value of field 'textCol1'.
+     */
+    public void setTextCol1(
+            final int textCol1) {
+        this._textCol1 = textCol1;
+        this._has_textCol1 = true;
+    }
+
+    /**
+     * Sets the value of field 'textCol2'.
+     * 
+     * @param textCol2 the value of field 'textCol2'.
+     */
+    public void setTextCol2(
+            final int textCol2) {
+        this._textCol2 = textCol2;
+        this._has_textCol2 = true;
+    }
+
+    /**
+     * Sets the value of field 'textColThreshold'.
+     * 
+     * @param textColThreshold the value of field 'textColThreshold'
+     */
+    public void setTextColThreshold(
+            final int textColThreshold) {
+        this._textColThreshold = textColThreshold;
+        this._has_textColThreshold = true;
+    }
+
+    /**
+     * Sets the value of field 'title'.
+     * 
+     * @param title the value of field 'title'.
+     */
+    public void setTitle(
+            final java.lang.String title) {
+        this._title = title;
+    }
+
+    /**
+     * Sets the value of field 'viewName'.
+     * 
+     * @param viewName the value of field 'viewName'.
+     */
+    public void setViewName(
+            final java.lang.String viewName) {
+        this._viewName = viewName;
+    }
+
+    /**
+     * Sets the value of field 'width'.
+     * 
+     * @param width the value of field 'width'.
+     */
+    public void setWidth(
+            final int width) {
+        this._width = width;
+        this._has_width = true;
+    }
+
+    /**
+     * Sets the value of field 'wrapAlignment'.
+     * 
+     * @param wrapAlignment the value of field 'wrapAlignment'.
+     */
+    public void setWrapAlignment(
+            final boolean wrapAlignment) {
+        this._wrapAlignment = wrapAlignment;
+        this._has_wrapAlignment = true;
+    }
+
+    /**
+     * Sets the value of field 'xpos'.
+     * 
+     * @param xpos the value of field 'xpos'.
+     */
+    public void setXpos(
+            final int xpos) {
+        this._xpos = xpos;
+        this._has_xpos = true;
+    }
+
+    /**
+     * Sets the value of field 'ypos'.
+     * 
+     * @param ypos the value of field 'ypos'.
+     */
+    public void setYpos(
+            final int ypos) {
+        this._ypos = ypos;
+        this._has_ypos = true;
+    }
+
+    /**
+     * Method unmarshal.
+     * 
+     * @param reader
+     * @throws org.exolab.castor.xml.MarshalException if object is
+     * null or if any SAXException is thrown during marshaling
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     * @return the unmarshaled
+     * jalview.schemabinding.version2.Viewport
+     */
+    public static jalview.schemabinding.version2.Viewport unmarshal(
+            final java.io.Reader reader)
+    throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+        return (jalview.schemabinding.version2.Viewport) Unmarshaller.unmarshal(jalview.schemabinding.version2.Viewport.class, reader);
+    }
+
+    /**
+     * 
+     * 
+     * @throws org.exolab.castor.xml.ValidationException if this
+     * object is an invalid instance according to the schema
+     */
+    public void validate(
+    )
+    throws org.exolab.castor.xml.ValidationException {
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+        validator.validate(this);
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/AlcodMapDescriptor.java b/src/jalview/schemabinding/version2/descriptors/AlcodMapDescriptor.java
index fe62433..fbc56a3 100644
--- a/src/jalview/schemabinding/version2/descriptors/AlcodMapDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/AlcodMapDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.AlcodMap;
 
@@ -29,230 +18,217 @@ import jalview.schemabinding.version2.AlcodMap;
  * 
  * @version $Revision$ $Date$
  */
-public class AlcodMapDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AlcodMapDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "alcodMap";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _dnasq
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_dnasq", "dnasq",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AlcodMap target = (AlcodMap) object;
-        return target.getDnasq();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AlcodMap target = (AlcodMap) object;
-          target.setDnasq((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class AlcodMapDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AlcodMapDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "alcodMap";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _dnasq
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_dnasq", "dnasq", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AlcodMap target = (AlcodMap) object;
+                return target.getDnasq();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AlcodMap target = (AlcodMap) object;
+                    target.setDnasq( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _dnasq
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _dnasq
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _mapping
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Mapping.class, "_mapping", "Mapping", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AlcodMap target = (AlcodMap) object;
+                return target.getMapping();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AlcodMap target = (AlcodMap) object;
+                    target.setMapping( (jalview.schemabinding.version2.Mapping) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Mapping();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _mapping
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _mapping
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Mapping.class, "_mapping",
-            "Mapping", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AlcodMap target = (AlcodMap) object;
-        return target.getMapping();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AlcodMap target = (AlcodMap) object;
-          target.setMapping((jalview.schemabinding.version2.Mapping) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Mapping();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _mapping
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.AlcodMap.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.AlcodMap.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/AlcodonDescriptor.java b/src/jalview/schemabinding/version2/descriptors/AlcodonDescriptor.java
index 49bfe1d..cd87309 100644
--- a/src/jalview/schemabinding/version2/descriptors/AlcodonDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/AlcodonDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Alcodon;
 
@@ -29,296 +18,263 @@ import jalview.schemabinding.version2.Alcodon;
  * 
  * @version $Revision$ $Date$
  */
-public class AlcodonDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
+public class AlcodonDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
 
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
 
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
 
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
 
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
 
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
 
-  public AlcodonDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "alcodon";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
 
-    // -- _pos1
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Long.TYPE, "_pos1", "pos1",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Alcodon target = (Alcodon) object;
-        if (!target.hasPos1())
-        {
-          return null;
-        }
-        return new java.lang.Long(target.getPos1());
-      }
+      //----------------/
+     //- Constructors -/
+    //----------------/
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Alcodon target = (Alcodon) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deletePos1();
-            return;
-          }
-          target.setPos1(((java.lang.Long) value).longValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+    public AlcodonDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "alcodon";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _pos1
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Long.TYPE, "_pos1", "pos1", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Alcodon target = (Alcodon) object;
+                if (!target.hasPos1()) { return null; }
+                return new java.lang.Long(target.getPos1());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Alcodon target = (Alcodon) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deletePos1();
+                        return;
+                    }
+                    target.setPos1( ((java.lang.Long) value).longValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _pos1
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.LongValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.LongValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _pos1
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.LongValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _pos2
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Long.TYPE, "_pos2", "pos2",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Alcodon target = (Alcodon) object;
-        if (!target.hasPos2())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _pos2
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Long.TYPE, "_pos2", "pos2", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Alcodon target = (Alcodon) object;
+                if (!target.hasPos2()) { return null; }
+                return new java.lang.Long(target.getPos2());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Alcodon target = (Alcodon) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deletePos2();
+                        return;
+                    }
+                    target.setPos2( ((java.lang.Long) value).longValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _pos2
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.LongValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.LongValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Long(target.getPos2());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Alcodon target = (Alcodon) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deletePos2();
-            return;
-          }
-          target.setPos2(((java.lang.Long) value).longValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _pos3
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Long.TYPE, "_pos3", "pos3", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Alcodon target = (Alcodon) object;
+                if (!target.hasPos3()) { return null; }
+                return new java.lang.Long(target.getPos3());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Alcodon target = (Alcodon) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deletePos3();
+                        return;
+                    }
+                    target.setPos3( ((java.lang.Long) value).longValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _pos3
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.LongValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.LongValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _pos2
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.LongValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
-      fieldValidator.setValidator(typeValidator);
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- _pos3
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Long.TYPE, "_pos3", "pos3",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Alcodon target = (Alcodon) object;
-        if (!target.hasPos3())
-        {
-          return null;
-        }
-        return new java.lang.Long(target.getPos3());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Alcodon target = (Alcodon) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deletePos3();
-            return;
-          }
-          target.setPos3(((java.lang.Long) value).longValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _pos3
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.LongValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
-      fieldValidator.setValidator(typeValidator);
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Alcodon.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Alcodon.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/AlcodonFrameDescriptor.java b/src/jalview/schemabinding/version2/descriptors/AlcodonFrameDescriptor.java
index 8901c8f..5341376 100644
--- a/src/jalview/schemabinding/version2/descriptors/AlcodonFrameDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/AlcodonFrameDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.AlcodonFrame;
 
@@ -29,251 +18,227 @@ import jalview.schemabinding.version2.AlcodonFrame;
  * 
  * @version $Revision$ $Date$
  */
-public class AlcodonFrameDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AlcodonFrameDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "AlcodonFrame";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _alcodonList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Alcodon.class, "_alcodonList",
-            "alcodon", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AlcodonFrame target = (AlcodonFrame) object;
-        return target.getAlcodon();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AlcodonFrame target = (AlcodonFrame) object;
-          target.addAlcodon((jalview.schemabinding.version2.Alcodon) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class AlcodonFrameDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AlcodonFrameDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "AlcodonFrame";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _alcodonList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Alcodon.class, "_alcodonList", "alcodon", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AlcodonFrame target = (AlcodonFrame) object;
+                return target.getAlcodon();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AlcodonFrame target = (AlcodonFrame) object;
+                    target.addAlcodon( (jalview.schemabinding.version2.Alcodon) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    AlcodonFrame target = (AlcodonFrame) object;
+                    target.removeAllAlcodon();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Alcodon();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _alcodonList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          AlcodonFrame target = (AlcodonFrame) object;
-          target.removeAllAlcodon();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _alcodMapList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.AlcodMap.class, "_alcodMapList", "alcodMap", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AlcodonFrame target = (AlcodonFrame) object;
+                return target.getAlcodMap();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AlcodonFrame target = (AlcodonFrame) object;
+                    target.addAlcodMap( (jalview.schemabinding.version2.AlcodMap) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    AlcodonFrame target = (AlcodonFrame) object;
+                    target.removeAllAlcodMap();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.AlcodMap();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _alcodMapList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Alcodon();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _alcodonList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _alcodMapList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.AlcodMap.class, "_alcodMapList",
-            "alcodMap", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AlcodonFrame target = (AlcodonFrame) object;
-        return target.getAlcodMap();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AlcodonFrame target = (AlcodonFrame) object;
-          target
-                  .addAlcodMap((jalview.schemabinding.version2.AlcodMap) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          AlcodonFrame target = (AlcodonFrame) object;
-          target.removeAllAlcodMap();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.AlcodMap();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _alcodMapList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.AlcodonFrame.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.AlcodonFrame.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/AnnotationColoursDescriptor.java b/src/jalview/schemabinding/version2/descriptors/AnnotationColoursDescriptor.java
index 4e606ed..3d32ff6 100644
--- a/src/jalview/schemabinding/version2/descriptors/AnnotationColoursDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/AnnotationColoursDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.AnnotationColours;
 
@@ -29,447 +18,386 @@ import jalview.schemabinding.version2.AnnotationColours;
  * 
  * @version $Revision$ $Date$
  */
-public class AnnotationColoursDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AnnotationColoursDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "AnnotationColours";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _aboveThreshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_aboveThreshold", "aboveThreshold",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationColours target = (AnnotationColours) object;
-        if (!target.hasAboveThreshold())
-        {
-          return null;
+public class AnnotationColoursDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AnnotationColoursDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "AnnotationColours";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _aboveThreshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_aboveThreshold", "aboveThreshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationColours target = (AnnotationColours) object;
+                if (!target.hasAboveThreshold()) { return null; }
+                return new java.lang.Integer(target.getAboveThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationColours target = (AnnotationColours) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteAboveThreshold();
+                        return;
+                    }
+                    target.setAboveThreshold( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _aboveThreshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getAboveThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationColours target = (AnnotationColours) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteAboveThreshold();
-            return;
-          }
-          target.setAboveThreshold(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _annotation
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_annotation", "annotation", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationColours target = (AnnotationColours) object;
+                return target.getAnnotation();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationColours target = (AnnotationColours) object;
+                    target.setAnnotation( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _annotation
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _aboveThreshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _annotation
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_annotation", "annotation",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationColours target = (AnnotationColours) object;
-        return target.getAnnotation();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationColours target = (AnnotationColours) object;
-          target.setAnnotation((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _annotation
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _minColour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_minColour", "minColour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationColours target = (AnnotationColours) object;
-        if (!target.hasMinColour())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _minColour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_minColour", "minColour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationColours target = (AnnotationColours) object;
+                if (!target.hasMinColour()) { return null; }
+                return new java.lang.Integer(target.getMinColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationColours target = (AnnotationColours) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteMinColour();
+                        return;
+                    }
+                    target.setMinColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _minColour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getMinColour());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationColours target = (AnnotationColours) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteMinColour();
-            return;
-          }
-          target.setMinColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _maxColour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_maxColour", "maxColour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationColours target = (AnnotationColours) object;
+                if (!target.hasMaxColour()) { return null; }
+                return new java.lang.Integer(target.getMaxColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationColours target = (AnnotationColours) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteMaxColour();
+                        return;
+                    }
+                    target.setMaxColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _maxColour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _minColour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _maxColour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_maxColour", "maxColour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationColours target = (AnnotationColours) object;
-        if (!target.hasMaxColour())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _colourScheme
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_colourScheme", "colourScheme", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationColours target = (AnnotationColours) object;
+                return target.getColourScheme();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationColours target = (AnnotationColours) object;
+                    target.setColourScheme( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colourScheme
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Integer(target.getMaxColour());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationColours target = (AnnotationColours) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteMaxColour();
-            return;
-          }
-          target.setMaxColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _threshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_threshold", "threshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationColours target = (AnnotationColours) object;
+                if (!target.hasThreshold()) { return null; }
+                return new java.lang.Float(target.getThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationColours target = (AnnotationColours) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteThreshold();
+                        return;
+                    }
+                    target.setThreshold( ((java.lang.Float) value).floatValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _threshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.FloatValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive((float) -3.4028235E38);
+            typeValidator.setMaxInclusive((float) 3.4028235E38);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _maxColour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- _colourScheme
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_colourScheme", "colourScheme",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationColours target = (AnnotationColours) object;
-        return target.getColourScheme();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationColours target = (AnnotationColours) object;
-          target.setColourScheme((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _colourScheme
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _threshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Float.TYPE, "_threshold", "threshold",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationColours target = (AnnotationColours) object;
-        if (!target.hasThreshold())
-        {
-          return null;
-        }
-        return new java.lang.Float(target.getThreshold());
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationColours target = (AnnotationColours) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteThreshold();
-            return;
-          }
-          target.setThreshold(((java.lang.Float) value).floatValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _threshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.FloatValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive((float) -3.4028235E38);
-      typeValidator.setMaxInclusive((float) 3.4028235E38);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.AnnotationColours.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.AnnotationColours.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/AnnotationDescriptor.java b/src/jalview/schemabinding/version2/descriptors/AnnotationDescriptor.java
index d69c267..44576ee 100644
--- a/src/jalview/schemabinding/version2/descriptors/AnnotationDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/AnnotationDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Annotation;
 
@@ -29,808 +18,665 @@ import jalview.schemabinding.version2.Annotation;
  * 
  * @version $Revision$ $Date$
  */
-public class AnnotationDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AnnotationDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "Annotation";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _graph
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_graph", "graph",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        if (!target.hasGraph())
-        {
-          return null;
-        }
-        return (target.getGraph() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setGraph(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class AnnotationDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AnnotationDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "Annotation";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _graph
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_graph", "graph", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                if (!target.hasGraph()) { return null; }
+                return (target.getGraph() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setGraph( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _graph
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _graph
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _graphType
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_graphType", "graphType",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        if (!target.hasGraphType())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _graphType
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_graphType", "graphType", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                if (!target.hasGraphType()) { return null; }
+                return new java.lang.Integer(target.getGraphType());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteGraphType();
+                        return;
+                    }
+                    target.setGraphType( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _graphType
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getGraphType());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteGraphType();
-            return;
-          }
-          target.setGraphType(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _sequenceRef
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_sequenceRef", "sequenceRef", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                return target.getSequenceRef();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    target.setSequenceRef( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _sequenceRef
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _graphType
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _sequenceRef
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_sequenceRef", "sequenceRef",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        return target.getSequenceRef();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          target.setSequenceRef((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _graphColour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_graphColour", "graphColour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                if (!target.hasGraphColour()) { return null; }
+                return new java.lang.Integer(target.getGraphColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteGraphColour();
+                        return;
+                    }
+                    target.setGraphColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _graphColour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _sequenceRef
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _graphColour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_graphColour", "graphColour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        if (!target.hasGraphColour())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _graphGroup
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_graphGroup", "graphGroup", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                if (!target.hasGraphGroup()) { return null; }
+                return new java.lang.Integer(target.getGraphGroup());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteGraphGroup();
+                        return;
+                    }
+                    target.setGraphGroup( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _graphGroup
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getGraphColour());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteGraphColour();
-            return;
-          }
-          target.setGraphColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _id
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                return target.getId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    target.setId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _id
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _graphColour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _graphGroup
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_graphGroup", "graphGroup",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        if (!target.hasGraphGroup())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _scoreOnly
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_scoreOnly", "scoreOnly", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                if (!target.hasScoreOnly()) { return null; }
+                return (target.getScoreOnly() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteScoreOnly();
+                        return;
+                    }
+                    target.setScoreOnly( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _scoreOnly
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Integer(target.getGraphGroup());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteGraphGroup();
-            return;
-          }
-          target.setGraphGroup(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _score
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Double.TYPE, "_score", "score", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                if (!target.hasScore()) { return null; }
+                return new java.lang.Double(target.getScore());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteScore();
+                        return;
+                    }
+                    target.setScore( ((java.lang.Double) value).doubleValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _score
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.DoubleValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.DoubleValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-1.7976931348623157E308);
+            typeValidator.setMaxInclusive(1.7976931348623157E308);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _graphGroup
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _id
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_id", "id",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        return target.getId();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          target.setId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _visible
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_visible", "visible", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                if (!target.hasVisible()) { return null; }
+                return (target.getVisible() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteVisible();
+                        return;
+                    }
+                    target.setVisible( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _visible
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _id
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _scoreOnly
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_scoreOnly", "scoreOnly",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        if (!target.hasScoreOnly())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _annotationElementList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.AnnotationElement.class, "_annotationElementList", "annotationElement", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                return target.getAnnotationElement();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    target.addAnnotationElement( (jalview.schemabinding.version2.AnnotationElement) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    Annotation target = (Annotation) object;
+                    target.removeAllAnnotationElement();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.AnnotationElement();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _annotationElementList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-        return (target.getScoreOnly() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteScoreOnly();
-            return;
-          }
-          target.setScoreOnly(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _label
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_label", "label", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                return target.getLabel();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    target.setLabel( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _label
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _scoreOnly
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _score
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Double.TYPE, "_score", "score",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        if (!target.hasScore())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _description
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                return target.getDescription();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    target.setDescription( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _description
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Double(target.getScore());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteScore();
-            return;
-          }
-          target.setScore(((java.lang.Double) value).doubleValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _thresholdLine
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.ThresholdLine.class, "_thresholdLine", "thresholdLine", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Annotation target = (Annotation) object;
+                return target.getThresholdLine();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Annotation target = (Annotation) object;
+                    target.setThresholdLine( (jalview.schemabinding.version2.ThresholdLine) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.ThresholdLine();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _thresholdLine
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _score
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.DoubleValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.DoubleValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-1.7976931348623157E308);
-      typeValidator.setMaxInclusive(1.7976931348623157E308);
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _visible
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_visible", "visible",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        if (!target.hasVisible())
-        {
-          return null;
-        }
-        return (target.getVisible() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteVisible();
-            return;
-          }
-          target.setVisible(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _visible
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _annotationElementList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.AnnotationElement.class,
-            "_annotationElementList", "annotationElement",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        return target.getAnnotationElement();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          target
-                  .addAnnotationElement((jalview.schemabinding.version2.AnnotationElement) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          target.removeAllAnnotationElement();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.AnnotationElement();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _annotationElementList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- _label
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_label", "label",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        return target.getLabel();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          target.setLabel((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _label
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Annotation.class;
     }
-    desc.setValidator(fieldValidator);
-    // -- _description
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_description", "description",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        return target.getDescription();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          target.setDescription((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _description
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
     }
-    desc.setValidator(fieldValidator);
-    // -- _thresholdLine
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.ThresholdLine.class,
-            "_thresholdLine", "thresholdLine",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Annotation target = (Annotation) object;
-        return target.getThresholdLine();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Annotation target = (Annotation) object;
-          target
-                  .setThresholdLine((jalview.schemabinding.version2.ThresholdLine) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.ThresholdLine();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _thresholdLine
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Annotation.class;
-  }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/AnnotationElementDescriptor.java b/src/jalview/schemabinding/version2/descriptors/AnnotationElementDescriptor.java
index 71b365a..61221a1 100644
--- a/src/jalview/schemabinding/version2/descriptors/AnnotationElementDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/AnnotationElementDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.AnnotationElement;
 
@@ -29,447 +18,388 @@ import jalview.schemabinding.version2.AnnotationElement;
  * 
  * @version $Revision$ $Date$
  */
-public class AnnotationElementDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public AnnotationElementDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "annotationElement";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _position
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_position", "position",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationElement target = (AnnotationElement) object;
-        if (!target.hasPosition())
-        {
-          return null;
+public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public AnnotationElementDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "annotationElement";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _position
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_position", "position", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationElement target = (AnnotationElement) object;
+                if (!target.hasPosition()) { return null; }
+                return new java.lang.Integer(target.getPosition());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationElement target = (AnnotationElement) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setPosition( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _position
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getPosition());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationElement target = (AnnotationElement) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setPosition(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _colour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationElement target = (AnnotationElement) object;
+                if (!target.hasColour()) { return null; }
+                return new java.lang.Integer(target.getColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationElement target = (AnnotationElement) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteColour();
+                        return;
+                    }
+                    target.setColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _position
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _colour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_colour", "colour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationElement target = (AnnotationElement) object;
-        if (!target.hasColour())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _displayCharacter
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_displayCharacter", "displayCharacter", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationElement target = (AnnotationElement) object;
+                return target.getDisplayCharacter();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationElement target = (AnnotationElement) object;
+                    target.setDisplayCharacter( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _displayCharacter
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Integer(target.getColour());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationElement target = (AnnotationElement) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteColour();
-            return;
-          }
-          target.setColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _description
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationElement target = (AnnotationElement) object;
+                return target.getDescription();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationElement target = (AnnotationElement) object;
+                    target.setDescription( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _description
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _colour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+        desc.setValidator(fieldValidator);
+        //-- _secondaryStructure
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_secondaryStructure", "secondaryStructure", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationElement target = (AnnotationElement) object;
+                return target.getSecondaryStructure();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationElement target = (AnnotationElement) object;
+                    target.setSecondaryStructure( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _secondaryStructure
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+            typeValidator.setLength(1);
+        }
+        desc.setValidator(fieldValidator);
+        //-- _value
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_value", "value", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                AnnotationElement target = (AnnotationElement) object;
+                if (!target.hasValue()) { return null; }
+                return new java.lang.Float(target.getValue());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    AnnotationElement target = (AnnotationElement) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteValue();
+                        return;
+                    }
+                    target.setValue( ((java.lang.Float) value).floatValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _value
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.FloatValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive((float) -3.4028235E38);
+            typeValidator.setMaxInclusive((float) 3.4028235E38);
+        }
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-    // -- _displayCharacter
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_displayCharacter",
-            "displayCharacter", org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationElement target = (AnnotationElement) object;
-        return target.getDisplayCharacter();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationElement target = (AnnotationElement) object;
-          target.setDisplayCharacter((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _displayCharacter
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
     }
-    desc.setValidator(fieldValidator);
-    // -- _description
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_description", "description",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationElement target = (AnnotationElement) object;
-        return target.getDescription();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationElement target = (AnnotationElement) object;
-          target.setDescription((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _description
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- _secondaryStructure
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_secondaryStructure",
-            "secondaryStructure", org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationElement target = (AnnotationElement) object;
-        return target.getSecondaryStructure();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationElement target = (AnnotationElement) object;
-          target.setSecondaryStructure((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _secondaryStructure
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-      typeValidator.setLength(1);
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.AnnotationElement.class;
     }
-    desc.setValidator(fieldValidator);
-    // -- _value
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Float.TYPE, "_value", "value",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        AnnotationElement target = (AnnotationElement) object;
-        if (!target.hasValue())
-        {
-          return null;
-        }
-        return new java.lang.Float(target.getValue());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          AnnotationElement target = (AnnotationElement) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteValue();
-            return;
-          }
-          target.setValue(((java.lang.Float) value).floatValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _value
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.FloatValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive((float) -3.4028235E38);
-      typeValidator.setMaxInclusive((float) 3.4028235E38);
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.AnnotationElement.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/ColourDescriptor.java b/src/jalview/schemabinding/version2/descriptors/ColourDescriptor.java
index d7d4d19..bdd9739 100644
--- a/src/jalview/schemabinding/version2/descriptors/ColourDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/ColourDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Colour;
 
@@ -29,228 +18,215 @@ import jalview.schemabinding.version2.Colour;
  * 
  * @version $Revision$ $Date$
  */
-public class ColourDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public ColourDescriptor()
-  {
-    super();
-    _xmlName = "colour";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _name
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_name", "Name",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Colour target = (Colour) object;
-        return target.getName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Colour target = (Colour) object;
-          target.setName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class ColourDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public ColourDescriptor() {
+        super();
+        _xmlName = "colour";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _name
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "Name", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Colour target = (Colour) object;
+                return target.getName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Colour target = (Colour) object;
+                    target.setName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _name
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _name
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _RGB
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_RGB", "RGB",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Colour target = (Colour) object;
-        return target.getRGB();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Colour target = (Colour) object;
-          target.setRGB((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _RGB
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_RGB", "RGB", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Colour target = (Colour) object;
+                return target.getRGB();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Colour target = (Colour) object;
+                    target.setRGB( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _RGB
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _RGB
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Colour.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Colour.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/DBRefDescriptor.java b/src/jalview/schemabinding/version2/descriptors/DBRefDescriptor.java
index d23f637..1a55978 100644
--- a/src/jalview/schemabinding/version2/descriptors/DBRefDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/DBRefDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.DBRef;
 
@@ -29,316 +18,287 @@ import jalview.schemabinding.version2.DBRef;
  * 
  * @version $Revision$ $Date$
  */
-public class DBRefDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public DBRefDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "DBRef";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _source
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_source", "source",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        DBRef target = (DBRef) object;
-        return target.getSource();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          DBRef target = (DBRef) object;
-          target.setSource((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class DBRefDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public DBRefDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "DBRef";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _source
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_source", "source", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                DBRef target = (DBRef) object;
+                return target.getSource();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    DBRef target = (DBRef) object;
+                    target.setSource( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _source
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _source
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _version
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_version", "version",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        DBRef target = (DBRef) object;
-        return target.getVersion();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          DBRef target = (DBRef) object;
-          target.setVersion((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _version
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_version", "version", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                DBRef target = (DBRef) object;
+                return target.getVersion();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    DBRef target = (DBRef) object;
+                    target.setVersion( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _version
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _version
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _accessionId
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_accessionId", "accessionId",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        DBRef target = (DBRef) object;
-        return target.getAccessionId();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          DBRef target = (DBRef) object;
-          target.setAccessionId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _accessionId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_accessionId", "accessionId", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                DBRef target = (DBRef) object;
+                return target.getAccessionId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    DBRef target = (DBRef) object;
+                    target.setAccessionId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _accessionId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _accessionId
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _mapping
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Mapping.class, "_mapping", "Mapping", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                DBRef target = (DBRef) object;
+                return target.getMapping();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    DBRef target = (DBRef) object;
+                    target.setMapping( (jalview.schemabinding.version2.Mapping) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Mapping();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _mapping
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-    // -- _mapping
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Mapping.class, "_mapping",
-            "Mapping", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        DBRef target = (DBRef) object;
-        return target.getMapping();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          DBRef target = (DBRef) object;
-          target.setMapping((jalview.schemabinding.version2.Mapping) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Mapping();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _mapping
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.DBRef.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.DBRef.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/FeatureDescriptor.java b/src/jalview/schemabinding/version2/descriptors/FeatureDescriptor.java
index 6e2c377..92c919e 100644
--- a/src/jalview/schemabinding/version2/descriptors/FeatureDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/FeatureDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Feature;
 
@@ -29,548 +18,464 @@ import jalview.schemabinding.version2.Feature;
  * 
  * @version $Revision$ $Date$
  */
-public class FeatureDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public FeatureDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "feature";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _begin
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_begin", "begin",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        if (!target.hasBegin())
-        {
-          return null;
+public class FeatureDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public FeatureDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "feature";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _begin
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_begin", "begin", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                if (!target.hasBegin()) { return null; }
+                return new java.lang.Integer(target.getBegin());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setBegin( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _begin
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getBegin());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setBegin(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _end
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                if (!target.hasEnd()) { return null; }
+                return new java.lang.Integer(target.getEnd());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setEnd( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _end
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _begin
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _end
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_end", "end",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        if (!target.hasEnd())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _type
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_type", "type", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                return target.getType();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    target.setType( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _type
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Integer(target.getEnd());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setEnd(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _description
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                return target.getDescription();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    target.setDescription( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _description
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _end
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _type
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_type", "type",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        return target.getType();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          target.setType((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _status
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_status", "status", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                return target.getStatus();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    target.setStatus( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _status
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _type
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _description
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_description", "description",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        return target.getDescription();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          target.setDescription((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _featureGroup
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_featureGroup", "featureGroup", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                return target.getFeatureGroup();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    target.setFeatureGroup( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _featureGroup
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _description
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _status
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_status", "status",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        return target.getStatus();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          target.setStatus((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _score
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_score", "score", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                if (!target.hasScore()) { return null; }
+                return new java.lang.Float(target.getScore());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteScore();
+                        return;
+                    }
+                    target.setScore( ((java.lang.Float) value).floatValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _score
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.FloatValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive((float) -3.4028235E38);
+            typeValidator.setMaxInclusive((float) 3.4028235E38);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _status
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _featureGroup
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_featureGroup", "featureGroup",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        return target.getFeatureGroup();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          target.setFeatureGroup((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _otherDataList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.OtherData.class, "_otherDataList", "otherData", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Feature target = (Feature) object;
+                return target.getOtherData();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Feature target = (Feature) object;
+                    target.addOtherData( (jalview.schemabinding.version2.OtherData) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    Feature target = (Feature) object;
+                    target.removeAllOtherData();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.OtherData();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _otherDataList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _featureGroup
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _score
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Float.TYPE, "_score", "score",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        if (!target.hasScore())
-        {
-          return null;
-        }
-        return new java.lang.Float(target.getScore());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteScore();
-            return;
-          }
-          target.setScore(((java.lang.Float) value).floatValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _score
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.FloatValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive((float) -3.4028235E38);
-      typeValidator.setMaxInclusive((float) 3.4028235E38);
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-    // -- _otherDataList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.OtherData.class,
-            "_otherDataList", "otherData",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Feature target = (Feature) object;
-        return target.getOtherData();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          target
-                  .addOtherData((jalview.schemabinding.version2.OtherData) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          Feature target = (Feature) object;
-          target.removeAllOtherData();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.OtherData();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _otherDataList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Feature.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Feature.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/FeatureSettingsDescriptor.java b/src/jalview/schemabinding/version2/descriptors/FeatureSettingsDescriptor.java
index 367aeda..930aac9 100644
--- a/src/jalview/schemabinding/version2/descriptors/FeatureSettingsDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/FeatureSettingsDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.FeatureSettings;
 
@@ -29,250 +18,227 @@ import jalview.schemabinding.version2.FeatureSettings;
  * 
  * @version $Revision$ $Date$
  */
-public class FeatureSettingsDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public FeatureSettingsDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "FeatureSettings";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _settingList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Setting.class, "_settingList",
-            "setting", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        FeatureSettings target = (FeatureSettings) object;
-        return target.getSetting();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          FeatureSettings target = (FeatureSettings) object;
-          target.addSetting((jalview.schemabinding.version2.Setting) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class FeatureSettingsDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public FeatureSettingsDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "FeatureSettings";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _settingList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Setting.class, "_settingList", "setting", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                FeatureSettings target = (FeatureSettings) object;
+                return target.getSetting();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    FeatureSettings target = (FeatureSettings) object;
+                    target.addSetting( (jalview.schemabinding.version2.Setting) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    FeatureSettings target = (FeatureSettings) object;
+                    target.removeAllSetting();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Setting();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _settingList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          FeatureSettings target = (FeatureSettings) object;
-          target.removeAllSetting();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _groupList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Group.class, "_groupList", "group", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                FeatureSettings target = (FeatureSettings) object;
+                return target.getGroup();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    FeatureSettings target = (FeatureSettings) object;
+                    target.addGroup( (jalview.schemabinding.version2.Group) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    FeatureSettings target = (FeatureSettings) object;
+                    target.removeAllGroup();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Group();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _groupList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Setting();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _settingList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _groupList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Group.class, "_groupList",
-            "group", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        FeatureSettings target = (FeatureSettings) object;
-        return target.getGroup();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          FeatureSettings target = (FeatureSettings) object;
-          target.addGroup((jalview.schemabinding.version2.Group) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          FeatureSettings target = (FeatureSettings) object;
-          target.removeAllGroup();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Group();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _groupList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.FeatureSettings.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.FeatureSettings.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/FeaturesDescriptor.java b/src/jalview/schemabinding/version2/descriptors/FeaturesDescriptor.java
index ab9951d..380d46e 100644
--- a/src/jalview/schemabinding/version2/descriptors/FeaturesDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/FeaturesDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Features;
 
@@ -29,131 +18,134 @@ import jalview.schemabinding.version2.Features;
  * 
  * @version $Revision$ $Date$
  */
-public class FeaturesDescriptor extends
-        jalview.schemabinding.version2.descriptors.FeatureDescriptor
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public FeaturesDescriptor()
-  {
-    super();
-    setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.FeatureDescriptor());
-    _nsURI = "www.jalview.org";
-    _xmlName = "features";
-    _elementDefinition = true;
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Features.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+public class FeaturesDescriptor extends jalview.schemabinding.version2.descriptors.FeatureDescriptor {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public FeaturesDescriptor() {
+        super();
+        setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.FeatureDescriptor());
+        _nsURI = "www.jalview.org";
+        _xmlName = "features";
+        _elementDefinition = true;
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Features.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/GroupDescriptor.java b/src/jalview/schemabinding/version2/descriptors/GroupDescriptor.java
index a33663e..417dbbb 100644
--- a/src/jalview/schemabinding/version2/descriptors/GroupDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/GroupDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Group;
 
@@ -29,240 +18,220 @@ import jalview.schemabinding.version2.Group;
  * 
  * @version $Revision$ $Date$
  */
-public class GroupDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public GroupDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "group";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _name
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_name", "name",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Group target = (Group) object;
-        return target.getName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Group target = (Group) object;
-          target.setName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class GroupDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public GroupDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "group";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _name
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Group target = (Group) object;
+                return target.getName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Group target = (Group) object;
+                    target.setName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _name
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _name
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _display
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_display", "display",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Group target = (Group) object;
-        if (!target.hasDisplay())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _display
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_display", "display", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Group target = (Group) object;
+                if (!target.hasDisplay()) { return null; }
+                return (target.getDisplay() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Group target = (Group) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setDisplay( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _display
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return (target.getDisplay() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+    }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Group target = (Group) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
 
-          target.setDisplay(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _display
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Group.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Group.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/HiddenColumnsDescriptor.java b/src/jalview/schemabinding/version2/descriptors/HiddenColumnsDescriptor.java
index 9182852..f307ee4 100644
--- a/src/jalview/schemabinding/version2/descriptors/HiddenColumnsDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/HiddenColumnsDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.HiddenColumns;
 
@@ -29,247 +18,226 @@ import jalview.schemabinding.version2.HiddenColumns;
  * 
  * @version $Revision$ $Date$
  */
-public class HiddenColumnsDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public HiddenColumnsDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "hiddenColumns";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _start
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_start", "start",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        HiddenColumns target = (HiddenColumns) object;
-        if (!target.hasStart())
-        {
-          return null;
+public class HiddenColumnsDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public HiddenColumnsDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "hiddenColumns";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _start
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                HiddenColumns target = (HiddenColumns) object;
+                if (!target.hasStart()) { return null; }
+                return new java.lang.Integer(target.getStart());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    HiddenColumns target = (HiddenColumns) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteStart();
+                        return;
+                    }
+                    target.setStart( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _start
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getStart());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          HiddenColumns target = (HiddenColumns) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteStart();
-            return;
-          }
-          target.setStart(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _end
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                HiddenColumns target = (HiddenColumns) object;
+                if (!target.hasEnd()) { return null; }
+                return new java.lang.Integer(target.getEnd());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    HiddenColumns target = (HiddenColumns) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteEnd();
+                        return;
+                    }
+                    target.setEnd( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _end
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _start
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- _end
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_end", "end",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        HiddenColumns target = (HiddenColumns) object;
-        if (!target.hasEnd())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getEnd());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          HiddenColumns target = (HiddenColumns) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteEnd();
-            return;
-          }
-          target.setEnd(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _end
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.HiddenColumns.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.HiddenColumns.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/JGroupDescriptor.java b/src/jalview/schemabinding/version2/descriptors/JGroupDescriptor.java
index 8ff6830..21b3b67 100644
--- a/src/jalview/schemabinding/version2/descriptors/JGroupDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/JGroupDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.JGroup;
 
@@ -29,897 +18,732 @@ import jalview.schemabinding.version2.JGroup;
  * 
  * @version $Revision$ $Date$
  */
-public class JGroupDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JGroupDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "JGroup";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _start
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_start", "start",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasStart())
-        {
-          return null;
+public class JGroupDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JGroupDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "JGroup";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _start
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasStart()) { return null; }
+                return new java.lang.Integer(target.getStart());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteStart();
+                        return;
+                    }
+                    target.setStart( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _start
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getStart());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteStart();
-            return;
-          }
-          target.setStart(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _end
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasEnd()) { return null; }
+                return new java.lang.Integer(target.getEnd());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteEnd();
+                        return;
+                    }
+                    target.setEnd( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _end
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _start
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _end
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_end", "end",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasEnd())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _name
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                return target.getName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    target.setName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _name
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Integer(target.getEnd());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteEnd();
-            return;
-          }
-          target.setEnd(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _colour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                return target.getColour();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    target.setColour( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _end
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _name
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_name", "name",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        return target.getName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          target.setName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _consThreshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_consThreshold", "consThreshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasConsThreshold()) { return null; }
+                return new java.lang.Integer(target.getConsThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteConsThreshold();
+                        return;
+                    }
+                    target.setConsThreshold( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _consThreshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _name
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _colour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_colour", "colour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        return target.getColour();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          target.setColour((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _pidThreshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasPidThreshold()) { return null; }
+                return new java.lang.Integer(target.getPidThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deletePidThreshold();
+                        return;
+                    }
+                    target.setPidThreshold( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _pidThreshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _colour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _consThreshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_consThreshold", "consThreshold",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasConsThreshold())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _outlineColour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_outlineColour", "outlineColour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasOutlineColour()) { return null; }
+                return new java.lang.Integer(target.getOutlineColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteOutlineColour();
+                        return;
+                    }
+                    target.setOutlineColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _outlineColour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getConsThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteConsThreshold();
-            return;
-          }
-          target.setConsThreshold(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _displayBoxes
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_displayBoxes", "displayBoxes", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasDisplayBoxes()) { return null; }
+                return (target.getDisplayBoxes() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteDisplayBoxes();
+                        return;
+                    }
+                    target.setDisplayBoxes( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _displayBoxes
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _consThreshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _pidThreshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasPidThreshold())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _displayText
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_displayText", "displayText", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasDisplayText()) { return null; }
+                return (target.getDisplayText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteDisplayText();
+                        return;
+                    }
+                    target.setDisplayText( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _displayText
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Integer(target.getPidThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deletePidThreshold();
-            return;
-          }
-          target.setPidThreshold(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _colourText
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_colourText", "colourText", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasColourText()) { return null; }
+                return (target.getColourText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteColourText();
+                        return;
+                    }
+                    target.setColourText( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colourText
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _pidThreshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _outlineColour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_outlineColour", "outlineColour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasOutlineColour())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _textCol1
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_textCol1", "textCol1", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasTextCol1()) { return null; }
+                return new java.lang.Integer(target.getTextCol1());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteTextCol1();
+                        return;
+                    }
+                    target.setTextCol1( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _textCol1
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getOutlineColour());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteOutlineColour();
-            return;
-          }
-          target.setOutlineColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _textCol2
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_textCol2", "textCol2", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasTextCol2()) { return null; }
+                return new java.lang.Integer(target.getTextCol2());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteTextCol2();
+                        return;
+                    }
+                    target.setTextCol2( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _textCol2
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _outlineColour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _displayBoxes
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_displayBoxes", "displayBoxes",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasDisplayBoxes())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _textColThreshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_textColThreshold", "textColThreshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                if (!target.hasTextColThreshold()) { return null; }
+                return new java.lang.Integer(target.getTextColThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteTextColThreshold();
+                        return;
+                    }
+                    target.setTextColThreshold( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _textColThreshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return (target.getDisplayBoxes() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteDisplayBoxes();
-            return;
-          }
-          target
-                  .setDisplayBoxes(((java.lang.Boolean) value)
-                          .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _seqList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_seqList", "seq", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JGroup target = (JGroup) object;
+                return target.getSeq();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JGroup target = (JGroup) object;
+                    target.addSeq( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JGroup target = (JGroup) object;
+                    target.removeAllSeq();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _seqList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _displayBoxes
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _displayText
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_displayText", "displayText",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasDisplayText())
-        {
-          return null;
-        }
-        return (target.getDisplayText() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteDisplayText();
-            return;
-          }
-          target.setDisplayText(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _displayText
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _colourText
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_colourText", "colourText",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasColourText())
-        {
-          return null;
-        }
-        return (target.getColourText() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteColourText();
-            return;
-          }
-          target.setColourText(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _colourText
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _textCol1
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_textCol1", "textCol1",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasTextCol1())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getTextCol1());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteTextCol1();
-            return;
-          }
-          target.setTextCol1(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _textCol1
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- _textCol2
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_textCol2", "textCol2",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasTextCol2())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getTextCol2());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteTextCol2();
-            return;
-          }
-          target.setTextCol2(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _textCol2
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.JGroup.class;
     }
-    desc.setValidator(fieldValidator);
-    // -- _textColThreshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_textColThreshold",
-            "textColThreshold", org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        if (!target.hasTextColThreshold())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getTextColThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteTextColThreshold();
-            return;
-          }
-          target
-                  .setTextColThreshold(((java.lang.Integer) value)
-                          .intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _textColThreshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _seqList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_seqList", "seq",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JGroup target = (JGroup) object;
-        return target.getSeq();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          target.addSeq((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JGroup target = (JGroup) object;
-          target.removeAllSeq();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _seqList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.JGroup.class;
-  }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/JSeqDescriptor.java b/src/jalview/schemabinding/version2/descriptors/JSeqDescriptor.java
index c46f426..427702d 100644
--- a/src/jalview/schemabinding/version2/descriptors/JSeqDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/JSeqDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.JSeq;
 
@@ -29,587 +18,486 @@ import jalview.schemabinding.version2.JSeq;
  * 
  * @version $Revision$ $Date$
  */
-public class JSeqDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JSeqDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "JSeq";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _colour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_colour", "colour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        if (!target.hasColour())
-        {
-          return null;
+public class JSeqDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JSeqDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "JSeq";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _colour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                if (!target.hasColour()) { return null; }
+                return new java.lang.Integer(target.getColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteColour();
+                        return;
+                    }
+                    target.setColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getColour());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteColour();
-            return;
-          }
-          target.setColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _start
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                if (!target.hasStart()) { return null; }
+                return new java.lang.Integer(target.getStart());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setStart( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _start
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _colour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _start
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_start", "start",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        if (!target.hasStart())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getStart());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setStart(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _end
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                if (!target.hasEnd()) { return null; }
+                return new java.lang.Integer(target.getEnd());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setEnd( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _end
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _start
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _end
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_end", "end",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        if (!target.hasEnd())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _id
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                return target.getId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.setId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _id
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Integer(target.getEnd());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setEnd(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _hidden
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_hidden", "hidden", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                if (!target.hasHidden()) { return null; }
+                return (target.getHidden() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteHidden();
+                        return;
+                    }
+                    target.setHidden( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _hidden
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _end
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _id
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_id", "id",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        return target.getId();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          target.setId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _featuresList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Features.class, "_featuresList", "features", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                return target.getFeatures();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.addFeatures( (jalview.schemabinding.version2.Features) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.removeAllFeatures();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Features();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _featuresList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _id
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _hidden
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_hidden", "hidden",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        if (!target.hasHidden())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _pdbidsList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Pdbids.class, "_pdbidsList", "pdbids", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                return target.getPdbids();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.addPdbids( (jalview.schemabinding.version2.Pdbids) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.removeAllPdbids();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Pdbids();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _pdbidsList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-        return (target.getHidden() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteHidden();
-            return;
-          }
-          target.setHidden(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _hiddenSequencesList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_hiddenSequencesList", "hiddenSequences", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JSeq target = (JSeq) object;
+                return target.getHiddenSequences();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JSeq target = (JSeq) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.addHiddenSequences( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JSeq target = (JSeq) object;
+                    target.removeAllHiddenSequences();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _hiddenSequencesList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _hidden
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-    // -- _featuresList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Features.class, "_featuresList",
-            "features", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        return target.getFeatures();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          target
-                  .addFeatures((jalview.schemabinding.version2.Features) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          target.removeAllFeatures();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Features();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _featuresList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- _pdbidsList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Pdbids.class, "_pdbidsList",
-            "pdbids", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        return target.getPdbids();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          target.addPdbids((jalview.schemabinding.version2.Pdbids) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          target.removeAllPdbids();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Pdbids();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _pdbidsList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- _hiddenSequencesList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_hiddenSequencesList",
-            "hiddenSequences", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JSeq target = (JSeq) object;
-        return target.getHiddenSequences();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.addHiddenSequences(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JSeq target = (JSeq) object;
-          target.removeAllHiddenSequences();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _hiddenSequencesList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.JSeq.class;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.JSeq.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/JalviewModelDescriptor.java b/src/jalview/schemabinding/version2/descriptors/JalviewModelDescriptor.java
index 2d17aee..9aad95c 100644
--- a/src/jalview/schemabinding/version2/descriptors/JalviewModelDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/JalviewModelDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.JalviewModel;
 
@@ -29,329 +18,295 @@ import jalview.schemabinding.version2.JalviewModel;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModelDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModelDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "JalviewModel";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _creationDate
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.util.Date.class, "_creationDate", "creationDate",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModel target = (JalviewModel) object;
-        return target.getCreationDate();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModel target = (JalviewModel) object;
-          target.setCreationDate((java.util.Date) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class JalviewModelDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModelDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "JalviewModel";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _creationDate
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.util.Date.class, "_creationDate", "creationDate", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModel target = (JalviewModel) object;
+                return target.getCreationDate();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModel target = (JalviewModel) object;
+                    target.setCreationDate( (java.util.Date) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new java.util.Date();
+            }
+        };
+        handler = new org.exolab.castor.xml.handlers.DateFieldHandler(handler);
+        desc.setImmutable(true);
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _creationDate
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.DateTimeValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.DateTimeValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new java.util.Date();
-      }
-    };
-    handler = new org.exolab.castor.xml.handlers.DateFieldHandler(handler);
-    desc.setImmutable(true);
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _creationDate
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.DateTimeValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.DateTimeValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _version
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_version", "version",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModel target = (JalviewModel) object;
-        return target.getVersion();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModel target = (JalviewModel) object;
-          target.setVersion((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _version
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_version", "version", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModel target = (JalviewModel) object;
+                return target.getVersion();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModel target = (JalviewModel) object;
+                    target.setVersion( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _version
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _version
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _vamsasModel
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.VamsasModel.class,
-            "_vamsasModel", "vamsasModel",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModel target = (JalviewModel) object;
-        return target.getVamsasModel();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModel target = (JalviewModel) object;
-          target
-                  .setVamsasModel((jalview.schemabinding.version2.VamsasModel) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _vamsasModel
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.VamsasModel.class, "_vamsasModel", "vamsasModel", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModel target = (JalviewModel) object;
+                return target.getVamsasModel();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModel target = (JalviewModel) object;
+                    target.setVamsasModel( (jalview.schemabinding.version2.VamsasModel) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.VamsasModel();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _vamsasModel
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.VamsasModel();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _vamsasModel
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
+        desc.setValidator(fieldValidator);
+        //-- _jalviewModelSequence
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.JalviewModelSequence.class, "_jalviewModelSequence", "-error-if-this-is-used-", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModel target = (JalviewModel) object;
+                return target.getJalviewModelSequence();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModel target = (JalviewModel) object;
+                    target.setJalviewModelSequence( (jalview.schemabinding.version2.JalviewModelSequence) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.JalviewModelSequence();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setContainer(true);
+        desc.setClassDescriptor(new jalview.schemabinding.version2.descriptors.JalviewModelSequenceDescriptor());
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _jalviewModelSequence
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _jalviewModelSequence
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.JalviewModelSequence.class,
-            "_jalviewModelSequence", "-error-if-this-is-used-",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModel target = (JalviewModel) object;
-        return target.getJalviewModelSequence();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModel target = (JalviewModel) object;
-          target
-                  .setJalviewModelSequence((jalview.schemabinding.version2.JalviewModelSequence) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.JalviewModelSequence();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setContainer(true);
-    desc
-            .setClassDescriptor(new jalview.schemabinding.version2.descriptors.JalviewModelSequenceDescriptor());
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _jalviewModelSequence
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.JalviewModel.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.JalviewModel.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/JalviewModelSequenceDescriptor.java b/src/jalview/schemabinding/version2/descriptors/JalviewModelSequenceDescriptor.java
index 8c87fa2..d6fd0ba 100644
--- a/src/jalview/schemabinding/version2/descriptors/JalviewModelSequenceDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/JalviewModelSequenceDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.JalviewModelSequence;
 
@@ -29,462 +18,387 @@ import jalview.schemabinding.version2.JalviewModelSequence;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewModelSequenceDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewModelSequenceDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _JSeqList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.JSeq.class, "_JSeqList", "JSeq",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModelSequence target = (JalviewModelSequence) object;
-        return target.getJSeq();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.addJSeq((jalview.schemabinding.version2.JSeq) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class JalviewModelSequenceDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewModelSequenceDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _JSeqList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.JSeq.class, "_JSeqList", "JSeq", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModelSequence target = (JalviewModelSequence) object;
+                return target.getJSeq();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.addJSeq( (jalview.schemabinding.version2.JSeq) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.removeAllJSeq();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.JSeq();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _JSeqList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.removeAllJSeq();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _JGroupList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.JGroup.class, "_JGroupList", "JGroup", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModelSequence target = (JalviewModelSequence) object;
+                return target.getJGroup();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.addJGroup( (jalview.schemabinding.version2.JGroup) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.removeAllJGroup();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.JGroup();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _JGroupList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.JSeq();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _JSeqList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-    }
-    desc.setValidator(fieldValidator);
-    // -- _JGroupList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.JGroup.class, "_JGroupList",
-            "JGroup", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModelSequence target = (JalviewModelSequence) object;
-        return target.getJGroup();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.addJGroup((jalview.schemabinding.version2.JGroup) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _viewportList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Viewport.class, "_viewportList", "Viewport", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModelSequence target = (JalviewModelSequence) object;
+                return target.getViewport();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.addViewport( (jalview.schemabinding.version2.Viewport) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.removeAllViewport();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Viewport();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _viewportList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.removeAllJGroup();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _userColoursList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.UserColours.class, "_userColoursList", "UserColours", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModelSequence target = (JalviewModelSequence) object;
+                return target.getUserColours();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.addUserColours( (jalview.schemabinding.version2.UserColours) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.removeAllUserColours();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.UserColours();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _userColoursList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.JGroup();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _JGroupList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
-    }
-    desc.setValidator(fieldValidator);
-    // -- _viewportList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Viewport.class, "_viewportList",
-            "Viewport", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModelSequence target = (JalviewModelSequence) object;
-        return target.getViewport();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target
-                  .addViewport((jalview.schemabinding.version2.Viewport) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _treeList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Tree.class, "_treeList", "tree", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModelSequence target = (JalviewModelSequence) object;
+                return target.getTree();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.addTree( (jalview.schemabinding.version2.Tree) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.removeAllTree();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Tree();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _treeList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.removeAllViewport();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _featureSettings
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.FeatureSettings.class, "_featureSettings", "FeatureSettings", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewModelSequence target = (JalviewModelSequence) object;
+                return target.getFeatureSettings();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewModelSequence target = (JalviewModelSequence) object;
+                    target.setFeatureSettings( (jalview.schemabinding.version2.FeatureSettings) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.FeatureSettings();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _featureSettings
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Viewport();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _viewportList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _userColoursList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.UserColours.class,
-            "_userColoursList", "UserColours",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModelSequence target = (JalviewModelSequence) object;
-        return target.getUserColours();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target
-                  .addUserColours((jalview.schemabinding.version2.UserColours) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.removeAllUserColours();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.UserColours();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _userColoursList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- _treeList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Tree.class, "_treeList", "tree",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModelSequence target = (JalviewModelSequence) object;
-        return target.getTree();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.addTree((jalview.schemabinding.version2.Tree) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target.removeAllTree();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Tree();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _treeList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- _featureSettings
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.FeatureSettings.class,
-            "_featureSettings", "FeatureSettings",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewModelSequence target = (JalviewModelSequence) object;
-        return target.getFeatureSettings();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewModelSequence target = (JalviewModelSequence) object;
-          target
-                  .setFeatureSettings((jalview.schemabinding.version2.FeatureSettings) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.FeatureSettings();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _featureSettings
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.JalviewModelSequence.class;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.JalviewModelSequence.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/JalviewUserColoursDescriptor.java b/src/jalview/schemabinding/version2/descriptors/JalviewUserColoursDescriptor.java
index 9891a28..dd155dd 100644
--- a/src/jalview/schemabinding/version2/descriptors/JalviewUserColoursDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/JalviewUserColoursDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Colour;
 import jalview.schemabinding.version2.JalviewUserColours;
@@ -30,240 +19,222 @@ import jalview.schemabinding.version2.JalviewUserColours;
  * 
  * @version $Revision$ $Date$
  */
-public class JalviewUserColoursDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public JalviewUserColoursDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org/colours";
-    _xmlName = "JalviewUserColours";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _schemeName
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_schemeName", "schemeName",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewUserColours target = (JalviewUserColours) object;
-        return target.getSchemeName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewUserColours target = (JalviewUserColours) object;
-          target.setSchemeName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class JalviewUserColoursDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public JalviewUserColoursDescriptor() {
+        super();
+        _nsURI = "www.jalview.org/colours";
+        _xmlName = "JalviewUserColours";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _schemeName
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_schemeName", "schemeName", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewUserColours target = (JalviewUserColours) object;
+                return target.getSchemeName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewUserColours target = (JalviewUserColours) object;
+                    target.setSchemeName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _schemeName
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _schemeName
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _colourList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            Colour.class, "_colourList", "colour",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        JalviewUserColours target = (JalviewUserColours) object;
-        return target.getColour();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          JalviewUserColours target = (JalviewUserColours) object;
-          target.addColour((Colour) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _colourList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(Colour.class, "_colourList", "colour", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                JalviewUserColours target = (JalviewUserColours) object;
+                return target.getColour();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    JalviewUserColours target = (JalviewUserColours) object;
+                    target.addColour( (Colour) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    JalviewUserColours target = (JalviewUserColours) object;
+                    target.removeAllColour();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new Colour();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colourList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
         }
-      }
+        desc.setValidator(fieldValidator);
+    }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          JalviewUserColours target = (JalviewUserColours) object;
-          target.removeAllColour();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new Colour();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _colourList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.JalviewUserColours.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.JalviewUserColours.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/MapListFromDescriptor.java b/src/jalview/schemabinding/version2/descriptors/MapListFromDescriptor.java
index 78c44ab..f39b18f 100644
--- a/src/jalview/schemabinding/version2/descriptors/MapListFromDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/MapListFromDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.MapListFrom;
 
@@ -29,251 +18,226 @@ import jalview.schemabinding.version2.MapListFrom;
  * 
  * @version $Revision$ $Date$
  */
-public class MapListFromDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MapListFromDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "mapListFrom";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _start
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_start", "start",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListFrom target = (MapListFrom) object;
-        if (!target.hasStart())
-        {
-          return null;
+public class MapListFromDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MapListFromDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "mapListFrom";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _start
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListFrom target = (MapListFrom) object;
+                if (!target.hasStart()) { return null; }
+                return new java.lang.Integer(target.getStart());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListFrom target = (MapListFrom) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setStart( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _start
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getStart());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListFrom target = (MapListFrom) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setStart(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _end
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListFrom target = (MapListFrom) object;
+                if (!target.hasEnd()) { return null; }
+                return new java.lang.Integer(target.getEnd());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListFrom target = (MapListFrom) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setEnd( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _end
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _start
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- _end
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_end", "end",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListFrom target = (MapListFrom) object;
-        if (!target.hasEnd())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getEnd());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListFrom target = (MapListFrom) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
 
-          target.setEnd(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _end
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.MapListFrom.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.MapListFrom.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/MapListToDescriptor.java b/src/jalview/schemabinding/version2/descriptors/MapListToDescriptor.java
index fb92e6f..4de1738 100644
--- a/src/jalview/schemabinding/version2/descriptors/MapListToDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/MapListToDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.MapListTo;
 
@@ -29,251 +18,226 @@ import jalview.schemabinding.version2.MapListTo;
  * 
  * @version $Revision$ $Date$
  */
-public class MapListToDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MapListToDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "mapListTo";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _start
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_start", "start",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListTo target = (MapListTo) object;
-        if (!target.hasStart())
-        {
-          return null;
+public class MapListToDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MapListToDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "mapListTo";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _start
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListTo target = (MapListTo) object;
+                if (!target.hasStart()) { return null; }
+                return new java.lang.Integer(target.getStart());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListTo target = (MapListTo) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setStart( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _start
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getStart());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListTo target = (MapListTo) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setStart(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _end
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListTo target = (MapListTo) object;
+                if (!target.hasEnd()) { return null; }
+                return new java.lang.Integer(target.getEnd());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListTo target = (MapListTo) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setEnd( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _end
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _start
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- _end
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_end", "end",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListTo target = (MapListTo) object;
-        if (!target.hasEnd())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getEnd());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListTo target = (MapListTo) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
 
-          target.setEnd(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _end
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.MapListTo.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.MapListTo.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/MapListTypeDescriptor.java b/src/jalview/schemabinding/version2/descriptors/MapListTypeDescriptor.java
index 0f8d0e9..7dc7bc5 100644
--- a/src/jalview/schemabinding/version2/descriptors/MapListTypeDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/MapListTypeDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.MapListType;
 
@@ -29,366 +18,311 @@ import jalview.schemabinding.version2.MapListType;
  * 
  * @version $Revision$ $Date$
  */
-public class MapListTypeDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MapListTypeDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "mapListType";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _mapFromUnit
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Long.TYPE, "_mapFromUnit", "mapFromUnit",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListType target = (MapListType) object;
-        if (!target.hasMapFromUnit())
-        {
-          return null;
+public class MapListTypeDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MapListTypeDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "mapListType";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _mapFromUnit
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Long.TYPE, "_mapFromUnit", "mapFromUnit", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListType target = (MapListType) object;
+                if (!target.hasMapFromUnit()) { return null; }
+                return new java.lang.Long(target.getMapFromUnit());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListType target = (MapListType) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setMapFromUnit( ((java.lang.Long) value).longValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _mapFromUnit
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.LongValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.LongValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(1L);
         }
-        return new java.lang.Long(target.getMapFromUnit());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListType target = (MapListType) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setMapFromUnit(((java.lang.Long) value).longValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _mapToUnit
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Long.TYPE, "_mapToUnit", "mapToUnit", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListType target = (MapListType) object;
+                if (!target.hasMapToUnit()) { return null; }
+                return new java.lang.Long(target.getMapToUnit());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListType target = (MapListType) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setMapToUnit( ((java.lang.Long) value).longValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _mapToUnit
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.LongValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.LongValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(1L);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _mapFromUnit
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.LongValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(1L);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _mapToUnit
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Long.TYPE, "_mapToUnit", "mapToUnit",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListType target = (MapListType) object;
-        if (!target.hasMapToUnit())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _mapListFromList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.MapListFrom.class, "_mapListFromList", "mapListFrom", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListType target = (MapListType) object;
+                return target.getMapListFrom();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListType target = (MapListType) object;
+                    target.addMapListFrom( (jalview.schemabinding.version2.MapListFrom) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    MapListType target = (MapListType) object;
+                    target.removeAllMapListFrom();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.MapListFrom();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _mapListFromList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-        return new java.lang.Long(target.getMapToUnit());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListType target = (MapListType) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setMapToUnit(((java.lang.Long) value).longValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _mapListToList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.MapListTo.class, "_mapListToList", "mapListTo", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MapListType target = (MapListType) object;
+                return target.getMapListTo();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MapListType target = (MapListType) object;
+                    target.addMapListTo( (jalview.schemabinding.version2.MapListTo) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    MapListType target = (MapListType) object;
+                    target.removeAllMapListTo();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.MapListTo();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _mapListToList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _mapToUnit
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.LongValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.LongValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(1L);
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _mapListFromList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.MapListFrom.class,
-            "_mapListFromList", "mapListFrom",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListType target = (MapListType) object;
-        return target.getMapListFrom();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListType target = (MapListType) object;
-          target
-                  .addMapListFrom((jalview.schemabinding.version2.MapListFrom) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          MapListType target = (MapListType) object;
-          target.removeAllMapListFrom();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.MapListFrom();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _mapListFromList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- _mapListToList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.MapListTo.class,
-            "_mapListToList", "mapListTo",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MapListType target = (MapListType) object;
-        return target.getMapListTo();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MapListType target = (MapListType) object;
-          target
-                  .addMapListTo((jalview.schemabinding.version2.MapListTo) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          MapListType target = (MapListType) object;
-          target.removeAllMapListTo();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.MapListTo();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _mapListToList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.MapListType.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.MapListType.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/MappingChoiceDescriptor.java b/src/jalview/schemabinding/version2/descriptors/MappingChoiceDescriptor.java
index 6f69b87..63543d7 100644
--- a/src/jalview/schemabinding/version2/descriptors/MappingChoiceDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/MappingChoiceDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.MappingChoice;
 
@@ -29,227 +18,213 @@ import jalview.schemabinding.version2.MappingChoice;
  * 
  * @version $Revision$ $Date$
  */
-public class MappingChoiceDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MappingChoiceDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsChoice();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _sequence
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Sequence.class, "_sequence",
-            "Sequence", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MappingChoice target = (MappingChoice) object;
-        return target.getSequence();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MappingChoice target = (MappingChoice) object;
-          target
-                  .setSequence((jalview.schemabinding.version2.Sequence) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class MappingChoiceDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MappingChoiceDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsChoice();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _sequence
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Sequence.class, "_sequence", "Sequence", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MappingChoice target = (MappingChoice) object;
+                return target.getSequence();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MappingChoice target = (MappingChoice) object;
+                    target.setSequence( (jalview.schemabinding.version2.Sequence) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Sequence();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _sequence
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Sequence();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _sequence
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-    }
-    desc.setValidator(fieldValidator);
-    // -- _dseqFor
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_dseqFor", "dseqFor",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        MappingChoice target = (MappingChoice) object;
-        return target.getDseqFor();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          MappingChoice target = (MappingChoice) object;
-          target.setDseqFor((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _dseqFor
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_dseqFor", "dseqFor", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                MappingChoice target = (MappingChoice) object;
+                return target.getDseqFor();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    MappingChoice target = (MappingChoice) object;
+                    target.setDseqFor( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _dseqFor
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
+        desc.setValidator(fieldValidator);
+    }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _dseqFor
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.MappingChoice.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.MappingChoice.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/MappingDescriptor.java b/src/jalview/schemabinding/version2/descriptors/MappingDescriptor.java
index 0f30a75..95e1a87 100644
--- a/src/jalview/schemabinding/version2/descriptors/MappingDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/MappingDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Mapping;
 
@@ -29,187 +18,179 @@ import jalview.schemabinding.version2.Mapping;
  * 
  * @version $Revision$ $Date$
  */
-public class MappingDescriptor extends
-        jalview.schemabinding.version2.descriptors.MapListTypeDescriptor
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public MappingDescriptor()
-  {
-    super();
-    setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.MapListTypeDescriptor());
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "Mapping";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsChoice();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _mappingChoice
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.MappingChoice.class,
-            "_mappingChoice", "-error-if-this-is-used-",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Mapping target = (Mapping) object;
-        return target.getMappingChoice();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Mapping target = (Mapping) object;
-          target
-                  .setMappingChoice((jalview.schemabinding.version2.MappingChoice) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class MappingDescriptor extends jalview.schemabinding.version2.descriptors.MapListTypeDescriptor {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public MappingDescriptor() {
+        super();
+        setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.MapListTypeDescriptor());
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "Mapping";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsChoice();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _mappingChoice
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.MappingChoice.class, "_mappingChoice", "-error-if-this-is-used-", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Mapping target = (Mapping) object;
+                return target.getMappingChoice();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Mapping target = (Mapping) object;
+                    target.setMappingChoice( (jalview.schemabinding.version2.MappingChoice) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.MappingChoice();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setContainer(true);
+        desc.setClassDescriptor(new jalview.schemabinding.version2.descriptors.MappingChoiceDescriptor());
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _mappingChoice
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.MappingChoice();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setContainer(true);
-    desc
-            .setClassDescriptor(new jalview.schemabinding.version2.descriptors.MappingChoiceDescriptor());
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _mappingChoice
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
+        desc.setValidator(fieldValidator);
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Mapping.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Mapping.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/OtherDataDescriptor.java b/src/jalview/schemabinding/version2/descriptors/OtherDataDescriptor.java
index ad04be7..46f6682 100644
--- a/src/jalview/schemabinding/version2/descriptors/OtherDataDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/OtherDataDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.OtherData;
 
@@ -29,231 +18,218 @@ import jalview.schemabinding.version2.OtherData;
  * 
  * @version $Revision$ $Date$
  */
-public class OtherDataDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public OtherDataDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "otherData";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _key
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_key", "key",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        OtherData target = (OtherData) object;
-        return target.getKey();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          OtherData target = (OtherData) object;
-          target.setKey((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class OtherDataDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public OtherDataDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "otherData";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _key
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_key", "key", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                OtherData target = (OtherData) object;
+                return target.getKey();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    OtherData target = (OtherData) object;
+                    target.setKey( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _key
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _key
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _value
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_value", "value",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        OtherData target = (OtherData) object;
-        return target.getValue();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          OtherData target = (OtherData) object;
-          target.setValue((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _value
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_value", "value", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                OtherData target = (OtherData) object;
+                return target.getValue();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    OtherData target = (OtherData) object;
+                    target.setValue( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _value
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _value
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.OtherData.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.OtherData.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/PdbentryDescriptor.java b/src/jalview/schemabinding/version2/descriptors/PdbentryDescriptor.java
index df41b22..dbf0c3a 100644
--- a/src/jalview/schemabinding/version2/descriptors/PdbentryDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/PdbentryDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Pdbentry;
 
@@ -29,331 +18,295 @@ import jalview.schemabinding.version2.Pdbentry;
  * 
  * @version $Revision$ $Date$
  */
-public class PdbentryDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public PdbentryDescriptor()
-  {
-    super();
-    _xmlName = "pdbentry";
-    _elementDefinition = false;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _id
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_id", "id",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Pdbentry target = (Pdbentry) object;
-        return target.getId();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Pdbentry target = (Pdbentry) object;
-          target.setId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class PdbentryDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public PdbentryDescriptor() {
+        super();
+        _xmlName = "pdbentry";
+        _elementDefinition = false;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _id
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Pdbentry target = (Pdbentry) object;
+                return target.getId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Pdbentry target = (Pdbentry) object;
+                    target.setId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _id
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _id
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _type
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_type", "type",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Pdbentry target = (Pdbentry) object;
-        return target.getType();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Pdbentry target = (Pdbentry) object;
-          target.setType((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _type
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_type", "type", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Pdbentry target = (Pdbentry) object;
+                return target.getType();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Pdbentry target = (Pdbentry) object;
+                    target.setType( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _type
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _type
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _file
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_file", "file",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Pdbentry target = (Pdbentry) object;
-        return target.getFile();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Pdbentry target = (Pdbentry) object;
-          target.setFile((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _file
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_file", "file", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Pdbentry target = (Pdbentry) object;
+                return target.getFile();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Pdbentry target = (Pdbentry) object;
+                    target.setFile( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _file
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _file
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _items
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.PdbentryItem.class, "_items",
-            (java.lang.String) null, org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Pdbentry target = (Pdbentry) object;
-        return target.getPdbentryItem();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Pdbentry target = (Pdbentry) object;
-          target
-                  .addPdbentryItem((jalview.schemabinding.version2.PdbentryItem) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _items
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.PdbentryItem.class, "_items", (java.lang.String) null, org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Pdbentry target = (Pdbentry) object;
+                return target.getPdbentryItem();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Pdbentry target = (Pdbentry) object;
+                    target.addPdbentryItem( (jalview.schemabinding.version2.PdbentryItem) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    Pdbentry target = (Pdbentry) object;
+                    target.removeAllPdbentryItem();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.PdbentryItem();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setContainer(true);
+        desc.setClassDescriptor(new jalview.schemabinding.version2.descriptors.PdbentryItemDescriptor());
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _items
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
+        desc.setValidator(fieldValidator);
+    }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          Pdbentry target = (Pdbentry) object;
-          target.removeAllPdbentryItem();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.PdbentryItem();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setContainer(true);
-    desc
-            .setClassDescriptor(new jalview.schemabinding.version2.descriptors.PdbentryItemDescriptor());
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _items
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Pdbentry.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Pdbentry.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/PdbentryItemDescriptor.java b/src/jalview/schemabinding/version2/descriptors/PdbentryItemDescriptor.java
index e13879d..693ad61 100644
--- a/src/jalview/schemabinding/version2/descriptors/PdbentryItemDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/PdbentryItemDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.PdbentryItem;
 
@@ -29,196 +18,185 @@ import jalview.schemabinding.version2.PdbentryItem;
  * 
  * @version $Revision$ $Date$
  */
-public class PdbentryItemDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public PdbentryItemDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "pdbentry";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _propertyList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Property.class, "_propertyList",
-            "property", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        PdbentryItem target = (PdbentryItem) object;
-        return target.getProperty();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          PdbentryItem target = (PdbentryItem) object;
-          target
-                  .addProperty((jalview.schemabinding.version2.Property) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          PdbentryItem target = (PdbentryItem) object;
-          target.removeAllProperty();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class PdbentryItemDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public PdbentryItemDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "pdbentry";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _propertyList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Property.class, "_propertyList", "property", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                PdbentryItem target = (PdbentryItem) object;
+                return target.getProperty();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    PdbentryItem target = (PdbentryItem) object;
+                    target.addProperty( (jalview.schemabinding.version2.Property) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    PdbentryItem target = (PdbentryItem) object;
+                    target.removeAllProperty();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Property();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _propertyList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Property();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _propertyList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+        desc.setValidator(fieldValidator);
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.PdbentryItem.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.PdbentryItem.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/PdbidsDescriptor.java b/src/jalview/schemabinding/version2/descriptors/PdbidsDescriptor.java
index 620de04..2547f1d 100644
--- a/src/jalview/schemabinding/version2/descriptors/PdbidsDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/PdbidsDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Pdbids;
 
@@ -29,198 +18,186 @@ import jalview.schemabinding.version2.Pdbids;
  * 
  * @version $Revision$ $Date$
  */
-public class PdbidsDescriptor extends
-        jalview.schemabinding.version2.descriptors.PdbentryDescriptor
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public PdbidsDescriptor()
-  {
-    super();
-    setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.PdbentryDescriptor());
-    _nsURI = "www.jalview.org";
-    _xmlName = "pdbids";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _structureStateList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.StructureState.class,
-            "_structureStateList", "structureState",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Pdbids target = (Pdbids) object;
-        return target.getStructureState();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Pdbids target = (Pdbids) object;
-          target
-                  .addStructureState((jalview.schemabinding.version2.StructureState) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          Pdbids target = (Pdbids) object;
-          target.removeAllStructureState();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class PdbidsDescriptor extends jalview.schemabinding.version2.descriptors.PdbentryDescriptor {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public PdbidsDescriptor() {
+        super();
+        setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.PdbentryDescriptor());
+        _nsURI = "www.jalview.org";
+        _xmlName = "pdbids";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _structureStateList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.StructureState.class, "_structureStateList", "structureState", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Pdbids target = (Pdbids) object;
+                return target.getStructureState();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Pdbids target = (Pdbids) object;
+                    target.addStructureState( (jalview.schemabinding.version2.StructureState) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    Pdbids target = (Pdbids) object;
+                    target.removeAllStructureState();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.StructureState();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _structureStateList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.StructureState();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _structureStateList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+        desc.setValidator(fieldValidator);
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Pdbids.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Pdbids.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/PropertyDescriptor.java b/src/jalview/schemabinding/version2/descriptors/PropertyDescriptor.java
index 84eaa2f..15f2e37 100644
--- a/src/jalview/schemabinding/version2/descriptors/PropertyDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/PropertyDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Property;
 
@@ -29,231 +18,218 @@ import jalview.schemabinding.version2.Property;
  * 
  * @version $Revision$ $Date$
  */
-public class PropertyDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public PropertyDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "property";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _name
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_name", "name",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Property target = (Property) object;
-        return target.getName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Property target = (Property) object;
-          target.setName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class PropertyDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public PropertyDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "property";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _name
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Property target = (Property) object;
+                return target.getName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Property target = (Property) object;
+                    target.setName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _name
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _name
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _value
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_value", "value",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Property target = (Property) object;
-        return target.getValue();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Property target = (Property) object;
-          target.setValue((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _value
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_value", "value", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Property target = (Property) object;
+                return target.getValue();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Property target = (Property) object;
+                    target.setValue( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _value
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _value
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Property.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Property.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/SequenceDescriptor.java b/src/jalview/schemabinding/version2/descriptors/SequenceDescriptor.java
index ed55820..4dfd168 100644
--- a/src/jalview/schemabinding/version2/descriptors/SequenceDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/SequenceDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Sequence;
 
@@ -29,241 +18,223 @@ import jalview.schemabinding.version2.Sequence;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceDescriptor extends
-        jalview.schemabinding.version2.descriptors.SequenceTypeDescriptor
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceDescriptor()
-  {
-    super();
-    setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.SequenceTypeDescriptor());
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "Sequence";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _dsseqid
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_dsseqid", "dsseqid",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Sequence target = (Sequence) object;
-        return target.getDsseqid();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Sequence target = (Sequence) object;
-          target.setDsseqid((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class SequenceDescriptor extends jalview.schemabinding.version2.descriptors.SequenceTypeDescriptor {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceDescriptor() {
+        super();
+        setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.SequenceTypeDescriptor());
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "Sequence";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _dsseqid
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_dsseqid", "dsseqid", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Sequence target = (Sequence) object;
+                return target.getDsseqid();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Sequence target = (Sequence) object;
+                    target.setDsseqid( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _dsseqid
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _dsseqid
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _DBRefList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.DBRef.class, "_DBRefList",
-            "DBRef", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Sequence target = (Sequence) object;
-        return target.getDBRef();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Sequence target = (Sequence) object;
-          target.addDBRef((jalview.schemabinding.version2.DBRef) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _DBRefList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.DBRef.class, "_DBRefList", "DBRef", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Sequence target = (Sequence) object;
+                return target.getDBRef();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Sequence target = (Sequence) object;
+                    target.addDBRef( (jalview.schemabinding.version2.DBRef) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    Sequence target = (Sequence) object;
+                    target.removeAllDBRef();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.DBRef();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _DBRefList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
+        desc.setValidator(fieldValidator);
+    }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          Sequence target = (Sequence) object;
-          target.removeAllDBRef();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.DBRef();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _DBRefList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Sequence.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Sequence.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/SequenceSetDescriptor.java b/src/jalview/schemabinding/version2/descriptors/SequenceSetDescriptor.java
index e265961..aa0c798 100644
--- a/src/jalview/schemabinding/version2/descriptors/SequenceSetDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/SequenceSetDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.SequenceSet;
 
@@ -29,459 +18,387 @@ import jalview.schemabinding.version2.SequenceSet;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceSetDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceSetDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "SequenceSet";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _gapChar
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_gapChar", "gapChar",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSet target = (SequenceSet) object;
-        return target.getGapChar();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target.setGapChar((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class SequenceSetDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceSetDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "SequenceSet";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _gapChar
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_gapChar", "gapChar", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSet target = (SequenceSet) object;
+                return target.getGapChar();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.setGapChar( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _gapChar
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _gapChar
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _datasetId
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_datasetId", "datasetId",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSet target = (SequenceSet) object;
-        return target.getDatasetId();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target.setDatasetId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _datasetId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_datasetId", "datasetId", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSet target = (SequenceSet) object;
+                return target.getDatasetId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.setDatasetId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _datasetId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _datasetId
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _sequenceList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Sequence.class, "_sequenceList",
-            "Sequence", org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSet target = (SequenceSet) object;
-        return target.getSequence();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target
-                  .addSequence((jalview.schemabinding.version2.Sequence) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _sequenceList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Sequence.class, "_sequenceList", "Sequence", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSet target = (SequenceSet) object;
+                return target.getSequence();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.addSequence( (jalview.schemabinding.version2.Sequence) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.removeAllSequence();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Sequence();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _sequenceList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target.removeAllSequence();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _annotationList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Annotation.class, "_annotationList", "Annotation", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSet target = (SequenceSet) object;
+                return target.getAnnotation();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.addAnnotation( (jalview.schemabinding.version2.Annotation) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.removeAllAnnotation();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.Annotation();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _annotationList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Sequence();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _sequenceList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
-    }
-    desc.setValidator(fieldValidator);
-    // -- _annotationList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.Annotation.class,
-            "_annotationList", "Annotation",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSet target = (SequenceSet) object;
-        return target.getAnnotation();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target
-                  .addAnnotation((jalview.schemabinding.version2.Annotation) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _sequenceSetPropertiesList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.SequenceSetProperties.class, "_sequenceSetPropertiesList", "sequenceSetProperties", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSet target = (SequenceSet) object;
+                return target.getSequenceSetProperties();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.addSequenceSetProperties( (jalview.schemabinding.version2.SequenceSetProperties) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.removeAllSequenceSetProperties();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.SequenceSetProperties();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _sequenceSetPropertiesList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target.removeAllAnnotation();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _alcodonFrameList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.AlcodonFrame.class, "_alcodonFrameList", "AlcodonFrame", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSet target = (SequenceSet) object;
+                return target.getAlcodonFrame();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.addAlcodonFrame( (jalview.schemabinding.version2.AlcodonFrame) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    SequenceSet target = (SequenceSet) object;
+                    target.removeAllAlcodonFrame();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.AlcodonFrame();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _alcodonFrameList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.Annotation();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _annotationList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _sequenceSetPropertiesList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.SequenceSetProperties.class,
-            "_sequenceSetPropertiesList", "sequenceSetProperties",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSet target = (SequenceSet) object;
-        return target.getSequenceSetProperties();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target
-                  .addSequenceSetProperties((jalview.schemabinding.version2.SequenceSetProperties) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target.removeAllSequenceSetProperties();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.SequenceSetProperties();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _sequenceSetPropertiesList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- _alcodonFrameList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.AlcodonFrame.class,
-            "_alcodonFrameList", "AlcodonFrame",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSet target = (SequenceSet) object;
-        return target.getAlcodonFrame();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target
-                  .addAlcodonFrame((jalview.schemabinding.version2.AlcodonFrame) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          SequenceSet target = (SequenceSet) object;
-          target.removeAllAlcodonFrame();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.AlcodonFrame();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _alcodonFrameList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.SequenceSet.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.SequenceSet.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/SequenceSetPropertiesDescriptor.java b/src/jalview/schemabinding/version2/descriptors/SequenceSetPropertiesDescriptor.java
index 79ce7eb..9c3c578 100644
--- a/src/jalview/schemabinding/version2/descriptors/SequenceSetPropertiesDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/SequenceSetPropertiesDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.SequenceSetProperties;
 
@@ -29,227 +18,214 @@ import jalview.schemabinding.version2.SequenceSetProperties;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceSetPropertiesDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceSetPropertiesDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "sequenceSetProperties";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _key
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_key", "key",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSetProperties target = (SequenceSetProperties) object;
-        return target.getKey();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSetProperties target = (SequenceSetProperties) object;
-          target.setKey((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class SequenceSetPropertiesDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceSetPropertiesDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "sequenceSetProperties";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _key
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_key", "key", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSetProperties target = (SequenceSetProperties) object;
+                return target.getKey();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSetProperties target = (SequenceSetProperties) object;
+                    target.setKey( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _key
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _value
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_value", "value", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceSetProperties target = (SequenceSetProperties) object;
+                return target.getValue();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceSetProperties target = (SequenceSetProperties) object;
+                    target.setValue( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _value
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+    }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _key
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
     }
-    desc.setValidator(fieldValidator);
-    // -- _value
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_value", "value",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceSetProperties target = (SequenceSetProperties) object;
-        return target.getValue();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceSetProperties target = (SequenceSetProperties) object;
-          target.setValue((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _value
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.SequenceSetProperties.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.SequenceSetProperties.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/SequenceTypeDescriptor.java b/src/jalview/schemabinding/version2/descriptors/SequenceTypeDescriptor.java
index 653903f..fa73621 100644
--- a/src/jalview/schemabinding/version2/descriptors/SequenceTypeDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/SequenceTypeDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.SequenceType;
 
@@ -29,322 +18,293 @@ import jalview.schemabinding.version2.SequenceType;
  * 
  * @version $Revision$ $Date$
  */
-public class SequenceTypeDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SequenceTypeDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "SequenceType";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _id
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_id", "id",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceType target = (SequenceType) object;
-        return target.getId();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceType target = (SequenceType) object;
-          target.setId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class SequenceTypeDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SequenceTypeDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "SequenceType";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _id
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceType target = (SequenceType) object;
+                return target.getId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceType target = (SequenceType) object;
+                    target.setId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _id
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _id
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _description
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_description", "description",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceType target = (SequenceType) object;
-        return target.getDescription();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceType target = (SequenceType) object;
-          target.setDescription((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _description
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceType target = (SequenceType) object;
+                return target.getDescription();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceType target = (SequenceType) object;
+                    target.setDescription( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _description
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _description
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _sequence
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_sequence", "sequence", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceType target = (SequenceType) object;
+                return target.getSequence();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceType target = (SequenceType) object;
+                    target.setSequence( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _sequence
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
+        //-- _name
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                SequenceType target = (SequenceType) object;
+                return target.getName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    SequenceType target = (SequenceType) object;
+                    target.setName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _name
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
+        }
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-    // -- _sequence
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_sequence", "sequence",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceType target = (SequenceType) object;
-        return target.getSequence();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceType target = (SequenceType) object;
-          target.setSequence((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _sequence
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
     }
-    desc.setValidator(fieldValidator);
-    // -- _name
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_name", "name",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        SequenceType target = (SequenceType) object;
-        return target.getName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          SequenceType target = (SequenceType) object;
-          target.setName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _name
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.SequenceType.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.SequenceType.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/SettingDescriptor.java b/src/jalview/schemabinding/version2/descriptors/SettingDescriptor.java
index 122205d..23783bb 100644
--- a/src/jalview/schemabinding/version2/descriptors/SettingDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/SettingDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Setting;
 
@@ -29,352 +18,306 @@ import jalview.schemabinding.version2.Setting;
  * 
  * @version $Revision$ $Date$
  */
-public class SettingDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public SettingDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "setting";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _type
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_type", "type",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Setting target = (Setting) object;
-        return target.getType();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Setting target = (Setting) object;
-          target.setType((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class SettingDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public SettingDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "setting";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _type
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_type", "type", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Setting target = (Setting) object;
+                return target.getType();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Setting target = (Setting) object;
+                    target.setType( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _type
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _type
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _colour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_colour", "colour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Setting target = (Setting) object;
-        if (!target.hasColour())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _colour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Setting target = (Setting) object;
+                if (!target.hasColour()) { return null; }
+                return new java.lang.Integer(target.getColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Setting target = (Setting) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getColour());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Setting target = (Setting) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
-
-          target.setColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _display
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_display", "display", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Setting target = (Setting) object;
+                if (!target.hasDisplay()) { return null; }
+                return (target.getDisplay() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Setting target = (Setting) object;
+                    // ignore null values for non optional primitives
+                    if (value == null) { return; }
+                    
+                    target.setDisplay( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _display
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _colour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _display
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_display", "display",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Setting target = (Setting) object;
-        if (!target.hasDisplay())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _order
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_order", "order", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Setting target = (Setting) object;
+                if (!target.hasOrder()) { return null; }
+                return new java.lang.Float(target.getOrder());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Setting target = (Setting) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteOrder();
+                        return;
+                    }
+                    target.setOrder( ((java.lang.Float) value).floatValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _order
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.FloatValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive((float) -3.4028235E38);
+            typeValidator.setMaxInclusive((float) 3.4028235E38);
         }
-        return (target.getDisplay() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+    }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Setting target = (Setting) object;
-          // ignore null values for non optional primitives
-          if (value == null)
-          {
-            return;
-          }
 
-          target.setDisplay(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _display
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _order
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Float.TYPE, "_order", "order",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Setting target = (Setting) object;
-        if (!target.hasOrder())
-        {
-          return null;
-        }
-        return new java.lang.Float(target.getOrder());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Setting target = (Setting) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteOrder();
-            return;
-          }
-          target.setOrder(((java.lang.Float) value).floatValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _order
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.FloatValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive((float) -3.4028235E38);
-      typeValidator.setMaxInclusive((float) 3.4028235E38);
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
 
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Setting.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Setting.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/StructureStateDescriptor.java b/src/jalview/schemabinding/version2/descriptors/StructureStateDescriptor.java
index a5cfd08..a52e81d 100644
--- a/src/jalview/schemabinding/version2/descriptors/StructureStateDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/StructureStateDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.StructureState;
 
@@ -29,455 +18,425 @@ import jalview.schemabinding.version2.StructureState;
  * 
  * @version $Revision$ $Date$
  */
-public class StructureStateDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public StructureStateDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "structureState";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- _content
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_content", "PCDATA",
-            org.exolab.castor.xml.NodeType.Text);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        StructureState target = (StructureState) object;
-        return target.getContent();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          StructureState target = (StructureState) object;
-          target.setContent((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class StructureStateDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public StructureStateDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "structureState";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- _content
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_content", "PCDATA", org.exolab.castor.xml.NodeType.Text);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                StructureState target = (StructureState) object;
+                return target.getContent();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    StructureState target = (StructureState) object;
+                    target.setContent( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _content
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _content
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- initialize attribute descriptors
-
-    // -- _visible
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_visible", "visible",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        StructureState target = (StructureState) object;
-        if (!target.hasVisible())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- initialize attribute descriptors
+        
+        //-- _visible
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_visible", "visible", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                StructureState target = (StructureState) object;
+                if (!target.hasVisible()) { return null; }
+                return (target.getVisible() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    StructureState target = (StructureState) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteVisible();
+                        return;
+                    }
+                    target.setVisible( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _visible
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return (target.getVisible() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          StructureState target = (StructureState) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteVisible();
-            return;
-          }
-          target.setVisible(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _xpos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                StructureState target = (StructureState) object;
+                if (!target.hasXpos()) { return null; }
+                return new java.lang.Integer(target.getXpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    StructureState target = (StructureState) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteXpos();
+                        return;
+                    }
+                    target.setXpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _xpos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _visible
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _xpos
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_xpos", "xpos",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        StructureState target = (StructureState) object;
-        if (!target.hasXpos())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _ypos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                StructureState target = (StructureState) object;
+                if (!target.hasYpos()) { return null; }
+                return new java.lang.Integer(target.getYpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    StructureState target = (StructureState) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteYpos();
+                        return;
+                    }
+                    target.setYpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _ypos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getXpos());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          StructureState target = (StructureState) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteXpos();
-            return;
-          }
-          target.setXpos(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _width
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                StructureState target = (StructureState) object;
+                if (!target.hasWidth()) { return null; }
+                return new java.lang.Integer(target.getWidth());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    StructureState target = (StructureState) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteWidth();
+                        return;
+                    }
+                    target.setWidth( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _width
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _xpos
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _ypos
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_ypos", "ypos",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        StructureState target = (StructureState) object;
-        if (!target.hasYpos())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _height
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                StructureState target = (StructureState) object;
+                if (!target.hasHeight()) { return null; }
+                return new java.lang.Integer(target.getHeight());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    StructureState target = (StructureState) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteHeight();
+                        return;
+                    }
+                    target.setHeight( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _height
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getYpos());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          StructureState target = (StructureState) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteYpos();
-            return;
-          }
-          target.setYpos(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _viewId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewId", "viewId", org.exolab.castor.xml.NodeType.Attribute);
+        super.setIdentity(desc);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                StructureState target = (StructureState) object;
+                return target.getViewId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    StructureState target = (StructureState) object;
+                    target.setViewId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new java.lang.String();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _viewId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IdValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IdValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _ypos
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- _width
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_width", "width",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        StructureState target = (StructureState) object;
-        if (!target.hasWidth())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getWidth());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          StructureState target = (StructureState) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteWidth();
-            return;
-          }
-          target.setWidth(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _width
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _height
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_height", "height",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        StructureState target = (StructureState) object;
-        if (!target.hasHeight())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getHeight());
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          StructureState target = (StructureState) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteHeight();
-            return;
-          }
-          target.setHeight(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _height
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.StructureState.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.StructureState.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/ThresholdLineDescriptor.java b/src/jalview/schemabinding/version2/descriptors/ThresholdLineDescriptor.java
index 34e9f46..951e7ca 100644
--- a/src/jalview/schemabinding/version2/descriptors/ThresholdLineDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/ThresholdLineDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.ThresholdLine;
 
@@ -29,292 +18,263 @@ import jalview.schemabinding.version2.ThresholdLine;
  * 
  * @version $Revision$ $Date$
  */
-public class ThresholdLineDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
+public class ThresholdLineDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
 
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
 
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
 
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
 
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
 
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
 
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
 
-  public ThresholdLineDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "thresholdLine";
-    _elementDefinition = true;
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
 
-    // -- _label
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_label", "label",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        ThresholdLine target = (ThresholdLine) object;
-        return target.getLabel();
-      }
+      //----------------/
+     //- Constructors -/
+    //----------------/
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          ThresholdLine target = (ThresholdLine) object;
-          target.setLabel((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+    public ThresholdLineDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "thresholdLine";
+        _elementDefinition = true;
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _label
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_label", "label", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                ThresholdLine target = (ThresholdLine) object;
+                return target.getLabel();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    ThresholdLine target = (ThresholdLine) object;
+                    target.setLabel( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _label
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _label
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _value
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Float.TYPE, "_value", "value",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        ThresholdLine target = (ThresholdLine) object;
-        if (!target.hasValue())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _value
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_value", "value", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                ThresholdLine target = (ThresholdLine) object;
+                if (!target.hasValue()) { return null; }
+                return new java.lang.Float(target.getValue());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    ThresholdLine target = (ThresholdLine) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteValue();
+                        return;
+                    }
+                    target.setValue( ((java.lang.Float) value).floatValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _value
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.FloatValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive((float) -3.4028235E38);
+            typeValidator.setMaxInclusive((float) 3.4028235E38);
         }
-        return new java.lang.Float(target.getValue());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          ThresholdLine target = (ThresholdLine) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteValue();
-            return;
-          }
-          target.setValue(((java.lang.Float) value).floatValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _colour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                ThresholdLine target = (ThresholdLine) object;
+                if (!target.hasColour()) { return null; }
+                return new java.lang.Integer(target.getColour());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    ThresholdLine target = (ThresholdLine) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteColour();
+                        return;
+                    }
+                    target.setColour( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _colour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _value
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.FloatValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive((float) -3.4028235E38);
-      typeValidator.setMaxInclusive((float) 3.4028235E38);
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
     }
-    desc.setValidator(fieldValidator);
-    // -- _colour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_colour", "colour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        ThresholdLine target = (ThresholdLine) object;
-        if (!target.hasColour())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getColour());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          ThresholdLine target = (ThresholdLine) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteColour();
-            return;
-          }
-          target.setColour(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _colour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-  }
 
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.ThresholdLine.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.ThresholdLine.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/TreeDescriptor.java b/src/jalview/schemabinding/version2/descriptors/TreeDescriptor.java
index 5a983e7..f4741a2 100644
--- a/src/jalview/schemabinding/version2/descriptors/TreeDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/TreeDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Tree;
 
@@ -29,936 +18,798 @@ import jalview.schemabinding.version2.Tree;
  * 
  * @version $Revision$ $Date$
  */
-public class TreeDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public TreeDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "tree";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _width
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_width", "width",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasWidth())
-        {
-          return null;
+public class TreeDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public TreeDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "tree";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _width
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasWidth()) { return null; }
+                return new java.lang.Integer(target.getWidth());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteWidth();
+                        return;
+                    }
+                    target.setWidth( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _width
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getWidth());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteWidth();
-            return;
-          }
-          target.setWidth(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _height
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasHeight()) { return null; }
+                return new java.lang.Integer(target.getHeight());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteHeight();
+                        return;
+                    }
+                    target.setHeight( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _height
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _width
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _height
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_height", "height",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasHeight())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _xpos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasXpos()) { return null; }
+                return new java.lang.Integer(target.getXpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteXpos();
+                        return;
+                    }
+                    target.setXpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _xpos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getHeight());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteHeight();
-            return;
-          }
-          target.setHeight(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _ypos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasYpos()) { return null; }
+                return new java.lang.Integer(target.getYpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteYpos();
+                        return;
+                    }
+                    target.setYpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _ypos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _height
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _xpos
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_xpos", "xpos",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasXpos())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _fontName
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_fontName", "fontName", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                return target.getFontName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    target.setFontName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _fontName
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Integer(target.getXpos());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteXpos();
-            return;
-          }
-          target.setXpos(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _fontSize
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontSize", "fontSize", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasFontSize()) { return null; }
+                return new java.lang.Integer(target.getFontSize());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteFontSize();
+                        return;
+                    }
+                    target.setFontSize( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _fontSize
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _xpos
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _ypos
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_ypos", "ypos",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasYpos())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _fontStyle
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontStyle", "fontStyle", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasFontStyle()) { return null; }
+                return new java.lang.Integer(target.getFontStyle());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteFontStyle();
+                        return;
+                    }
+                    target.setFontStyle( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _fontStyle
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getYpos());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteYpos();
-            return;
-          }
-          target.setYpos(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _threshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Float.TYPE, "_threshold", "threshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasThreshold()) { return null; }
+                return new java.lang.Float(target.getThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteThreshold();
+                        return;
+                    }
+                    target.setThreshold( ((java.lang.Float) value).floatValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _threshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.FloatValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive((float) -3.4028235E38);
+            typeValidator.setMaxInclusive((float) 3.4028235E38);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _ypos
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _fontName
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_fontName", "fontName",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        return target.getFontName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          target.setFontName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _showBootstrap
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showBootstrap", "showBootstrap", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasShowBootstrap()) { return null; }
+                return (target.getShowBootstrap() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowBootstrap();
+                        return;
+                    }
+                    target.setShowBootstrap( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showBootstrap
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _fontName
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _fontSize
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_fontSize", "fontSize",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasFontSize())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _showDistances
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showDistances", "showDistances", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasShowDistances()) { return null; }
+                return (target.getShowDistances() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowDistances();
+                        return;
+                    }
+                    target.setShowDistances( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showDistances
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Integer(target.getFontSize());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteFontSize();
-            return;
-          }
-          target.setFontSize(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _markUnlinked
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_markUnlinked", "markUnlinked", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasMarkUnlinked()) { return null; }
+                return (target.getMarkUnlinked() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteMarkUnlinked();
+                        return;
+                    }
+                    target.setMarkUnlinked( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _markUnlinked
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _fontSize
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _fontStyle
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_fontStyle", "fontStyle",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasFontStyle())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _fitToWindow
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_fitToWindow", "fitToWindow", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasFitToWindow()) { return null; }
+                return (target.getFitToWindow() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteFitToWindow();
+                        return;
+                    }
+                    target.setFitToWindow( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _fitToWindow
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Integer(target.getFontStyle());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteFontStyle();
-            return;
-          }
-          target.setFontStyle(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _currentTree
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_currentTree", "currentTree", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                if (!target.hasCurrentTree()) { return null; }
+                return (target.getCurrentTree() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteCurrentTree();
+                        return;
+                    }
+                    target.setCurrentTree( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _currentTree
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _fontStyle
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _threshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Float.TYPE, "_threshold", "threshold",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasThreshold())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _id
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);
+        super.setIdentity(desc);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                return target.getId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    target.setId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new java.lang.String();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _id
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IdValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IdValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Float(target.getThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteThreshold();
-            return;
-          }
-          target.setThreshold(((java.lang.Float) value).floatValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _threshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.FloatValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.FloatValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive((float) -3.4028235E38);
-      typeValidator.setMaxInclusive((float) 3.4028235E38);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _showBootstrap
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showBootstrap", "showBootstrap",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasShowBootstrap())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _title
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                return target.getTitle();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    target.setTitle( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _title
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return (target.getShowBootstrap() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowBootstrap();
-            return;
-          }
-          target.setShowBootstrap(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _newick
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_newick", "newick", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Tree target = (Tree) object;
+                return target.getNewick();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Tree target = (Tree) object;
+                    target.setNewick( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _newick
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _showBootstrap
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _showDistances
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showDistances", "showDistances",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasShowDistances())
-        {
-          return null;
-        }
-        return (target.getShowDistances() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowDistances();
-            return;
-          }
-          target.setShowDistances(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _showDistances
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _markUnlinked
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_markUnlinked", "markUnlinked",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasMarkUnlinked())
-        {
-          return null;
-        }
-        return (target.getMarkUnlinked() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteMarkUnlinked();
-            return;
-          }
-          target
-                  .setMarkUnlinked(((java.lang.Boolean) value)
-                          .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _markUnlinked
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _fitToWindow
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_fitToWindow", "fitToWindow",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasFitToWindow())
-        {
-          return null;
-        }
-        return (target.getFitToWindow() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteFitToWindow();
-            return;
-          }
-          target.setFitToWindow(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
 
-    // -- validation code for: _fitToWindow
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- _currentTree
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_currentTree", "currentTree",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        if (!target.hasCurrentTree())
-        {
-          return null;
-        }
-        return (target.getCurrentTree() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteCurrentTree();
-            return;
-          }
-          target.setCurrentTree(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _currentTree
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Tree.class;
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _title
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_title", "title",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        return target.getTitle();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          target.setTitle((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _title
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
     }
-    desc.setValidator(fieldValidator);
-    // -- _newick
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_newick", "newick",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Tree target = (Tree) object;
-        return target.getNewick();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Tree target = (Tree) object;
-          target.setNewick((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _newick
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Tree.class;
-  }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/UserColourSchemeDescriptor.java b/src/jalview/schemabinding/version2/descriptors/UserColourSchemeDescriptor.java
index 57d24c3..be7012a 100644
--- a/src/jalview/schemabinding/version2/descriptors/UserColourSchemeDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/UserColourSchemeDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.UserColourScheme;
 
@@ -29,132 +18,134 @@ import jalview.schemabinding.version2.UserColourScheme;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColourSchemeDescriptor
-        extends
-        jalview.schemabinding.version2.descriptors.JalviewUserColoursDescriptor
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public UserColourSchemeDescriptor()
-  {
-    super();
-    setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.JalviewUserColoursDescriptor());
-    _nsURI = "www.jalview.org";
-    _xmlName = "UserColourScheme";
-    _elementDefinition = true;
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.UserColourScheme.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+public class UserColourSchemeDescriptor extends jalview.schemabinding.version2.descriptors.JalviewUserColoursDescriptor {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColourSchemeDescriptor() {
+        super();
+        setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.JalviewUserColoursDescriptor());
+        _nsURI = "www.jalview.org";
+        _xmlName = "UserColourScheme";
+        _elementDefinition = true;
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.UserColourScheme.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/UserColoursDescriptor.java b/src/jalview/schemabinding/version2/descriptors/UserColoursDescriptor.java
index 053d0c7..bda1c5e 100644
--- a/src/jalview/schemabinding/version2/descriptors/UserColoursDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/UserColoursDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.UserColours;
 
@@ -29,230 +18,215 @@ import jalview.schemabinding.version2.UserColours;
  * 
  * @version $Revision$ $Date$
  */
-public class UserColoursDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public UserColoursDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "UserColours";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _id
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_id", "id",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        UserColours target = (UserColours) object;
-        return target.getId();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          UserColours target = (UserColours) object;
-          target.setId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class UserColoursDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public UserColoursDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "UserColours";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _id
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                UserColours target = (UserColours) object;
+                return target.getId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    UserColours target = (UserColours) object;
+                    target.setId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _id
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _id
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _userColourScheme
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.UserColourScheme.class, "_userColourScheme", "UserColourScheme", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                UserColours target = (UserColours) object;
+                return target.getUserColourScheme();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    UserColours target = (UserColours) object;
+                    target.setUserColourScheme( (jalview.schemabinding.version2.UserColourScheme) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.UserColourScheme();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setRequired(true);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _userColourScheme
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(1);
+        { //-- local scope
+        }
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _userColourScheme
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.UserColourScheme.class,
-            "_userColourScheme", "UserColourScheme",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        UserColours target = (UserColours) object;
-        return target.getUserColourScheme();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          UserColours target = (UserColours) object;
-          target
-                  .setUserColourScheme((jalview.schemabinding.version2.UserColourScheme) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.UserColourScheme();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setRequired(true);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _userColourScheme
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(1);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
 
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.UserColours.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.UserColours.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/VAMSASDescriptor.java b/src/jalview/schemabinding/version2/descriptors/VAMSASDescriptor.java
index 6935c49..375f435 100644
--- a/src/jalview/schemabinding/version2/descriptors/VAMSASDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/VAMSASDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.VAMSAS;
 
@@ -29,257 +18,232 @@ import jalview.schemabinding.version2.VAMSAS;
  * 
  * @version $Revision$ $Date$
  */
-public class VAMSASDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public VAMSASDescriptor()
-  {
-    super();
-    _nsURI = "www.vamsas.ac.uk/jalview/version2";
-    _xmlName = "VAMSAS";
-    _elementDefinition = false;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- initialize element descriptors
-
-    // -- _treeList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_treeList", "Tree",
-            org.exolab.castor.xml.NodeType.Element);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        VAMSAS target = (VAMSAS) object;
-        return target.getTree();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          VAMSAS target = (VAMSAS) object;
-          target.addTree((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+public class VAMSASDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VAMSASDescriptor() {
+        super();
+        _nsURI = "www.vamsas.ac.uk/jalview/version2";
+        _xmlName = "VAMSAS";
+        _elementDefinition = false;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- initialize element descriptors
+        
+        //-- _treeList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_treeList", "Tree", org.exolab.castor.xml.NodeType.Element);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                VAMSAS target = (VAMSAS) object;
+                return target.getTree();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    VAMSAS target = (VAMSAS) object;
+                    target.addTree( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    VAMSAS target = (VAMSAS) object;
+                    target.removeAllTree();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _treeList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          VAMSAS target = (VAMSAS) object;
-          target.removeAllTree();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _sequenceSetList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.SequenceSet.class, "_sequenceSetList", "SequenceSet", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                VAMSAS target = (VAMSAS) object;
+                return target.getSequenceSet();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    VAMSAS target = (VAMSAS) object;
+                    target.addSequenceSet( (jalview.schemabinding.version2.SequenceSet) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    VAMSAS target = (VAMSAS) object;
+                    target.removeAllSequenceSet();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.SequenceSet();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _sequenceSetList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _treeList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _sequenceSetList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.SequenceSet.class,
-            "_sequenceSetList", "SequenceSet",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        VAMSAS target = (VAMSAS) object;
-        return target.getSequenceSet();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          VAMSAS target = (VAMSAS) object;
-          target
-                  .addSequenceSet((jalview.schemabinding.version2.SequenceSet) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          VAMSAS target = (VAMSAS) object;
-          target.removeAllSequenceSet();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.SequenceSet();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-    // -- validation code for: _sequenceSetList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
     }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
 
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
 
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.VAMSAS.class;
-  }
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.VAMSAS.class;
+    }
 
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
 
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
 
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
 
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
 
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/VamsasModelDescriptor.java b/src/jalview/schemabinding/version2/descriptors/VamsasModelDescriptor.java
index 26502d0..bc14cfd 100644
--- a/src/jalview/schemabinding/version2/descriptors/VamsasModelDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/VamsasModelDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.VamsasModel;
 
@@ -29,131 +18,134 @@ import jalview.schemabinding.version2.VamsasModel;
  * 
  * @version $Revision$ $Date$
  */
-public class VamsasModelDescriptor extends
-        jalview.schemabinding.version2.descriptors.VAMSASDescriptor
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public VamsasModelDescriptor()
-  {
-    super();
-    setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.VAMSASDescriptor());
-    _nsURI = "www.jalview.org";
-    _xmlName = "vamsasModel";
-    _elementDefinition = true;
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.VamsasModel.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
+public class VamsasModelDescriptor extends jalview.schemabinding.version2.descriptors.VAMSASDescriptor {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public VamsasModelDescriptor() {
+        super();
+        setExtendsWithoutFlatten(new jalview.schemabinding.version2.descriptors.VAMSASDescriptor());
+        _nsURI = "www.jalview.org";
+        _xmlName = "vamsasModel";
+        _elementDefinition = true;
+    }
+
+
+      //-----------/
+     //- Methods -/
+    //-----------/
+
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
+        return null;
+    }
+
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
+    }
+
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.VamsasModel.class;
+    }
+
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
+    }
+
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
+    }
+
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
+    }
+
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
+    }
+
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
+    }
 
 }
diff --git a/src/jalview/schemabinding/version2/descriptors/ViewportDescriptor.java b/src/jalview/schemabinding/version2/descriptors/ViewportDescriptor.java
index 93fa6f1..f00cb21 100644
--- a/src/jalview/schemabinding/version2/descriptors/ViewportDescriptor.java
+++ b/src/jalview/schemabinding/version2/descriptors/ViewportDescriptor.java
@@ -1,26 +1,15 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- * 
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * This class was automatically generated with 
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
  */
+
 package jalview.schemabinding.version2.descriptors;
 
-// ---------------------------------/
-// - Imported classes and packages -/
-// ---------------------------------/
+  //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
 
 import jalview.schemabinding.version2.Viewport;
 
@@ -29,1839 +18,1490 @@ import jalview.schemabinding.version2.Viewport;
  * 
  * @version $Revision$ $Date$
  */
-public class ViewportDescriptor extends
-        org.exolab.castor.xml.util.XMLClassDescriptorImpl
-{
-
-  // --------------------------/
-  // - Class/Member Variables -/
-  // --------------------------/
-
-  /**
-   * Field _elementDefinition.
-   */
-  private boolean _elementDefinition;
-
-  /**
-   * Field _nsPrefix.
-   */
-  private java.lang.String _nsPrefix;
-
-  /**
-   * Field _nsURI.
-   */
-  private java.lang.String _nsURI;
-
-  /**
-   * Field _xmlName.
-   */
-  private java.lang.String _xmlName;
-
-  // ----------------/
-  // - Constructors -/
-  // ----------------/
-
-  public ViewportDescriptor()
-  {
-    super();
-    _nsURI = "www.jalview.org";
-    _xmlName = "Viewport";
-    _elementDefinition = true;
-
-    // -- set grouping compositor
-    setCompositorAsSequence();
-    org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
-    org.exolab.castor.mapping.FieldHandler handler = null;
-    org.exolab.castor.xml.FieldValidator fieldValidator = null;
-    // -- initialize attribute descriptors
-
-    // -- _conservationSelected
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_conservationSelected",
-            "conservationSelected",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasConservationSelected())
-        {
-          return null;
+public class ViewportDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+      //--------------------------/
+     //- Class/Member Variables -/
+    //--------------------------/
+
+    /**
+     * Field _elementDefinition.
+     */
+    private boolean _elementDefinition;
+
+    /**
+     * Field _nsPrefix.
+     */
+    private java.lang.String _nsPrefix;
+
+    /**
+     * Field _nsURI.
+     */
+    private java.lang.String _nsURI;
+
+    /**
+     * Field _xmlName.
+     */
+    private java.lang.String _xmlName;
+
+
+      //----------------/
+     //- Constructors -/
+    //----------------/
+
+    public ViewportDescriptor() {
+        super();
+        _nsURI = "www.jalview.org";
+        _xmlName = "Viewport";
+        _elementDefinition = true;
+        
+        //-- set grouping compositor
+        setCompositorAsSequence();
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;
+        org.exolab.castor.mapping.FieldHandler             handler        = null;
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;
+        //-- initialize attribute descriptors
+        
+        //-- _conservationSelected
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_conservationSelected", "conservationSelected", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasConservationSelected()) { return null; }
+                return (target.getConservationSelected() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteConservationSelected();
+                        return;
+                    }
+                    target.setConservationSelected( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _conservationSelected
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return (target.getConservationSelected() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteConservationSelected();
-            return;
-          }
-          target.setConservationSelected(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _pidSelected
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_pidSelected", "pidSelected", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasPidSelected()) { return null; }
+                return (target.getPidSelected() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deletePidSelected();
+                        return;
+                    }
+                    target.setPidSelected( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _pidSelected
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _conservationSelected
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _pidSelected
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_pidSelected", "pidSelected",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasPidSelected())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _bgColour
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_bgColour", "bgColour", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getBgColour();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.setBgColour( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _bgColour
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return (target.getPidSelected() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deletePidSelected();
-            return;
-          }
-          target.setPidSelected(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _consThreshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_consThreshold", "consThreshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasConsThreshold()) { return null; }
+                return new java.lang.Integer(target.getConsThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteConsThreshold();
+                        return;
+                    }
+                    target.setConsThreshold( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _consThreshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _pidSelected
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _bgColour
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_bgColour", "bgColour",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        return target.getBgColour();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target.setBgColour((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _pidThreshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasPidThreshold()) { return null; }
+                return new java.lang.Integer(target.getPidThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deletePidThreshold();
+                        return;
+                    }
+                    target.setPidThreshold( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _pidThreshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _bgColour
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _consThreshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_consThreshold", "consThreshold",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasConsThreshold())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _title
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getTitle();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.setTitle( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _title
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return new java.lang.Integer(target.getConsThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteConsThreshold();
-            return;
-          }
-          target.setConsThreshold(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _showFullId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showFullId", "showFullId", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasShowFullId()) { return null; }
+                return (target.getShowFullId() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowFullId();
+                        return;
+                    }
+                    target.setShowFullId( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showFullId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _consThreshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _pidThreshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasPidThreshold())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _rightAlignIds
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_rightAlignIds", "rightAlignIds", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasRightAlignIds()) { return null; }
+                return (target.getRightAlignIds() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteRightAlignIds();
+                        return;
+                    }
+                    target.setRightAlignIds( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _rightAlignIds
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Integer(target.getPidThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deletePidThreshold();
-            return;
-          }
-          target.setPidThreshold(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _showText
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showText", "showText", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasShowText()) { return null; }
+                return (target.getShowText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowText();
+                        return;
+                    }
+                    target.setShowText( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showText
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _pidThreshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _title
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_title", "title",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        return target.getTitle();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target.setTitle((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _showColourText
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showColourText", "showColourText", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasShowColourText()) { return null; }
+                return (target.getShowColourText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowColourText();
+                        return;
+                    }
+                    target.setShowColourText( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showColourText
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _title
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
-    }
-    desc.setValidator(fieldValidator);
-    // -- _showFullId
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showFullId", "showFullId",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasShowFullId())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _showBoxes
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showBoxes", "showBoxes", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasShowBoxes()) { return null; }
+                return (target.getShowBoxes() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowBoxes();
+                        return;
+                    }
+                    target.setShowBoxes( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showBoxes
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return (target.getShowFullId() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowFullId();
-            return;
-          }
-          target.setShowFullId(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _wrapAlignment
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_wrapAlignment", "wrapAlignment", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasWrapAlignment()) { return null; }
+                return (target.getWrapAlignment() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteWrapAlignment();
+                        return;
+                    }
+                    target.setWrapAlignment( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _wrapAlignment
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _showFullId
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _rightAlignIds
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_rightAlignIds", "rightAlignIds",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasRightAlignIds())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _renderGaps
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_renderGaps", "renderGaps", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasRenderGaps()) { return null; }
+                return (target.getRenderGaps() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteRenderGaps();
+                        return;
+                    }
+                    target.setRenderGaps( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _renderGaps
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return (target.getRightAlignIds() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteRightAlignIds();
-            return;
-          }
-          target.setRightAlignIds(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _showSequenceFeatures
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showSequenceFeatures", "showSequenceFeatures", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasShowSequenceFeatures()) { return null; }
+                return (target.getShowSequenceFeatures() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowSequenceFeatures();
+                        return;
+                    }
+                    target.setShowSequenceFeatures( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showSequenceFeatures
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _rightAlignIds
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _showText
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showText", "showText",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasShowText())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _showAnnotation
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showAnnotation", "showAnnotation", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasShowAnnotation()) { return null; }
+                return (target.getShowAnnotation() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteShowAnnotation();
+                        return;
+                    }
+                    target.setShowAnnotation( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _showAnnotation
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return (target.getShowText() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowText();
-            return;
-          }
-          target.setShowText(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _xpos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasXpos()) { return null; }
+                return new java.lang.Integer(target.getXpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteXpos();
+                        return;
+                    }
+                    target.setXpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _xpos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _showText
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _showColourText
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showColourText", "showColourText",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasShowColourText())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _ypos
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasYpos()) { return null; }
+                return new java.lang.Integer(target.getYpos());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteYpos();
+                        return;
+                    }
+                    target.setYpos( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _ypos
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return (target.getShowColourText() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowColourText();
-            return;
-          }
-          target.setShowColourText(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _width
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasWidth()) { return null; }
+                return new java.lang.Integer(target.getWidth());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteWidth();
+                        return;
+                    }
+                    target.setWidth( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _width
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _showColourText
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _showBoxes
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showBoxes", "showBoxes",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasShowBoxes())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _height
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasHeight()) { return null; }
+                return new java.lang.Integer(target.getHeight());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteHeight();
+                        return;
+                    }
+                    target.setHeight( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _height
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return (target.getShowBoxes() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowBoxes();
-            return;
-          }
-          target.setShowBoxes(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _startRes
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_startRes", "startRes", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasStartRes()) { return null; }
+                return new java.lang.Integer(target.getStartRes());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteStartRes();
+                        return;
+                    }
+                    target.setStartRes( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _startRes
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _showBoxes
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _wrapAlignment
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_wrapAlignment", "wrapAlignment",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasWrapAlignment())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _startSeq
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_startSeq", "startSeq", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasStartSeq()) { return null; }
+                return new java.lang.Integer(target.getStartSeq());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteStartSeq();
+                        return;
+                    }
+                    target.setStartSeq( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _startSeq
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return (target.getWrapAlignment() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteWrapAlignment();
-            return;
-          }
-          target.setWrapAlignment(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _fontName
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_fontName", "fontName", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getFontName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.setFontName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _fontName
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _wrapAlignment
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _renderGaps
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_renderGaps", "renderGaps",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasRenderGaps())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _fontSize
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontSize", "fontSize", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasFontSize()) { return null; }
+                return new java.lang.Integer(target.getFontSize());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteFontSize();
+                        return;
+                    }
+                    target.setFontSize( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _fontSize
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return (target.getRenderGaps() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteRenderGaps();
-            return;
-          }
-          target.setRenderGaps(((java.lang.Boolean) value).booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _fontStyle
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontStyle", "fontStyle", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasFontStyle()) { return null; }
+                return new java.lang.Integer(target.getFontStyle());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteFontStyle();
+                        return;
+                    }
+                    target.setFontStyle( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _fontStyle
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _renderGaps
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _showSequenceFeatures
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showSequenceFeatures",
-            "showSequenceFeatures",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasShowSequenceFeatures())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _viewName
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewName", "viewName", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getViewName();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.setViewName( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _viewName
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-        return (target.getShowSequenceFeatures() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowSequenceFeatures();
-            return;
-          }
-          target.setShowSequenceFeatures(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _sequenceSetId
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_sequenceSetId", "sequenceSetId", org.exolab.castor.xml.NodeType.Attribute);
+        desc.setImmutable(true);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getSequenceSetId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.setSequenceSetId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _sequenceSetId
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.StringValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setWhiteSpace("preserve");
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _showSequenceFeatures
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _showAnnotation
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_showAnnotation", "showAnnotation",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasShowAnnotation())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _gatheredViews
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_gatheredViews", "gatheredViews", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasGatheredViews()) { return null; }
+                return (target.getGatheredViews() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteGatheredViews();
+                        return;
+                    }
+                    target.setGatheredViews( ((java.lang.Boolean) value).booleanValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _gatheredViews
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return (target.getShowAnnotation() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteShowAnnotation();
-            return;
-          }
-          target.setShowAnnotation(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _textCol1
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_textCol1", "textCol1", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasTextCol1()) { return null; }
+                return new java.lang.Integer(target.getTextCol1());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteTextCol1();
+                        return;
+                    }
+                    target.setTextCol1( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _textCol1
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _showAnnotation
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _xpos
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_xpos", "xpos",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasXpos())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _textCol2
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_textCol2", "textCol2", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasTextCol2()) { return null; }
+                return new java.lang.Integer(target.getTextCol2());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteTextCol2();
+                        return;
+                    }
+                    target.setTextCol2( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _textCol2
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-        return new java.lang.Integer(target.getXpos());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteXpos();
-            return;
-          }
-          target.setXpos(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _textColThreshold
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_textColThreshold", "textColThreshold", org.exolab.castor.xml.NodeType.Attribute);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                if (!target.hasTextColThreshold()) { return null; }
+                return new java.lang.Integer(target.getTextColThreshold());
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    // if null, use delete method for optional primitives 
+                    if (value == null) {
+                        target.deleteTextColThreshold();
+                        return;
+                    }
+                    target.setTextColThreshold( ((java.lang.Integer) value).intValue());
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return null;
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _textColThreshold
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IntValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+            fieldValidator.setValidator(typeValidator);
+            typeValidator.setMinInclusive(-2147483648);
+            typeValidator.setMaxInclusive(2147483647);
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _xpos
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _ypos
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_ypos", "ypos",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasYpos())
-        {
-          return null;
+        desc.setValidator(fieldValidator);
+        //-- _id
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);
+        super.setIdentity(desc);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getId();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.setId( (java.lang.String) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new java.lang.String();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _id
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
+            org.exolab.castor.xml.validators.IdValidator typeValidator;
+            typeValidator = new org.exolab.castor.xml.validators.IdValidator();
+            fieldValidator.setValidator(typeValidator);
         }
-        return new java.lang.Integer(target.getYpos());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteYpos();
-            return;
-          }
-          target.setYpos(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- initialize element descriptors
+        
+        //-- _annotationColours
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.AnnotationColours.class, "_annotationColours", "AnnotationColours", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getAnnotationColours();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.setAnnotationColours( (jalview.schemabinding.version2.AnnotationColours) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.AnnotationColours();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(false);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _annotationColours
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _ypos
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _width
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_width", "width",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasWidth())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getWidth());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteWidth();
-            return;
-          }
-          target.setWidth(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
+        desc.setValidator(fieldValidator);
+        //-- _hiddenColumnsList
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.HiddenColumns.class, "_hiddenColumnsList", "hiddenColumns", org.exolab.castor.xml.NodeType.Element);
+        handler = new org.exolab.castor.xml.XMLFieldHandler() {
+            public java.lang.Object getValue( java.lang.Object object ) 
+                throws IllegalStateException
+            {
+                Viewport target = (Viewport) object;
+                return target.getHiddenColumns();
+            }
+            public void setValue( java.lang.Object object, java.lang.Object value) 
+                throws IllegalStateException, IllegalArgumentException
+            {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.addHiddenColumns( (jalview.schemabinding.version2.HiddenColumns) value);
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+                try {
+                    Viewport target = (Viewport) object;
+                    target.removeAllHiddenColumns();
+                } catch (java.lang.Exception ex) {
+                    throw new IllegalStateException(ex.toString());
+                }
+            }
+            public java.lang.Object newInstance(java.lang.Object parent) {
+                return new jalview.schemabinding.version2.HiddenColumns();
+            }
+        };
+        desc.setHandler(handler);
+        desc.setNameSpaceURI("www.jalview.org");
+        desc.setMultivalued(true);
+        addFieldDescriptor(desc);
+        
+        //-- validation code for: _hiddenColumnsList
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();
+        fieldValidator.setMinOccurs(0);
+        { //-- local scope
         }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _width
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+        desc.setValidator(fieldValidator);
     }
-    desc.setValidator(fieldValidator);
-    // -- _height
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_height", "height",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasHeight())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getHeight());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteHeight();
-            return;
-          }
-          target.setHeight(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _height
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _startRes
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_startRes", "startRes",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasStartRes())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getStartRes());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteStartRes();
-            return;
-          }
-          target.setStartRes(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
+      //-----------/
+     //- Methods -/
+    //-----------/
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
+    /**
+     * Method getAccessMode.
+     * 
+     * @return the access mode specified for this class.
+     */
+    public org.exolab.castor.mapping.AccessMode getAccessMode(
+    ) {
         return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _startRes
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
     }
-    desc.setValidator(fieldValidator);
-    // -- _startSeq
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_startSeq", "startSeq",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasStartSeq())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getStartSeq());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteStartSeq();
-            return;
-          }
-          target.setStartSeq(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _startSeq
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getIdentity.
+     * 
+     * @return the identity field, null if this class has no
+     * identity.
+     */
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+    ) {
+        return super.getIdentity();
     }
-    desc.setValidator(fieldValidator);
-    // -- _fontName
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_fontName", "fontName",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        return target.getFontName();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target.setFontName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _fontName
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getJavaClass.
+     * 
+     * @return the Java class represented by this descriptor.
+     */
+    public java.lang.Class getJavaClass(
+    ) {
+        return jalview.schemabinding.version2.Viewport.class;
     }
-    desc.setValidator(fieldValidator);
-    // -- _fontSize
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_fontSize", "fontSize",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasFontSize())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getFontSize());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteFontSize();
-            return;
-          }
-          target.setFontSize(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _fontSize
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getNameSpacePrefix.
+     * 
+     * @return the namespace prefix to use when marshaling as XML.
+     */
+    public java.lang.String getNameSpacePrefix(
+    ) {
+        return _nsPrefix;
     }
-    desc.setValidator(fieldValidator);
-    // -- _fontStyle
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_fontStyle", "fontStyle",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasFontStyle())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getFontStyle());
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteFontStyle();
-            return;
-          }
-          target.setFontStyle(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _fontStyle
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
+    /**
+     * Method getNameSpaceURI.
+     * 
+     * @return the namespace URI used when marshaling and
+     * unmarshaling as XML.
+     */
+    public java.lang.String getNameSpaceURI(
+    ) {
+        return _nsURI;
     }
-    desc.setValidator(fieldValidator);
-    // -- _viewName
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_viewName", "viewName",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        return target.getViewName();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target.setViewName((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
 
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _viewName
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getValidator.
+     * 
+     * @return a specific validator for the class described by this
+     * ClassDescriptor.
+     */
+    public org.exolab.castor.xml.TypeValidator getValidator(
+    ) {
+        return this;
     }
-    desc.setValidator(fieldValidator);
-    // -- _sequenceSetId
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.String.class, "_sequenceSetId", "sequenceSetId",
-            org.exolab.castor.xml.NodeType.Attribute);
-    desc.setImmutable(true);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        return target.getSequenceSetId();
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target.setSequenceSetId((java.lang.String) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _sequenceSetId
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.StringValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.StringValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setWhiteSpace("preserve");
+    /**
+     * Method getXMLName.
+     * 
+     * @return the XML Name for the Class being described.
+     */
+    public java.lang.String getXMLName(
+    ) {
+        return _xmlName;
     }
-    desc.setValidator(fieldValidator);
-    // -- _gatheredViews
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Boolean.TYPE, "_gatheredViews", "gatheredViews",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasGatheredViews())
-        {
-          return null;
-        }
-        return (target.getGatheredViews() ? java.lang.Boolean.TRUE
-                : java.lang.Boolean.FALSE);
-      }
 
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteGatheredViews();
-            return;
-          }
-          target.setGatheredViews(((java.lang.Boolean) value)
-                  .booleanValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _gatheredViews
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.BooleanValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
-      fieldValidator.setValidator(typeValidator);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _textCol1
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_textCol1", "textCol1",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasTextCol1())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getTextCol1());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteTextCol1();
-            return;
-          }
-          target.setTextCol1(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _textCol1
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _textCol2
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_textCol2", "textCol2",
-            org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasTextCol2())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getTextCol2());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteTextCol2();
-            return;
-          }
-          target.setTextCol2(((java.lang.Integer) value).intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _textCol2
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- _textColThreshold
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            java.lang.Integer.TYPE, "_textColThreshold",
-            "textColThreshold", org.exolab.castor.xml.NodeType.Attribute);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        if (!target.hasTextColThreshold())
-        {
-          return null;
-        }
-        return new java.lang.Integer(target.getTextColThreshold());
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          // if null, use delete method for optional primitives
-          if (value == null)
-          {
-            target.deleteTextColThreshold();
-            return;
-          }
-          target
-                  .setTextColThreshold(((java.lang.Integer) value)
-                          .intValue());
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return null;
-      }
-    };
-    desc.setHandler(handler);
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _textColThreshold
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
-      org.exolab.castor.xml.validators.IntValidator typeValidator;
-      typeValidator = new org.exolab.castor.xml.validators.IntValidator();
-      fieldValidator.setValidator(typeValidator);
-      typeValidator.setMinInclusive(-2147483648);
-      typeValidator.setMaxInclusive(2147483647);
-    }
-    desc.setValidator(fieldValidator);
-    // -- initialize element descriptors
-
-    // -- _annotationColours
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.AnnotationColours.class,
-            "_annotationColours", "AnnotationColours",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        return target.getAnnotationColours();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target
-                  .setAnnotationColours((jalview.schemabinding.version2.AnnotationColours) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.AnnotationColours();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(false);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _annotationColours
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    { // -- local scope
+    /**
+     * Method isElementDefinition.
+     * 
+     * @return true if XML schema definition of this Class is that
+     * of a global
+     * element or element with anonymous type definition.
+     */
+    public boolean isElementDefinition(
+    ) {
+        return _elementDefinition;
     }
-    desc.setValidator(fieldValidator);
-    // -- _hiddenColumnsList
-    desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(
-            jalview.schemabinding.version2.HiddenColumns.class,
-            "_hiddenColumnsList", "hiddenColumns",
-            org.exolab.castor.xml.NodeType.Element);
-    handler = new org.exolab.castor.xml.XMLFieldHandler()
-    {
-      public java.lang.Object getValue(java.lang.Object object)
-              throws IllegalStateException
-      {
-        Viewport target = (Viewport) object;
-        return target.getHiddenColumns();
-      }
-
-      public void setValue(java.lang.Object object, java.lang.Object value)
-              throws IllegalStateException, IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target
-                  .addHiddenColumns((jalview.schemabinding.version2.HiddenColumns) value);
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public void resetValue(Object object) throws IllegalStateException,
-              IllegalArgumentException
-      {
-        try
-        {
-          Viewport target = (Viewport) object;
-          target.removeAllHiddenColumns();
-        } catch (java.lang.Exception ex)
-        {
-          throw new IllegalStateException(ex.toString());
-        }
-      }
-
-      public java.lang.Object newInstance(java.lang.Object parent)
-      {
-        return new jalview.schemabinding.version2.HiddenColumns();
-      }
-    };
-    desc.setHandler(handler);
-    desc.setNameSpaceURI("www.jalview.org");
-    desc.setMultivalued(true);
-    addFieldDescriptor(desc);
-
-    // -- validation code for: _hiddenColumnsList
-    fieldValidator = new org.exolab.castor.xml.FieldValidator();
-    fieldValidator.setMinOccurs(0);
-    { // -- local scope
-    }
-    desc.setValidator(fieldValidator);
-  }
-
-  // -----------/
-  // - Methods -/
-  // -----------/
-
-  /**
-   * Method getAccessMode.
-   * 
-   * @return the access mode specified for this class.
-   */
-  public org.exolab.castor.mapping.AccessMode getAccessMode()
-  {
-    return null;
-  }
-
-  /**
-   * Method getIdentity.
-   * 
-   * @return the identity field, null if this class has no identity.
-   */
-  public org.exolab.castor.mapping.FieldDescriptor getIdentity()
-  {
-    return super.getIdentity();
-  }
-
-  /**
-   * Method getJavaClass.
-   * 
-   * @return the Java class represented by this descriptor.
-   */
-  public java.lang.Class getJavaClass()
-  {
-    return jalview.schemabinding.version2.Viewport.class;
-  }
-
-  /**
-   * Method getNameSpacePrefix.
-   * 
-   * @return the namespace prefix to use when marshaling as XML.
-   */
-  public java.lang.String getNameSpacePrefix()
-  {
-    return _nsPrefix;
-  }
-
-  /**
-   * Method getNameSpaceURI.
-   * 
-   * @return the namespace URI used when marshaling and unmarshaling as XML.
-   */
-  public java.lang.String getNameSpaceURI()
-  {
-    return _nsURI;
-  }
-
-  /**
-   * Method getValidator.
-   * 
-   * @return a specific validator for the class described by this
-   *         ClassDescriptor.
-   */
-  public org.exolab.castor.xml.TypeValidator getValidator()
-  {
-    return this;
-  }
-
-  /**
-   * Method getXMLName.
-   * 
-   * @return the XML Name for the Class being described.
-   */
-  public java.lang.String getXMLName()
-  {
-    return _xmlName;
-  }
-
-  /**
-   * Method isElementDefinition.
-   * 
-   * @return true if XML schema definition of this Class is that of a global
-   *         element or element with anonymous type definition.
-   */
-  public boolean isElementDefinition()
-  {
-    return _elementDefinition;
-  }
 
 }
-- 
1.7.10.2