Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleArray2XmlFormatters.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleArray2XmlFormatters.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleArray2XmlFormatters.cs	(revision 1542)
@@ -6,5 +6,5 @@
 
   [EmptyStorableClass]
-  public class DoubleArray2XmlFormatter : NumberArray2XmlFormatter {
+  public class DoubleArray2XmlFormatter : NumberArray2XmlFormatterBase {
 
     public override Type Type {
@@ -14,9 +14,9 @@
     }
 
-    protected override string formatValue(object o) {
+    protected override string FormatValue(object o) {
       return ((double)o).ToString("r", CultureInfo.InvariantCulture);
     }
 
-    protected override object parseValue(string o) {
+    protected override object ParseValue(string o) {
       return double.Parse(o);
     }
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleList2XmlFormatter.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleList2XmlFormatter.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleList2XmlFormatter.cs	(revision 1542)
@@ -8,5 +8,5 @@
 
   [EmptyStorableClass]
-  public class DoubleList2XmlFormatter : NumberEnumeration2XmlFormatter {
+  public class DoubleList2XmlFormatter : NumberEnumeration2XmlFormatterBase {
 
     public override Type Type {
@@ -24,9 +24,9 @@
     }
 
-    protected override string formatValue(object o) {
+    protected override string FormatValue(object o) {
       return ((double)o).ToString("r", CultureInfo.InvariantCulture);
     }
 
-    protected override object parseValue(string o) {
+    protected override object ParseValue(string o) {
       return double.Parse(o);
     }
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntArray2XmlFormatters.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntArray2XmlFormatters.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntArray2XmlFormatters.cs	(revision 1542)
@@ -5,5 +5,5 @@
 
   [EmptyStorableClass]
-  public class IntArray2XmlFormatter : NumberArray2XmlFormatter {
+  public class IntArray2XmlFormatter : NumberArray2XmlFormatterBase {
 
     public override Type Type {
@@ -13,9 +13,9 @@
     }
 
-    protected override string formatValue(object o) {
+    protected override string FormatValue(object o) {
       return o.ToString();
     }
 
-    protected override object parseValue(string o) {
+    protected override object ParseValue(string o) {
       return int.Parse(o);
     }
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntList2XmlFormatter.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntList2XmlFormatter.cs	(revision 1530)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntList2XmlFormatter.cs	(revision 1542)
@@ -7,5 +7,5 @@
 
   [EmptyStorableClass]
-  public class IntList2XmlFormatter : NumberEnumeration2XmlFormatter {
+  public class IntList2XmlFormatter : NumberEnumeration2XmlFormatterBase {
 
     public override Type Type {
@@ -23,9 +23,9 @@
     }
 
-    protected override string formatValue(object o) {
+    protected override string FormatValue(object o) {
       return o.ToString();
     }
 
-    protected override object parseValue(string o) {
+    protected override object ParseValue(string o) {
       return int.Parse(o);
     }
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatterBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatterBase.cs	(revision 1542)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatterBase.cs	(revision 1542)
@@ -0,0 +1,84 @@
+﻿using System.Collections;
+using System.Text;
+using HeuristicLab.Persistence.Interfaces;
+using System;
+
+namespace HeuristicLab.Persistence.Default.Xml.Compact {
+                                                              
+  public abstract class NumberArray2XmlFormatterBase : IFormatter {
+
+    public abstract Type Type { get; }
+    public IFormat Format { get { return XmlFormat.Instance; } }
+    protected virtual string Separator { get { return ";"; } }
+    protected abstract string FormatValue(object o);
+    protected abstract object ParseValue(string o);
+
+    public object DoFormat(object obj) {
+      Array a = (Array)obj;
+      int[] lengths = new int[a.Rank];
+      int[] lowerBounds = new int[a.Rank];
+      StringBuilder sb = new StringBuilder();
+      sb.Append(a.Rank);
+      for (int i = 0; i < a.Rank; i++) {
+        sb.Append(Separator);
+        sb.Append(a.GetLength(i));
+        lengths[i] = a.GetLength(i);
+      }
+      for (int i = 0; i < a.Rank; i++) {
+        sb.Append(Separator);
+        sb.Append(a.GetLowerBound(i));
+        lowerBounds[i] = a.GetLowerBound(i);
+      }
+      int[] positions = (int[])lowerBounds.Clone();
+      while (positions[a.Rank - 1] < lengths[a.Rank - 1] + lowerBounds[a.Rank - 1]) {        
+        sb.Append(Separator);
+        sb.Append(FormatValue(a.GetValue(positions)));
+        positions[0] += 1;
+        for (int i = 0; i < a.Rank - 1; i++) {
+          if (positions[i] >= lengths[i] + lowerBounds[i]) {
+            positions[i] = lowerBounds[i];
+            positions[i + 1] += 1;
+          } else {
+            break;
+          }
+        }
+      }      
+      return sb.ToString();
+    }
+
+    public object Parse(object o) {
+      IEnumerator values =
+        ((string)o)
+        .Split(new[] { Separator },
+        StringSplitOptions.RemoveEmptyEntries).GetEnumerator();
+      values.MoveNext();
+      int rank = int.Parse((string)values.Current);
+      int[] lengths = new int[rank];
+      for (int i = 0; i < rank; i++) {
+        values.MoveNext();
+        lengths[i] = int.Parse((string)values.Current);
+      }
+      int[] lowerBounds = new int[rank];
+      for (int i = 0; i < rank; i++) {
+        values.MoveNext();
+        lowerBounds[i] = int.Parse((string)values.Current);
+      }
+      Array a = Array.CreateInstance(this.Type.GetElementType(), lengths, lowerBounds);
+      int[] positions = new int[rank];
+      while (values.MoveNext()) {
+        a.SetValue(ParseValue((string)values.Current), positions);
+        positions[0] += 1;
+        for (int i = 0; i < rank - 1; i++) {
+          if (positions[i] >= lengths[i]) {
+            positions[i] = 0;
+            positions[i + 1] += 1;
+          } else {
+            break;
+          }
+        }
+      }
+      return a;
+    }
+  }
+  
+}
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatters.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatters.cs	(revision 1530)
+++ 	(revision )
@@ -1,86 +1,0 @@
-﻿using System.Collections;
-using System.Text;
-using HeuristicLab.Persistence.Interfaces;
-using System;
-using HeuristicLab.Persistence.Default.ViewOnly;
-
-namespace HeuristicLab.Persistence.Default.Xml.Compact {
-                                                              
-  public abstract class NumberArray2XmlFormatter : IFormatter {
-
-    public abstract Type Type { get; }
-    public IFormat Format { get { return XmlFormat.Instance; } }
-    protected virtual string Separator { get { return ";"; } }
-    protected abstract string formatValue(object o);
-    protected abstract object parseValue(string o);
-
-    public object DoFormat(object obj) {
-      Array a = (Array)obj;
-      int[] lengths = new int[a.Rank];
-      int[] lowerBounds = new int[a.Rank];
-      StringBuilder sb = new StringBuilder();
-      sb.Append(a.Rank);
-      for (int i = 0; i < a.Rank; i++) {
-        sb.Append(Separator);
-        sb.Append(a.GetLength(i));
-        lengths[i] = a.GetLength(i);
-      }
-      for (int i = 0; i < a.Rank; i++) {
-        sb.Append(Separator);
-        sb.Append(a.GetLowerBound(i));
-        lowerBounds[i] = a.GetLowerBound(i);
-      }
-      int[] positions = (int[])lowerBounds.Clone();
-      while (positions[a.Rank - 1] < lengths[a.Rank - 1] + lowerBounds[a.Rank - 1]) {
-        Console.WriteLine(ViewOnlyGenerator.Serialize(positions));
-        sb.Append(Separator);
-        sb.Append(formatValue(a.GetValue(positions)));
-        positions[0] += 1;
-        for (int i = 0; i < a.Rank - 1; i++) {
-          if (positions[i] >= lengths[i] + lowerBounds[i]) {
-            positions[i] = lowerBounds[i];
-            positions[i + 1] += 1;
-          } else {
-            break;
-          }
-        }
-      }      
-      return sb.ToString();
-    }
-
-    public object Parse(object o) {
-      IEnumerator values =
-        ((string)o)
-        .Split(new[] { Separator },
-        StringSplitOptions.RemoveEmptyEntries).GetEnumerator();
-      values.MoveNext();
-      int rank = int.Parse((string)values.Current);
-      int[] lengths = new int[rank];
-      for (int i = 0; i < rank; i++) {
-        values.MoveNext();
-        lengths[i] = int.Parse((string)values.Current);
-      }
-      int[] lowerBounds = new int[rank];
-      for (int i = 0; i < rank; i++) {
-        values.MoveNext();
-        lowerBounds[i] = int.Parse((string)values.Current);
-      }
-      Array a = Array.CreateInstance(this.Type.GetElementType(), lengths, lowerBounds);
-      int[] positions = new int[rank];
-      while (values.MoveNext()) {
-        a.SetValue(parseValue((string)values.Current), positions);
-        positions[0] += 1;
-        for (int i = 0; i < rank - 1; i++) {
-          if (positions[i] >= lengths[i]) {
-            positions[i] = 0;
-            positions[i + 1] += 1;
-          } else {
-            break;
-          }
-        }
-      }
-      return a;
-    }
-  }
-  
-}
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatter.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatter.cs	(revision 1530)
+++ 	(revision )
@@ -1,37 +1,0 @@
-﻿using System.Collections;
-using System.Text;
-using HeuristicLab.Persistence.Interfaces;
-using System;
-
-namespace HeuristicLab.Persistence.Default.Xml.Compact {
-  
-  public abstract class NumberEnumeration2XmlFormatter : IFormatter {
-
-    public abstract Type Type { get; }
-    public IFormat Format { get { return XmlFormat.Instance; } }
-    protected virtual string Separator { get { return ";"; } }
-    protected abstract void Add(IEnumerable enumeration, object o);
-    protected abstract object Instantiate();
-    protected abstract string formatValue(object o);
-    protected abstract object parseValue(string o);
-
-    public object DoFormat(object o) {
-      StringBuilder sb = new StringBuilder();
-      foreach (var value in (IEnumerable)o) {
-        sb.Append(formatValue(value));
-        sb.Append(Separator);
-      }
-      return sb.ToString();
-    }
-
-    public object Parse(object o) {
-      IEnumerable enumeration = (IEnumerable)Instantiate();
-      string[] values = ((string)o).Split(new[] { Separator }, StringSplitOptions.RemoveEmptyEntries);
-      foreach (var value in values) {
-        Add(enumeration, parseValue(value));
-      }
-      return enumeration;
-    }
-  }
-  
-}
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatterBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatterBase.cs	(revision 1542)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatterBase.cs	(revision 1542)
@@ -0,0 +1,37 @@
+﻿using System.Collections;
+using System.Text;
+using HeuristicLab.Persistence.Interfaces;
+using System;
+
+namespace HeuristicLab.Persistence.Default.Xml.Compact {
+  
+  public abstract class NumberEnumeration2XmlFormatterBase : IFormatter {
+
+    public abstract Type Type { get; }
+    public IFormat Format { get { return XmlFormat.Instance; } }
+    protected virtual string Separator { get { return ";"; } }
+    protected abstract void Add(IEnumerable enumeration, object o);
+    protected abstract object Instantiate();
+    protected abstract string FormatValue(object o);
+    protected abstract object ParseValue(string o);
+
+    public object DoFormat(object o) {
+      StringBuilder sb = new StringBuilder();
+      foreach (var value in (IEnumerable)o) {
+        sb.Append(FormatValue(value));
+        sb.Append(Separator);
+      }
+      return sb.ToString();
+    }
+
+    public object Parse(object o) {
+      IEnumerable enumeration = (IEnumerable)Instantiate();
+      string[] values = ((string)o).Split(new[] { Separator }, StringSplitOptions.RemoveEmptyEntries);
+      foreach (var value in values) {
+        Add(enumeration, ParseValue(value));
+      }
+      return enumeration;
+    }
+  }
+  
+}
