Binding with descriptors
authoramwaterhouse <Andrew Waterhouse>
Tue, 4 Apr 2006 09:29:54 +0000 (09:29 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 4 Apr 2006 09:29:54 +0000 (09:29 +0000)
52 files changed:
src/jalview/schemabinding/version2/Alignment.java [new file with mode: 0755]
src/jalview/schemabinding/version2/AlignmentDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Annotation.java [new file with mode: 0755]
src/jalview/schemabinding/version2/AnnotationDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/AnnotationElement.java [new file with mode: 0755]
src/jalview/schemabinding/version2/AnnotationElementDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Colour.java [new file with mode: 0755]
src/jalview/schemabinding/version2/ColourDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Feature.java [new file with mode: 0755]
src/jalview/schemabinding/version2/FeatureDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/FeatureSettings.java [new file with mode: 0755]
src/jalview/schemabinding/version2/FeatureSettingsDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Features.java [new file with mode: 0755]
src/jalview/schemabinding/version2/FeaturesDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JGroup.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JGroupDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JSeq.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JSeqDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JalviewModel.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JalviewModelDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JalviewModelSequence.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JalviewModelSequenceDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JalviewUserColours.java [new file with mode: 0755]
src/jalview/schemabinding/version2/JalviewUserColoursDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Pdbentry.java [new file with mode: 0755]
src/jalview/schemabinding/version2/PdbentryDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/PdbentryItem.java [new file with mode: 0755]
src/jalview/schemabinding/version2/PdbentryItemDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Pdbids.java [new file with mode: 0755]
src/jalview/schemabinding/version2/PdbidsDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Property.java [new file with mode: 0755]
src/jalview/schemabinding/version2/PropertyDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Sequence.java [new file with mode: 0755]
src/jalview/schemabinding/version2/SequenceDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/SequenceSet.java [new file with mode: 0755]
src/jalview/schemabinding/version2/SequenceSetDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/SequenceType.java [new file with mode: 0755]
src/jalview/schemabinding/version2/SequenceTypeDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Setting.java [new file with mode: 0755]
src/jalview/schemabinding/version2/SettingDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Tree.java [new file with mode: 0755]
src/jalview/schemabinding/version2/TreeDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/UserColourScheme.java [new file with mode: 0755]
src/jalview/schemabinding/version2/UserColourSchemeDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/UserColours.java [new file with mode: 0755]
src/jalview/schemabinding/version2/UserColoursDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/VAMSAS.java [new file with mode: 0755]
src/jalview/schemabinding/version2/VAMSASDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/VamsasModel.java [new file with mode: 0755]
src/jalview/schemabinding/version2/VamsasModelDescriptor.java [new file with mode: 0755]
src/jalview/schemabinding/version2/Viewport.java [new file with mode: 0755]
src/jalview/schemabinding/version2/ViewportDescriptor.java [new file with mode: 0755]

diff --git a/src/jalview/schemabinding/version2/Alignment.java b/src/jalview/schemabinding/version2/Alignment.java
new file mode 100755 (executable)
index 0000000..3b9d53b
--- /dev/null
@@ -0,0 +1,173 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Alignment.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Alignment implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _annotation\r
+     */\r
+    private jalview.schemabinding.version2.Annotation _annotation;\r
+\r
+    /**\r
+     * Field _sequenceSet\r
+     */\r
+    private jalview.schemabinding.version2.SequenceSet _sequenceSet;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Alignment() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Alignment()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Returns the value of field 'annotation'.\r
+     * \r
+     * @return Annotation\r
+     * @return the value of field 'annotation'.\r
+     */\r
+    public jalview.schemabinding.version2.Annotation getAnnotation()\r
+    {\r
+        return this._annotation;\r
+    } //-- jalview.schemabinding.version2.Annotation getAnnotation() \r
+\r
+    /**\r
+     * Returns the value of field 'sequenceSet'.\r
+     * \r
+     * @return SequenceSet\r
+     * @return the value of field 'sequenceSet'.\r
+     */\r
+    public jalview.schemabinding.version2.SequenceSet getSequenceSet()\r
+    {\r
+        return this._sequenceSet;\r
+    } //-- jalview.schemabinding.version2.SequenceSet getSequenceSet() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'annotation'.\r
+     * \r
+     * @param annotation the value of field 'annotation'.\r
+     */\r
+    public void setAnnotation(jalview.schemabinding.version2.Annotation annotation)\r
+    {\r
+        this._annotation = annotation;\r
+    } //-- void setAnnotation(jalview.schemabinding.version2.Annotation) \r
+\r
+    /**\r
+     * Sets the value of field 'sequenceSet'.\r
+     * \r
+     * @param sequenceSet the value of field 'sequenceSet'.\r
+     */\r
+    public void setSequenceSet(jalview.schemabinding.version2.SequenceSet sequenceSet)\r
+    {\r
+        this._sequenceSet = sequenceSet;\r
+    } //-- void setSequenceSet(jalview.schemabinding.version2.SequenceSet) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Alignment) Unmarshaller.unmarshal(jalview.schemabinding.version2.Alignment.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/AlignmentDescriptor.java b/src/jalview/schemabinding/version2/AlignmentDescriptor.java
new file mode 100755 (executable)
index 0000000..b285229
--- /dev/null
@@ -0,0 +1,243 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class AlignmentDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class AlignmentDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public AlignmentDescriptor() {\r
+        super();\r
+        nsURI = "www.vamsas.ac.uk/jalview/version2";\r
+        xmlName = "Alignment";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- initialize element descriptors\r
+        \r
+        //-- _annotation\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Annotation.class, "_annotation", "Annotation", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Alignment target = (Alignment) object;\r
+                return target.getAnnotation();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Alignment target = (Alignment) object;\r
+                    target.setAnnotation( (jalview.schemabinding.version2.Annotation) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Annotation();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _annotation\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _sequenceSet\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.SequenceSet.class, "_sequenceSet", "SequenceSet", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Alignment target = (Alignment) object;\r
+                return target.getSequenceSet();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Alignment target = (Alignment) object;\r
+                    target.setSequenceSet( (jalview.schemabinding.version2.SequenceSet) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.SequenceSet();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _sequenceSet\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.AlignmentDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Alignment.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Annotation.java b/src/jalview/schemabinding/version2/Annotation.java
new file mode 100755 (executable)
index 0000000..54811be
--- /dev/null
@@ -0,0 +1,432 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Annotation.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Annotation implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _graph\r
+     */\r
+    private boolean _graph;\r
+\r
+    /**\r
+     * keeps track of state for field: _graph\r
+     */\r
+    private boolean _has_graph;\r
+\r
+    /**\r
+     * Field _graphType\r
+     */\r
+    private int _graphType;\r
+\r
+    /**\r
+     * keeps track of state for field: _graphType\r
+     */\r
+    private boolean _has_graphType;\r
+\r
+    /**\r
+     * Field _annotationElementList\r
+     */\r
+    private java.util.Vector _annotationElementList;\r
+\r
+    /**\r
+     * Field _label\r
+     */\r
+    private java.lang.String _label;\r
+\r
+    /**\r
+     * Field _description\r
+     */\r
+    private java.lang.String _description;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Annotation() {\r
+        super();\r
+        _annotationElementList = new Vector();\r
+    } //-- jalview.schemabinding.version2.Annotation()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param vAnnotationElement\r
+     */\r
+    public void addAnnotationElement(jalview.schemabinding.version2.AnnotationElement vAnnotationElement)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _annotationElementList.addElement(vAnnotationElement);\r
+    } //-- void addAnnotationElement(jalview.schemabinding.version2.AnnotationElement) \r
+\r
+    /**\r
+     * Method addAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAnnotationElement\r
+     */\r
+    public void addAnnotationElement(int index, jalview.schemabinding.version2.AnnotationElement vAnnotationElement)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _annotationElementList.insertElementAt(vAnnotationElement, index);\r
+    } //-- void addAnnotationElement(int, jalview.schemabinding.version2.AnnotationElement) \r
+\r
+    /**\r
+     * Method deleteGraph\r
+     * \r
+     */\r
+    public void deleteGraph()\r
+    {\r
+        this._has_graph= false;\r
+    } //-- void deleteGraph() \r
+\r
+    /**\r
+     * Method deleteGraphType\r
+     * \r
+     */\r
+    public void deleteGraphType()\r
+    {\r
+        this._has_graphType= false;\r
+    } //-- void deleteGraphType() \r
+\r
+    /**\r
+     * Method enumerateAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateAnnotationElement()\r
+    {\r
+        return _annotationElementList.elements();\r
+    } //-- java.util.Enumeration enumerateAnnotationElement() \r
+\r
+    /**\r
+     * Method getAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return AnnotationElement\r
+     */\r
+    public jalview.schemabinding.version2.AnnotationElement getAnnotationElement(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _annotationElementList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.AnnotationElement) _annotationElementList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.AnnotationElement getAnnotationElement(int) \r
+\r
+    /**\r
+     * Method getAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @return AnnotationElement\r
+     */\r
+    public jalview.schemabinding.version2.AnnotationElement[] getAnnotationElement()\r
+    {\r
+        int size = _annotationElementList.size();\r
+        jalview.schemabinding.version2.AnnotationElement[] mArray = new jalview.schemabinding.version2.AnnotationElement[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.AnnotationElement) _annotationElementList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.AnnotationElement[] getAnnotationElement() \r
+\r
+    /**\r
+     * Method getAnnotationElementCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getAnnotationElementCount()\r
+    {\r
+        return _annotationElementList.size();\r
+    } //-- int getAnnotationElementCount() \r
+\r
+    /**\r
+     * Returns the value of field 'description'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'description'.\r
+     */\r
+    public java.lang.String getDescription()\r
+    {\r
+        return this._description;\r
+    } //-- java.lang.String getDescription() \r
+\r
+    /**\r
+     * Returns the value of field 'graph'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'graph'.\r
+     */\r
+    public boolean getGraph()\r
+    {\r
+        return this._graph;\r
+    } //-- boolean getGraph() \r
+\r
+    /**\r
+     * Returns the value of field 'graphType'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'graphType'.\r
+     */\r
+    public int getGraphType()\r
+    {\r
+        return this._graphType;\r
+    } //-- int getGraphType() \r
+\r
+    /**\r
+     * Returns the value of field 'label'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'label'.\r
+     */\r
+    public java.lang.String getLabel()\r
+    {\r
+        return this._label;\r
+    } //-- java.lang.String getLabel() \r
+\r
+    /**\r
+     * Method hasGraph\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasGraph()\r
+    {\r
+        return this._has_graph;\r
+    } //-- boolean hasGraph() \r
+\r
+    /**\r
+     * Method hasGraphType\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasGraphType()\r
+    {\r
+        return this._has_graphType;\r
+    } //-- boolean hasGraphType() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllAnnotationElement\r
+     * \r
+     */\r
+    public void removeAllAnnotationElement()\r
+    {\r
+        _annotationElementList.removeAllElements();\r
+    } //-- void removeAllAnnotationElement() \r
+\r
+    /**\r
+     * Method removeAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return AnnotationElement\r
+     */\r
+    public jalview.schemabinding.version2.AnnotationElement removeAnnotationElement(int index)\r
+    {\r
+        java.lang.Object obj = _annotationElementList.elementAt(index);\r
+        _annotationElementList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.AnnotationElement) obj;\r
+    } //-- jalview.schemabinding.version2.AnnotationElement removeAnnotationElement(int) \r
+\r
+    /**\r
+     * Method setAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAnnotationElement\r
+     */\r
+    public void setAnnotationElement(int index, jalview.schemabinding.version2.AnnotationElement vAnnotationElement)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _annotationElementList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _annotationElementList.setElementAt(vAnnotationElement, index);\r
+    } //-- void setAnnotationElement(int, jalview.schemabinding.version2.AnnotationElement) \r
+\r
+    /**\r
+     * Method setAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param annotationElementArray\r
+     */\r
+    public void setAnnotationElement(jalview.schemabinding.version2.AnnotationElement[] annotationElementArray)\r
+    {\r
+        //-- copy array\r
+        _annotationElementList.removeAllElements();\r
+        for (int i = 0; i < annotationElementArray.length; i++) {\r
+            _annotationElementList.addElement(annotationElementArray[i]);\r
+        }\r
+    } //-- void setAnnotationElement(jalview.schemabinding.version2.AnnotationElement) \r
+\r
+    /**\r
+     * Sets the value of field 'description'.\r
+     * \r
+     * @param description the value of field 'description'.\r
+     */\r
+    public void setDescription(java.lang.String description)\r
+    {\r
+        this._description = description;\r
+    } //-- void setDescription(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'graph'.\r
+     * \r
+     * @param graph the value of field 'graph'.\r
+     */\r
+    public void setGraph(boolean graph)\r
+    {\r
+        this._graph = graph;\r
+        this._has_graph = true;\r
+    } //-- void setGraph(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'graphType'.\r
+     * \r
+     * @param graphType the value of field 'graphType'.\r
+     */\r
+    public void setGraphType(int graphType)\r
+    {\r
+        this._graphType = graphType;\r
+        this._has_graphType = true;\r
+    } //-- void setGraphType(int) \r
+\r
+    /**\r
+     * Sets the value of field 'label'.\r
+     * \r
+     * @param label the value of field 'label'.\r
+     */\r
+    public void setLabel(java.lang.String label)\r
+    {\r
+        this._label = label;\r
+    } //-- void setLabel(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Annotation) Unmarshaller.unmarshal(jalview.schemabinding.version2.Annotation.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/AnnotationDescriptor.java b/src/jalview/schemabinding/version2/AnnotationDescriptor.java
new file mode 100755 (executable)
index 0000000..d60b680
--- /dev/null
@@ -0,0 +1,371 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class AnnotationDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class AnnotationDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public AnnotationDescriptor() {\r
+        super();\r
+        nsURI = "www.vamsas.ac.uk/jalview/version2";\r
+        xmlName = "Annotation";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _graph\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_graph", "graph", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Annotation target = (Annotation) object;\r
+                if(!target.hasGraph())\r
+                    return null;\r
+                return (target.getGraph() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Annotation target = (Annotation) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setGraph( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _graph\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _graphType\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_graphType", "graphType", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Annotation target = (Annotation) object;\r
+                if(!target.hasGraphType())\r
+                    return null;\r
+                return new java.lang.Integer(target.getGraphType());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Annotation target = (Annotation) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteGraphType();\r
+                        return;\r
+                    }\r
+                    target.setGraphType( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _graphType\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _annotationElementList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.AnnotationElement.class, "_annotationElementList", "annotationElement", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Annotation target = (Annotation) object;\r
+                return target.getAnnotationElement();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Annotation target = (Annotation) object;\r
+                    target.addAnnotationElement( (jalview.schemabinding.version2.AnnotationElement) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.AnnotationElement();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _annotationElementList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _label\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_label", "label", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Annotation target = (Annotation) object;\r
+                return target.getLabel();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Annotation target = (Annotation) object;\r
+                    target.setLabel( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _label\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _description\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Annotation target = (Annotation) object;\r
+                return target.getDescription();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Annotation target = (Annotation) object;\r
+                    target.setDescription( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _description\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.AnnotationDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Annotation.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/AnnotationElement.java b/src/jalview/schemabinding/version2/AnnotationElement.java
new file mode 100755 (executable)
index 0000000..8c91439
--- /dev/null
@@ -0,0 +1,306 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class AnnotationElement.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class AnnotationElement implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _position\r
+     */\r
+    private int _position;\r
+\r
+    /**\r
+     * keeps track of state for field: _position\r
+     */\r
+    private boolean _has_position;\r
+\r
+    /**\r
+     * Field _displayCharacter\r
+     */\r
+    private java.lang.String _displayCharacter;\r
+\r
+    /**\r
+     * Field _description\r
+     */\r
+    private java.lang.String _description;\r
+\r
+    /**\r
+     * Field _secondaryStructure\r
+     */\r
+    private java.lang.String _secondaryStructure;\r
+\r
+    /**\r
+     * Field _value\r
+     */\r
+    private float _value;\r
+\r
+    /**\r
+     * keeps track of state for field: _value\r
+     */\r
+    private boolean _has_value;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public AnnotationElement() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.AnnotationElement()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method deletePosition\r
+     * \r
+     */\r
+    public void deletePosition()\r
+    {\r
+        this._has_position= false;\r
+    } //-- void deletePosition() \r
+\r
+    /**\r
+     * Method deleteValue\r
+     * \r
+     */\r
+    public void deleteValue()\r
+    {\r
+        this._has_value= false;\r
+    } //-- void deleteValue() \r
+\r
+    /**\r
+     * Returns the value of field 'description'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'description'.\r
+     */\r
+    public java.lang.String getDescription()\r
+    {\r
+        return this._description;\r
+    } //-- java.lang.String getDescription() \r
+\r
+    /**\r
+     * Returns the value of field 'displayCharacter'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'displayCharacter'.\r
+     */\r
+    public java.lang.String getDisplayCharacter()\r
+    {\r
+        return this._displayCharacter;\r
+    } //-- java.lang.String getDisplayCharacter() \r
+\r
+    /**\r
+     * Returns the value of field 'position'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'position'.\r
+     */\r
+    public int getPosition()\r
+    {\r
+        return this._position;\r
+    } //-- int getPosition() \r
+\r
+    /**\r
+     * Returns the value of field 'secondaryStructure'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'secondaryStructure'.\r
+     */\r
+    public java.lang.String getSecondaryStructure()\r
+    {\r
+        return this._secondaryStructure;\r
+    } //-- java.lang.String getSecondaryStructure() \r
+\r
+    /**\r
+     * Returns the value of field 'value'.\r
+     * \r
+     * @return float\r
+     * @return the value of field 'value'.\r
+     */\r
+    public float getValue()\r
+    {\r
+        return this._value;\r
+    } //-- float getValue() \r
+\r
+    /**\r
+     * Method hasPosition\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasPosition()\r
+    {\r
+        return this._has_position;\r
+    } //-- boolean hasPosition() \r
+\r
+    /**\r
+     * Method hasValue\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasValue()\r
+    {\r
+        return this._has_value;\r
+    } //-- boolean hasValue() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'description'.\r
+     * \r
+     * @param description the value of field 'description'.\r
+     */\r
+    public void setDescription(java.lang.String description)\r
+    {\r
+        this._description = description;\r
+    } //-- void setDescription(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'displayCharacter'.\r
+     * \r
+     * @param displayCharacter the value of field 'displayCharacter'\r
+     */\r
+    public void setDisplayCharacter(java.lang.String displayCharacter)\r
+    {\r
+        this._displayCharacter = displayCharacter;\r
+    } //-- void setDisplayCharacter(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'position'.\r
+     * \r
+     * @param position the value of field 'position'.\r
+     */\r
+    public void setPosition(int position)\r
+    {\r
+        this._position = position;\r
+        this._has_position = true;\r
+    } //-- void setPosition(int) \r
+\r
+    /**\r
+     * Sets the value of field 'secondaryStructure'.\r
+     * \r
+     * @param secondaryStructure the value of field\r
+     * 'secondaryStructure'.\r
+     */\r
+    public void setSecondaryStructure(java.lang.String secondaryStructure)\r
+    {\r
+        this._secondaryStructure = secondaryStructure;\r
+    } //-- void setSecondaryStructure(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'value'.\r
+     * \r
+     * @param value the value of field 'value'.\r
+     */\r
+    public void setValue(float value)\r
+    {\r
+        this._value = value;\r
+        this._has_value = true;\r
+    } //-- void setValue(float) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.AnnotationElement) Unmarshaller.unmarshal(jalview.schemabinding.version2.AnnotationElement.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/AnnotationElementDescriptor.java b/src/jalview/schemabinding/version2/AnnotationElementDescriptor.java
new file mode 100755 (executable)
index 0000000..4034755
--- /dev/null
@@ -0,0 +1,378 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class AnnotationElementDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class AnnotationElementDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public AnnotationElementDescriptor() {\r
+        super();\r
+        nsURI = "www.vamsas.ac.uk/jalview/version2";\r
+        xmlName = "annotationElement";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _position\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_position", "position", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                AnnotationElement target = (AnnotationElement) object;\r
+                if(!target.hasPosition())\r
+                    return null;\r
+                return new java.lang.Integer(target.getPosition());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    AnnotationElement target = (AnnotationElement) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setPosition( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _position\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _displayCharacter\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_displayCharacter", "displayCharacter", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                AnnotationElement target = (AnnotationElement) object;\r
+                return target.getDisplayCharacter();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    AnnotationElement target = (AnnotationElement) object;\r
+                    target.setDisplayCharacter( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _displayCharacter\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _description\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                AnnotationElement target = (AnnotationElement) object;\r
+                return target.getDescription();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    AnnotationElement target = (AnnotationElement) object;\r
+                    target.setDescription( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _description\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _secondaryStructure\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_secondaryStructure", "secondaryStructure", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                AnnotationElement target = (AnnotationElement) object;\r
+                return target.getSecondaryStructure();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    AnnotationElement target = (AnnotationElement) object;\r
+                    target.setSecondaryStructure( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _secondaryStructure\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setLength(1);\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _value\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(float.class, "_value", "value", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                AnnotationElement target = (AnnotationElement) object;\r
+                if(!target.hasValue())\r
+                    return null;\r
+                return new java.lang.Float(target.getValue());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    AnnotationElement target = (AnnotationElement) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setValue( ((java.lang.Float)value).floatValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _value\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            FloatValidator typeValidator = new FloatValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.AnnotationElementDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.AnnotationElement.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Colour.java b/src/jalview/schemabinding/version2/Colour.java
new file mode 100755 (executable)
index 0000000..bcc4642
--- /dev/null
@@ -0,0 +1,173 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Colour.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Colour implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _name\r
+     */\r
+    private java.lang.String _name;\r
+\r
+    /**\r
+     * Field _RGB\r
+     */\r
+    private java.lang.String _RGB;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Colour() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Colour()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Returns the value of field 'name'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'name'.\r
+     */\r
+    public java.lang.String getName()\r
+    {\r
+        return this._name;\r
+    } //-- java.lang.String getName() \r
+\r
+    /**\r
+     * Returns the value of field 'RGB'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'RGB'.\r
+     */\r
+    public java.lang.String getRGB()\r
+    {\r
+        return this._RGB;\r
+    } //-- java.lang.String getRGB() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'name'.\r
+     * \r
+     * @param name the value of field 'name'.\r
+     */\r
+    public void setName(java.lang.String name)\r
+    {\r
+        this._name = name;\r
+    } //-- void setName(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'RGB'.\r
+     * \r
+     * @param RGB the value of field 'RGB'.\r
+     */\r
+    public void setRGB(java.lang.String RGB)\r
+    {\r
+        this._RGB = RGB;\r
+    } //-- void setRGB(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Colour) Unmarshaller.unmarshal(jalview.schemabinding.version2.Colour.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/ColourDescriptor.java b/src/jalview/schemabinding/version2/ColourDescriptor.java
new file mode 100755 (executable)
index 0000000..7aa3a82
--- /dev/null
@@ -0,0 +1,243 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class ColourDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class ColourDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public ColourDescriptor() {\r
+        super();\r
+        xmlName = "colour";\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _name\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "Name", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Colour target = (Colour) object;\r
+                return target.getName();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Colour target = (Colour) object;\r
+                    target.setName( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _name\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _RGB\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_RGB", "RGB", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Colour target = (Colour) object;\r
+                return target.getRGB();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Colour target = (Colour) object;\r
+                    target.setRGB( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _RGB\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+    } //-- jalview.schemabinding.version2.ColourDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Colour.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Feature.java b/src/jalview/schemabinding/version2/Feature.java
new file mode 100755 (executable)
index 0000000..3c738bd
--- /dev/null
@@ -0,0 +1,331 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Feature.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Feature implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _begin\r
+     */\r
+    private int _begin;\r
+\r
+    /**\r
+     * keeps track of state for field: _begin\r
+     */\r
+    private boolean _has_begin;\r
+\r
+    /**\r
+     * Field _end\r
+     */\r
+    private int _end;\r
+\r
+    /**\r
+     * keeps track of state for field: _end\r
+     */\r
+    private boolean _has_end;\r
+\r
+    /**\r
+     * Field _type\r
+     */\r
+    private java.lang.String _type;\r
+\r
+    /**\r
+     * Field _description\r
+     */\r
+    private java.lang.String _description;\r
+\r
+    /**\r
+     * Field _status\r
+     */\r
+    private java.lang.String _status;\r
+\r
+    /**\r
+     * Field _featureGroup\r
+     */\r
+    private java.lang.String _featureGroup;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Feature() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Feature()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method deleteBegin\r
+     * \r
+     */\r
+    public void deleteBegin()\r
+    {\r
+        this._has_begin= false;\r
+    } //-- void deleteBegin() \r
+\r
+    /**\r
+     * Method deleteEnd\r
+     * \r
+     */\r
+    public void deleteEnd()\r
+    {\r
+        this._has_end= false;\r
+    } //-- void deleteEnd() \r
+\r
+    /**\r
+     * Returns the value of field 'begin'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'begin'.\r
+     */\r
+    public int getBegin()\r
+    {\r
+        return this._begin;\r
+    } //-- int getBegin() \r
+\r
+    /**\r
+     * Returns the value of field 'description'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'description'.\r
+     */\r
+    public java.lang.String getDescription()\r
+    {\r
+        return this._description;\r
+    } //-- java.lang.String getDescription() \r
+\r
+    /**\r
+     * Returns the value of field 'end'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'end'.\r
+     */\r
+    public int getEnd()\r
+    {\r
+        return this._end;\r
+    } //-- int getEnd() \r
+\r
+    /**\r
+     * Returns the value of field 'featureGroup'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'featureGroup'.\r
+     */\r
+    public java.lang.String getFeatureGroup()\r
+    {\r
+        return this._featureGroup;\r
+    } //-- java.lang.String getFeatureGroup() \r
+\r
+    /**\r
+     * Returns the value of field 'status'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'status'.\r
+     */\r
+    public java.lang.String getStatus()\r
+    {\r
+        return this._status;\r
+    } //-- java.lang.String getStatus() \r
+\r
+    /**\r
+     * Returns the value of field 'type'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'type'.\r
+     */\r
+    public java.lang.String getType()\r
+    {\r
+        return this._type;\r
+    } //-- java.lang.String getType() \r
+\r
+    /**\r
+     * Method hasBegin\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasBegin()\r
+    {\r
+        return this._has_begin;\r
+    } //-- boolean hasBegin() \r
+\r
+    /**\r
+     * Method hasEnd\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasEnd()\r
+    {\r
+        return this._has_end;\r
+    } //-- boolean hasEnd() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'begin'.\r
+     * \r
+     * @param begin the value of field 'begin'.\r
+     */\r
+    public void setBegin(int begin)\r
+    {\r
+        this._begin = begin;\r
+        this._has_begin = true;\r
+    } //-- void setBegin(int) \r
+\r
+    /**\r
+     * Sets the value of field 'description'.\r
+     * \r
+     * @param description the value of field 'description'.\r
+     */\r
+    public void setDescription(java.lang.String description)\r
+    {\r
+        this._description = description;\r
+    } //-- void setDescription(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'end'.\r
+     * \r
+     * @param end the value of field 'end'.\r
+     */\r
+    public void setEnd(int end)\r
+    {\r
+        this._end = end;\r
+        this._has_end = true;\r
+    } //-- void setEnd(int) \r
+\r
+    /**\r
+     * Sets the value of field 'featureGroup'.\r
+     * \r
+     * @param featureGroup the value of field 'featureGroup'.\r
+     */\r
+    public void setFeatureGroup(java.lang.String featureGroup)\r
+    {\r
+        this._featureGroup = featureGroup;\r
+    } //-- void setFeatureGroup(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'status'.\r
+     * \r
+     * @param status the value of field 'status'.\r
+     */\r
+    public void setStatus(java.lang.String status)\r
+    {\r
+        this._status = status;\r
+    } //-- void setStatus(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'type'.\r
+     * \r
+     * @param type the value of field 'type'.\r
+     */\r
+    public void setType(java.lang.String type)\r
+    {\r
+        this._type = type;\r
+    } //-- void setType(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Feature) Unmarshaller.unmarshal(jalview.schemabinding.version2.Feature.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/FeatureDescriptor.java b/src/jalview/schemabinding/version2/FeatureDescriptor.java
new file mode 100755 (executable)
index 0000000..ac172e8
--- /dev/null
@@ -0,0 +1,398 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class FeatureDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class FeatureDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public FeatureDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "feature";\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _begin\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_begin", "begin", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Feature target = (Feature) object;\r
+                if(!target.hasBegin())\r
+                    return null;\r
+                return new java.lang.Integer(target.getBegin());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Feature target = (Feature) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setBegin( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _begin\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _end\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Feature target = (Feature) object;\r
+                if(!target.hasEnd())\r
+                    return null;\r
+                return new java.lang.Integer(target.getEnd());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Feature target = (Feature) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setEnd( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _end\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _type\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_type", "type", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Feature target = (Feature) object;\r
+                return target.getType();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Feature target = (Feature) object;\r
+                    target.setType( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _type\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _description\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Feature target = (Feature) object;\r
+                return target.getDescription();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Feature target = (Feature) object;\r
+                    target.setDescription( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _description\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _status\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_status", "status", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Feature target = (Feature) object;\r
+                return target.getStatus();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Feature target = (Feature) object;\r
+                    target.setStatus( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _status\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _featureGroup\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_featureGroup", "featureGroup", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Feature target = (Feature) object;\r
+                return target.getFeatureGroup();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Feature target = (Feature) object;\r
+                    target.setFeatureGroup( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _featureGroup\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+    } //-- jalview.schemabinding.version2.FeatureDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Feature.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/FeatureSettings.java b/src/jalview/schemabinding/version2/FeatureSettings.java
new file mode 100755 (executable)
index 0000000..c20a83c
--- /dev/null
@@ -0,0 +1,274 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class FeatureSettings.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class FeatureSettings implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _settingList\r
+     */\r
+    private java.util.Vector _settingList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public FeatureSettings() {\r
+        super();\r
+        _settingList = new Vector();\r
+    } //-- jalview.schemabinding.version2.FeatureSettings()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addSetting\r
+     * \r
+     * \r
+     * \r
+     * @param vSetting\r
+     */\r
+    public void addSetting(jalview.schemabinding.version2.Setting vSetting)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _settingList.addElement(vSetting);\r
+    } //-- void addSetting(jalview.schemabinding.version2.Setting) \r
+\r
+    /**\r
+     * Method addSetting\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSetting\r
+     */\r
+    public void addSetting(int index, jalview.schemabinding.version2.Setting vSetting)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _settingList.insertElementAt(vSetting, index);\r
+    } //-- void addSetting(int, jalview.schemabinding.version2.Setting) \r
+\r
+    /**\r
+     * Method enumerateSetting\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateSetting()\r
+    {\r
+        return _settingList.elements();\r
+    } //-- java.util.Enumeration enumerateSetting() \r
+\r
+    /**\r
+     * Method getSetting\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Setting\r
+     */\r
+    public jalview.schemabinding.version2.Setting getSetting(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _settingList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Setting) _settingList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Setting getSetting(int) \r
+\r
+    /**\r
+     * Method getSetting\r
+     * \r
+     * \r
+     * \r
+     * @return Setting\r
+     */\r
+    public jalview.schemabinding.version2.Setting[] getSetting()\r
+    {\r
+        int size = _settingList.size();\r
+        jalview.schemabinding.version2.Setting[] mArray = new jalview.schemabinding.version2.Setting[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Setting) _settingList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Setting[] getSetting() \r
+\r
+    /**\r
+     * Method getSettingCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getSettingCount()\r
+    {\r
+        return _settingList.size();\r
+    } //-- int getSettingCount() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllSetting\r
+     * \r
+     */\r
+    public void removeAllSetting()\r
+    {\r
+        _settingList.removeAllElements();\r
+    } //-- void removeAllSetting() \r
+\r
+    /**\r
+     * Method removeSetting\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Setting\r
+     */\r
+    public jalview.schemabinding.version2.Setting removeSetting(int index)\r
+    {\r
+        java.lang.Object obj = _settingList.elementAt(index);\r
+        _settingList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Setting) obj;\r
+    } //-- jalview.schemabinding.version2.Setting removeSetting(int) \r
+\r
+    /**\r
+     * Method setSetting\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSetting\r
+     */\r
+    public void setSetting(int index, jalview.schemabinding.version2.Setting vSetting)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _settingList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _settingList.setElementAt(vSetting, index);\r
+    } //-- void setSetting(int, jalview.schemabinding.version2.Setting) \r
+\r
+    /**\r
+     * Method setSetting\r
+     * \r
+     * \r
+     * \r
+     * @param settingArray\r
+     */\r
+    public void setSetting(jalview.schemabinding.version2.Setting[] settingArray)\r
+    {\r
+        //-- copy array\r
+        _settingList.removeAllElements();\r
+        for (int i = 0; i < settingArray.length; i++) {\r
+            _settingList.addElement(settingArray[i]);\r
+        }\r
+    } //-- void setSetting(jalview.schemabinding.version2.Setting) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.FeatureSettings) Unmarshaller.unmarshal(jalview.schemabinding.version2.FeatureSettings.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/FeatureSettingsDescriptor.java b/src/jalview/schemabinding/version2/FeatureSettingsDescriptor.java
new file mode 100755 (executable)
index 0000000..219037e
--- /dev/null
@@ -0,0 +1,208 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class FeatureSettingsDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class FeatureSettingsDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public FeatureSettingsDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "FeatureSettings";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- initialize element descriptors\r
+        \r
+        //-- _settingList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Setting.class, "_settingList", "setting", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                FeatureSettings target = (FeatureSettings) object;\r
+                return target.getSetting();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    FeatureSettings target = (FeatureSettings) object;\r
+                    target.addSetting( (jalview.schemabinding.version2.Setting) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Setting();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _settingList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.FeatureSettingsDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.FeatureSettings.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Features.java b/src/jalview/schemabinding/version2/Features.java
new file mode 100755 (executable)
index 0000000..72321c6
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Features.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Features extends Feature \r
+implements java.io.Serializable\r
+{\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Features() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Features()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Features) Unmarshaller.unmarshal(jalview.schemabinding.version2.Features.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/FeaturesDescriptor.java b/src/jalview/schemabinding/version2/FeaturesDescriptor.java
new file mode 100755 (executable)
index 0000000..5eea818
--- /dev/null
@@ -0,0 +1,166 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class FeaturesDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class FeaturesDescriptor extends FeatureDescriptor {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public FeaturesDescriptor() {\r
+        super();\r
+        setExtendsWithoutFlatten(new FeatureDescriptor());\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "features";\r
+    } //-- jalview.schemabinding.version2.FeaturesDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return super.getExtends();\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        if (identity == null)\r
+            return super.getIdentity();\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Features.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JGroup.java b/src/jalview/schemabinding/version2/JGroup.java
new file mode 100755 (executable)
index 0000000..f3fe3e9
--- /dev/null
@@ -0,0 +1,750 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class JGroup.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JGroup implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _start\r
+     */\r
+    private int _start;\r
+\r
+    /**\r
+     * keeps track of state for field: _start\r
+     */\r
+    private boolean _has_start;\r
+\r
+    /**\r
+     * Field _end\r
+     */\r
+    private int _end;\r
+\r
+    /**\r
+     * keeps track of state for field: _end\r
+     */\r
+    private boolean _has_end;\r
+\r
+    /**\r
+     * Field _name\r
+     */\r
+    private java.lang.String _name;\r
+\r
+    /**\r
+     * Field _colour\r
+     */\r
+    private java.lang.String _colour;\r
+\r
+    /**\r
+     * Field _consThreshold\r
+     */\r
+    private int _consThreshold;\r
+\r
+    /**\r
+     * keeps track of state for field: _consThreshold\r
+     */\r
+    private boolean _has_consThreshold;\r
+\r
+    /**\r
+     * Field _pidThreshold\r
+     */\r
+    private int _pidThreshold;\r
+\r
+    /**\r
+     * keeps track of state for field: _pidThreshold\r
+     */\r
+    private boolean _has_pidThreshold;\r
+\r
+    /**\r
+     * Field _outlineColour\r
+     */\r
+    private int _outlineColour;\r
+\r
+    /**\r
+     * keeps track of state for field: _outlineColour\r
+     */\r
+    private boolean _has_outlineColour;\r
+\r
+    /**\r
+     * Field _displayBoxes\r
+     */\r
+    private boolean _displayBoxes;\r
+\r
+    /**\r
+     * keeps track of state for field: _displayBoxes\r
+     */\r
+    private boolean _has_displayBoxes;\r
+\r
+    /**\r
+     * Field _displayText\r
+     */\r
+    private boolean _displayText;\r
+\r
+    /**\r
+     * keeps track of state for field: _displayText\r
+     */\r
+    private boolean _has_displayText;\r
+\r
+    /**\r
+     * Field _colourText\r
+     */\r
+    private boolean _colourText;\r
+\r
+    /**\r
+     * keeps track of state for field: _colourText\r
+     */\r
+    private boolean _has_colourText;\r
+\r
+    /**\r
+     * Field _seqList\r
+     */\r
+    private java.util.Vector _seqList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JGroup() {\r
+        super();\r
+        _seqList = new Vector();\r
+    } //-- jalview.schemabinding.version2.JGroup()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addSeq\r
+     * \r
+     * \r
+     * \r
+     * @param vSeq\r
+     */\r
+    public void addSeq(int vSeq)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _seqList.addElement(new java.lang.Integer(vSeq));\r
+    } //-- void addSeq(int) \r
+\r
+    /**\r
+     * Method addSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSeq\r
+     */\r
+    public void addSeq(int index, int vSeq)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _seqList.insertElementAt(new java.lang.Integer(vSeq), index);\r
+    } //-- void addSeq(int, int) \r
+\r
+    /**\r
+     * Method deleteColourText\r
+     * \r
+     */\r
+    public void deleteColourText()\r
+    {\r
+        this._has_colourText= false;\r
+    } //-- void deleteColourText() \r
+\r
+    /**\r
+     * Method deleteConsThreshold\r
+     * \r
+     */\r
+    public void deleteConsThreshold()\r
+    {\r
+        this._has_consThreshold= false;\r
+    } //-- void deleteConsThreshold() \r
+\r
+    /**\r
+     * Method deleteDisplayBoxes\r
+     * \r
+     */\r
+    public void deleteDisplayBoxes()\r
+    {\r
+        this._has_displayBoxes= false;\r
+    } //-- void deleteDisplayBoxes() \r
+\r
+    /**\r
+     * Method deleteDisplayText\r
+     * \r
+     */\r
+    public void deleteDisplayText()\r
+    {\r
+        this._has_displayText= false;\r
+    } //-- void deleteDisplayText() \r
+\r
+    /**\r
+     * Method deleteEnd\r
+     * \r
+     */\r
+    public void deleteEnd()\r
+    {\r
+        this._has_end= false;\r
+    } //-- void deleteEnd() \r
+\r
+    /**\r
+     * Method deleteOutlineColour\r
+     * \r
+     */\r
+    public void deleteOutlineColour()\r
+    {\r
+        this._has_outlineColour= false;\r
+    } //-- void deleteOutlineColour() \r
+\r
+    /**\r
+     * Method deletePidThreshold\r
+     * \r
+     */\r
+    public void deletePidThreshold()\r
+    {\r
+        this._has_pidThreshold= false;\r
+    } //-- void deletePidThreshold() \r
+\r
+    /**\r
+     * Method deleteStart\r
+     * \r
+     */\r
+    public void deleteStart()\r
+    {\r
+        this._has_start= false;\r
+    } //-- void deleteStart() \r
+\r
+    /**\r
+     * Method enumerateSeq\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateSeq()\r
+    {\r
+        return _seqList.elements();\r
+    } //-- java.util.Enumeration enumerateSeq() \r
+\r
+    /**\r
+     * Returns the value of field 'colour'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'colour'.\r
+     */\r
+    public java.lang.String getColour()\r
+    {\r
+        return this._colour;\r
+    } //-- java.lang.String getColour() \r
+\r
+    /**\r
+     * Returns the value of field 'colourText'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'colourText'.\r
+     */\r
+    public boolean getColourText()\r
+    {\r
+        return this._colourText;\r
+    } //-- boolean getColourText() \r
+\r
+    /**\r
+     * Returns the value of field 'consThreshold'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'consThreshold'.\r
+     */\r
+    public int getConsThreshold()\r
+    {\r
+        return this._consThreshold;\r
+    } //-- int getConsThreshold() \r
+\r
+    /**\r
+     * Returns the value of field 'displayBoxes'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'displayBoxes'.\r
+     */\r
+    public boolean getDisplayBoxes()\r
+    {\r
+        return this._displayBoxes;\r
+    } //-- boolean getDisplayBoxes() \r
+\r
+    /**\r
+     * Returns the value of field 'displayText'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'displayText'.\r
+     */\r
+    public boolean getDisplayText()\r
+    {\r
+        return this._displayText;\r
+    } //-- boolean getDisplayText() \r
+\r
+    /**\r
+     * Returns the value of field 'end'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'end'.\r
+     */\r
+    public int getEnd()\r
+    {\r
+        return this._end;\r
+    } //-- int getEnd() \r
+\r
+    /**\r
+     * Returns the value of field 'name'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'name'.\r
+     */\r
+    public java.lang.String getName()\r
+    {\r
+        return this._name;\r
+    } //-- java.lang.String getName() \r
+\r
+    /**\r
+     * Returns the value of field 'outlineColour'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'outlineColour'.\r
+     */\r
+    public int getOutlineColour()\r
+    {\r
+        return this._outlineColour;\r
+    } //-- int getOutlineColour() \r
+\r
+    /**\r
+     * Returns the value of field 'pidThreshold'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'pidThreshold'.\r
+     */\r
+    public int getPidThreshold()\r
+    {\r
+        return this._pidThreshold;\r
+    } //-- int getPidThreshold() \r
+\r
+    /**\r
+     * Method getSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return int\r
+     */\r
+    public int getSeq(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _seqList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return ((java.lang.Integer)_seqList.elementAt(index)).intValue();\r
+    } //-- int getSeq(int) \r
+\r
+    /**\r
+     * Method getSeq\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int[] getSeq()\r
+    {\r
+        int size = _seqList.size();\r
+        int[] mArray = new int[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = ((java.lang.Integer)_seqList.elementAt(index)).intValue();\r
+        }\r
+        return mArray;\r
+    } //-- int[] getSeq() \r
+\r
+    /**\r
+     * Method getSeqCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getSeqCount()\r
+    {\r
+        return _seqList.size();\r
+    } //-- int getSeqCount() \r
+\r
+    /**\r
+     * Returns the value of field 'start'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'start'.\r
+     */\r
+    public int getStart()\r
+    {\r
+        return this._start;\r
+    } //-- int getStart() \r
+\r
+    /**\r
+     * Method hasColourText\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasColourText()\r
+    {\r
+        return this._has_colourText;\r
+    } //-- boolean hasColourText() \r
+\r
+    /**\r
+     * Method hasConsThreshold\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasConsThreshold()\r
+    {\r
+        return this._has_consThreshold;\r
+    } //-- boolean hasConsThreshold() \r
+\r
+    /**\r
+     * Method hasDisplayBoxes\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasDisplayBoxes()\r
+    {\r
+        return this._has_displayBoxes;\r
+    } //-- boolean hasDisplayBoxes() \r
+\r
+    /**\r
+     * Method hasDisplayText\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasDisplayText()\r
+    {\r
+        return this._has_displayText;\r
+    } //-- boolean hasDisplayText() \r
+\r
+    /**\r
+     * Method hasEnd\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasEnd()\r
+    {\r
+        return this._has_end;\r
+    } //-- boolean hasEnd() \r
+\r
+    /**\r
+     * Method hasOutlineColour\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasOutlineColour()\r
+    {\r
+        return this._has_outlineColour;\r
+    } //-- boolean hasOutlineColour() \r
+\r
+    /**\r
+     * Method hasPidThreshold\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasPidThreshold()\r
+    {\r
+        return this._has_pidThreshold;\r
+    } //-- boolean hasPidThreshold() \r
+\r
+    /**\r
+     * Method hasStart\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasStart()\r
+    {\r
+        return this._has_start;\r
+    } //-- boolean hasStart() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllSeq\r
+     * \r
+     */\r
+    public void removeAllSeq()\r
+    {\r
+        _seqList.removeAllElements();\r
+    } //-- void removeAllSeq() \r
+\r
+    /**\r
+     * Method removeSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return int\r
+     */\r
+    public int removeSeq(int index)\r
+    {\r
+        java.lang.Object obj = _seqList.elementAt(index);\r
+        _seqList.removeElementAt(index);\r
+        return ((java.lang.Integer)obj).intValue();\r
+    } //-- int removeSeq(int) \r
+\r
+    /**\r
+     * Sets the value of field 'colour'.\r
+     * \r
+     * @param colour the value of field 'colour'.\r
+     */\r
+    public void setColour(java.lang.String colour)\r
+    {\r
+        this._colour = colour;\r
+    } //-- void setColour(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'colourText'.\r
+     * \r
+     * @param colourText the value of field 'colourText'.\r
+     */\r
+    public void setColourText(boolean colourText)\r
+    {\r
+        this._colourText = colourText;\r
+        this._has_colourText = true;\r
+    } //-- void setColourText(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'consThreshold'.\r
+     * \r
+     * @param consThreshold the value of field 'consThreshold'.\r
+     */\r
+    public void setConsThreshold(int consThreshold)\r
+    {\r
+        this._consThreshold = consThreshold;\r
+        this._has_consThreshold = true;\r
+    } //-- void setConsThreshold(int) \r
+\r
+    /**\r
+     * Sets the value of field 'displayBoxes'.\r
+     * \r
+     * @param displayBoxes the value of field 'displayBoxes'.\r
+     */\r
+    public void setDisplayBoxes(boolean displayBoxes)\r
+    {\r
+        this._displayBoxes = displayBoxes;\r
+        this._has_displayBoxes = true;\r
+    } //-- void setDisplayBoxes(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'displayText'.\r
+     * \r
+     * @param displayText the value of field 'displayText'.\r
+     */\r
+    public void setDisplayText(boolean displayText)\r
+    {\r
+        this._displayText = displayText;\r
+        this._has_displayText = true;\r
+    } //-- void setDisplayText(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'end'.\r
+     * \r
+     * @param end the value of field 'end'.\r
+     */\r
+    public void setEnd(int end)\r
+    {\r
+        this._end = end;\r
+        this._has_end = true;\r
+    } //-- void setEnd(int) \r
+\r
+    /**\r
+     * Sets the value of field 'name'.\r
+     * \r
+     * @param name the value of field 'name'.\r
+     */\r
+    public void setName(java.lang.String name)\r
+    {\r
+        this._name = name;\r
+    } //-- void setName(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'outlineColour'.\r
+     * \r
+     * @param outlineColour the value of field 'outlineColour'.\r
+     */\r
+    public void setOutlineColour(int outlineColour)\r
+    {\r
+        this._outlineColour = outlineColour;\r
+        this._has_outlineColour = true;\r
+    } //-- void setOutlineColour(int) \r
+\r
+    /**\r
+     * Sets the value of field 'pidThreshold'.\r
+     * \r
+     * @param pidThreshold the value of field 'pidThreshold'.\r
+     */\r
+    public void setPidThreshold(int pidThreshold)\r
+    {\r
+        this._pidThreshold = pidThreshold;\r
+        this._has_pidThreshold = true;\r
+    } //-- void setPidThreshold(int) \r
+\r
+    /**\r
+     * Method setSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSeq\r
+     */\r
+    public void setSeq(int index, int vSeq)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _seqList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _seqList.setElementAt(new java.lang.Integer(vSeq), index);\r
+    } //-- void setSeq(int, int) \r
+\r
+    /**\r
+     * Method setSeq\r
+     * \r
+     * \r
+     * \r
+     * @param seqArray\r
+     */\r
+    public void setSeq(int[] seqArray)\r
+    {\r
+        //-- copy array\r
+        _seqList.removeAllElements();\r
+        for (int i = 0; i < seqArray.length; i++) {\r
+            _seqList.addElement(new java.lang.Integer(seqArray[i]));\r
+        }\r
+    } //-- void setSeq(int) \r
+\r
+    /**\r
+     * Sets the value of field 'start'.\r
+     * \r
+     * @param start the value of field 'start'.\r
+     */\r
+    public void setStart(int start)\r
+    {\r
+        this._start = start;\r
+        this._has_start = true;\r
+    } //-- void setStart(int) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.JGroup) Unmarshaller.unmarshal(jalview.schemabinding.version2.JGroup.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JGroupDescriptor.java b/src/jalview/schemabinding/version2/JGroupDescriptor.java
new file mode 100755 (executable)
index 0000000..231c631
--- /dev/null
@@ -0,0 +1,614 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class JGroupDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JGroupDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JGroupDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "JGroup";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _start\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasStart())\r
+                    return null;\r
+                return new java.lang.Integer(target.getStart());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteStart();\r
+                        return;\r
+                    }\r
+                    target.setStart( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _start\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _end\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasEnd())\r
+                    return null;\r
+                return new java.lang.Integer(target.getEnd());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteEnd();\r
+                        return;\r
+                    }\r
+                    target.setEnd( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _end\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _name\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                return target.getName();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    target.setName( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _name\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _colour\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                return target.getColour();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    target.setColour( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _colour\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _consThreshold\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_consThreshold", "consThreshold", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasConsThreshold())\r
+                    return null;\r
+                return new java.lang.Integer(target.getConsThreshold());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteConsThreshold();\r
+                        return;\r
+                    }\r
+                    target.setConsThreshold( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _consThreshold\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _pidThreshold\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasPidThreshold())\r
+                    return null;\r
+                return new java.lang.Integer(target.getPidThreshold());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deletePidThreshold();\r
+                        return;\r
+                    }\r
+                    target.setPidThreshold( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _pidThreshold\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _outlineColour\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_outlineColour", "outlineColour", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasOutlineColour())\r
+                    return null;\r
+                return new java.lang.Integer(target.getOutlineColour());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteOutlineColour();\r
+                        return;\r
+                    }\r
+                    target.setOutlineColour( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _outlineColour\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _displayBoxes\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_displayBoxes", "displayBoxes", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasDisplayBoxes())\r
+                    return null;\r
+                return (target.getDisplayBoxes() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteDisplayBoxes();\r
+                        return;\r
+                    }\r
+                    target.setDisplayBoxes( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _displayBoxes\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _displayText\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_displayText", "displayText", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasDisplayText())\r
+                    return null;\r
+                return (target.getDisplayText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteDisplayText();\r
+                        return;\r
+                    }\r
+                    target.setDisplayText( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _displayText\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _colourText\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_colourText", "colourText", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                if(!target.hasColourText())\r
+                    return null;\r
+                return (target.getColourText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteColourText();\r
+                        return;\r
+                    }\r
+                    target.setColourText( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _colourText\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _seqList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_seqList", "seq", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JGroup target = (JGroup) object;\r
+                return target.getSeq();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JGroup target = (JGroup) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.addSeq( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _seqList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.JGroupDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.JGroup.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JSeq.java b/src/jalview/schemabinding/version2/JSeq.java
new file mode 100755 (executable)
index 0000000..0d8dc08
--- /dev/null
@@ -0,0 +1,637 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class JSeq.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JSeq implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _colour\r
+     */\r
+    private int _colour;\r
+\r
+    /**\r
+     * keeps track of state for field: _colour\r
+     */\r
+    private boolean _has_colour;\r
+\r
+    /**\r
+     * Field _start\r
+     */\r
+    private int _start;\r
+\r
+    /**\r
+     * keeps track of state for field: _start\r
+     */\r
+    private boolean _has_start;\r
+\r
+    /**\r
+     * Field _end\r
+     */\r
+    private int _end;\r
+\r
+    /**\r
+     * keeps track of state for field: _end\r
+     */\r
+    private boolean _has_end;\r
+\r
+    /**\r
+     * Field _id\r
+     */\r
+    private int _id;\r
+\r
+    /**\r
+     * keeps track of state for field: _id\r
+     */\r
+    private boolean _has_id;\r
+\r
+    /**\r
+     * Field _featuresList\r
+     */\r
+    private java.util.Vector _featuresList;\r
+\r
+    /**\r
+     * Field _pdbidsList\r
+     */\r
+    private java.util.Vector _pdbidsList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JSeq() {\r
+        super();\r
+        _featuresList = new Vector();\r
+        _pdbidsList = new Vector();\r
+    } //-- jalview.schemabinding.version2.JSeq()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addFeatures\r
+     * \r
+     * \r
+     * \r
+     * @param vFeatures\r
+     */\r
+    public void addFeatures(jalview.schemabinding.version2.Features vFeatures)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _featuresList.addElement(vFeatures);\r
+    } //-- void addFeatures(jalview.schemabinding.version2.Features) \r
+\r
+    /**\r
+     * Method addFeatures\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vFeatures\r
+     */\r
+    public void addFeatures(int index, jalview.schemabinding.version2.Features vFeatures)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _featuresList.insertElementAt(vFeatures, index);\r
+    } //-- void addFeatures(int, jalview.schemabinding.version2.Features) \r
+\r
+    /**\r
+     * Method addPdbids\r
+     * \r
+     * \r
+     * \r
+     * @param vPdbids\r
+     */\r
+    public void addPdbids(jalview.schemabinding.version2.Pdbids vPdbids)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _pdbidsList.addElement(vPdbids);\r
+    } //-- void addPdbids(jalview.schemabinding.version2.Pdbids) \r
+\r
+    /**\r
+     * Method addPdbids\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vPdbids\r
+     */\r
+    public void addPdbids(int index, jalview.schemabinding.version2.Pdbids vPdbids)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _pdbidsList.insertElementAt(vPdbids, index);\r
+    } //-- void addPdbids(int, jalview.schemabinding.version2.Pdbids) \r
+\r
+    /**\r
+     * Method deleteColour\r
+     * \r
+     */\r
+    public void deleteColour()\r
+    {\r
+        this._has_colour= false;\r
+    } //-- void deleteColour() \r
+\r
+    /**\r
+     * Method deleteEnd\r
+     * \r
+     */\r
+    public void deleteEnd()\r
+    {\r
+        this._has_end= false;\r
+    } //-- void deleteEnd() \r
+\r
+    /**\r
+     * Method deleteId\r
+     * \r
+     */\r
+    public void deleteId()\r
+    {\r
+        this._has_id= false;\r
+    } //-- void deleteId() \r
+\r
+    /**\r
+     * Method deleteStart\r
+     * \r
+     */\r
+    public void deleteStart()\r
+    {\r
+        this._has_start= false;\r
+    } //-- void deleteStart() \r
+\r
+    /**\r
+     * Method enumerateFeatures\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateFeatures()\r
+    {\r
+        return _featuresList.elements();\r
+    } //-- java.util.Enumeration enumerateFeatures() \r
+\r
+    /**\r
+     * Method enumeratePdbids\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumeratePdbids()\r
+    {\r
+        return _pdbidsList.elements();\r
+    } //-- java.util.Enumeration enumeratePdbids() \r
+\r
+    /**\r
+     * Returns the value of field 'colour'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'colour'.\r
+     */\r
+    public int getColour()\r
+    {\r
+        return this._colour;\r
+    } //-- int getColour() \r
+\r
+    /**\r
+     * Returns the value of field 'end'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'end'.\r
+     */\r
+    public int getEnd()\r
+    {\r
+        return this._end;\r
+    } //-- int getEnd() \r
+\r
+    /**\r
+     * Method getFeatures\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Features\r
+     */\r
+    public jalview.schemabinding.version2.Features getFeatures(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _featuresList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Features) _featuresList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Features getFeatures(int) \r
+\r
+    /**\r
+     * Method getFeatures\r
+     * \r
+     * \r
+     * \r
+     * @return Features\r
+     */\r
+    public jalview.schemabinding.version2.Features[] getFeatures()\r
+    {\r
+        int size = _featuresList.size();\r
+        jalview.schemabinding.version2.Features[] mArray = new jalview.schemabinding.version2.Features[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Features) _featuresList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Features[] getFeatures() \r
+\r
+    /**\r
+     * Method getFeaturesCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getFeaturesCount()\r
+    {\r
+        return _featuresList.size();\r
+    } //-- int getFeaturesCount() \r
+\r
+    /**\r
+     * Returns the value of field 'id'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'id'.\r
+     */\r
+    public int getId()\r
+    {\r
+        return this._id;\r
+    } //-- int getId() \r
+\r
+    /**\r
+     * Method getPdbids\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Pdbids\r
+     */\r
+    public jalview.schemabinding.version2.Pdbids getPdbids(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _pdbidsList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Pdbids) _pdbidsList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Pdbids getPdbids(int) \r
+\r
+    /**\r
+     * Method getPdbids\r
+     * \r
+     * \r
+     * \r
+     * @return Pdbids\r
+     */\r
+    public jalview.schemabinding.version2.Pdbids[] getPdbids()\r
+    {\r
+        int size = _pdbidsList.size();\r
+        jalview.schemabinding.version2.Pdbids[] mArray = new jalview.schemabinding.version2.Pdbids[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Pdbids) _pdbidsList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Pdbids[] getPdbids() \r
+\r
+    /**\r
+     * Method getPdbidsCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getPdbidsCount()\r
+    {\r
+        return _pdbidsList.size();\r
+    } //-- int getPdbidsCount() \r
+\r
+    /**\r
+     * Returns the value of field 'start'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'start'.\r
+     */\r
+    public int getStart()\r
+    {\r
+        return this._start;\r
+    } //-- int getStart() \r
+\r
+    /**\r
+     * Method hasColour\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasColour()\r
+    {\r
+        return this._has_colour;\r
+    } //-- boolean hasColour() \r
+\r
+    /**\r
+     * Method hasEnd\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasEnd()\r
+    {\r
+        return this._has_end;\r
+    } //-- boolean hasEnd() \r
+\r
+    /**\r
+     * Method hasId\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasId()\r
+    {\r
+        return this._has_id;\r
+    } //-- boolean hasId() \r
+\r
+    /**\r
+     * Method hasStart\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasStart()\r
+    {\r
+        return this._has_start;\r
+    } //-- boolean hasStart() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllFeatures\r
+     * \r
+     */\r
+    public void removeAllFeatures()\r
+    {\r
+        _featuresList.removeAllElements();\r
+    } //-- void removeAllFeatures() \r
+\r
+    /**\r
+     * Method removeAllPdbids\r
+     * \r
+     */\r
+    public void removeAllPdbids()\r
+    {\r
+        _pdbidsList.removeAllElements();\r
+    } //-- void removeAllPdbids() \r
+\r
+    /**\r
+     * Method removeFeatures\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Features\r
+     */\r
+    public jalview.schemabinding.version2.Features removeFeatures(int index)\r
+    {\r
+        java.lang.Object obj = _featuresList.elementAt(index);\r
+        _featuresList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Features) obj;\r
+    } //-- jalview.schemabinding.version2.Features removeFeatures(int) \r
+\r
+    /**\r
+     * Method removePdbids\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Pdbids\r
+     */\r
+    public jalview.schemabinding.version2.Pdbids removePdbids(int index)\r
+    {\r
+        java.lang.Object obj = _pdbidsList.elementAt(index);\r
+        _pdbidsList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Pdbids) obj;\r
+    } //-- jalview.schemabinding.version2.Pdbids removePdbids(int) \r
+\r
+    /**\r
+     * Sets the value of field 'colour'.\r
+     * \r
+     * @param colour the value of field 'colour'.\r
+     */\r
+    public void setColour(int colour)\r
+    {\r
+        this._colour = colour;\r
+        this._has_colour = true;\r
+    } //-- void setColour(int) \r
+\r
+    /**\r
+     * Sets the value of field 'end'.\r
+     * \r
+     * @param end the value of field 'end'.\r
+     */\r
+    public void setEnd(int end)\r
+    {\r
+        this._end = end;\r
+        this._has_end = true;\r
+    } //-- void setEnd(int) \r
+\r
+    /**\r
+     * Method setFeatures\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vFeatures\r
+     */\r
+    public void setFeatures(int index, jalview.schemabinding.version2.Features vFeatures)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _featuresList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _featuresList.setElementAt(vFeatures, index);\r
+    } //-- void setFeatures(int, jalview.schemabinding.version2.Features) \r
+\r
+    /**\r
+     * Method setFeatures\r
+     * \r
+     * \r
+     * \r
+     * @param featuresArray\r
+     */\r
+    public void setFeatures(jalview.schemabinding.version2.Features[] featuresArray)\r
+    {\r
+        //-- copy array\r
+        _featuresList.removeAllElements();\r
+        for (int i = 0; i < featuresArray.length; i++) {\r
+            _featuresList.addElement(featuresArray[i]);\r
+        }\r
+    } //-- void setFeatures(jalview.schemabinding.version2.Features) \r
+\r
+    /**\r
+     * Sets the value of field 'id'.\r
+     * \r
+     * @param id the value of field 'id'.\r
+     */\r
+    public void setId(int id)\r
+    {\r
+        this._id = id;\r
+        this._has_id = true;\r
+    } //-- void setId(int) \r
+\r
+    /**\r
+     * Method setPdbids\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vPdbids\r
+     */\r
+    public void setPdbids(int index, jalview.schemabinding.version2.Pdbids vPdbids)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _pdbidsList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _pdbidsList.setElementAt(vPdbids, index);\r
+    } //-- void setPdbids(int, jalview.schemabinding.version2.Pdbids) \r
+\r
+    /**\r
+     * Method setPdbids\r
+     * \r
+     * \r
+     * \r
+     * @param pdbidsArray\r
+     */\r
+    public void setPdbids(jalview.schemabinding.version2.Pdbids[] pdbidsArray)\r
+    {\r
+        //-- copy array\r
+        _pdbidsList.removeAllElements();\r
+        for (int i = 0; i < pdbidsArray.length; i++) {\r
+            _pdbidsList.addElement(pdbidsArray[i]);\r
+        }\r
+    } //-- void setPdbids(jalview.schemabinding.version2.Pdbids) \r
+\r
+    /**\r
+     * Sets the value of field 'start'.\r
+     * \r
+     * @param start the value of field 'start'.\r
+     */\r
+    public void setStart(int start)\r
+    {\r
+        this._start = start;\r
+        this._has_start = true;\r
+    } //-- void setStart(int) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.JSeq) Unmarshaller.unmarshal(jalview.schemabinding.version2.JSeq.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JSeqDescriptor.java b/src/jalview/schemabinding/version2/JSeqDescriptor.java
new file mode 100755 (executable)
index 0000000..f19b91c
--- /dev/null
@@ -0,0 +1,407 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class JSeqDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JSeqDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JSeqDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "JSeq";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _colour\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JSeq target = (JSeq) object;\r
+                if(!target.hasColour())\r
+                    return null;\r
+                return new java.lang.Integer(target.getColour());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JSeq target = (JSeq) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteColour();\r
+                        return;\r
+                    }\r
+                    target.setColour( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _colour\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _start\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_start", "start", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JSeq target = (JSeq) object;\r
+                if(!target.hasStart())\r
+                    return null;\r
+                return new java.lang.Integer(target.getStart());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JSeq target = (JSeq) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setStart( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _start\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _end\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_end", "end", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JSeq target = (JSeq) object;\r
+                if(!target.hasEnd())\r
+                    return null;\r
+                return new java.lang.Integer(target.getEnd());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JSeq target = (JSeq) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setEnd( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _end\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _id\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JSeq target = (JSeq) object;\r
+                if(!target.hasId())\r
+                    return null;\r
+                return new java.lang.Integer(target.getId());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JSeq target = (JSeq) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setId( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _id\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _featuresList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Features.class, "_featuresList", "features", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JSeq target = (JSeq) object;\r
+                return target.getFeatures();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JSeq target = (JSeq) object;\r
+                    target.addFeatures( (jalview.schemabinding.version2.Features) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Features();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _featuresList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _pdbidsList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Pdbids.class, "_pdbidsList", "pdbids", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JSeq target = (JSeq) object;\r
+                return target.getPdbids();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JSeq target = (JSeq) object;\r
+                    target.addPdbids( (jalview.schemabinding.version2.Pdbids) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Pdbids();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _pdbidsList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.JSeqDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.JSeq.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JalviewModel.java b/src/jalview/schemabinding/version2/JalviewModel.java
new file mode 100755 (executable)
index 0000000..fe8deef
--- /dev/null
@@ -0,0 +1,227 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Date;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class JalviewModel.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JalviewModel implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _creationDate\r
+     */\r
+    private java.util.Date _creationDate;\r
+\r
+    /**\r
+     * Field _version\r
+     */\r
+    private java.lang.String _version;\r
+\r
+    /**\r
+     * Field _vamsasModel\r
+     */\r
+    private jalview.schemabinding.version2.VamsasModel _vamsasModel;\r
+\r
+    /**\r
+     * Field _jalviewModelSequence\r
+     */\r
+    private jalview.schemabinding.version2.JalviewModelSequence _jalviewModelSequence;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JalviewModel() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.JalviewModel()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Returns the value of field 'creationDate'.\r
+     * \r
+     * @return Date\r
+     * @return the value of field 'creationDate'.\r
+     */\r
+    public java.util.Date getCreationDate()\r
+    {\r
+        return this._creationDate;\r
+    } //-- java.util.Date getCreationDate() \r
+\r
+    /**\r
+     * Returns the value of field 'jalviewModelSequence'.\r
+     * \r
+     * @return JalviewModelSequence\r
+     * @return the value of field 'jalviewModelSequence'.\r
+     */\r
+    public jalview.schemabinding.version2.JalviewModelSequence getJalviewModelSequence()\r
+    {\r
+        return this._jalviewModelSequence;\r
+    } //-- jalview.schemabinding.version2.JalviewModelSequence getJalviewModelSequence() \r
+\r
+    /**\r
+     * Returns the value of field 'vamsasModel'.\r
+     * \r
+     * @return VamsasModel\r
+     * @return the value of field 'vamsasModel'.\r
+     */\r
+    public jalview.schemabinding.version2.VamsasModel getVamsasModel()\r
+    {\r
+        return this._vamsasModel;\r
+    } //-- jalview.schemabinding.version2.VamsasModel getVamsasModel() \r
+\r
+    /**\r
+     * Returns the value of field 'version'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'version'.\r
+     */\r
+    public java.lang.String getVersion()\r
+    {\r
+        return this._version;\r
+    } //-- java.lang.String getVersion() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'creationDate'.\r
+     * \r
+     * @param creationDate the value of field 'creationDate'.\r
+     */\r
+    public void setCreationDate(java.util.Date creationDate)\r
+    {\r
+        this._creationDate = creationDate;\r
+    } //-- void setCreationDate(java.util.Date) \r
+\r
+    /**\r
+     * Sets the value of field 'jalviewModelSequence'.\r
+     * \r
+     * @param jalviewModelSequence the value of field\r
+     * 'jalviewModelSequence'.\r
+     */\r
+    public void setJalviewModelSequence(jalview.schemabinding.version2.JalviewModelSequence jalviewModelSequence)\r
+    {\r
+        this._jalviewModelSequence = jalviewModelSequence;\r
+    } //-- void setJalviewModelSequence(jalview.schemabinding.version2.JalviewModelSequence) \r
+\r
+    /**\r
+     * Sets the value of field 'vamsasModel'.\r
+     * \r
+     * @param vamsasModel the value of field 'vamsasModel'.\r
+     */\r
+    public void setVamsasModel(jalview.schemabinding.version2.VamsasModel vamsasModel)\r
+    {\r
+        this._vamsasModel = vamsasModel;\r
+    } //-- void setVamsasModel(jalview.schemabinding.version2.VamsasModel) \r
+\r
+    /**\r
+     * Sets the value of field 'version'.\r
+     * \r
+     * @param version the value of field 'version'.\r
+     */\r
+    public void setVersion(java.lang.String version)\r
+    {\r
+        this._version = version;\r
+    } //-- void setVersion(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.JalviewModel) Unmarshaller.unmarshal(jalview.schemabinding.version2.JalviewModel.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JalviewModelDescriptor.java b/src/jalview/schemabinding/version2/JalviewModelDescriptor.java
new file mode 100755 (executable)
index 0000000..ad2dc13
--- /dev/null
@@ -0,0 +1,324 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class JalviewModelDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JalviewModelDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JalviewModelDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "JalviewModel";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- initialize element descriptors\r
+        \r
+        //-- _creationDate\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.util.Date.class, "_creationDate", "creationDate", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModel target = (JalviewModel) object;\r
+                return target.getCreationDate();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModel target = (JalviewModel) object;\r
+                    target.setCreationDate( (java.util.Date) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new java.util.Date();\r
+            }\r
+        } );\r
+        desc.setHandler( new org.exolab.castor.xml.handlers.DateFieldHandler(handler));\r
+        desc.setImmutable(true);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _creationDate\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _version\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_version", "version", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModel target = (JalviewModel) object;\r
+                return target.getVersion();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModel target = (JalviewModel) object;\r
+                    target.setVersion( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _version\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _vamsasModel\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.VamsasModel.class, "_vamsasModel", "vamsasModel", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModel target = (JalviewModel) object;\r
+                return target.getVamsasModel();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModel target = (JalviewModel) object;\r
+                    target.setVamsasModel( (jalview.schemabinding.version2.VamsasModel) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.VamsasModel();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _vamsasModel\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _jalviewModelSequence\r
+        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);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModel target = (JalviewModel) object;\r
+                return target.getJalviewModelSequence();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModel target = (JalviewModel) object;\r
+                    target.setJalviewModelSequence( (jalview.schemabinding.version2.JalviewModelSequence) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.JalviewModelSequence();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setContainer(true);\r
+        desc.setClassDescriptor(new jalview.schemabinding.version2.JalviewModelSequenceDescriptor());\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _jalviewModelSequence\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.JalviewModelDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.JalviewModel.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JalviewModelSequence.java b/src/jalview/schemabinding/version2/JalviewModelSequence.java
new file mode 100755 (executable)
index 0000000..45f486b
--- /dev/null
@@ -0,0 +1,904 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class JalviewModelSequence.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JalviewModelSequence implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _JSeqList\r
+     */\r
+    private java.util.Vector _JSeqList;\r
+\r
+    /**\r
+     * Field _JGroupList\r
+     */\r
+    private java.util.Vector _JGroupList;\r
+\r
+    /**\r
+     * Field _viewportList\r
+     */\r
+    private java.util.Vector _viewportList;\r
+\r
+    /**\r
+     * Field _userColoursList\r
+     */\r
+    private java.util.Vector _userColoursList;\r
+\r
+    /**\r
+     * Field _treeList\r
+     */\r
+    private java.util.Vector _treeList;\r
+\r
+    /**\r
+     * Field _featureSettings\r
+     */\r
+    private jalview.schemabinding.version2.FeatureSettings _featureSettings;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JalviewModelSequence() {\r
+        super();\r
+        _JSeqList = new Vector();\r
+        _JGroupList = new Vector();\r
+        _viewportList = new Vector();\r
+        _userColoursList = new Vector();\r
+        _treeList = new Vector();\r
+    } //-- jalview.schemabinding.version2.JalviewModelSequence()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addJGroup\r
+     * \r
+     * \r
+     * \r
+     * @param vJGroup\r
+     */\r
+    public void addJGroup(jalview.schemabinding.version2.JGroup vJGroup)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _JGroupList.addElement(vJGroup);\r
+    } //-- void addJGroup(jalview.schemabinding.version2.JGroup) \r
+\r
+    /**\r
+     * Method addJGroup\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vJGroup\r
+     */\r
+    public void addJGroup(int index, jalview.schemabinding.version2.JGroup vJGroup)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _JGroupList.insertElementAt(vJGroup, index);\r
+    } //-- void addJGroup(int, jalview.schemabinding.version2.JGroup) \r
+\r
+    /**\r
+     * Method addJSeq\r
+     * \r
+     * \r
+     * \r
+     * @param vJSeq\r
+     */\r
+    public void addJSeq(jalview.schemabinding.version2.JSeq vJSeq)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _JSeqList.addElement(vJSeq);\r
+    } //-- void addJSeq(jalview.schemabinding.version2.JSeq) \r
+\r
+    /**\r
+     * Method addJSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vJSeq\r
+     */\r
+    public void addJSeq(int index, jalview.schemabinding.version2.JSeq vJSeq)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _JSeqList.insertElementAt(vJSeq, index);\r
+    } //-- void addJSeq(int, jalview.schemabinding.version2.JSeq) \r
+\r
+    /**\r
+     * Method addTree\r
+     * \r
+     * \r
+     * \r
+     * @param vTree\r
+     */\r
+    public void addTree(jalview.schemabinding.version2.Tree vTree)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _treeList.addElement(vTree);\r
+    } //-- void addTree(jalview.schemabinding.version2.Tree) \r
+\r
+    /**\r
+     * Method addTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vTree\r
+     */\r
+    public void addTree(int index, jalview.schemabinding.version2.Tree vTree)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _treeList.insertElementAt(vTree, index);\r
+    } //-- void addTree(int, jalview.schemabinding.version2.Tree) \r
+\r
+    /**\r
+     * Method addUserColours\r
+     * \r
+     * \r
+     * \r
+     * @param vUserColours\r
+     */\r
+    public void addUserColours(jalview.schemabinding.version2.UserColours vUserColours)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _userColoursList.addElement(vUserColours);\r
+    } //-- void addUserColours(jalview.schemabinding.version2.UserColours) \r
+\r
+    /**\r
+     * Method addUserColours\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vUserColours\r
+     */\r
+    public void addUserColours(int index, jalview.schemabinding.version2.UserColours vUserColours)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _userColoursList.insertElementAt(vUserColours, index);\r
+    } //-- void addUserColours(int, jalview.schemabinding.version2.UserColours) \r
+\r
+    /**\r
+     * Method addViewport\r
+     * \r
+     * \r
+     * \r
+     * @param vViewport\r
+     */\r
+    public void addViewport(jalview.schemabinding.version2.Viewport vViewport)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _viewportList.addElement(vViewport);\r
+    } //-- void addViewport(jalview.schemabinding.version2.Viewport) \r
+\r
+    /**\r
+     * Method addViewport\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vViewport\r
+     */\r
+    public void addViewport(int index, jalview.schemabinding.version2.Viewport vViewport)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _viewportList.insertElementAt(vViewport, index);\r
+    } //-- void addViewport(int, jalview.schemabinding.version2.Viewport) \r
+\r
+    /**\r
+     * Method enumerateJGroup\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateJGroup()\r
+    {\r
+        return _JGroupList.elements();\r
+    } //-- java.util.Enumeration enumerateJGroup() \r
+\r
+    /**\r
+     * Method enumerateJSeq\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateJSeq()\r
+    {\r
+        return _JSeqList.elements();\r
+    } //-- java.util.Enumeration enumerateJSeq() \r
+\r
+    /**\r
+     * Method enumerateTree\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateTree()\r
+    {\r
+        return _treeList.elements();\r
+    } //-- java.util.Enumeration enumerateTree() \r
+\r
+    /**\r
+     * Method enumerateUserColours\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateUserColours()\r
+    {\r
+        return _userColoursList.elements();\r
+    } //-- java.util.Enumeration enumerateUserColours() \r
+\r
+    /**\r
+     * Method enumerateViewport\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateViewport()\r
+    {\r
+        return _viewportList.elements();\r
+    } //-- java.util.Enumeration enumerateViewport() \r
+\r
+    /**\r
+     * Returns the value of field 'featureSettings'.\r
+     * \r
+     * @return FeatureSettings\r
+     * @return the value of field 'featureSettings'.\r
+     */\r
+    public jalview.schemabinding.version2.FeatureSettings getFeatureSettings()\r
+    {\r
+        return this._featureSettings;\r
+    } //-- jalview.schemabinding.version2.FeatureSettings getFeatureSettings() \r
+\r
+    /**\r
+     * Method getJGroup\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return JGroup\r
+     */\r
+    public jalview.schemabinding.version2.JGroup getJGroup(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _JGroupList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.JGroup) _JGroupList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.JGroup getJGroup(int) \r
+\r
+    /**\r
+     * Method getJGroup\r
+     * \r
+     * \r
+     * \r
+     * @return JGroup\r
+     */\r
+    public jalview.schemabinding.version2.JGroup[] getJGroup()\r
+    {\r
+        int size = _JGroupList.size();\r
+        jalview.schemabinding.version2.JGroup[] mArray = new jalview.schemabinding.version2.JGroup[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.JGroup) _JGroupList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.JGroup[] getJGroup() \r
+\r
+    /**\r
+     * Method getJGroupCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getJGroupCount()\r
+    {\r
+        return _JGroupList.size();\r
+    } //-- int getJGroupCount() \r
+\r
+    /**\r
+     * Method getJSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return JSeq\r
+     */\r
+    public jalview.schemabinding.version2.JSeq getJSeq(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _JSeqList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.JSeq) _JSeqList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.JSeq getJSeq(int) \r
+\r
+    /**\r
+     * Method getJSeq\r
+     * \r
+     * \r
+     * \r
+     * @return JSeq\r
+     */\r
+    public jalview.schemabinding.version2.JSeq[] getJSeq()\r
+    {\r
+        int size = _JSeqList.size();\r
+        jalview.schemabinding.version2.JSeq[] mArray = new jalview.schemabinding.version2.JSeq[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.JSeq) _JSeqList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.JSeq[] getJSeq() \r
+\r
+    /**\r
+     * Method getJSeqCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getJSeqCount()\r
+    {\r
+        return _JSeqList.size();\r
+    } //-- int getJSeqCount() \r
+\r
+    /**\r
+     * Method getTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Tree\r
+     */\r
+    public jalview.schemabinding.version2.Tree getTree(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _treeList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Tree) _treeList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Tree getTree(int) \r
+\r
+    /**\r
+     * Method getTree\r
+     * \r
+     * \r
+     * \r
+     * @return Tree\r
+     */\r
+    public jalview.schemabinding.version2.Tree[] getTree()\r
+    {\r
+        int size = _treeList.size();\r
+        jalview.schemabinding.version2.Tree[] mArray = new jalview.schemabinding.version2.Tree[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Tree) _treeList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Tree[] getTree() \r
+\r
+    /**\r
+     * Method getTreeCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getTreeCount()\r
+    {\r
+        return _treeList.size();\r
+    } //-- int getTreeCount() \r
+\r
+    /**\r
+     * Method getUserColours\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return UserColours\r
+     */\r
+    public jalview.schemabinding.version2.UserColours getUserColours(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _userColoursList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.UserColours) _userColoursList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.UserColours getUserColours(int) \r
+\r
+    /**\r
+     * Method getUserColours\r
+     * \r
+     * \r
+     * \r
+     * @return UserColours\r
+     */\r
+    public jalview.schemabinding.version2.UserColours[] getUserColours()\r
+    {\r
+        int size = _userColoursList.size();\r
+        jalview.schemabinding.version2.UserColours[] mArray = new jalview.schemabinding.version2.UserColours[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.UserColours) _userColoursList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.UserColours[] getUserColours() \r
+\r
+    /**\r
+     * Method getUserColoursCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getUserColoursCount()\r
+    {\r
+        return _userColoursList.size();\r
+    } //-- int getUserColoursCount() \r
+\r
+    /**\r
+     * Method getViewport\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Viewport\r
+     */\r
+    public jalview.schemabinding.version2.Viewport getViewport(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _viewportList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Viewport) _viewportList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Viewport getViewport(int) \r
+\r
+    /**\r
+     * Method getViewport\r
+     * \r
+     * \r
+     * \r
+     * @return Viewport\r
+     */\r
+    public jalview.schemabinding.version2.Viewport[] getViewport()\r
+    {\r
+        int size = _viewportList.size();\r
+        jalview.schemabinding.version2.Viewport[] mArray = new jalview.schemabinding.version2.Viewport[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Viewport) _viewportList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Viewport[] getViewport() \r
+\r
+    /**\r
+     * Method getViewportCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getViewportCount()\r
+    {\r
+        return _viewportList.size();\r
+    } //-- int getViewportCount() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllJGroup\r
+     * \r
+     */\r
+    public void removeAllJGroup()\r
+    {\r
+        _JGroupList.removeAllElements();\r
+    } //-- void removeAllJGroup() \r
+\r
+    /**\r
+     * Method removeAllJSeq\r
+     * \r
+     */\r
+    public void removeAllJSeq()\r
+    {\r
+        _JSeqList.removeAllElements();\r
+    } //-- void removeAllJSeq() \r
+\r
+    /**\r
+     * Method removeAllTree\r
+     * \r
+     */\r
+    public void removeAllTree()\r
+    {\r
+        _treeList.removeAllElements();\r
+    } //-- void removeAllTree() \r
+\r
+    /**\r
+     * Method removeAllUserColours\r
+     * \r
+     */\r
+    public void removeAllUserColours()\r
+    {\r
+        _userColoursList.removeAllElements();\r
+    } //-- void removeAllUserColours() \r
+\r
+    /**\r
+     * Method removeAllViewport\r
+     * \r
+     */\r
+    public void removeAllViewport()\r
+    {\r
+        _viewportList.removeAllElements();\r
+    } //-- void removeAllViewport() \r
+\r
+    /**\r
+     * Method removeJGroup\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return JGroup\r
+     */\r
+    public jalview.schemabinding.version2.JGroup removeJGroup(int index)\r
+    {\r
+        java.lang.Object obj = _JGroupList.elementAt(index);\r
+        _JGroupList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.JGroup) obj;\r
+    } //-- jalview.schemabinding.version2.JGroup removeJGroup(int) \r
+\r
+    /**\r
+     * Method removeJSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return JSeq\r
+     */\r
+    public jalview.schemabinding.version2.JSeq removeJSeq(int index)\r
+    {\r
+        java.lang.Object obj = _JSeqList.elementAt(index);\r
+        _JSeqList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.JSeq) obj;\r
+    } //-- jalview.schemabinding.version2.JSeq removeJSeq(int) \r
+\r
+    /**\r
+     * Method removeTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Tree\r
+     */\r
+    public jalview.schemabinding.version2.Tree removeTree(int index)\r
+    {\r
+        java.lang.Object obj = _treeList.elementAt(index);\r
+        _treeList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Tree) obj;\r
+    } //-- jalview.schemabinding.version2.Tree removeTree(int) \r
+\r
+    /**\r
+     * Method removeUserColours\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return UserColours\r
+     */\r
+    public jalview.schemabinding.version2.UserColours removeUserColours(int index)\r
+    {\r
+        java.lang.Object obj = _userColoursList.elementAt(index);\r
+        _userColoursList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.UserColours) obj;\r
+    } //-- jalview.schemabinding.version2.UserColours removeUserColours(int) \r
+\r
+    /**\r
+     * Method removeViewport\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Viewport\r
+     */\r
+    public jalview.schemabinding.version2.Viewport removeViewport(int index)\r
+    {\r
+        java.lang.Object obj = _viewportList.elementAt(index);\r
+        _viewportList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Viewport) obj;\r
+    } //-- jalview.schemabinding.version2.Viewport removeViewport(int) \r
+\r
+    /**\r
+     * Sets the value of field 'featureSettings'.\r
+     * \r
+     * @param featureSettings the value of field 'featureSettings'.\r
+     */\r
+    public void setFeatureSettings(jalview.schemabinding.version2.FeatureSettings featureSettings)\r
+    {\r
+        this._featureSettings = featureSettings;\r
+    } //-- void setFeatureSettings(jalview.schemabinding.version2.FeatureSettings) \r
+\r
+    /**\r
+     * Method setJGroup\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vJGroup\r
+     */\r
+    public void setJGroup(int index, jalview.schemabinding.version2.JGroup vJGroup)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _JGroupList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _JGroupList.setElementAt(vJGroup, index);\r
+    } //-- void setJGroup(int, jalview.schemabinding.version2.JGroup) \r
+\r
+    /**\r
+     * Method setJGroup\r
+     * \r
+     * \r
+     * \r
+     * @param JGroupArray\r
+     */\r
+    public void setJGroup(jalview.schemabinding.version2.JGroup[] JGroupArray)\r
+    {\r
+        //-- copy array\r
+        _JGroupList.removeAllElements();\r
+        for (int i = 0; i < JGroupArray.length; i++) {\r
+            _JGroupList.addElement(JGroupArray[i]);\r
+        }\r
+    } //-- void setJGroup(jalview.schemabinding.version2.JGroup) \r
+\r
+    /**\r
+     * Method setJSeq\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vJSeq\r
+     */\r
+    public void setJSeq(int index, jalview.schemabinding.version2.JSeq vJSeq)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _JSeqList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _JSeqList.setElementAt(vJSeq, index);\r
+    } //-- void setJSeq(int, jalview.schemabinding.version2.JSeq) \r
+\r
+    /**\r
+     * Method setJSeq\r
+     * \r
+     * \r
+     * \r
+     * @param JSeqArray\r
+     */\r
+    public void setJSeq(jalview.schemabinding.version2.JSeq[] JSeqArray)\r
+    {\r
+        //-- copy array\r
+        _JSeqList.removeAllElements();\r
+        for (int i = 0; i < JSeqArray.length; i++) {\r
+            _JSeqList.addElement(JSeqArray[i]);\r
+        }\r
+    } //-- void setJSeq(jalview.schemabinding.version2.JSeq) \r
+\r
+    /**\r
+     * Method setTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vTree\r
+     */\r
+    public void setTree(int index, jalview.schemabinding.version2.Tree vTree)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _treeList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _treeList.setElementAt(vTree, index);\r
+    } //-- void setTree(int, jalview.schemabinding.version2.Tree) \r
+\r
+    /**\r
+     * Method setTree\r
+     * \r
+     * \r
+     * \r
+     * @param treeArray\r
+     */\r
+    public void setTree(jalview.schemabinding.version2.Tree[] treeArray)\r
+    {\r
+        //-- copy array\r
+        _treeList.removeAllElements();\r
+        for (int i = 0; i < treeArray.length; i++) {\r
+            _treeList.addElement(treeArray[i]);\r
+        }\r
+    } //-- void setTree(jalview.schemabinding.version2.Tree) \r
+\r
+    /**\r
+     * Method setUserColours\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vUserColours\r
+     */\r
+    public void setUserColours(int index, jalview.schemabinding.version2.UserColours vUserColours)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _userColoursList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _userColoursList.setElementAt(vUserColours, index);\r
+    } //-- void setUserColours(int, jalview.schemabinding.version2.UserColours) \r
+\r
+    /**\r
+     * Method setUserColours\r
+     * \r
+     * \r
+     * \r
+     * @param userColoursArray\r
+     */\r
+    public void setUserColours(jalview.schemabinding.version2.UserColours[] userColoursArray)\r
+    {\r
+        //-- copy array\r
+        _userColoursList.removeAllElements();\r
+        for (int i = 0; i < userColoursArray.length; i++) {\r
+            _userColoursList.addElement(userColoursArray[i]);\r
+        }\r
+    } //-- void setUserColours(jalview.schemabinding.version2.UserColours) \r
+\r
+    /**\r
+     * Method setViewport\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vViewport\r
+     */\r
+    public void setViewport(int index, jalview.schemabinding.version2.Viewport vViewport)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _viewportList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _viewportList.setElementAt(vViewport, index);\r
+    } //-- void setViewport(int, jalview.schemabinding.version2.Viewport) \r
+\r
+    /**\r
+     * Method setViewport\r
+     * \r
+     * \r
+     * \r
+     * @param viewportArray\r
+     */\r
+    public void setViewport(jalview.schemabinding.version2.Viewport[] viewportArray)\r
+    {\r
+        //-- copy array\r
+        _viewportList.removeAllElements();\r
+        for (int i = 0; i < viewportArray.length; i++) {\r
+            _viewportList.addElement(viewportArray[i]);\r
+        }\r
+    } //-- void setViewport(jalview.schemabinding.version2.Viewport) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.JalviewModelSequence) Unmarshaller.unmarshal(jalview.schemabinding.version2.JalviewModelSequence.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JalviewModelSequenceDescriptor.java b/src/jalview/schemabinding/version2/JalviewModelSequenceDescriptor.java
new file mode 100755 (executable)
index 0000000..7f5bd43
--- /dev/null
@@ -0,0 +1,383 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class JalviewModelSequenceDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JalviewModelSequenceDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JalviewModelSequenceDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- initialize element descriptors\r
+        \r
+        //-- _JSeqList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.JSeq.class, "_JSeqList", "JSeq", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModelSequence target = (JalviewModelSequence) object;\r
+                return target.getJSeq();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModelSequence target = (JalviewModelSequence) object;\r
+                    target.addJSeq( (jalview.schemabinding.version2.JSeq) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.JSeq();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _JSeqList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _JGroupList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.JGroup.class, "_JGroupList", "JGroup", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModelSequence target = (JalviewModelSequence) object;\r
+                return target.getJGroup();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModelSequence target = (JalviewModelSequence) object;\r
+                    target.addJGroup( (jalview.schemabinding.version2.JGroup) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.JGroup();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _JGroupList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _viewportList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Viewport.class, "_viewportList", "Viewport", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModelSequence target = (JalviewModelSequence) object;\r
+                return target.getViewport();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModelSequence target = (JalviewModelSequence) object;\r
+                    target.addViewport( (jalview.schemabinding.version2.Viewport) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Viewport();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _viewportList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _userColoursList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.UserColours.class, "_userColoursList", "UserColours", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModelSequence target = (JalviewModelSequence) object;\r
+                return target.getUserColours();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModelSequence target = (JalviewModelSequence) object;\r
+                    target.addUserColours( (jalview.schemabinding.version2.UserColours) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.UserColours();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _userColoursList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _treeList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Tree.class, "_treeList", "tree", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModelSequence target = (JalviewModelSequence) object;\r
+                return target.getTree();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModelSequence target = (JalviewModelSequence) object;\r
+                    target.addTree( (jalview.schemabinding.version2.Tree) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Tree();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _treeList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _featureSettings\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.FeatureSettings.class, "_featureSettings", "FeatureSettings", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewModelSequence target = (JalviewModelSequence) object;\r
+                return target.getFeatureSettings();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewModelSequence target = (JalviewModelSequence) object;\r
+                    target.setFeatureSettings( (jalview.schemabinding.version2.FeatureSettings) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.FeatureSettings();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _featureSettings\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.JalviewModelSequenceDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.JalviewModelSequence.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JalviewUserColours.java b/src/jalview/schemabinding/version2/JalviewUserColours.java
new file mode 100755 (executable)
index 0000000..7963596
--- /dev/null
@@ -0,0 +1,300 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class JalviewUserColours.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JalviewUserColours implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _schemeName\r
+     */\r
+    private java.lang.String _schemeName;\r
+\r
+    /**\r
+     * Field _colourList\r
+     */\r
+    private java.util.Vector _colourList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JalviewUserColours() {\r
+        super();\r
+        _colourList = new Vector();\r
+    } //-- jalview.schemabinding.version2.JalviewUserColours()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addColour\r
+     * \r
+     * \r
+     * \r
+     * @param vColour\r
+     */\r
+    public void addColour(jalview.schemabinding.version2.Colour vColour)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _colourList.addElement(vColour);\r
+    } //-- void addColour(jalview.schemabinding.version2.Colour) \r
+\r
+    /**\r
+     * Method addColour\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vColour\r
+     */\r
+    public void addColour(int index, jalview.schemabinding.version2.Colour vColour)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _colourList.insertElementAt(vColour, index);\r
+    } //-- void addColour(int, jalview.schemabinding.version2.Colour) \r
+\r
+    /**\r
+     * Method enumerateColour\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateColour()\r
+    {\r
+        return _colourList.elements();\r
+    } //-- java.util.Enumeration enumerateColour() \r
+\r
+    /**\r
+     * Method getColour\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Colour\r
+     */\r
+    public jalview.schemabinding.version2.Colour getColour(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _colourList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Colour) _colourList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Colour getColour(int) \r
+\r
+    /**\r
+     * Method getColour\r
+     * \r
+     * \r
+     * \r
+     * @return Colour\r
+     */\r
+    public jalview.schemabinding.version2.Colour[] getColour()\r
+    {\r
+        int size = _colourList.size();\r
+        jalview.schemabinding.version2.Colour[] mArray = new jalview.schemabinding.version2.Colour[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Colour) _colourList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Colour[] getColour() \r
+\r
+    /**\r
+     * Method getColourCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getColourCount()\r
+    {\r
+        return _colourList.size();\r
+    } //-- int getColourCount() \r
+\r
+    /**\r
+     * Returns the value of field 'schemeName'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'schemeName'.\r
+     */\r
+    public java.lang.String getSchemeName()\r
+    {\r
+        return this._schemeName;\r
+    } //-- java.lang.String getSchemeName() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllColour\r
+     * \r
+     */\r
+    public void removeAllColour()\r
+    {\r
+        _colourList.removeAllElements();\r
+    } //-- void removeAllColour() \r
+\r
+    /**\r
+     * Method removeColour\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Colour\r
+     */\r
+    public jalview.schemabinding.version2.Colour removeColour(int index)\r
+    {\r
+        java.lang.Object obj = _colourList.elementAt(index);\r
+        _colourList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Colour) obj;\r
+    } //-- jalview.schemabinding.version2.Colour removeColour(int) \r
+\r
+    /**\r
+     * Method setColour\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vColour\r
+     */\r
+    public void setColour(int index, jalview.schemabinding.version2.Colour vColour)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _colourList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _colourList.setElementAt(vColour, index);\r
+    } //-- void setColour(int, jalview.schemabinding.version2.Colour) \r
+\r
+    /**\r
+     * Method setColour\r
+     * \r
+     * \r
+     * \r
+     * @param colourArray\r
+     */\r
+    public void setColour(jalview.schemabinding.version2.Colour[] colourArray)\r
+    {\r
+        //-- copy array\r
+        _colourList.removeAllElements();\r
+        for (int i = 0; i < colourArray.length; i++) {\r
+            _colourList.addElement(colourArray[i]);\r
+        }\r
+    } //-- void setColour(jalview.schemabinding.version2.Colour) \r
+\r
+    /**\r
+     * Sets the value of field 'schemeName'.\r
+     * \r
+     * @param schemeName the value of field 'schemeName'.\r
+     */\r
+    public void setSchemeName(java.lang.String schemeName)\r
+    {\r
+        this._schemeName = schemeName;\r
+    } //-- void setSchemeName(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.JalviewUserColours) Unmarshaller.unmarshal(jalview.schemabinding.version2.JalviewUserColours.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/JalviewUserColoursDescriptor.java b/src/jalview/schemabinding/version2/JalviewUserColoursDescriptor.java
new file mode 100755 (executable)
index 0000000..661d102
--- /dev/null
@@ -0,0 +1,244 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class JalviewUserColoursDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class JalviewUserColoursDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public JalviewUserColoursDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org/colours";\r
+        xmlName = "JalviewUserColours";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _schemeName\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_schemeName", "schemeName", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewUserColours target = (JalviewUserColours) object;\r
+                return target.getSchemeName();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewUserColours target = (JalviewUserColours) object;\r
+                    target.setSchemeName( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _schemeName\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _colourList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Colour.class, "_colourList", "colour", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                JalviewUserColours target = (JalviewUserColours) object;\r
+                return target.getColour();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    JalviewUserColours target = (JalviewUserColours) object;\r
+                    target.addColour( (jalview.schemabinding.version2.Colour) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Colour();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _colourList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.JalviewUserColoursDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.JalviewUserColours.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Pdbentry.java b/src/jalview/schemabinding/version2/Pdbentry.java
new file mode 100755 (executable)
index 0000000..15694db
--- /dev/null
@@ -0,0 +1,326 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Pdbentry.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Pdbentry implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _id\r
+     */\r
+    private java.lang.String _id;\r
+\r
+    /**\r
+     * Field _type\r
+     */\r
+    private java.lang.String _type;\r
+\r
+    /**\r
+     * Field _items\r
+     */\r
+    private java.util.Vector _items;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Pdbentry() {\r
+        super();\r
+        _items = new Vector();\r
+    } //-- jalview.schemabinding.version2.Pdbentry()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addPdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @param vPdbentryItem\r
+     */\r
+    public void addPdbentryItem(jalview.schemabinding.version2.PdbentryItem vPdbentryItem)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _items.addElement(vPdbentryItem);\r
+    } //-- void addPdbentryItem(jalview.schemabinding.version2.PdbentryItem) \r
+\r
+    /**\r
+     * Method addPdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vPdbentryItem\r
+     */\r
+    public void addPdbentryItem(int index, jalview.schemabinding.version2.PdbentryItem vPdbentryItem)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _items.insertElementAt(vPdbentryItem, index);\r
+    } //-- void addPdbentryItem(int, jalview.schemabinding.version2.PdbentryItem) \r
+\r
+    /**\r
+     * Method enumeratePdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumeratePdbentryItem()\r
+    {\r
+        return _items.elements();\r
+    } //-- java.util.Enumeration enumeratePdbentryItem() \r
+\r
+    /**\r
+     * Returns the value of field 'id'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'id'.\r
+     */\r
+    public java.lang.String getId()\r
+    {\r
+        return this._id;\r
+    } //-- java.lang.String getId() \r
+\r
+    /**\r
+     * Method getPdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return PdbentryItem\r
+     */\r
+    public jalview.schemabinding.version2.PdbentryItem getPdbentryItem(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _items.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.PdbentryItem) _items.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.PdbentryItem getPdbentryItem(int) \r
+\r
+    /**\r
+     * Method getPdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @return PdbentryItem\r
+     */\r
+    public jalview.schemabinding.version2.PdbentryItem[] getPdbentryItem()\r
+    {\r
+        int size = _items.size();\r
+        jalview.schemabinding.version2.PdbentryItem[] mArray = new jalview.schemabinding.version2.PdbentryItem[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.PdbentryItem) _items.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.PdbentryItem[] getPdbentryItem() \r
+\r
+    /**\r
+     * Method getPdbentryItemCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getPdbentryItemCount()\r
+    {\r
+        return _items.size();\r
+    } //-- int getPdbentryItemCount() \r
+\r
+    /**\r
+     * Returns the value of field 'type'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'type'.\r
+     */\r
+    public java.lang.String getType()\r
+    {\r
+        return this._type;\r
+    } //-- java.lang.String getType() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllPdbentryItem\r
+     * \r
+     */\r
+    public void removeAllPdbentryItem()\r
+    {\r
+        _items.removeAllElements();\r
+    } //-- void removeAllPdbentryItem() \r
+\r
+    /**\r
+     * Method removePdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return PdbentryItem\r
+     */\r
+    public jalview.schemabinding.version2.PdbentryItem removePdbentryItem(int index)\r
+    {\r
+        java.lang.Object obj = _items.elementAt(index);\r
+        _items.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.PdbentryItem) obj;\r
+    } //-- jalview.schemabinding.version2.PdbentryItem removePdbentryItem(int) \r
+\r
+    /**\r
+     * Sets the value of field 'id'.\r
+     * \r
+     * @param id the value of field 'id'.\r
+     */\r
+    public void setId(java.lang.String id)\r
+    {\r
+        this._id = id;\r
+    } //-- void setId(java.lang.String) \r
+\r
+    /**\r
+     * Method setPdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vPdbentryItem\r
+     */\r
+    public void setPdbentryItem(int index, jalview.schemabinding.version2.PdbentryItem vPdbentryItem)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _items.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _items.setElementAt(vPdbentryItem, index);\r
+    } //-- void setPdbentryItem(int, jalview.schemabinding.version2.PdbentryItem) \r
+\r
+    /**\r
+     * Method setPdbentryItem\r
+     * \r
+     * \r
+     * \r
+     * @param pdbentryItemArray\r
+     */\r
+    public void setPdbentryItem(jalview.schemabinding.version2.PdbentryItem[] pdbentryItemArray)\r
+    {\r
+        //-- copy array\r
+        _items.removeAllElements();\r
+        for (int i = 0; i < pdbentryItemArray.length; i++) {\r
+            _items.addElement(pdbentryItemArray[i]);\r
+        }\r
+    } //-- void setPdbentryItem(jalview.schemabinding.version2.PdbentryItem) \r
+\r
+    /**\r
+     * Sets the value of field 'type'.\r
+     * \r
+     * @param type the value of field 'type'.\r
+     */\r
+    public void setType(java.lang.String type)\r
+    {\r
+        this._type = type;\r
+    } //-- void setType(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Pdbentry) Unmarshaller.unmarshal(jalview.schemabinding.version2.Pdbentry.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/PdbentryDescriptor.java b/src/jalview/schemabinding/version2/PdbentryDescriptor.java
new file mode 100755 (executable)
index 0000000..bb64034
--- /dev/null
@@ -0,0 +1,279 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class PdbentryDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class PdbentryDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public PdbentryDescriptor() {\r
+        super();\r
+        xmlName = "pdbentry";\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _id\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Pdbentry target = (Pdbentry) object;\r
+                return target.getId();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Pdbentry target = (Pdbentry) object;\r
+                    target.setId( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _id\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _type\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_type", "type", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Pdbentry target = (Pdbentry) object;\r
+                return target.getType();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Pdbentry target = (Pdbentry) object;\r
+                    target.setType( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _type\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _items\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.PdbentryItem.class, "_items", (String)null, org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Pdbentry target = (Pdbentry) object;\r
+                return target.getPdbentryItem();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Pdbentry target = (Pdbentry) object;\r
+                    target.addPdbentryItem( (jalview.schemabinding.version2.PdbentryItem) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.PdbentryItem();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setContainer(true);\r
+        desc.setClassDescriptor(new jalview.schemabinding.version2.PdbentryItemDescriptor());\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _items\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.PdbentryDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Pdbentry.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/PdbentryItem.java b/src/jalview/schemabinding/version2/PdbentryItem.java
new file mode 100755 (executable)
index 0000000..6f64036
--- /dev/null
@@ -0,0 +1,197 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.Serializable;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+\r
+/**\r
+ * Class PdbentryItem.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class PdbentryItem implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _propertyList\r
+     */\r
+    private java.util.Vector _propertyList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public PdbentryItem() {\r
+        super();\r
+        _propertyList = new Vector();\r
+    } //-- jalview.schemabinding.version2.PdbentryItem()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addProperty\r
+     * \r
+     * \r
+     * \r
+     * @param vProperty\r
+     */\r
+    public void addProperty(jalview.schemabinding.version2.Property vProperty)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _propertyList.addElement(vProperty);\r
+    } //-- void addProperty(jalview.schemabinding.version2.Property) \r
+\r
+    /**\r
+     * Method addProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vProperty\r
+     */\r
+    public void addProperty(int index, jalview.schemabinding.version2.Property vProperty)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _propertyList.insertElementAt(vProperty, index);\r
+    } //-- void addProperty(int, jalview.schemabinding.version2.Property) \r
+\r
+    /**\r
+     * Method enumerateProperty\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateProperty()\r
+    {\r
+        return _propertyList.elements();\r
+    } //-- java.util.Enumeration enumerateProperty() \r
+\r
+    /**\r
+     * Method getProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Property\r
+     */\r
+    public jalview.schemabinding.version2.Property getProperty(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _propertyList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Property) _propertyList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Property getProperty(int) \r
+\r
+    /**\r
+     * Method getProperty\r
+     * \r
+     * \r
+     * \r
+     * @return Property\r
+     */\r
+    public jalview.schemabinding.version2.Property[] getProperty()\r
+    {\r
+        int size = _propertyList.size();\r
+        jalview.schemabinding.version2.Property[] mArray = new jalview.schemabinding.version2.Property[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Property) _propertyList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Property[] getProperty() \r
+\r
+    /**\r
+     * Method getPropertyCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getPropertyCount()\r
+    {\r
+        return _propertyList.size();\r
+    } //-- int getPropertyCount() \r
+\r
+    /**\r
+     * Method removeAllProperty\r
+     * \r
+     */\r
+    public void removeAllProperty()\r
+    {\r
+        _propertyList.removeAllElements();\r
+    } //-- void removeAllProperty() \r
+\r
+    /**\r
+     * Method removeProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Property\r
+     */\r
+    public jalview.schemabinding.version2.Property removeProperty(int index)\r
+    {\r
+        java.lang.Object obj = _propertyList.elementAt(index);\r
+        _propertyList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Property) obj;\r
+    } //-- jalview.schemabinding.version2.Property removeProperty(int) \r
+\r
+    /**\r
+     * Method setProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vProperty\r
+     */\r
+    public void setProperty(int index, jalview.schemabinding.version2.Property vProperty)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _propertyList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _propertyList.setElementAt(vProperty, index);\r
+    } //-- void setProperty(int, jalview.schemabinding.version2.Property) \r
+\r
+    /**\r
+     * Method setProperty\r
+     * \r
+     * \r
+     * \r
+     * @param propertyArray\r
+     */\r
+    public void setProperty(jalview.schemabinding.version2.Property[] propertyArray)\r
+    {\r
+        //-- copy array\r
+        _propertyList.removeAllElements();\r
+        for (int i = 0; i < propertyArray.length; i++) {\r
+            _propertyList.addElement(propertyArray[i]);\r
+        }\r
+    } //-- void setProperty(jalview.schemabinding.version2.Property) \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/PdbentryItemDescriptor.java b/src/jalview/schemabinding/version2/PdbentryItemDescriptor.java
new file mode 100755 (executable)
index 0000000..d9d36c0
--- /dev/null
@@ -0,0 +1,208 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class PdbentryItemDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class PdbentryItemDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public PdbentryItemDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "pdbentry";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- initialize element descriptors\r
+        \r
+        //-- _propertyList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Property.class, "_propertyList", "property", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                PdbentryItem target = (PdbentryItem) object;\r
+                return target.getProperty();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    PdbentryItem target = (PdbentryItem) object;\r
+                    target.addProperty( (jalview.schemabinding.version2.Property) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Property();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _propertyList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.PdbentryItemDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.PdbentryItem.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Pdbids.java b/src/jalview/schemabinding/version2/Pdbids.java
new file mode 100755 (executable)
index 0000000..53b2e91
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Pdbids.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Pdbids extends Pdbentry \r
+implements java.io.Serializable\r
+{\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Pdbids() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Pdbids()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Pdbids) Unmarshaller.unmarshal(jalview.schemabinding.version2.Pdbids.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/PdbidsDescriptor.java b/src/jalview/schemabinding/version2/PdbidsDescriptor.java
new file mode 100755 (executable)
index 0000000..607f122
--- /dev/null
@@ -0,0 +1,166 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class PdbidsDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class PdbidsDescriptor extends PdbentryDescriptor {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public PdbidsDescriptor() {\r
+        super();\r
+        setExtendsWithoutFlatten(new PdbentryDescriptor());\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "pdbids";\r
+    } //-- jalview.schemabinding.version2.PdbidsDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return super.getExtends();\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        if (identity == null)\r
+            return super.getIdentity();\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Pdbids.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Property.java b/src/jalview/schemabinding/version2/Property.java
new file mode 100755 (executable)
index 0000000..338dd90
--- /dev/null
@@ -0,0 +1,173 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Property.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Property implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _name\r
+     */\r
+    private java.lang.String _name;\r
+\r
+    /**\r
+     * Field _value\r
+     */\r
+    private java.lang.String _value;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Property() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Property()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Returns the value of field 'name'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'name'.\r
+     */\r
+    public java.lang.String getName()\r
+    {\r
+        return this._name;\r
+    } //-- java.lang.String getName() \r
+\r
+    /**\r
+     * Returns the value of field 'value'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'value'.\r
+     */\r
+    public java.lang.String getValue()\r
+    {\r
+        return this._value;\r
+    } //-- java.lang.String getValue() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'name'.\r
+     * \r
+     * @param name the value of field 'name'.\r
+     */\r
+    public void setName(java.lang.String name)\r
+    {\r
+        this._name = name;\r
+    } //-- void setName(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'value'.\r
+     * \r
+     * @param value the value of field 'value'.\r
+     */\r
+    public void setValue(java.lang.String value)\r
+    {\r
+        this._value = value;\r
+    } //-- void setValue(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Property) Unmarshaller.unmarshal(jalview.schemabinding.version2.Property.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/PropertyDescriptor.java b/src/jalview/schemabinding/version2/PropertyDescriptor.java
new file mode 100755 (executable)
index 0000000..e22704c
--- /dev/null
@@ -0,0 +1,246 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class PropertyDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class PropertyDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public PropertyDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "property";\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _name\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Property target = (Property) object;\r
+                return target.getName();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Property target = (Property) object;\r
+                    target.setName( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _name\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _value\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_value", "value", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Property target = (Property) object;\r
+                return target.getValue();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Property target = (Property) object;\r
+                    target.setValue( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _value\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+    } //-- jalview.schemabinding.version2.PropertyDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Property.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Sequence.java b/src/jalview/schemabinding/version2/Sequence.java
new file mode 100755 (executable)
index 0000000..7a15332
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Sequence.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Sequence extends SequenceType \r
+implements java.io.Serializable\r
+{\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Sequence() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Sequence()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Sequence) Unmarshaller.unmarshal(jalview.schemabinding.version2.Sequence.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/SequenceDescriptor.java b/src/jalview/schemabinding/version2/SequenceDescriptor.java
new file mode 100755 (executable)
index 0000000..9e1a7f3
--- /dev/null
@@ -0,0 +1,166 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class SequenceDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class SequenceDescriptor extends SequenceTypeDescriptor {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public SequenceDescriptor() {\r
+        super();\r
+        setExtendsWithoutFlatten(new SequenceTypeDescriptor());\r
+        nsURI = "www.vamsas.ac.uk/jalview/version2";\r
+        xmlName = "Sequence";\r
+    } //-- jalview.schemabinding.version2.SequenceDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return super.getExtends();\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        if (identity == null)\r
+            return super.getIdentity();\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Sequence.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/SequenceSet.java b/src/jalview/schemabinding/version2/SequenceSet.java
new file mode 100755 (executable)
index 0000000..187139d
--- /dev/null
@@ -0,0 +1,504 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class SequenceSet.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class SequenceSet implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _gapChar\r
+     */\r
+    private java.lang.String _gapChar;\r
+\r
+    /**\r
+     * Field _aligned\r
+     */\r
+    private boolean _aligned;\r
+\r
+    /**\r
+     * keeps track of state for field: _aligned\r
+     */\r
+    private boolean _has_aligned;\r
+\r
+    /**\r
+     * Field _sequenceList\r
+     */\r
+    private java.util.Vector _sequenceList;\r
+\r
+    /**\r
+     * Field _annotationList\r
+     */\r
+    private java.util.Vector _annotationList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public SequenceSet() {\r
+        super();\r
+        _sequenceList = new Vector();\r
+        _annotationList = new Vector();\r
+    } //-- jalview.schemabinding.version2.SequenceSet()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @param vAnnotation\r
+     */\r
+    public void addAnnotation(jalview.schemabinding.version2.Annotation vAnnotation)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _annotationList.addElement(vAnnotation);\r
+    } //-- void addAnnotation(jalview.schemabinding.version2.Annotation) \r
+\r
+    /**\r
+     * Method addAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAnnotation\r
+     */\r
+    public void addAnnotation(int index, jalview.schemabinding.version2.Annotation vAnnotation)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _annotationList.insertElementAt(vAnnotation, index);\r
+    } //-- void addAnnotation(int, jalview.schemabinding.version2.Annotation) \r
+\r
+    /**\r
+     * Method addSequence\r
+     * \r
+     * \r
+     * \r
+     * @param vSequence\r
+     */\r
+    public void addSequence(jalview.schemabinding.version2.Sequence vSequence)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _sequenceList.addElement(vSequence);\r
+    } //-- void addSequence(jalview.schemabinding.version2.Sequence) \r
+\r
+    /**\r
+     * Method addSequence\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSequence\r
+     */\r
+    public void addSequence(int index, jalview.schemabinding.version2.Sequence vSequence)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _sequenceList.insertElementAt(vSequence, index);\r
+    } //-- void addSequence(int, jalview.schemabinding.version2.Sequence) \r
+\r
+    /**\r
+     * Method deleteAligned\r
+     * \r
+     */\r
+    public void deleteAligned()\r
+    {\r
+        this._has_aligned= false;\r
+    } //-- void deleteAligned() \r
+\r
+    /**\r
+     * Method enumerateAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateAnnotation()\r
+    {\r
+        return _annotationList.elements();\r
+    } //-- java.util.Enumeration enumerateAnnotation() \r
+\r
+    /**\r
+     * Method enumerateSequence\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateSequence()\r
+    {\r
+        return _sequenceList.elements();\r
+    } //-- java.util.Enumeration enumerateSequence() \r
+\r
+    /**\r
+     * Returns the value of field 'aligned'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'aligned'.\r
+     */\r
+    public boolean getAligned()\r
+    {\r
+        return this._aligned;\r
+    } //-- boolean getAligned() \r
+\r
+    /**\r
+     * Method getAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Annotation\r
+     */\r
+    public jalview.schemabinding.version2.Annotation getAnnotation(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _annotationList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Annotation) _annotationList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Annotation getAnnotation(int) \r
+\r
+    /**\r
+     * Method getAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @return Annotation\r
+     */\r
+    public jalview.schemabinding.version2.Annotation[] getAnnotation()\r
+    {\r
+        int size = _annotationList.size();\r
+        jalview.schemabinding.version2.Annotation[] mArray = new jalview.schemabinding.version2.Annotation[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Annotation) _annotationList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Annotation[] getAnnotation() \r
+\r
+    /**\r
+     * Method getAnnotationCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getAnnotationCount()\r
+    {\r
+        return _annotationList.size();\r
+    } //-- int getAnnotationCount() \r
+\r
+    /**\r
+     * Returns the value of field 'gapChar'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'gapChar'.\r
+     */\r
+    public java.lang.String getGapChar()\r
+    {\r
+        return this._gapChar;\r
+    } //-- java.lang.String getGapChar() \r
+\r
+    /**\r
+     * Method getSequence\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Sequence\r
+     */\r
+    public jalview.schemabinding.version2.Sequence getSequence(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _sequenceList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Sequence) _sequenceList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Sequence getSequence(int) \r
+\r
+    /**\r
+     * Method getSequence\r
+     * \r
+     * \r
+     * \r
+     * @return Sequence\r
+     */\r
+    public jalview.schemabinding.version2.Sequence[] getSequence()\r
+    {\r
+        int size = _sequenceList.size();\r
+        jalview.schemabinding.version2.Sequence[] mArray = new jalview.schemabinding.version2.Sequence[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Sequence) _sequenceList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Sequence[] getSequence() \r
+\r
+    /**\r
+     * Method getSequenceCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getSequenceCount()\r
+    {\r
+        return _sequenceList.size();\r
+    } //-- int getSequenceCount() \r
+\r
+    /**\r
+     * Method hasAligned\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasAligned()\r
+    {\r
+        return this._has_aligned;\r
+    } //-- boolean hasAligned() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllAnnotation\r
+     * \r
+     */\r
+    public void removeAllAnnotation()\r
+    {\r
+        _annotationList.removeAllElements();\r
+    } //-- void removeAllAnnotation() \r
+\r
+    /**\r
+     * Method removeAllSequence\r
+     * \r
+     */\r
+    public void removeAllSequence()\r
+    {\r
+        _sequenceList.removeAllElements();\r
+    } //-- void removeAllSequence() \r
+\r
+    /**\r
+     * Method removeAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Annotation\r
+     */\r
+    public jalview.schemabinding.version2.Annotation removeAnnotation(int index)\r
+    {\r
+        java.lang.Object obj = _annotationList.elementAt(index);\r
+        _annotationList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Annotation) obj;\r
+    } //-- jalview.schemabinding.version2.Annotation removeAnnotation(int) \r
+\r
+    /**\r
+     * Method removeSequence\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Sequence\r
+     */\r
+    public jalview.schemabinding.version2.Sequence removeSequence(int index)\r
+    {\r
+        java.lang.Object obj = _sequenceList.elementAt(index);\r
+        _sequenceList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Sequence) obj;\r
+    } //-- jalview.schemabinding.version2.Sequence removeSequence(int) \r
+\r
+    /**\r
+     * Sets the value of field 'aligned'.\r
+     * \r
+     * @param aligned the value of field 'aligned'.\r
+     */\r
+    public void setAligned(boolean aligned)\r
+    {\r
+        this._aligned = aligned;\r
+        this._has_aligned = true;\r
+    } //-- void setAligned(boolean) \r
+\r
+    /**\r
+     * Method setAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAnnotation\r
+     */\r
+    public void setAnnotation(int index, jalview.schemabinding.version2.Annotation vAnnotation)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _annotationList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _annotationList.setElementAt(vAnnotation, index);\r
+    } //-- void setAnnotation(int, jalview.schemabinding.version2.Annotation) \r
+\r
+    /**\r
+     * Method setAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @param annotationArray\r
+     */\r
+    public void setAnnotation(jalview.schemabinding.version2.Annotation[] annotationArray)\r
+    {\r
+        //-- copy array\r
+        _annotationList.removeAllElements();\r
+        for (int i = 0; i < annotationArray.length; i++) {\r
+            _annotationList.addElement(annotationArray[i]);\r
+        }\r
+    } //-- void setAnnotation(jalview.schemabinding.version2.Annotation) \r
+\r
+    /**\r
+     * Sets the value of field 'gapChar'.\r
+     * \r
+     * @param gapChar the value of field 'gapChar'.\r
+     */\r
+    public void setGapChar(java.lang.String gapChar)\r
+    {\r
+        this._gapChar = gapChar;\r
+    } //-- void setGapChar(java.lang.String) \r
+\r
+    /**\r
+     * Method setSequence\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSequence\r
+     */\r
+    public void setSequence(int index, jalview.schemabinding.version2.Sequence vSequence)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _sequenceList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _sequenceList.setElementAt(vSequence, index);\r
+    } //-- void setSequence(int, jalview.schemabinding.version2.Sequence) \r
+\r
+    /**\r
+     * Method setSequence\r
+     * \r
+     * \r
+     * \r
+     * @param sequenceArray\r
+     */\r
+    public void setSequence(jalview.schemabinding.version2.Sequence[] sequenceArray)\r
+    {\r
+        //-- copy array\r
+        _sequenceList.removeAllElements();\r
+        for (int i = 0; i < sequenceArray.length; i++) {\r
+            _sequenceList.addElement(sequenceArray[i]);\r
+        }\r
+    } //-- void setSequence(jalview.schemabinding.version2.Sequence) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.SequenceSet) Unmarshaller.unmarshal(jalview.schemabinding.version2.SequenceSet.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/SequenceSetDescriptor.java b/src/jalview/schemabinding/version2/SequenceSetDescriptor.java
new file mode 100755 (executable)
index 0000000..1e6c7b5
--- /dev/null
@@ -0,0 +1,323 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class SequenceSetDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class SequenceSetDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public SequenceSetDescriptor() {\r
+        super();\r
+        nsURI = "www.vamsas.ac.uk/jalview/version2";\r
+        xmlName = "SequenceSet";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _gapChar\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_gapChar", "gapChar", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceSet target = (SequenceSet) object;\r
+                return target.getGapChar();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceSet target = (SequenceSet) object;\r
+                    target.setGapChar( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _gapChar\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _aligned\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_aligned", "aligned", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceSet target = (SequenceSet) object;\r
+                if(!target.hasAligned())\r
+                    return null;\r
+                return (target.getAligned() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceSet target = (SequenceSet) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteAligned();\r
+                        return;\r
+                    }\r
+                    target.setAligned( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _aligned\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _sequenceList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Sequence.class, "_sequenceList", "Sequence", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceSet target = (SequenceSet) object;\r
+                return target.getSequence();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceSet target = (SequenceSet) object;\r
+                    target.addSequence( (jalview.schemabinding.version2.Sequence) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Sequence();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _sequenceList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _annotationList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Annotation.class, "_annotationList", "Annotation", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceSet target = (SequenceSet) object;\r
+                return target.getAnnotation();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceSet target = (SequenceSet) object;\r
+                    target.addAnnotation( (jalview.schemabinding.version2.Annotation) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Annotation();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _annotationList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.SequenceSetDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.SequenceSet.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/SequenceType.java b/src/jalview/schemabinding/version2/SequenceType.java
new file mode 100755 (executable)
index 0000000..d413e2d
--- /dev/null
@@ -0,0 +1,225 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class SequenceType.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class SequenceType implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _id\r
+     */\r
+    private java.lang.String _id;\r
+\r
+    /**\r
+     * Field _description\r
+     */\r
+    private java.lang.String _description;\r
+\r
+    /**\r
+     * Field _sequence\r
+     */\r
+    private java.lang.String _sequence;\r
+\r
+    /**\r
+     * Field _name\r
+     */\r
+    private java.lang.String _name;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public SequenceType() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.SequenceType()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Returns the value of field 'description'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'description'.\r
+     */\r
+    public java.lang.String getDescription()\r
+    {\r
+        return this._description;\r
+    } //-- java.lang.String getDescription() \r
+\r
+    /**\r
+     * Returns the value of field 'id'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'id'.\r
+     */\r
+    public java.lang.String getId()\r
+    {\r
+        return this._id;\r
+    } //-- java.lang.String getId() \r
+\r
+    /**\r
+     * Returns the value of field 'name'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'name'.\r
+     */\r
+    public java.lang.String getName()\r
+    {\r
+        return this._name;\r
+    } //-- java.lang.String getName() \r
+\r
+    /**\r
+     * Returns the value of field 'sequence'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'sequence'.\r
+     */\r
+    public java.lang.String getSequence()\r
+    {\r
+        return this._sequence;\r
+    } //-- java.lang.String getSequence() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'description'.\r
+     * \r
+     * @param description the value of field 'description'.\r
+     */\r
+    public void setDescription(java.lang.String description)\r
+    {\r
+        this._description = description;\r
+    } //-- void setDescription(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'id'.\r
+     * \r
+     * @param id the value of field 'id'.\r
+     */\r
+    public void setId(java.lang.String id)\r
+    {\r
+        this._id = id;\r
+    } //-- void setId(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'name'.\r
+     * \r
+     * @param name the value of field 'name'.\r
+     */\r
+    public void setName(java.lang.String name)\r
+    {\r
+        this._name = name;\r
+    } //-- void setName(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'sequence'.\r
+     * \r
+     * @param sequence the value of field 'sequence'.\r
+     */\r
+    public void setSequence(java.lang.String sequence)\r
+    {\r
+        this._sequence = sequence;\r
+    } //-- void setSequence(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.SequenceType) Unmarshaller.unmarshal(jalview.schemabinding.version2.SequenceType.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/SequenceTypeDescriptor.java b/src/jalview/schemabinding/version2/SequenceTypeDescriptor.java
new file mode 100755 (executable)
index 0000000..9977ea3
--- /dev/null
@@ -0,0 +1,325 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class SequenceTypeDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class SequenceTypeDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public SequenceTypeDescriptor() {\r
+        super();\r
+        nsURI = "www.vamsas.ac.uk/jalview/version2";\r
+        xmlName = "SequenceType";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _id\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceType target = (SequenceType) object;\r
+                return target.getId();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceType target = (SequenceType) object;\r
+                    target.setId( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _id\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _description\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_description", "description", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceType target = (SequenceType) object;\r
+                return target.getDescription();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceType target = (SequenceType) object;\r
+                    target.setDescription( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _description\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _sequence\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_sequence", "sequence", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceType target = (SequenceType) object;\r
+                return target.getSequence();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceType target = (SequenceType) object;\r
+                    target.setSequence( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _sequence\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _name\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_name", "name", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                SequenceType target = (SequenceType) object;\r
+                return target.getName();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    SequenceType target = (SequenceType) object;\r
+                    target.setName( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _name\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.SequenceTypeDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.SequenceType.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Setting.java b/src/jalview/schemabinding/version2/Setting.java
new file mode 100755 (executable)
index 0000000..668ef9d
--- /dev/null
@@ -0,0 +1,253 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Setting.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Setting implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _type\r
+     */\r
+    private java.lang.String _type;\r
+\r
+    /**\r
+     * Field _colour\r
+     */\r
+    private int _colour;\r
+\r
+    /**\r
+     * keeps track of state for field: _colour\r
+     */\r
+    private boolean _has_colour;\r
+\r
+    /**\r
+     * Field _display\r
+     */\r
+    private boolean _display;\r
+\r
+    /**\r
+     * keeps track of state for field: _display\r
+     */\r
+    private boolean _has_display;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Setting() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Setting()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method deleteColour\r
+     * \r
+     */\r
+    public void deleteColour()\r
+    {\r
+        this._has_colour= false;\r
+    } //-- void deleteColour() \r
+\r
+    /**\r
+     * Method deleteDisplay\r
+     * \r
+     */\r
+    public void deleteDisplay()\r
+    {\r
+        this._has_display= false;\r
+    } //-- void deleteDisplay() \r
+\r
+    /**\r
+     * Returns the value of field 'colour'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'colour'.\r
+     */\r
+    public int getColour()\r
+    {\r
+        return this._colour;\r
+    } //-- int getColour() \r
+\r
+    /**\r
+     * Returns the value of field 'display'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'display'.\r
+     */\r
+    public boolean getDisplay()\r
+    {\r
+        return this._display;\r
+    } //-- boolean getDisplay() \r
+\r
+    /**\r
+     * Returns the value of field 'type'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'type'.\r
+     */\r
+    public java.lang.String getType()\r
+    {\r
+        return this._type;\r
+    } //-- java.lang.String getType() \r
+\r
+    /**\r
+     * Method hasColour\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasColour()\r
+    {\r
+        return this._has_colour;\r
+    } //-- boolean hasColour() \r
+\r
+    /**\r
+     * Method hasDisplay\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasDisplay()\r
+    {\r
+        return this._has_display;\r
+    } //-- boolean hasDisplay() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'colour'.\r
+     * \r
+     * @param colour the value of field 'colour'.\r
+     */\r
+    public void setColour(int colour)\r
+    {\r
+        this._colour = colour;\r
+        this._has_colour = true;\r
+    } //-- void setColour(int) \r
+\r
+    /**\r
+     * Sets the value of field 'display'.\r
+     * \r
+     * @param display the value of field 'display'.\r
+     */\r
+    public void setDisplay(boolean display)\r
+    {\r
+        this._display = display;\r
+        this._has_display = true;\r
+    } //-- void setDisplay(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'type'.\r
+     * \r
+     * @param type the value of field 'type'.\r
+     */\r
+    public void setType(java.lang.String type)\r
+    {\r
+        this._type = type;\r
+    } //-- void setType(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Setting) Unmarshaller.unmarshal(jalview.schemabinding.version2.Setting.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/SettingDescriptor.java b/src/jalview/schemabinding/version2/SettingDescriptor.java
new file mode 100755 (executable)
index 0000000..6cadc16
--- /dev/null
@@ -0,0 +1,290 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class SettingDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class SettingDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public SettingDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "setting";\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _type\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_type", "type", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Setting target = (Setting) object;\r
+                return target.getType();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Setting target = (Setting) object;\r
+                    target.setType( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _type\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _colour\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_colour", "colour", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Setting target = (Setting) object;\r
+                if(!target.hasColour())\r
+                    return null;\r
+                return new java.lang.Integer(target.getColour());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Setting target = (Setting) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setColour( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _colour\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _display\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_display", "display", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Setting target = (Setting) object;\r
+                if(!target.hasDisplay())\r
+                    return null;\r
+                return (target.getDisplay() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Setting target = (Setting) object;\r
+                    // ignore null values for non optional primitives\r
+                    if (value == null) return;\r
+                    \r
+                    target.setDisplay( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setRequired(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _display\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+    } //-- jalview.schemabinding.version2.SettingDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Setting.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Tree.java b/src/jalview/schemabinding/version2/Tree.java
new file mode 100755 (executable)
index 0000000..96b2e18
--- /dev/null
@@ -0,0 +1,835 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Tree.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Tree implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _width\r
+     */\r
+    private int _width;\r
+\r
+    /**\r
+     * keeps track of state for field: _width\r
+     */\r
+    private boolean _has_width;\r
+\r
+    /**\r
+     * Field _height\r
+     */\r
+    private int _height;\r
+\r
+    /**\r
+     * keeps track of state for field: _height\r
+     */\r
+    private boolean _has_height;\r
+\r
+    /**\r
+     * Field _xpos\r
+     */\r
+    private int _xpos;\r
+\r
+    /**\r
+     * keeps track of state for field: _xpos\r
+     */\r
+    private boolean _has_xpos;\r
+\r
+    /**\r
+     * Field _ypos\r
+     */\r
+    private int _ypos;\r
+\r
+    /**\r
+     * keeps track of state for field: _ypos\r
+     */\r
+    private boolean _has_ypos;\r
+\r
+    /**\r
+     * Field _fontName\r
+     */\r
+    private java.lang.String _fontName;\r
+\r
+    /**\r
+     * Field _fontSize\r
+     */\r
+    private int _fontSize;\r
+\r
+    /**\r
+     * keeps track of state for field: _fontSize\r
+     */\r
+    private boolean _has_fontSize;\r
+\r
+    /**\r
+     * Field _fontStyle\r
+     */\r
+    private int _fontStyle;\r
+\r
+    /**\r
+     * keeps track of state for field: _fontStyle\r
+     */\r
+    private boolean _has_fontStyle;\r
+\r
+    /**\r
+     * Field _threshold\r
+     */\r
+    private float _threshold;\r
+\r
+    /**\r
+     * keeps track of state for field: _threshold\r
+     */\r
+    private boolean _has_threshold;\r
+\r
+    /**\r
+     * Field _showBootstrap\r
+     */\r
+    private boolean _showBootstrap;\r
+\r
+    /**\r
+     * keeps track of state for field: _showBootstrap\r
+     */\r
+    private boolean _has_showBootstrap;\r
+\r
+    /**\r
+     * Field _showDistances\r
+     */\r
+    private boolean _showDistances;\r
+\r
+    /**\r
+     * keeps track of state for field: _showDistances\r
+     */\r
+    private boolean _has_showDistances;\r
+\r
+    /**\r
+     * Field _markUnlinked\r
+     */\r
+    private boolean _markUnlinked;\r
+\r
+    /**\r
+     * keeps track of state for field: _markUnlinked\r
+     */\r
+    private boolean _has_markUnlinked;\r
+\r
+    /**\r
+     * Field _fitToWindow\r
+     */\r
+    private boolean _fitToWindow;\r
+\r
+    /**\r
+     * keeps track of state for field: _fitToWindow\r
+     */\r
+    private boolean _has_fitToWindow;\r
+\r
+    /**\r
+     * Field _currentTree\r
+     */\r
+    private boolean _currentTree;\r
+\r
+    /**\r
+     * keeps track of state for field: _currentTree\r
+     */\r
+    private boolean _has_currentTree;\r
+\r
+    /**\r
+     * Field _title\r
+     */\r
+    private java.lang.String _title;\r
+\r
+    /**\r
+     * Field _newick\r
+     */\r
+    private java.lang.String _newick;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Tree() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Tree()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method deleteCurrentTree\r
+     * \r
+     */\r
+    public void deleteCurrentTree()\r
+    {\r
+        this._has_currentTree= false;\r
+    } //-- void deleteCurrentTree() \r
+\r
+    /**\r
+     * Method deleteFitToWindow\r
+     * \r
+     */\r
+    public void deleteFitToWindow()\r
+    {\r
+        this._has_fitToWindow= false;\r
+    } //-- void deleteFitToWindow() \r
+\r
+    /**\r
+     * Method deleteFontSize\r
+     * \r
+     */\r
+    public void deleteFontSize()\r
+    {\r
+        this._has_fontSize= false;\r
+    } //-- void deleteFontSize() \r
+\r
+    /**\r
+     * Method deleteFontStyle\r
+     * \r
+     */\r
+    public void deleteFontStyle()\r
+    {\r
+        this._has_fontStyle= false;\r
+    } //-- void deleteFontStyle() \r
+\r
+    /**\r
+     * Method deleteHeight\r
+     * \r
+     */\r
+    public void deleteHeight()\r
+    {\r
+        this._has_height= false;\r
+    } //-- void deleteHeight() \r
+\r
+    /**\r
+     * Method deleteMarkUnlinked\r
+     * \r
+     */\r
+    public void deleteMarkUnlinked()\r
+    {\r
+        this._has_markUnlinked= false;\r
+    } //-- void deleteMarkUnlinked() \r
+\r
+    /**\r
+     * Method deleteShowBootstrap\r
+     * \r
+     */\r
+    public void deleteShowBootstrap()\r
+    {\r
+        this._has_showBootstrap= false;\r
+    } //-- void deleteShowBootstrap() \r
+\r
+    /**\r
+     * Method deleteShowDistances\r
+     * \r
+     */\r
+    public void deleteShowDistances()\r
+    {\r
+        this._has_showDistances= false;\r
+    } //-- void deleteShowDistances() \r
+\r
+    /**\r
+     * Method deleteThreshold\r
+     * \r
+     */\r
+    public void deleteThreshold()\r
+    {\r
+        this._has_threshold= false;\r
+    } //-- void deleteThreshold() \r
+\r
+    /**\r
+     * Method deleteWidth\r
+     * \r
+     */\r
+    public void deleteWidth()\r
+    {\r
+        this._has_width= false;\r
+    } //-- void deleteWidth() \r
+\r
+    /**\r
+     * Method deleteXpos\r
+     * \r
+     */\r
+    public void deleteXpos()\r
+    {\r
+        this._has_xpos= false;\r
+    } //-- void deleteXpos() \r
+\r
+    /**\r
+     * Method deleteYpos\r
+     * \r
+     */\r
+    public void deleteYpos()\r
+    {\r
+        this._has_ypos= false;\r
+    } //-- void deleteYpos() \r
+\r
+    /**\r
+     * Returns the value of field 'currentTree'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'currentTree'.\r
+     */\r
+    public boolean getCurrentTree()\r
+    {\r
+        return this._currentTree;\r
+    } //-- boolean getCurrentTree() \r
+\r
+    /**\r
+     * Returns the value of field 'fitToWindow'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'fitToWindow'.\r
+     */\r
+    public boolean getFitToWindow()\r
+    {\r
+        return this._fitToWindow;\r
+    } //-- boolean getFitToWindow() \r
+\r
+    /**\r
+     * Returns the value of field 'fontName'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'fontName'.\r
+     */\r
+    public java.lang.String getFontName()\r
+    {\r
+        return this._fontName;\r
+    } //-- java.lang.String getFontName() \r
+\r
+    /**\r
+     * Returns the value of field 'fontSize'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'fontSize'.\r
+     */\r
+    public int getFontSize()\r
+    {\r
+        return this._fontSize;\r
+    } //-- int getFontSize() \r
+\r
+    /**\r
+     * Returns the value of field 'fontStyle'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'fontStyle'.\r
+     */\r
+    public int getFontStyle()\r
+    {\r
+        return this._fontStyle;\r
+    } //-- int getFontStyle() \r
+\r
+    /**\r
+     * Returns the value of field 'height'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'height'.\r
+     */\r
+    public int getHeight()\r
+    {\r
+        return this._height;\r
+    } //-- int getHeight() \r
+\r
+    /**\r
+     * Returns the value of field 'markUnlinked'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'markUnlinked'.\r
+     */\r
+    public boolean getMarkUnlinked()\r
+    {\r
+        return this._markUnlinked;\r
+    } //-- boolean getMarkUnlinked() \r
+\r
+    /**\r
+     * Returns the value of field 'newick'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'newick'.\r
+     */\r
+    public java.lang.String getNewick()\r
+    {\r
+        return this._newick;\r
+    } //-- java.lang.String getNewick() \r
+\r
+    /**\r
+     * Returns the value of field 'showBootstrap'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showBootstrap'.\r
+     */\r
+    public boolean getShowBootstrap()\r
+    {\r
+        return this._showBootstrap;\r
+    } //-- boolean getShowBootstrap() \r
+\r
+    /**\r
+     * Returns the value of field 'showDistances'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showDistances'.\r
+     */\r
+    public boolean getShowDistances()\r
+    {\r
+        return this._showDistances;\r
+    } //-- boolean getShowDistances() \r
+\r
+    /**\r
+     * Returns the value of field 'threshold'.\r
+     * \r
+     * @return float\r
+     * @return the value of field 'threshold'.\r
+     */\r
+    public float getThreshold()\r
+    {\r
+        return this._threshold;\r
+    } //-- float getThreshold() \r
+\r
+    /**\r
+     * Returns the value of field 'title'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'title'.\r
+     */\r
+    public java.lang.String getTitle()\r
+    {\r
+        return this._title;\r
+    } //-- java.lang.String getTitle() \r
+\r
+    /**\r
+     * Returns the value of field 'width'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'width'.\r
+     */\r
+    public int getWidth()\r
+    {\r
+        return this._width;\r
+    } //-- int getWidth() \r
+\r
+    /**\r
+     * Returns the value of field 'xpos'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'xpos'.\r
+     */\r
+    public int getXpos()\r
+    {\r
+        return this._xpos;\r
+    } //-- int getXpos() \r
+\r
+    /**\r
+     * Returns the value of field 'ypos'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'ypos'.\r
+     */\r
+    public int getYpos()\r
+    {\r
+        return this._ypos;\r
+    } //-- int getYpos() \r
+\r
+    /**\r
+     * Method hasCurrentTree\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasCurrentTree()\r
+    {\r
+        return this._has_currentTree;\r
+    } //-- boolean hasCurrentTree() \r
+\r
+    /**\r
+     * Method hasFitToWindow\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasFitToWindow()\r
+    {\r
+        return this._has_fitToWindow;\r
+    } //-- boolean hasFitToWindow() \r
+\r
+    /**\r
+     * Method hasFontSize\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasFontSize()\r
+    {\r
+        return this._has_fontSize;\r
+    } //-- boolean hasFontSize() \r
+\r
+    /**\r
+     * Method hasFontStyle\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasFontStyle()\r
+    {\r
+        return this._has_fontStyle;\r
+    } //-- boolean hasFontStyle() \r
+\r
+    /**\r
+     * Method hasHeight\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasHeight()\r
+    {\r
+        return this._has_height;\r
+    } //-- boolean hasHeight() \r
+\r
+    /**\r
+     * Method hasMarkUnlinked\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasMarkUnlinked()\r
+    {\r
+        return this._has_markUnlinked;\r
+    } //-- boolean hasMarkUnlinked() \r
+\r
+    /**\r
+     * Method hasShowBootstrap\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowBootstrap()\r
+    {\r
+        return this._has_showBootstrap;\r
+    } //-- boolean hasShowBootstrap() \r
+\r
+    /**\r
+     * Method hasShowDistances\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowDistances()\r
+    {\r
+        return this._has_showDistances;\r
+    } //-- boolean hasShowDistances() \r
+\r
+    /**\r
+     * Method hasThreshold\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasThreshold()\r
+    {\r
+        return this._has_threshold;\r
+    } //-- boolean hasThreshold() \r
+\r
+    /**\r
+     * Method hasWidth\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasWidth()\r
+    {\r
+        return this._has_width;\r
+    } //-- boolean hasWidth() \r
+\r
+    /**\r
+     * Method hasXpos\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasXpos()\r
+    {\r
+        return this._has_xpos;\r
+    } //-- boolean hasXpos() \r
+\r
+    /**\r
+     * Method hasYpos\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasYpos()\r
+    {\r
+        return this._has_ypos;\r
+    } //-- boolean hasYpos() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'currentTree'.\r
+     * \r
+     * @param currentTree the value of field 'currentTree'.\r
+     */\r
+    public void setCurrentTree(boolean currentTree)\r
+    {\r
+        this._currentTree = currentTree;\r
+        this._has_currentTree = true;\r
+    } //-- void setCurrentTree(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'fitToWindow'.\r
+     * \r
+     * @param fitToWindow the value of field 'fitToWindow'.\r
+     */\r
+    public void setFitToWindow(boolean fitToWindow)\r
+    {\r
+        this._fitToWindow = fitToWindow;\r
+        this._has_fitToWindow = true;\r
+    } //-- void setFitToWindow(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'fontName'.\r
+     * \r
+     * @param fontName the value of field 'fontName'.\r
+     */\r
+    public void setFontName(java.lang.String fontName)\r
+    {\r
+        this._fontName = fontName;\r
+    } //-- void setFontName(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'fontSize'.\r
+     * \r
+     * @param fontSize the value of field 'fontSize'.\r
+     */\r
+    public void setFontSize(int fontSize)\r
+    {\r
+        this._fontSize = fontSize;\r
+        this._has_fontSize = true;\r
+    } //-- void setFontSize(int) \r
+\r
+    /**\r
+     * Sets the value of field 'fontStyle'.\r
+     * \r
+     * @param fontStyle the value of field 'fontStyle'.\r
+     */\r
+    public void setFontStyle(int fontStyle)\r
+    {\r
+        this._fontStyle = fontStyle;\r
+        this._has_fontStyle = true;\r
+    } //-- void setFontStyle(int) \r
+\r
+    /**\r
+     * Sets the value of field 'height'.\r
+     * \r
+     * @param height the value of field 'height'.\r
+     */\r
+    public void setHeight(int height)\r
+    {\r
+        this._height = height;\r
+        this._has_height = true;\r
+    } //-- void setHeight(int) \r
+\r
+    /**\r
+     * Sets the value of field 'markUnlinked'.\r
+     * \r
+     * @param markUnlinked the value of field 'markUnlinked'.\r
+     */\r
+    public void setMarkUnlinked(boolean markUnlinked)\r
+    {\r
+        this._markUnlinked = markUnlinked;\r
+        this._has_markUnlinked = true;\r
+    } //-- void setMarkUnlinked(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'newick'.\r
+     * \r
+     * @param newick the value of field 'newick'.\r
+     */\r
+    public void setNewick(java.lang.String newick)\r
+    {\r
+        this._newick = newick;\r
+    } //-- void setNewick(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'showBootstrap'.\r
+     * \r
+     * @param showBootstrap the value of field 'showBootstrap'.\r
+     */\r
+    public void setShowBootstrap(boolean showBootstrap)\r
+    {\r
+        this._showBootstrap = showBootstrap;\r
+        this._has_showBootstrap = true;\r
+    } //-- void setShowBootstrap(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showDistances'.\r
+     * \r
+     * @param showDistances the value of field 'showDistances'.\r
+     */\r
+    public void setShowDistances(boolean showDistances)\r
+    {\r
+        this._showDistances = showDistances;\r
+        this._has_showDistances = true;\r
+    } //-- void setShowDistances(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'threshold'.\r
+     * \r
+     * @param threshold the value of field 'threshold'.\r
+     */\r
+    public void setThreshold(float threshold)\r
+    {\r
+        this._threshold = threshold;\r
+        this._has_threshold = true;\r
+    } //-- void setThreshold(float) \r
+\r
+    /**\r
+     * Sets the value of field 'title'.\r
+     * \r
+     * @param title the value of field 'title'.\r
+     */\r
+    public void setTitle(java.lang.String title)\r
+    {\r
+        this._title = title;\r
+    } //-- void setTitle(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'width'.\r
+     * \r
+     * @param width the value of field 'width'.\r
+     */\r
+    public void setWidth(int width)\r
+    {\r
+        this._width = width;\r
+        this._has_width = true;\r
+    } //-- void setWidth(int) \r
+\r
+    /**\r
+     * Sets the value of field 'xpos'.\r
+     * \r
+     * @param xpos the value of field 'xpos'.\r
+     */\r
+    public void setXpos(int xpos)\r
+    {\r
+        this._xpos = xpos;\r
+        this._has_xpos = true;\r
+    } //-- void setXpos(int) \r
+\r
+    /**\r
+     * Sets the value of field 'ypos'.\r
+     * \r
+     * @param ypos the value of field 'ypos'.\r
+     */\r
+    public void setYpos(int ypos)\r
+    {\r
+        this._ypos = ypos;\r
+        this._has_ypos = true;\r
+    } //-- void setYpos(int) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Tree) Unmarshaller.unmarshal(jalview.schemabinding.version2.Tree.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/TreeDescriptor.java b/src/jalview/schemabinding/version2/TreeDescriptor.java
new file mode 100755 (executable)
index 0000000..5232c12
--- /dev/null
@@ -0,0 +1,777 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class TreeDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class TreeDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public TreeDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "tree";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _width\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasWidth())\r
+                    return null;\r
+                return new java.lang.Integer(target.getWidth());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteWidth();\r
+                        return;\r
+                    }\r
+                    target.setWidth( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _width\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _height\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasHeight())\r
+                    return null;\r
+                return new java.lang.Integer(target.getHeight());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteHeight();\r
+                        return;\r
+                    }\r
+                    target.setHeight( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _height\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _xpos\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasXpos())\r
+                    return null;\r
+                return new java.lang.Integer(target.getXpos());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteXpos();\r
+                        return;\r
+                    }\r
+                    target.setXpos( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _xpos\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _ypos\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasYpos())\r
+                    return null;\r
+                return new java.lang.Integer(target.getYpos());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteYpos();\r
+                        return;\r
+                    }\r
+                    target.setYpos( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _ypos\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _fontName\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_fontName", "fontName", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                return target.getFontName();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    target.setFontName( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _fontName\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _fontSize\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontSize", "fontSize", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasFontSize())\r
+                    return null;\r
+                return new java.lang.Integer(target.getFontSize());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteFontSize();\r
+                        return;\r
+                    }\r
+                    target.setFontSize( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _fontSize\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _fontStyle\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontStyle", "fontStyle", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasFontStyle())\r
+                    return null;\r
+                return new java.lang.Integer(target.getFontStyle());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteFontStyle();\r
+                        return;\r
+                    }\r
+                    target.setFontStyle( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _fontStyle\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _threshold\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(float.class, "_threshold", "threshold", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasThreshold())\r
+                    return null;\r
+                return new java.lang.Float(target.getThreshold());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteThreshold();\r
+                        return;\r
+                    }\r
+                    target.setThreshold( ((java.lang.Float)value).floatValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _threshold\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            FloatValidator typeValidator = new FloatValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showBootstrap\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showBootstrap", "showBootstrap", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasShowBootstrap())\r
+                    return null;\r
+                return (target.getShowBootstrap() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowBootstrap();\r
+                        return;\r
+                    }\r
+                    target.setShowBootstrap( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showBootstrap\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showDistances\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showDistances", "showDistances", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasShowDistances())\r
+                    return null;\r
+                return (target.getShowDistances() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowDistances();\r
+                        return;\r
+                    }\r
+                    target.setShowDistances( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showDistances\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _markUnlinked\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_markUnlinked", "markUnlinked", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasMarkUnlinked())\r
+                    return null;\r
+                return (target.getMarkUnlinked() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteMarkUnlinked();\r
+                        return;\r
+                    }\r
+                    target.setMarkUnlinked( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _markUnlinked\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _fitToWindow\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_fitToWindow", "fitToWindow", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasFitToWindow())\r
+                    return null;\r
+                return (target.getFitToWindow() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteFitToWindow();\r
+                        return;\r
+                    }\r
+                    target.setFitToWindow( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _fitToWindow\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _currentTree\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_currentTree", "currentTree", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                if(!target.hasCurrentTree())\r
+                    return null;\r
+                return (target.getCurrentTree() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteCurrentTree();\r
+                        return;\r
+                    }\r
+                    target.setCurrentTree( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _currentTree\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _title\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                return target.getTitle();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    target.setTitle( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _title\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _newick\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_newick", "newick", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Tree target = (Tree) object;\r
+                return target.getNewick();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Tree target = (Tree) object;\r
+                    target.setNewick( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _newick\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.TreeDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Tree.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/UserColourScheme.java b/src/jalview/schemabinding/version2/UserColourScheme.java
new file mode 100755 (executable)
index 0000000..00bc181
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class UserColourScheme.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class UserColourScheme extends JalviewUserColours \r
+implements java.io.Serializable\r
+{\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public UserColourScheme() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.UserColourScheme()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.UserColourScheme) Unmarshaller.unmarshal(jalview.schemabinding.version2.UserColourScheme.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/UserColourSchemeDescriptor.java b/src/jalview/schemabinding/version2/UserColourSchemeDescriptor.java
new file mode 100755 (executable)
index 0000000..cf86a11
--- /dev/null
@@ -0,0 +1,166 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class UserColourSchemeDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class UserColourSchemeDescriptor extends JalviewUserColoursDescriptor {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public UserColourSchemeDescriptor() {\r
+        super();\r
+        setExtendsWithoutFlatten(new JalviewUserColoursDescriptor());\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "UserColourScheme";\r
+    } //-- jalview.schemabinding.version2.UserColourSchemeDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return super.getExtends();\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        if (identity == null)\r
+            return super.getIdentity();\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.UserColourScheme.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/UserColours.java b/src/jalview/schemabinding/version2/UserColours.java
new file mode 100755 (executable)
index 0000000..28f2b39
--- /dev/null
@@ -0,0 +1,173 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class UserColours.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class UserColours implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _id\r
+     */\r
+    private java.lang.String _id;\r
+\r
+    /**\r
+     * Field _userColourScheme\r
+     */\r
+    private jalview.schemabinding.version2.UserColourScheme _userColourScheme;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public UserColours() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.UserColours()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Returns the value of field 'id'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'id'.\r
+     */\r
+    public java.lang.String getId()\r
+    {\r
+        return this._id;\r
+    } //-- java.lang.String getId() \r
+\r
+    /**\r
+     * Returns the value of field 'userColourScheme'.\r
+     * \r
+     * @return UserColourScheme\r
+     * @return the value of field 'userColourScheme'.\r
+     */\r
+    public jalview.schemabinding.version2.UserColourScheme getUserColourScheme()\r
+    {\r
+        return this._userColourScheme;\r
+    } //-- jalview.schemabinding.version2.UserColourScheme getUserColourScheme() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'id'.\r
+     * \r
+     * @param id the value of field 'id'.\r
+     */\r
+    public void setId(java.lang.String id)\r
+    {\r
+        this._id = id;\r
+    } //-- void setId(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'userColourScheme'.\r
+     * \r
+     * @param userColourScheme the value of field 'userColourScheme'\r
+     */\r
+    public void setUserColourScheme(jalview.schemabinding.version2.UserColourScheme userColourScheme)\r
+    {\r
+        this._userColourScheme = userColourScheme;\r
+    } //-- void setUserColourScheme(jalview.schemabinding.version2.UserColourScheme) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.UserColours) Unmarshaller.unmarshal(jalview.schemabinding.version2.UserColours.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/UserColoursDescriptor.java b/src/jalview/schemabinding/version2/UserColoursDescriptor.java
new file mode 100755 (executable)
index 0000000..6c42d0b
--- /dev/null
@@ -0,0 +1,245 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class UserColoursDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class UserColoursDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public UserColoursDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "UserColours";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _id\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_id", "id", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                UserColours target = (UserColours) object;\r
+                return target.getId();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    UserColours target = (UserColours) object;\r
+                    target.setId( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _id\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+        //-- _userColourScheme\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.UserColourScheme.class, "_userColourScheme", "UserColourScheme", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                UserColours target = (UserColours) object;\r
+                return target.getUserColourScheme();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    UserColours target = (UserColours) object;\r
+                    target.setUserColourScheme( (jalview.schemabinding.version2.UserColourScheme) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.UserColourScheme();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.jalview.org");\r
+        desc.setRequired(true);\r
+        desc.setMultivalued(false);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _userColourScheme\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(1);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.UserColoursDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.UserColours.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/VAMSAS.java b/src/jalview/schemabinding/version2/VAMSAS.java
new file mode 100755 (executable)
index 0000000..9550690
--- /dev/null
@@ -0,0 +1,576 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class VAMSAS.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class VAMSAS implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _alignmentList\r
+     */\r
+    private java.util.Vector _alignmentList;\r
+\r
+    /**\r
+     * Field _treeList\r
+     */\r
+    private java.util.Vector _treeList;\r
+\r
+    /**\r
+     * Field _sequenceSetList\r
+     */\r
+    private java.util.Vector _sequenceSetList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public VAMSAS() {\r
+        super();\r
+        _alignmentList = new Vector();\r
+        _treeList = new Vector();\r
+        _sequenceSetList = new Vector();\r
+    } //-- jalview.schemabinding.version2.VAMSAS()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addAlignment\r
+     * \r
+     * \r
+     * \r
+     * @param vAlignment\r
+     */\r
+    public void addAlignment(jalview.schemabinding.version2.Alignment vAlignment)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _alignmentList.addElement(vAlignment);\r
+    } //-- void addAlignment(jalview.schemabinding.version2.Alignment) \r
+\r
+    /**\r
+     * Method addAlignment\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAlignment\r
+     */\r
+    public void addAlignment(int index, jalview.schemabinding.version2.Alignment vAlignment)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _alignmentList.insertElementAt(vAlignment, index);\r
+    } //-- void addAlignment(int, jalview.schemabinding.version2.Alignment) \r
+\r
+    /**\r
+     * Method addSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @param vSequenceSet\r
+     */\r
+    public void addSequenceSet(jalview.schemabinding.version2.SequenceSet vSequenceSet)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _sequenceSetList.addElement(vSequenceSet);\r
+    } //-- void addSequenceSet(jalview.schemabinding.version2.SequenceSet) \r
+\r
+    /**\r
+     * Method addSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSequenceSet\r
+     */\r
+    public void addSequenceSet(int index, jalview.schemabinding.version2.SequenceSet vSequenceSet)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _sequenceSetList.insertElementAt(vSequenceSet, index);\r
+    } //-- void addSequenceSet(int, jalview.schemabinding.version2.SequenceSet) \r
+\r
+    /**\r
+     * Method addTree\r
+     * \r
+     * \r
+     * \r
+     * @param vTree\r
+     */\r
+    public void addTree(java.lang.String vTree)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _treeList.addElement(vTree);\r
+    } //-- void addTree(java.lang.String) \r
+\r
+    /**\r
+     * Method addTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vTree\r
+     */\r
+    public void addTree(int index, java.lang.String vTree)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _treeList.insertElementAt(vTree, index);\r
+    } //-- void addTree(int, java.lang.String) \r
+\r
+    /**\r
+     * Method enumerateAlignment\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateAlignment()\r
+    {\r
+        return _alignmentList.elements();\r
+    } //-- java.util.Enumeration enumerateAlignment() \r
+\r
+    /**\r
+     * Method enumerateSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateSequenceSet()\r
+    {\r
+        return _sequenceSetList.elements();\r
+    } //-- java.util.Enumeration enumerateSequenceSet() \r
+\r
+    /**\r
+     * Method enumerateTree\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateTree()\r
+    {\r
+        return _treeList.elements();\r
+    } //-- java.util.Enumeration enumerateTree() \r
+\r
+    /**\r
+     * Method getAlignment\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Alignment\r
+     */\r
+    public jalview.schemabinding.version2.Alignment getAlignment(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _alignmentList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.Alignment) _alignmentList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.Alignment getAlignment(int) \r
+\r
+    /**\r
+     * Method getAlignment\r
+     * \r
+     * \r
+     * \r
+     * @return Alignment\r
+     */\r
+    public jalview.schemabinding.version2.Alignment[] getAlignment()\r
+    {\r
+        int size = _alignmentList.size();\r
+        jalview.schemabinding.version2.Alignment[] mArray = new jalview.schemabinding.version2.Alignment[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.Alignment) _alignmentList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.Alignment[] getAlignment() \r
+\r
+    /**\r
+     * Method getAlignmentCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getAlignmentCount()\r
+    {\r
+        return _alignmentList.size();\r
+    } //-- int getAlignmentCount() \r
+\r
+    /**\r
+     * Method getSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return SequenceSet\r
+     */\r
+    public jalview.schemabinding.version2.SequenceSet getSequenceSet(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _sequenceSetList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (jalview.schemabinding.version2.SequenceSet) _sequenceSetList.elementAt(index);\r
+    } //-- jalview.schemabinding.version2.SequenceSet getSequenceSet(int) \r
+\r
+    /**\r
+     * Method getSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @return SequenceSet\r
+     */\r
+    public jalview.schemabinding.version2.SequenceSet[] getSequenceSet()\r
+    {\r
+        int size = _sequenceSetList.size();\r
+        jalview.schemabinding.version2.SequenceSet[] mArray = new jalview.schemabinding.version2.SequenceSet[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (jalview.schemabinding.version2.SequenceSet) _sequenceSetList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- jalview.schemabinding.version2.SequenceSet[] getSequenceSet() \r
+\r
+    /**\r
+     * Method getSequenceSetCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getSequenceSetCount()\r
+    {\r
+        return _sequenceSetList.size();\r
+    } //-- int getSequenceSetCount() \r
+\r
+    /**\r
+     * Method getTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return String\r
+     */\r
+    public java.lang.String getTree(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _treeList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        \r
+        return (String)_treeList.elementAt(index);\r
+    } //-- java.lang.String getTree(int) \r
+\r
+    /**\r
+     * Method getTree\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String[] getTree()\r
+    {\r
+        int size = _treeList.size();\r
+        java.lang.String[] mArray = new java.lang.String[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (String)_treeList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- java.lang.String[] getTree() \r
+\r
+    /**\r
+     * Method getTreeCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getTreeCount()\r
+    {\r
+        return _treeList.size();\r
+    } //-- int getTreeCount() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAlignment\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Alignment\r
+     */\r
+    public jalview.schemabinding.version2.Alignment removeAlignment(int index)\r
+    {\r
+        java.lang.Object obj = _alignmentList.elementAt(index);\r
+        _alignmentList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.Alignment) obj;\r
+    } //-- jalview.schemabinding.version2.Alignment removeAlignment(int) \r
+\r
+    /**\r
+     * Method removeAllAlignment\r
+     * \r
+     */\r
+    public void removeAllAlignment()\r
+    {\r
+        _alignmentList.removeAllElements();\r
+    } //-- void removeAllAlignment() \r
+\r
+    /**\r
+     * Method removeAllSequenceSet\r
+     * \r
+     */\r
+    public void removeAllSequenceSet()\r
+    {\r
+        _sequenceSetList.removeAllElements();\r
+    } //-- void removeAllSequenceSet() \r
+\r
+    /**\r
+     * Method removeAllTree\r
+     * \r
+     */\r
+    public void removeAllTree()\r
+    {\r
+        _treeList.removeAllElements();\r
+    } //-- void removeAllTree() \r
+\r
+    /**\r
+     * Method removeSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return SequenceSet\r
+     */\r
+    public jalview.schemabinding.version2.SequenceSet removeSequenceSet(int index)\r
+    {\r
+        java.lang.Object obj = _sequenceSetList.elementAt(index);\r
+        _sequenceSetList.removeElementAt(index);\r
+        return (jalview.schemabinding.version2.SequenceSet) obj;\r
+    } //-- jalview.schemabinding.version2.SequenceSet removeSequenceSet(int) \r
+\r
+    /**\r
+     * Method removeTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return String\r
+     */\r
+    public java.lang.String removeTree(int index)\r
+    {\r
+        java.lang.Object obj = _treeList.elementAt(index);\r
+        _treeList.removeElementAt(index);\r
+        return (String)obj;\r
+    } //-- java.lang.String removeTree(int) \r
+\r
+    /**\r
+     * Method setAlignment\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAlignment\r
+     */\r
+    public void setAlignment(int index, jalview.schemabinding.version2.Alignment vAlignment)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _alignmentList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _alignmentList.setElementAt(vAlignment, index);\r
+    } //-- void setAlignment(int, jalview.schemabinding.version2.Alignment) \r
+\r
+    /**\r
+     * Method setAlignment\r
+     * \r
+     * \r
+     * \r
+     * @param alignmentArray\r
+     */\r
+    public void setAlignment(jalview.schemabinding.version2.Alignment[] alignmentArray)\r
+    {\r
+        //-- copy array\r
+        _alignmentList.removeAllElements();\r
+        for (int i = 0; i < alignmentArray.length; i++) {\r
+            _alignmentList.addElement(alignmentArray[i]);\r
+        }\r
+    } //-- void setAlignment(jalview.schemabinding.version2.Alignment) \r
+\r
+    /**\r
+     * Method setSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vSequenceSet\r
+     */\r
+    public void setSequenceSet(int index, jalview.schemabinding.version2.SequenceSet vSequenceSet)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _sequenceSetList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _sequenceSetList.setElementAt(vSequenceSet, index);\r
+    } //-- void setSequenceSet(int, jalview.schemabinding.version2.SequenceSet) \r
+\r
+    /**\r
+     * Method setSequenceSet\r
+     * \r
+     * \r
+     * \r
+     * @param sequenceSetArray\r
+     */\r
+    public void setSequenceSet(jalview.schemabinding.version2.SequenceSet[] sequenceSetArray)\r
+    {\r
+        //-- copy array\r
+        _sequenceSetList.removeAllElements();\r
+        for (int i = 0; i < sequenceSetArray.length; i++) {\r
+            _sequenceSetList.addElement(sequenceSetArray[i]);\r
+        }\r
+    } //-- void setSequenceSet(jalview.schemabinding.version2.SequenceSet) \r
+\r
+    /**\r
+     * Method setTree\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vTree\r
+     */\r
+    public void setTree(int index, java.lang.String vTree)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _treeList.size())) {\r
+            throw new IndexOutOfBoundsException();\r
+        }\r
+        _treeList.setElementAt(vTree, index);\r
+    } //-- void setTree(int, java.lang.String) \r
+\r
+    /**\r
+     * Method setTree\r
+     * \r
+     * \r
+     * \r
+     * @param treeArray\r
+     */\r
+    public void setTree(java.lang.String[] treeArray)\r
+    {\r
+        //-- copy array\r
+        _treeList.removeAllElements();\r
+        for (int i = 0; i < treeArray.length; i++) {\r
+            _treeList.addElement(treeArray[i]);\r
+        }\r
+    } //-- void setTree(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.VAMSAS) Unmarshaller.unmarshal(jalview.schemabinding.version2.VAMSAS.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/VAMSASDescriptor.java b/src/jalview/schemabinding/version2/VAMSASDescriptor.java
new file mode 100755 (executable)
index 0000000..02140e0
--- /dev/null
@@ -0,0 +1,282 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class VAMSASDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class VAMSASDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public VAMSASDescriptor() {\r
+        super();\r
+        nsURI = "www.vamsas.ac.uk/jalview/version2";\r
+        xmlName = "VAMSAS";\r
+        \r
+        //-- set grouping compositor\r
+        setCompositorAsSequence();\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- initialize element descriptors\r
+        \r
+        //-- _alignmentList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.Alignment.class, "_alignmentList", "Alignment", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                VAMSAS target = (VAMSAS) object;\r
+                return target.getAlignment();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    VAMSAS target = (VAMSAS) object;\r
+                    target.addAlignment( (jalview.schemabinding.version2.Alignment) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.Alignment();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _alignmentList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _treeList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_treeList", "Tree", org.exolab.castor.xml.NodeType.Element);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                VAMSAS target = (VAMSAS) object;\r
+                return target.getTree();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    VAMSAS target = (VAMSAS) object;\r
+                    target.addTree( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _treeList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _sequenceSetList\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.SequenceSet.class, "_sequenceSetList", "SequenceSet", org.exolab.castor.xml.NodeType.Element);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                VAMSAS target = (VAMSAS) object;\r
+                return target.getSequenceSet();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    VAMSAS target = (VAMSAS) object;\r
+                    target.addSequenceSet( (jalview.schemabinding.version2.SequenceSet) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return new jalview.schemabinding.version2.SequenceSet();\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        desc.setNameSpaceURI("www.vamsas.ac.uk/jalview/version2");\r
+        desc.setMultivalued(true);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _sequenceSetList\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        fieldValidator.setMinOccurs(0);\r
+        { //-- local scope\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+    } //-- jalview.schemabinding.version2.VAMSASDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.VAMSAS.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/VamsasModel.java b/src/jalview/schemabinding/version2/VamsasModel.java
new file mode 100755 (executable)
index 0000000..4617903
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class VamsasModel.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class VamsasModel extends VAMSAS \r
+implements java.io.Serializable\r
+{\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public VamsasModel() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.VamsasModel()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.VamsasModel) Unmarshaller.unmarshal(jalview.schemabinding.version2.VamsasModel.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/VamsasModelDescriptor.java b/src/jalview/schemabinding/version2/VamsasModelDescriptor.java
new file mode 100755 (executable)
index 0000000..e40d9c8
--- /dev/null
@@ -0,0 +1,166 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class VamsasModelDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class VamsasModelDescriptor extends VAMSASDescriptor {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public VamsasModelDescriptor() {\r
+        super();\r
+        setExtendsWithoutFlatten(new VAMSASDescriptor());\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "vamsasModel";\r
+    } //-- jalview.schemabinding.version2.VamsasModelDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return super.getExtends();\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        if (identity == null)\r
+            return super.getIdentity();\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.VamsasModel.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/Viewport.java b/src/jalview/schemabinding/version2/Viewport.java
new file mode 100755 (executable)
index 0000000..4e6747e
--- /dev/null
@@ -0,0 +1,1420 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Class Viewport.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class Viewport implements java.io.Serializable {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field _conservationSelected\r
+     */\r
+    private boolean _conservationSelected;\r
+\r
+    /**\r
+     * keeps track of state for field: _conservationSelected\r
+     */\r
+    private boolean _has_conservationSelected;\r
+\r
+    /**\r
+     * Field _pidSelected\r
+     */\r
+    private boolean _pidSelected;\r
+\r
+    /**\r
+     * keeps track of state for field: _pidSelected\r
+     */\r
+    private boolean _has_pidSelected;\r
+\r
+    /**\r
+     * Field _bgColour\r
+     */\r
+    private java.lang.String _bgColour;\r
+\r
+    /**\r
+     * Field _consThreshold\r
+     */\r
+    private int _consThreshold;\r
+\r
+    /**\r
+     * keeps track of state for field: _consThreshold\r
+     */\r
+    private boolean _has_consThreshold;\r
+\r
+    /**\r
+     * Field _pidThreshold\r
+     */\r
+    private int _pidThreshold;\r
+\r
+    /**\r
+     * keeps track of state for field: _pidThreshold\r
+     */\r
+    private boolean _has_pidThreshold;\r
+\r
+    /**\r
+     * Field _title\r
+     */\r
+    private java.lang.String _title;\r
+\r
+    /**\r
+     * Field _showFullId\r
+     */\r
+    private boolean _showFullId;\r
+\r
+    /**\r
+     * keeps track of state for field: _showFullId\r
+     */\r
+    private boolean _has_showFullId;\r
+\r
+    /**\r
+     * Field _showText\r
+     */\r
+    private boolean _showText;\r
+\r
+    /**\r
+     * keeps track of state for field: _showText\r
+     */\r
+    private boolean _has_showText;\r
+\r
+    /**\r
+     * Field _showColourText\r
+     */\r
+    private boolean _showColourText;\r
+\r
+    /**\r
+     * keeps track of state for field: _showColourText\r
+     */\r
+    private boolean _has_showColourText;\r
+\r
+    /**\r
+     * Field _showBoxes\r
+     */\r
+    private boolean _showBoxes;\r
+\r
+    /**\r
+     * keeps track of state for field: _showBoxes\r
+     */\r
+    private boolean _has_showBoxes;\r
+\r
+    /**\r
+     * Field _wrapAlignment\r
+     */\r
+    private boolean _wrapAlignment;\r
+\r
+    /**\r
+     * keeps track of state for field: _wrapAlignment\r
+     */\r
+    private boolean _has_wrapAlignment;\r
+\r
+    /**\r
+     * Field _renderGaps\r
+     */\r
+    private boolean _renderGaps;\r
+\r
+    /**\r
+     * keeps track of state for field: _renderGaps\r
+     */\r
+    private boolean _has_renderGaps;\r
+\r
+    /**\r
+     * Field _showSequenceFeatures\r
+     */\r
+    private boolean _showSequenceFeatures;\r
+\r
+    /**\r
+     * keeps track of state for field: _showSequenceFeatures\r
+     */\r
+    private boolean _has_showSequenceFeatures;\r
+\r
+    /**\r
+     * Field _showAnnotation\r
+     */\r
+    private boolean _showAnnotation;\r
+\r
+    /**\r
+     * keeps track of state for field: _showAnnotation\r
+     */\r
+    private boolean _has_showAnnotation;\r
+\r
+    /**\r
+     * Field _showConservation\r
+     */\r
+    private boolean _showConservation;\r
+\r
+    /**\r
+     * keeps track of state for field: _showConservation\r
+     */\r
+    private boolean _has_showConservation;\r
+\r
+    /**\r
+     * Field _showQuality\r
+     */\r
+    private boolean _showQuality;\r
+\r
+    /**\r
+     * keeps track of state for field: _showQuality\r
+     */\r
+    private boolean _has_showQuality;\r
+\r
+    /**\r
+     * Field _showIdentity\r
+     */\r
+    private boolean _showIdentity;\r
+\r
+    /**\r
+     * keeps track of state for field: _showIdentity\r
+     */\r
+    private boolean _has_showIdentity;\r
+\r
+    /**\r
+     * Field _xpos\r
+     */\r
+    private int _xpos;\r
+\r
+    /**\r
+     * keeps track of state for field: _xpos\r
+     */\r
+    private boolean _has_xpos;\r
+\r
+    /**\r
+     * Field _ypos\r
+     */\r
+    private int _ypos;\r
+\r
+    /**\r
+     * keeps track of state for field: _ypos\r
+     */\r
+    private boolean _has_ypos;\r
+\r
+    /**\r
+     * Field _width\r
+     */\r
+    private int _width;\r
+\r
+    /**\r
+     * keeps track of state for field: _width\r
+     */\r
+    private boolean _has_width;\r
+\r
+    /**\r
+     * Field _height\r
+     */\r
+    private int _height;\r
+\r
+    /**\r
+     * keeps track of state for field: _height\r
+     */\r
+    private boolean _has_height;\r
+\r
+    /**\r
+     * Field _startRes\r
+     */\r
+    private int _startRes;\r
+\r
+    /**\r
+     * keeps track of state for field: _startRes\r
+     */\r
+    private boolean _has_startRes;\r
+\r
+    /**\r
+     * Field _startSeq\r
+     */\r
+    private int _startSeq;\r
+\r
+    /**\r
+     * keeps track of state for field: _startSeq\r
+     */\r
+    private boolean _has_startSeq;\r
+\r
+    /**\r
+     * Field _fontName\r
+     */\r
+    private java.lang.String _fontName;\r
+\r
+    /**\r
+     * Field _fontSize\r
+     */\r
+    private int _fontSize;\r
+\r
+    /**\r
+     * keeps track of state for field: _fontSize\r
+     */\r
+    private boolean _has_fontSize;\r
+\r
+    /**\r
+     * Field _fontStyle\r
+     */\r
+    private int _fontStyle;\r
+\r
+    /**\r
+     * keeps track of state for field: _fontStyle\r
+     */\r
+    private boolean _has_fontStyle;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public Viewport() {\r
+        super();\r
+    } //-- jalview.schemabinding.version2.Viewport()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method deleteConsThreshold\r
+     * \r
+     */\r
+    public void deleteConsThreshold()\r
+    {\r
+        this._has_consThreshold= false;\r
+    } //-- void deleteConsThreshold() \r
+\r
+    /**\r
+     * Method deleteConservationSelected\r
+     * \r
+     */\r
+    public void deleteConservationSelected()\r
+    {\r
+        this._has_conservationSelected= false;\r
+    } //-- void deleteConservationSelected() \r
+\r
+    /**\r
+     * Method deleteFontSize\r
+     * \r
+     */\r
+    public void deleteFontSize()\r
+    {\r
+        this._has_fontSize= false;\r
+    } //-- void deleteFontSize() \r
+\r
+    /**\r
+     * Method deleteFontStyle\r
+     * \r
+     */\r
+    public void deleteFontStyle()\r
+    {\r
+        this._has_fontStyle= false;\r
+    } //-- void deleteFontStyle() \r
+\r
+    /**\r
+     * Method deleteHeight\r
+     * \r
+     */\r
+    public void deleteHeight()\r
+    {\r
+        this._has_height= false;\r
+    } //-- void deleteHeight() \r
+\r
+    /**\r
+     * Method deletePidSelected\r
+     * \r
+     */\r
+    public void deletePidSelected()\r
+    {\r
+        this._has_pidSelected= false;\r
+    } //-- void deletePidSelected() \r
+\r
+    /**\r
+     * Method deletePidThreshold\r
+     * \r
+     */\r
+    public void deletePidThreshold()\r
+    {\r
+        this._has_pidThreshold= false;\r
+    } //-- void deletePidThreshold() \r
+\r
+    /**\r
+     * Method deleteRenderGaps\r
+     * \r
+     */\r
+    public void deleteRenderGaps()\r
+    {\r
+        this._has_renderGaps= false;\r
+    } //-- void deleteRenderGaps() \r
+\r
+    /**\r
+     * Method deleteShowAnnotation\r
+     * \r
+     */\r
+    public void deleteShowAnnotation()\r
+    {\r
+        this._has_showAnnotation= false;\r
+    } //-- void deleteShowAnnotation() \r
+\r
+    /**\r
+     * Method deleteShowBoxes\r
+     * \r
+     */\r
+    public void deleteShowBoxes()\r
+    {\r
+        this._has_showBoxes= false;\r
+    } //-- void deleteShowBoxes() \r
+\r
+    /**\r
+     * Method deleteShowColourText\r
+     * \r
+     */\r
+    public void deleteShowColourText()\r
+    {\r
+        this._has_showColourText= false;\r
+    } //-- void deleteShowColourText() \r
+\r
+    /**\r
+     * Method deleteShowConservation\r
+     * \r
+     */\r
+    public void deleteShowConservation()\r
+    {\r
+        this._has_showConservation= false;\r
+    } //-- void deleteShowConservation() \r
+\r
+    /**\r
+     * Method deleteShowFullId\r
+     * \r
+     */\r
+    public void deleteShowFullId()\r
+    {\r
+        this._has_showFullId= false;\r
+    } //-- void deleteShowFullId() \r
+\r
+    /**\r
+     * Method deleteShowIdentity\r
+     * \r
+     */\r
+    public void deleteShowIdentity()\r
+    {\r
+        this._has_showIdentity= false;\r
+    } //-- void deleteShowIdentity() \r
+\r
+    /**\r
+     * Method deleteShowQuality\r
+     * \r
+     */\r
+    public void deleteShowQuality()\r
+    {\r
+        this._has_showQuality= false;\r
+    } //-- void deleteShowQuality() \r
+\r
+    /**\r
+     * Method deleteShowSequenceFeatures\r
+     * \r
+     */\r
+    public void deleteShowSequenceFeatures()\r
+    {\r
+        this._has_showSequenceFeatures= false;\r
+    } //-- void deleteShowSequenceFeatures() \r
+\r
+    /**\r
+     * Method deleteShowText\r
+     * \r
+     */\r
+    public void deleteShowText()\r
+    {\r
+        this._has_showText= false;\r
+    } //-- void deleteShowText() \r
+\r
+    /**\r
+     * Method deleteStartRes\r
+     * \r
+     */\r
+    public void deleteStartRes()\r
+    {\r
+        this._has_startRes= false;\r
+    } //-- void deleteStartRes() \r
+\r
+    /**\r
+     * Method deleteStartSeq\r
+     * \r
+     */\r
+    public void deleteStartSeq()\r
+    {\r
+        this._has_startSeq= false;\r
+    } //-- void deleteStartSeq() \r
+\r
+    /**\r
+     * Method deleteWidth\r
+     * \r
+     */\r
+    public void deleteWidth()\r
+    {\r
+        this._has_width= false;\r
+    } //-- void deleteWidth() \r
+\r
+    /**\r
+     * Method deleteWrapAlignment\r
+     * \r
+     */\r
+    public void deleteWrapAlignment()\r
+    {\r
+        this._has_wrapAlignment= false;\r
+    } //-- void deleteWrapAlignment() \r
+\r
+    /**\r
+     * Method deleteXpos\r
+     * \r
+     */\r
+    public void deleteXpos()\r
+    {\r
+        this._has_xpos= false;\r
+    } //-- void deleteXpos() \r
+\r
+    /**\r
+     * Method deleteYpos\r
+     * \r
+     */\r
+    public void deleteYpos()\r
+    {\r
+        this._has_ypos= false;\r
+    } //-- void deleteYpos() \r
+\r
+    /**\r
+     * Returns the value of field 'bgColour'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'bgColour'.\r
+     */\r
+    public java.lang.String getBgColour()\r
+    {\r
+        return this._bgColour;\r
+    } //-- java.lang.String getBgColour() \r
+\r
+    /**\r
+     * Returns the value of field 'consThreshold'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'consThreshold'.\r
+     */\r
+    public int getConsThreshold()\r
+    {\r
+        return this._consThreshold;\r
+    } //-- int getConsThreshold() \r
+\r
+    /**\r
+     * Returns the value of field 'conservationSelected'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'conservationSelected'.\r
+     */\r
+    public boolean getConservationSelected()\r
+    {\r
+        return this._conservationSelected;\r
+    } //-- boolean getConservationSelected() \r
+\r
+    /**\r
+     * Returns the value of field 'fontName'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'fontName'.\r
+     */\r
+    public java.lang.String getFontName()\r
+    {\r
+        return this._fontName;\r
+    } //-- java.lang.String getFontName() \r
+\r
+    /**\r
+     * Returns the value of field 'fontSize'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'fontSize'.\r
+     */\r
+    public int getFontSize()\r
+    {\r
+        return this._fontSize;\r
+    } //-- int getFontSize() \r
+\r
+    /**\r
+     * Returns the value of field 'fontStyle'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'fontStyle'.\r
+     */\r
+    public int getFontStyle()\r
+    {\r
+        return this._fontStyle;\r
+    } //-- int getFontStyle() \r
+\r
+    /**\r
+     * Returns the value of field 'height'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'height'.\r
+     */\r
+    public int getHeight()\r
+    {\r
+        return this._height;\r
+    } //-- int getHeight() \r
+\r
+    /**\r
+     * Returns the value of field 'pidSelected'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'pidSelected'.\r
+     */\r
+    public boolean getPidSelected()\r
+    {\r
+        return this._pidSelected;\r
+    } //-- boolean getPidSelected() \r
+\r
+    /**\r
+     * Returns the value of field 'pidThreshold'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'pidThreshold'.\r
+     */\r
+    public int getPidThreshold()\r
+    {\r
+        return this._pidThreshold;\r
+    } //-- int getPidThreshold() \r
+\r
+    /**\r
+     * Returns the value of field 'renderGaps'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'renderGaps'.\r
+     */\r
+    public boolean getRenderGaps()\r
+    {\r
+        return this._renderGaps;\r
+    } //-- boolean getRenderGaps() \r
+\r
+    /**\r
+     * Returns the value of field 'showAnnotation'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showAnnotation'.\r
+     */\r
+    public boolean getShowAnnotation()\r
+    {\r
+        return this._showAnnotation;\r
+    } //-- boolean getShowAnnotation() \r
+\r
+    /**\r
+     * Returns the value of field 'showBoxes'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showBoxes'.\r
+     */\r
+    public boolean getShowBoxes()\r
+    {\r
+        return this._showBoxes;\r
+    } //-- boolean getShowBoxes() \r
+\r
+    /**\r
+     * Returns the value of field 'showColourText'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showColourText'.\r
+     */\r
+    public boolean getShowColourText()\r
+    {\r
+        return this._showColourText;\r
+    } //-- boolean getShowColourText() \r
+\r
+    /**\r
+     * Returns the value of field 'showConservation'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showConservation'.\r
+     */\r
+    public boolean getShowConservation()\r
+    {\r
+        return this._showConservation;\r
+    } //-- boolean getShowConservation() \r
+\r
+    /**\r
+     * Returns the value of field 'showFullId'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showFullId'.\r
+     */\r
+    public boolean getShowFullId()\r
+    {\r
+        return this._showFullId;\r
+    } //-- boolean getShowFullId() \r
+\r
+    /**\r
+     * Returns the value of field 'showIdentity'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showIdentity'.\r
+     */\r
+    public boolean getShowIdentity()\r
+    {\r
+        return this._showIdentity;\r
+    } //-- boolean getShowIdentity() \r
+\r
+    /**\r
+     * Returns the value of field 'showQuality'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showQuality'.\r
+     */\r
+    public boolean getShowQuality()\r
+    {\r
+        return this._showQuality;\r
+    } //-- boolean getShowQuality() \r
+\r
+    /**\r
+     * Returns the value of field 'showSequenceFeatures'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showSequenceFeatures'.\r
+     */\r
+    public boolean getShowSequenceFeatures()\r
+    {\r
+        return this._showSequenceFeatures;\r
+    } //-- boolean getShowSequenceFeatures() \r
+\r
+    /**\r
+     * Returns the value of field 'showText'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'showText'.\r
+     */\r
+    public boolean getShowText()\r
+    {\r
+        return this._showText;\r
+    } //-- boolean getShowText() \r
+\r
+    /**\r
+     * Returns the value of field 'startRes'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'startRes'.\r
+     */\r
+    public int getStartRes()\r
+    {\r
+        return this._startRes;\r
+    } //-- int getStartRes() \r
+\r
+    /**\r
+     * Returns the value of field 'startSeq'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'startSeq'.\r
+     */\r
+    public int getStartSeq()\r
+    {\r
+        return this._startSeq;\r
+    } //-- int getStartSeq() \r
+\r
+    /**\r
+     * Returns the value of field 'title'.\r
+     * \r
+     * @return String\r
+     * @return the value of field 'title'.\r
+     */\r
+    public java.lang.String getTitle()\r
+    {\r
+        return this._title;\r
+    } //-- java.lang.String getTitle() \r
+\r
+    /**\r
+     * Returns the value of field 'width'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'width'.\r
+     */\r
+    public int getWidth()\r
+    {\r
+        return this._width;\r
+    } //-- int getWidth() \r
+\r
+    /**\r
+     * Returns the value of field 'wrapAlignment'.\r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'wrapAlignment'.\r
+     */\r
+    public boolean getWrapAlignment()\r
+    {\r
+        return this._wrapAlignment;\r
+    } //-- boolean getWrapAlignment() \r
+\r
+    /**\r
+     * Returns the value of field 'xpos'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'xpos'.\r
+     */\r
+    public int getXpos()\r
+    {\r
+        return this._xpos;\r
+    } //-- int getXpos() \r
+\r
+    /**\r
+     * Returns the value of field 'ypos'.\r
+     * \r
+     * @return int\r
+     * @return the value of field 'ypos'.\r
+     */\r
+    public int getYpos()\r
+    {\r
+        return this._ypos;\r
+    } //-- int getYpos() \r
+\r
+    /**\r
+     * Method hasConsThreshold\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasConsThreshold()\r
+    {\r
+        return this._has_consThreshold;\r
+    } //-- boolean hasConsThreshold() \r
+\r
+    /**\r
+     * Method hasConservationSelected\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasConservationSelected()\r
+    {\r
+        return this._has_conservationSelected;\r
+    } //-- boolean hasConservationSelected() \r
+\r
+    /**\r
+     * Method hasFontSize\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasFontSize()\r
+    {\r
+        return this._has_fontSize;\r
+    } //-- boolean hasFontSize() \r
+\r
+    /**\r
+     * Method hasFontStyle\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasFontStyle()\r
+    {\r
+        return this._has_fontStyle;\r
+    } //-- boolean hasFontStyle() \r
+\r
+    /**\r
+     * Method hasHeight\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasHeight()\r
+    {\r
+        return this._has_height;\r
+    } //-- boolean hasHeight() \r
+\r
+    /**\r
+     * Method hasPidSelected\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasPidSelected()\r
+    {\r
+        return this._has_pidSelected;\r
+    } //-- boolean hasPidSelected() \r
+\r
+    /**\r
+     * Method hasPidThreshold\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasPidThreshold()\r
+    {\r
+        return this._has_pidThreshold;\r
+    } //-- boolean hasPidThreshold() \r
+\r
+    /**\r
+     * Method hasRenderGaps\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasRenderGaps()\r
+    {\r
+        return this._has_renderGaps;\r
+    } //-- boolean hasRenderGaps() \r
+\r
+    /**\r
+     * Method hasShowAnnotation\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowAnnotation()\r
+    {\r
+        return this._has_showAnnotation;\r
+    } //-- boolean hasShowAnnotation() \r
+\r
+    /**\r
+     * Method hasShowBoxes\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowBoxes()\r
+    {\r
+        return this._has_showBoxes;\r
+    } //-- boolean hasShowBoxes() \r
+\r
+    /**\r
+     * Method hasShowColourText\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowColourText()\r
+    {\r
+        return this._has_showColourText;\r
+    } //-- boolean hasShowColourText() \r
+\r
+    /**\r
+     * Method hasShowConservation\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowConservation()\r
+    {\r
+        return this._has_showConservation;\r
+    } //-- boolean hasShowConservation() \r
+\r
+    /**\r
+     * Method hasShowFullId\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowFullId()\r
+    {\r
+        return this._has_showFullId;\r
+    } //-- boolean hasShowFullId() \r
+\r
+    /**\r
+     * Method hasShowIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowIdentity()\r
+    {\r
+        return this._has_showIdentity;\r
+    } //-- boolean hasShowIdentity() \r
+\r
+    /**\r
+     * Method hasShowQuality\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowQuality()\r
+    {\r
+        return this._has_showQuality;\r
+    } //-- boolean hasShowQuality() \r
+\r
+    /**\r
+     * Method hasShowSequenceFeatures\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowSequenceFeatures()\r
+    {\r
+        return this._has_showSequenceFeatures;\r
+    } //-- boolean hasShowSequenceFeatures() \r
+\r
+    /**\r
+     * Method hasShowText\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasShowText()\r
+    {\r
+        return this._has_showText;\r
+    } //-- boolean hasShowText() \r
+\r
+    /**\r
+     * Method hasStartRes\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasStartRes()\r
+    {\r
+        return this._has_startRes;\r
+    } //-- boolean hasStartRes() \r
+\r
+    /**\r
+     * Method hasStartSeq\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasStartSeq()\r
+    {\r
+        return this._has_startSeq;\r
+    } //-- boolean hasStartSeq() \r
+\r
+    /**\r
+     * Method hasWidth\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasWidth()\r
+    {\r
+        return this._has_width;\r
+    } //-- boolean hasWidth() \r
+\r
+    /**\r
+     * Method hasWrapAlignment\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasWrapAlignment()\r
+    {\r
+        return this._has_wrapAlignment;\r
+    } //-- boolean hasWrapAlignment() \r
+\r
+    /**\r
+     * Method hasXpos\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasXpos()\r
+    {\r
+        return this._has_xpos;\r
+    } //-- boolean hasXpos() \r
+\r
+    /**\r
+     * Method hasYpos\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasYpos()\r
+    {\r
+        return this._has_ypos;\r
+    } //-- boolean hasYpos() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Sets the value of field 'bgColour'.\r
+     * \r
+     * @param bgColour the value of field 'bgColour'.\r
+     */\r
+    public void setBgColour(java.lang.String bgColour)\r
+    {\r
+        this._bgColour = bgColour;\r
+    } //-- void setBgColour(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'consThreshold'.\r
+     * \r
+     * @param consThreshold the value of field 'consThreshold'.\r
+     */\r
+    public void setConsThreshold(int consThreshold)\r
+    {\r
+        this._consThreshold = consThreshold;\r
+        this._has_consThreshold = true;\r
+    } //-- void setConsThreshold(int) \r
+\r
+    /**\r
+     * Sets the value of field 'conservationSelected'.\r
+     * \r
+     * @param conservationSelected the value of field\r
+     * 'conservationSelected'.\r
+     */\r
+    public void setConservationSelected(boolean conservationSelected)\r
+    {\r
+        this._conservationSelected = conservationSelected;\r
+        this._has_conservationSelected = true;\r
+    } //-- void setConservationSelected(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'fontName'.\r
+     * \r
+     * @param fontName the value of field 'fontName'.\r
+     */\r
+    public void setFontName(java.lang.String fontName)\r
+    {\r
+        this._fontName = fontName;\r
+    } //-- void setFontName(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'fontSize'.\r
+     * \r
+     * @param fontSize the value of field 'fontSize'.\r
+     */\r
+    public void setFontSize(int fontSize)\r
+    {\r
+        this._fontSize = fontSize;\r
+        this._has_fontSize = true;\r
+    } //-- void setFontSize(int) \r
+\r
+    /**\r
+     * Sets the value of field 'fontStyle'.\r
+     * \r
+     * @param fontStyle the value of field 'fontStyle'.\r
+     */\r
+    public void setFontStyle(int fontStyle)\r
+    {\r
+        this._fontStyle = fontStyle;\r
+        this._has_fontStyle = true;\r
+    } //-- void setFontStyle(int) \r
+\r
+    /**\r
+     * Sets the value of field 'height'.\r
+     * \r
+     * @param height the value of field 'height'.\r
+     */\r
+    public void setHeight(int height)\r
+    {\r
+        this._height = height;\r
+        this._has_height = true;\r
+    } //-- void setHeight(int) \r
+\r
+    /**\r
+     * Sets the value of field 'pidSelected'.\r
+     * \r
+     * @param pidSelected the value of field 'pidSelected'.\r
+     */\r
+    public void setPidSelected(boolean pidSelected)\r
+    {\r
+        this._pidSelected = pidSelected;\r
+        this._has_pidSelected = true;\r
+    } //-- void setPidSelected(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'pidThreshold'.\r
+     * \r
+     * @param pidThreshold the value of field 'pidThreshold'.\r
+     */\r
+    public void setPidThreshold(int pidThreshold)\r
+    {\r
+        this._pidThreshold = pidThreshold;\r
+        this._has_pidThreshold = true;\r
+    } //-- void setPidThreshold(int) \r
+\r
+    /**\r
+     * Sets the value of field 'renderGaps'.\r
+     * \r
+     * @param renderGaps the value of field 'renderGaps'.\r
+     */\r
+    public void setRenderGaps(boolean renderGaps)\r
+    {\r
+        this._renderGaps = renderGaps;\r
+        this._has_renderGaps = true;\r
+    } //-- void setRenderGaps(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showAnnotation'.\r
+     * \r
+     * @param showAnnotation the value of field 'showAnnotation'.\r
+     */\r
+    public void setShowAnnotation(boolean showAnnotation)\r
+    {\r
+        this._showAnnotation = showAnnotation;\r
+        this._has_showAnnotation = true;\r
+    } //-- void setShowAnnotation(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showBoxes'.\r
+     * \r
+     * @param showBoxes the value of field 'showBoxes'.\r
+     */\r
+    public void setShowBoxes(boolean showBoxes)\r
+    {\r
+        this._showBoxes = showBoxes;\r
+        this._has_showBoxes = true;\r
+    } //-- void setShowBoxes(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showColourText'.\r
+     * \r
+     * @param showColourText the value of field 'showColourText'.\r
+     */\r
+    public void setShowColourText(boolean showColourText)\r
+    {\r
+        this._showColourText = showColourText;\r
+        this._has_showColourText = true;\r
+    } //-- void setShowColourText(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showConservation'.\r
+     * \r
+     * @param showConservation the value of field 'showConservation'\r
+     */\r
+    public void setShowConservation(boolean showConservation)\r
+    {\r
+        this._showConservation = showConservation;\r
+        this._has_showConservation = true;\r
+    } //-- void setShowConservation(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showFullId'.\r
+     * \r
+     * @param showFullId the value of field 'showFullId'.\r
+     */\r
+    public void setShowFullId(boolean showFullId)\r
+    {\r
+        this._showFullId = showFullId;\r
+        this._has_showFullId = true;\r
+    } //-- void setShowFullId(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showIdentity'.\r
+     * \r
+     * @param showIdentity the value of field 'showIdentity'.\r
+     */\r
+    public void setShowIdentity(boolean showIdentity)\r
+    {\r
+        this._showIdentity = showIdentity;\r
+        this._has_showIdentity = true;\r
+    } //-- void setShowIdentity(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showQuality'.\r
+     * \r
+     * @param showQuality the value of field 'showQuality'.\r
+     */\r
+    public void setShowQuality(boolean showQuality)\r
+    {\r
+        this._showQuality = showQuality;\r
+        this._has_showQuality = true;\r
+    } //-- void setShowQuality(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showSequenceFeatures'.\r
+     * \r
+     * @param showSequenceFeatures the value of field\r
+     * 'showSequenceFeatures'.\r
+     */\r
+    public void setShowSequenceFeatures(boolean showSequenceFeatures)\r
+    {\r
+        this._showSequenceFeatures = showSequenceFeatures;\r
+        this._has_showSequenceFeatures = true;\r
+    } //-- void setShowSequenceFeatures(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'showText'.\r
+     * \r
+     * @param showText the value of field 'showText'.\r
+     */\r
+    public void setShowText(boolean showText)\r
+    {\r
+        this._showText = showText;\r
+        this._has_showText = true;\r
+    } //-- void setShowText(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'startRes'.\r
+     * \r
+     * @param startRes the value of field 'startRes'.\r
+     */\r
+    public void setStartRes(int startRes)\r
+    {\r
+        this._startRes = startRes;\r
+        this._has_startRes = true;\r
+    } //-- void setStartRes(int) \r
+\r
+    /**\r
+     * Sets the value of field 'startSeq'.\r
+     * \r
+     * @param startSeq the value of field 'startSeq'.\r
+     */\r
+    public void setStartSeq(int startSeq)\r
+    {\r
+        this._startSeq = startSeq;\r
+        this._has_startSeq = true;\r
+    } //-- void setStartSeq(int) \r
+\r
+    /**\r
+     * Sets the value of field 'title'.\r
+     * \r
+     * @param title the value of field 'title'.\r
+     */\r
+    public void setTitle(java.lang.String title)\r
+    {\r
+        this._title = title;\r
+    } //-- void setTitle(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'width'.\r
+     * \r
+     * @param width the value of field 'width'.\r
+     */\r
+    public void setWidth(int width)\r
+    {\r
+        this._width = width;\r
+        this._has_width = true;\r
+    } //-- void setWidth(int) \r
+\r
+    /**\r
+     * Sets the value of field 'wrapAlignment'.\r
+     * \r
+     * @param wrapAlignment the value of field 'wrapAlignment'.\r
+     */\r
+    public void setWrapAlignment(boolean wrapAlignment)\r
+    {\r
+        this._wrapAlignment = wrapAlignment;\r
+        this._has_wrapAlignment = true;\r
+    } //-- void setWrapAlignment(boolean) \r
+\r
+    /**\r
+     * Sets the value of field 'xpos'.\r
+     * \r
+     * @param xpos the value of field 'xpos'.\r
+     */\r
+    public void setXpos(int xpos)\r
+    {\r
+        this._xpos = xpos;\r
+        this._has_xpos = true;\r
+    } //-- void setXpos(int) \r
+\r
+    /**\r
+     * Sets the value of field 'ypos'.\r
+     * \r
+     * @param ypos the value of field 'ypos'.\r
+     */\r
+    public void setYpos(int ypos)\r
+    {\r
+        this._ypos = ypos;\r
+        this._has_ypos = true;\r
+    } //-- void setYpos(int) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return Object\r
+     */\r
+    public static java.lang.Object unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (jalview.schemabinding.version2.Viewport) Unmarshaller.unmarshal(jalview.schemabinding.version2.Viewport.class, reader);\r
+    } //-- java.lang.Object unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r
diff --git a/src/jalview/schemabinding/version2/ViewportDescriptor.java b/src/jalview/schemabinding/version2/ViewportDescriptor.java
new file mode 100755 (executable)
index 0000000..66a3d77
--- /dev/null
@@ -0,0 +1,1221 @@
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.6</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package jalview.schemabinding.version2;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import org.exolab.castor.mapping.AccessMode;\r
+import org.exolab.castor.xml.TypeValidator;\r
+import org.exolab.castor.xml.XMLFieldDescriptor;\r
+import org.exolab.castor.xml.validators.*;\r
+\r
+/**\r
+ * Class ViewportDescriptor.\r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class ViewportDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Field nsPrefix\r
+     */\r
+    private java.lang.String nsPrefix;\r
+\r
+    /**\r
+     * Field nsURI\r
+     */\r
+    private java.lang.String nsURI;\r
+\r
+    /**\r
+     * Field xmlName\r
+     */\r
+    private java.lang.String xmlName;\r
+\r
+    /**\r
+     * Field identity\r
+     */\r
+    private org.exolab.castor.xml.XMLFieldDescriptor identity;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public ViewportDescriptor() {\r
+        super();\r
+        nsURI = "www.jalview.org";\r
+        xmlName = "Viewport";\r
+        org.exolab.castor.xml.util.XMLFieldDescriptorImpl  desc           = null;\r
+        org.exolab.castor.xml.XMLFieldHandler              handler        = null;\r
+        org.exolab.castor.xml.FieldValidator               fieldValidator = null;\r
+        //-- initialize attribute descriptors\r
+        \r
+        //-- _conservationSelected\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_conservationSelected", "conservationSelected", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasConservationSelected())\r
+                    return null;\r
+                return (target.getConservationSelected() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteConservationSelected();\r
+                        return;\r
+                    }\r
+                    target.setConservationSelected( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _conservationSelected\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _pidSelected\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_pidSelected", "pidSelected", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasPidSelected())\r
+                    return null;\r
+                return (target.getPidSelected() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deletePidSelected();\r
+                        return;\r
+                    }\r
+                    target.setPidSelected( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _pidSelected\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _bgColour\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_bgColour", "bgColour", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                return target.getBgColour();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    target.setBgColour( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _bgColour\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _consThreshold\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_consThreshold", "consThreshold", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasConsThreshold())\r
+                    return null;\r
+                return new java.lang.Integer(target.getConsThreshold());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteConsThreshold();\r
+                        return;\r
+                    }\r
+                    target.setConsThreshold( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _consThreshold\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _pidThreshold\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_pidThreshold", "pidThreshold", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasPidThreshold())\r
+                    return null;\r
+                return new java.lang.Integer(target.getPidThreshold());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deletePidThreshold();\r
+                        return;\r
+                    }\r
+                    target.setPidThreshold( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _pidThreshold\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _title\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                return target.getTitle();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    target.setTitle( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _title\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showFullId\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showFullId", "showFullId", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowFullId())\r
+                    return null;\r
+                return (target.getShowFullId() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowFullId();\r
+                        return;\r
+                    }\r
+                    target.setShowFullId( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showFullId\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showText\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showText", "showText", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowText())\r
+                    return null;\r
+                return (target.getShowText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowText();\r
+                        return;\r
+                    }\r
+                    target.setShowText( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showText\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showColourText\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showColourText", "showColourText", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowColourText())\r
+                    return null;\r
+                return (target.getShowColourText() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowColourText();\r
+                        return;\r
+                    }\r
+                    target.setShowColourText( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showColourText\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showBoxes\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showBoxes", "showBoxes", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowBoxes())\r
+                    return null;\r
+                return (target.getShowBoxes() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowBoxes();\r
+                        return;\r
+                    }\r
+                    target.setShowBoxes( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showBoxes\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _wrapAlignment\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_wrapAlignment", "wrapAlignment", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasWrapAlignment())\r
+                    return null;\r
+                return (target.getWrapAlignment() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteWrapAlignment();\r
+                        return;\r
+                    }\r
+                    target.setWrapAlignment( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _wrapAlignment\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _renderGaps\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_renderGaps", "renderGaps", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasRenderGaps())\r
+                    return null;\r
+                return (target.getRenderGaps() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteRenderGaps();\r
+                        return;\r
+                    }\r
+                    target.setRenderGaps( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _renderGaps\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showSequenceFeatures\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showSequenceFeatures", "showSequenceFeatures", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowSequenceFeatures())\r
+                    return null;\r
+                return (target.getShowSequenceFeatures() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowSequenceFeatures();\r
+                        return;\r
+                    }\r
+                    target.setShowSequenceFeatures( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showSequenceFeatures\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showAnnotation\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showAnnotation", "showAnnotation", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowAnnotation())\r
+                    return null;\r
+                return (target.getShowAnnotation() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowAnnotation();\r
+                        return;\r
+                    }\r
+                    target.setShowAnnotation( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showAnnotation\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showConservation\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showConservation", "showConservation", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowConservation())\r
+                    return null;\r
+                return (target.getShowConservation() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowConservation();\r
+                        return;\r
+                    }\r
+                    target.setShowConservation( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showConservation\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showQuality\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showQuality", "showQuality", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowQuality())\r
+                    return null;\r
+                return (target.getShowQuality() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowQuality();\r
+                        return;\r
+                    }\r
+                    target.setShowQuality( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showQuality\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _showIdentity\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_showIdentity", "showIdentity", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasShowIdentity())\r
+                    return null;\r
+                return (target.getShowIdentity() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteShowIdentity();\r
+                        return;\r
+                    }\r
+                    target.setShowIdentity( ((java.lang.Boolean)value).booleanValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _showIdentity\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            BooleanValidator typeValidator = new BooleanValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _xpos\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasXpos())\r
+                    return null;\r
+                return new java.lang.Integer(target.getXpos());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteXpos();\r
+                        return;\r
+                    }\r
+                    target.setXpos( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _xpos\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _ypos\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasYpos())\r
+                    return null;\r
+                return new java.lang.Integer(target.getYpos());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteYpos();\r
+                        return;\r
+                    }\r
+                    target.setYpos( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _ypos\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _width\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasWidth())\r
+                    return null;\r
+                return new java.lang.Integer(target.getWidth());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteWidth();\r
+                        return;\r
+                    }\r
+                    target.setWidth( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _width\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _height\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasHeight())\r
+                    return null;\r
+                return new java.lang.Integer(target.getHeight());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteHeight();\r
+                        return;\r
+                    }\r
+                    target.setHeight( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _height\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _startRes\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_startRes", "startRes", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasStartRes())\r
+                    return null;\r
+                return new java.lang.Integer(target.getStartRes());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteStartRes();\r
+                        return;\r
+                    }\r
+                    target.setStartRes( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _startRes\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _startSeq\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_startSeq", "startSeq", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasStartSeq())\r
+                    return null;\r
+                return new java.lang.Integer(target.getStartSeq());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteStartSeq();\r
+                        return;\r
+                    }\r
+                    target.setStartSeq( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _startSeq\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _fontName\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_fontName", "fontName", org.exolab.castor.xml.NodeType.Attribute);\r
+        desc.setImmutable(true);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                return target.getFontName();\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    target.setFontName( (java.lang.String) value);\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _fontName\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            StringValidator typeValidator = new StringValidator();\r
+            typeValidator.setWhiteSpace("preserve");\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _fontSize\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontSize", "fontSize", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasFontSize())\r
+                    return null;\r
+                return new java.lang.Integer(target.getFontSize());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteFontSize();\r
+                        return;\r
+                    }\r
+                    target.setFontSize( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _fontSize\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- _fontStyle\r
+        desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_fontStyle", "fontStyle", org.exolab.castor.xml.NodeType.Attribute);\r
+        handler = (new org.exolab.castor.xml.XMLFieldHandler() {\r
+            public java.lang.Object getValue( java.lang.Object object ) \r
+                throws IllegalStateException\r
+            {\r
+                Viewport target = (Viewport) object;\r
+                if(!target.hasFontStyle())\r
+                    return null;\r
+                return new java.lang.Integer(target.getFontStyle());\r
+            }\r
+            public void setValue( java.lang.Object object, java.lang.Object value) \r
+                throws IllegalStateException, IllegalArgumentException\r
+            {\r
+                try {\r
+                    Viewport target = (Viewport) object;\r
+                    // if null, use delete method for optional primitives \r
+                    if (value == null) {\r
+                        target.deleteFontStyle();\r
+                        return;\r
+                    }\r
+                    target.setFontStyle( ((java.lang.Integer)value).intValue());\r
+                }\r
+                catch (java.lang.Exception ex) {\r
+                    throw new IllegalStateException(ex.toString());\r
+                }\r
+            }\r
+            public java.lang.Object newInstance( java.lang.Object parent ) {\r
+                return null;\r
+            }\r
+        } );\r
+        desc.setHandler(handler);\r
+        addFieldDescriptor(desc);\r
+        \r
+        //-- validation code for: _fontStyle\r
+        fieldValidator = new org.exolab.castor.xml.FieldValidator();\r
+        { //-- local scope\r
+            IntegerValidator typeValidator= new IntegerValidator();\r
+            fieldValidator.setValidator(typeValidator);\r
+        }\r
+        desc.setValidator(fieldValidator);\r
+        //-- initialize element descriptors\r
+        \r
+    } //-- jalview.schemabinding.version2.ViewportDescriptor()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method getAccessMode\r
+     * \r
+     * \r
+     * \r
+     * @return AccessMode\r
+     */\r
+    public org.exolab.castor.mapping.AccessMode getAccessMode()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.AccessMode getAccessMode() \r
+\r
+    /**\r
+     * Method getExtends\r
+     * \r
+     * \r
+     * \r
+     * @return ClassDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.ClassDescriptor getExtends()\r
+    {\r
+        return null;\r
+    } //-- org.exolab.castor.mapping.ClassDescriptor getExtends() \r
+\r
+    /**\r
+     * Method getIdentity\r
+     * \r
+     * \r
+     * \r
+     * @return FieldDescriptor\r
+     */\r
+    public org.exolab.castor.mapping.FieldDescriptor getIdentity()\r
+    {\r
+        return identity;\r
+    } //-- org.exolab.castor.mapping.FieldDescriptor getIdentity() \r
+\r
+    /**\r
+     * Method getJavaClass\r
+     * \r
+     * \r
+     * \r
+     * @return Class\r
+     */\r
+    public java.lang.Class getJavaClass()\r
+    {\r
+        return jalview.schemabinding.version2.Viewport.class;\r
+    } //-- java.lang.Class getJavaClass() \r
+\r
+    /**\r
+     * Method getNameSpacePrefix\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpacePrefix()\r
+    {\r
+        return nsPrefix;\r
+    } //-- java.lang.String getNameSpacePrefix() \r
+\r
+    /**\r
+     * Method getNameSpaceURI\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getNameSpaceURI()\r
+    {\r
+        return nsURI;\r
+    } //-- java.lang.String getNameSpaceURI() \r
+\r
+    /**\r
+     * Method getValidator\r
+     * \r
+     * \r
+     * \r
+     * @return TypeValidator\r
+     */\r
+    public org.exolab.castor.xml.TypeValidator getValidator()\r
+    {\r
+        return this;\r
+    } //-- org.exolab.castor.xml.TypeValidator getValidator() \r
+\r
+    /**\r
+     * Method getXMLName\r
+     * \r
+     * \r
+     * \r
+     * @return String\r
+     */\r
+    public java.lang.String getXMLName()\r
+    {\r
+        return xmlName;\r
+    } //-- java.lang.String getXMLName() \r
+\r
+}\r