diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Column.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Column.java
index 5d3e208495790706d75bffa91c199deadecc1091..7c461d100473a4538140dbedbbd4fced4dca0576 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Column.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Column.java
@@ -52,7 +52,7 @@ public class Column extends ChildEntity<Table> {
     /**
      * Original datatype (computed from information_schema data), used for
      * consistency checking inside the method
-     * {@link #it.inaf.ia2.tsm.datalayer.DBBroker.getAllColumnsMetadata()}
+     * {@link it.inaf.ia2.tsm.datalayer.DBBroker#getAllColumnsMetadata}
      *
      * @see it.inaf.ia2.tsm.ConsistencyChecks
      */
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/ColumnHolder.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/ColumnHolder.java
index 431953cfedb1e2bccaf24c1c4bd91bca441900ff..71cced977578efb5cd1c483aa6f274fd6ea54fb9 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/ColumnHolder.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/ColumnHolder.java
@@ -26,8 +26,10 @@ import java.io.Serializable;
 import java.util.Objects;
 
 /**
- * Models a column during the consistency checking phase (it is used to display
- * information about columns not already loaded/added into the TAP_SCHEMA).
+ * Models the reference to a column in the database during the consistency
+ * checking phase (it is used to display information about columns not already
+ * loaded/added into the TAP_SCHEMA or to represent a column which doesn't exist
+ * yet).
  *
  * @see it.inaf.ia2.tsm.ConsistencyChecks
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Key.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Key.java
index 3c652ea5e114bed9e679d442e0555b7d52dd2df3..6272f557163e0a986f4364f17792d7bca103dc08 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Key.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Key.java
@@ -113,7 +113,7 @@ public class Key extends TapSchemaEntity implements Serializable {
     /**
      * Sets the identifier for this key.
      *
-     * @see {@code getId()}
+     * @see #getId
      */
     public void setId(String id) {
         setValue(ID_KEY, id);
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/WrongDataType.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/WrongDataType.java
index bc459d2042f88063aaa3340f0f4e9fefb79ef7cb..c7870e285b717134a61ab2faef24a4098d0f3bd6 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/WrongDataType.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/WrongDataType.java
@@ -27,8 +27,9 @@ import java.io.Serializable;
 /**
  * Models an inconsistency in a column definition detected in an existing
  * column. This happens when the column datatype read from the database metadata
- * is different from what is expected according the {@link ColumnModel} defining
- * that column. To fix this issue an {@code ALTER TABLE} is necessary.
+ * is different from what is expected according the
+ * {@link it.inaf.ia2.tsm.model.ColumnModel} defining that column. To fix this
+ * issue an {@code ALTER TABLE} is necessary.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -77,8 +78,8 @@ public class WrongDataType implements Serializable {
     }
 
     /**
-     * Returns the expected datatype, according to the {@link ColumnModel}
-     * associated to this column.
+     * Returns the expected datatype, according to the
+     * {@link it.inaf.ia2.tsm.model.ColumnModel} associated to this column.
      */
     public String getCorrectDataType() {
         return correctDataType;
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBroker.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBroker.java
index 0c20470a5c19ab0df016d90059bbe375a0d4ccab..d5568998266ec6e2ad8effd4620afe07097f57a0 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBroker.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBroker.java
@@ -57,6 +57,9 @@ public interface DBBroker {
     /**
      * Returns the name of all schemata which structure is compatible with a
      * TAP_SCHEMA schema structure.
+     *
+     * @param allSchemas a list of all schemata names to use for searching;
+     * names must be real schemata names (not renamed).
      */
     List<String> getAllTAPSchemaNames(List<String> allSchemas) throws SQLException;
 
@@ -65,6 +68,7 @@ public interface DBBroker {
      * structure (e.<!-- -->g.<!-- --> the presence of the set of columns
      * defined into the related XML model).
      *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
      * @return the name of the guessed TAP_SCHEMA version.
      */
     String detectVersion(String tapSchemaName) throws SQLException;
@@ -72,11 +76,15 @@ public interface DBBroker {
     /**
      * Returns a list of all the schemata exposed by an existing TAP_SCHEMA.
      * Queries the {@code TAP_SCHEMA.schemas} schema.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
      */
     List<String> getExposedSchemas(String tapSchemaName) throws SQLException;
 
     /**
      * Returns all the tables owned by a schema, given its name.
+     *
+     * @param schemaName the real schema name (not the renamed one).
      */
     List<String> getAllTablesNames(String schemaName) throws SQLException;
 
@@ -84,6 +92,7 @@ public interface DBBroker {
      * Returns the table type ("table" or "view") for all the tables owned by a
      * schema, given its name.
      *
+     * @param schemaName the real schema name (not the renamed one).
      * @return a {@code Map} having table names as keys and table types as
      * values.
      */
@@ -91,13 +100,16 @@ public interface DBBroker {
 
     /**
      * Returns the list of the names of the columns contained in a given table.
+     *
+     * @param schemaName the real schema name (not the renamed one).
+     * @param tableName the name of the table.
      */
     List<String> getAllColumnsNames(String schemaName, String tableName) throws SQLException;
 
     /**
      * Returns the metadata of all the columns contained in a given table.
      *
-     * @param schemaName the name of the schema.
+     * @param schemaName the real schema name (not the renamed one).
      * @param tableSimpleName the name of the table.
      * @param tableModel the {@link TableModel} of the owner column if it is a
      * TAP_SCHEMA table or the ObsCore table, null otherwise. This is used for
@@ -110,37 +122,157 @@ public interface DBBroker {
      */
     Map<String, Map<String, Object>> getAllColumnsMetadata(String schemaName, String tableSimpleName, TableModel tableModel, DataTypeMode dataTypeMode) throws SQLException;
 
+    /**
+     * Returns a list of all the foreign key relationships the columns of which
+     * are contained in a given schema.
+     *
+     * @param schemaName the schema name as exposed by the TAP_SCHEMA
+     * (eventually renamed).
+     * @param realSchemaName the real schema name (not renamed).
+     */
     List<Key> getKeys(TapSchema tapSchema, String schemaName, String realSchemaName) throws SQLException;
 
-    List<Map<String, Object>> getSavedItems(String tapSchemaName, TableModel tableModel, String whereCondition, Object[] whereParams) throws SQLException;
-
+    /**
+     * Retrieves TAP_SCHEMA items saved into an existing TAP_SCHEMA, for a given
+     * TAP_SCHEMA table, given its {@link TableModel}. For example, if the
+     * {@code TableModel} models the {@code columns} table, this method will
+     * return a list representing all the rows in the {@code columns} table.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
+     * @param tableModel the model for the TAP_SCHEMA table to read.
+     * @return A {@code List} representing all the rows in a specific TAP_SCHEMA
+     * table. Each element of the list is a {@code Map} having column names as
+     * keys and row values as values.
+     */
     List<Map<String, Object>> getSavedItems(String tapSchemaName, TableModel tableModel) throws SQLException;
 
+    /**
+     * Inserts a new row in a TAP_SCHEMA table.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
+     * @param entity the entity to insert (this is used to specify the table to
+     * use and the values to insert).
+     * @param conn the database connection.
+     */
     void insertItem(String tapSchemaName, TapSchemaEntity entity, Connection conn) throws SQLException;
 
+    /**
+     * Updates an existing row in a TAP_SCHEMA table.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
+     * @param entity the entity to update (this is used to specify the table to
+     * use and the new values to insert).
+     * @param conn the database connection.
+     * @param whereCondition a SQL {@code WHERE} condition to add to the query.
+     * @param whereParams a sequence of parameters for the {@code WHERE}
+     * condition.
+     */
     void updateItem(String tapSchemaName, TapSchemaEntity entity, Connection conn, String whereCondition, Object... whereParams) throws SQLException;
 
+    /**
+     * Creates all the tables of a TAP_SCHEMA.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
+     * @param tapSchemaModel the {@link SchemaModel} used to represent the
+     * TAP_SCHEMA schema.
+     */
     void createTapSchemaStructure(String tapSchemaName, SchemaModel tapSchemaModel) throws SQLException;
 
+    /**
+     * Creates all the tables of an ivoa schema.
+     *
+     * @param ivoaSchemaModel the {@link SchemaModel} used to represent the ivoa
+     * schema.
+     * @param realIvoaSchemaName the real name of the ivoa schema (not the
+     * renamed one).
+     */
     void createIvoaSchemaStructure(SchemaModel ivoaSchemaModel, String realIvoaSchemaName) throws SQLException;
 
+    /**
+     * Saves all the TAP_SCHEMA modifications into the database (creates a new
+     * TAP_SCHEMA or update an existing one).
+     */
     void save(TapSchema tapSchema) throws SQLException;
 
+    /**
+     * Create a new table into the database.
+     *
+     * @param schemaName the real schema name (not the renamed one).
+     * @param tableModel the {@link TableModel} representing the table to
+     * create.
+     */
     void createTable(String schemaName, TableModel tableModel) throws SQLException;
 
+    /**
+     * Alter an existing table adding a new column.
+     *
+     * @param columnHolder a model representing a reference to a column which
+     * doesn't exist yet.
+     * @param columnModel the model used for representing the column structure.
+     */
     void addColumn(ColumnHolder columnHolder, ColumnModel columnModel) throws SQLException;
 
     /**
-     * @param like is for using both the schema name and the complete table name
-     * in the query
+     * Retrieves all the keys where the {@code from_table} or
+     * {@code target_table} properties start by a given parameter, which must be
+     * a schema name or a complete table name ({@code schema_name} plus
+     * {@code table_name}). In this way it is possible to select keys that needs
+     * to be removed both if the consistency checking mechanism has detected an
+     * inexistent schema or an inexistent table.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
+     * @param like a string representing a schema name or a table complete name
+     * ({@code schema_name} plus {@code table_name}).
+     *
+     * @see it.inaf.ia2.tsm.ConsistencyChecks
      */
     Set<String> getKeysToRemove(String tapSchemaName, String like) throws SQLException;
 
+    /**
+     * Deletes rows from the TAP_SCHEMA.
+     *
+     * @param keysToRemoveIds a {@code Set} of all the identifiers of the keys
+     * to remove; the logic used to create this set is inside the
+     * {@link it.inaf.ia2.tsm.TapSchemaMender} class.
+     *
+     * @see it.inaf.ia2.tsm.ConsistencyChecks
+     * @see it.inaf.ia2.tsm.TapSchemaMender
+     */
     void deleteUnexistingEntities(String tapSchemaName, ConsistencyChecks consistencyChecks, Set<String> keysToRemoveIds) throws SQLException;
 
+    /**
+     * Retrieves all the key identifiers related to an inexistent column.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
+     * @param unexistingColumn a reference to the inexistent column.
+     * @return a {@code Set} of key identifier
+     *
+     * @see it.inaf.ia2.tsm.ConsistencyChecks
+     * @see it.inaf.ia2.tsm.TapSchemaMender
+     */
     Set<String> getKeysToRemoveFromUnexistingColumn(String tapSchemaName, ColumnHolder unexistingColumn) throws SQLException;
 
+    /**
+     * Update the (wrong) property value of column exposed by a TAP_SCHEMA.
+     *
+     * @param tapSchemaName the real TAP_SCHEMA name (not the renamed one).
+     * @param completeTableName the complete name of the table
+     * ({@code schema_name} plus {@code table_name}).
+     * @param columnName the name of the column.
+     * @param key the name of the TAP_SCHEMA column property.
+     * @param value the new value.
+     *
+     * @see it.inaf.ia2.tsm.ConsistencyChecks
+     * @see it.inaf.ia2.tsm.TapSchemaMender
+     */
     void updateTapSchemaColumnValue(String tapSchemaName, String completeTableName, String columnName, String key, Object value) throws SQLException;
 
+    /**
+     * Alter an existing TAP_SCHEMA or ObsCore column having an incoherent
+     * datatype according to its {@link ColumnModel}.
+     *
+     * @see it.inaf.ia2.tsm.ConsistencyChecks
+     * @see it.inaf.ia2.tsm.TapSchemaMender
+     */
     void alterDataType(String schemaName, String tableName, String columnName, String adqlDataType, Integer size) throws SQLException;
 }
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerFactory.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerFactory.java
index 73e2915dd4985e4b9e4656662c4c2c6b593cfe4c..5927bd62a6d7334b26588d394bdd4784d5e1414a 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerFactory.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerFactory.java
@@ -26,11 +26,17 @@ import it.inaf.ia2.tsm.datalayer.mysql.MySQLDBBroker;
 import it.inaf.ia2.tsm.datalayer.pgsql.PostgresDBBroker;
 
 /**
+ * Utility class for retrieving the desired {@link DBBroker} implementation.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
 public class DBBrokerFactory {
 
+    /**
+     * Retrieves the desired {@link DBBroker}, instantiating the proper
+     * implementation according to the {@link DatabaseType} defined into the
+     * {@link DataSourceWrapper} passed as parameter.
+     */
     public static DBBroker getDBBroker(DataSourceWrapper dataSourceWrapper, DataTypeMode dataTypeMode) {
         switch (dataSourceWrapper.getDatabaseType()) {
             case MYSQL:
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerTemplate.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerTemplate.java
index ddb3b6a9bcb98d2ba6432ea3284f5eda7f6f51da..f32c6b114adc6db129d1f18ac4bc9ff2fb9f891e 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerTemplate.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBBrokerTemplate.java
@@ -57,6 +57,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
+ * Template class containing all {@link DBBroker} features that are not vendor
+ * specific.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -116,6 +118,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         sb.append(String.format("(%s)", size));
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void createTable(String schemaName, TableModel tableModel) throws SQLException {
         try (Connection conn = dataSource.getConnection()) {
@@ -146,6 +151,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void createTapSchemaStructure(String tapSchemaName, SchemaModel tapSchemaModel) throws SQLException {
 
@@ -181,6 +189,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void createIvoaSchemaStructure(SchemaModel ivoaSchemaModel, String realIvoaSchemaName) throws SQLException {
         try (Connection conn = dataSource.getConnection()) {
@@ -191,6 +202,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void save(TapSchema tapSchema) throws SQLException {
 
@@ -408,8 +422,11 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
-    public List<Map<String, Object>> getSavedItems(String tapSchemaName, TableModel tableModel, String whereCondition, Object[] whereParams) throws SQLException {
+    public List<Map<String, Object>> getSavedItems(String tapSchemaName, TableModel tableModel) throws SQLException {
 
         StringBuilder querySb = new StringBuilder("SELECT ");
 
@@ -428,7 +445,6 @@ public abstract class DBBrokerTemplate implements DBBroker {
         querySb.append(".");
         querySb.append(escape(tableModel.getName()));
 
-        // TODO: Manage where condition
         String query = querySb.toString();
 
         LOG.debug("Executing query {}", query);
@@ -455,11 +471,6 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
-    @Override
-    public List<Map<String, Object>> getSavedItems(String tapSchemaName, TableModel tableModel) throws SQLException {
-        return getSavedItems(tapSchemaName, tableModel, null, null);
-    }
-
     private int getSQLType(Class type) {
         if (type == String.class) {
             return Types.VARCHAR;
@@ -474,6 +485,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void insertItem(String tapSchemaName, TapSchemaEntity tapSchemaItem, Connection conn) throws SQLException {
 
@@ -530,6 +544,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void updateItem(String tapSchemaName, TapSchemaEntity tapSchemaItem, Connection conn, String whereCondition, Object... whereParams) throws SQLException {
 
@@ -587,6 +604,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
 
     protected abstract String getSchemaTablesQuery(String schemaName);
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public List<String> getAllTAPSchemaNames(List<String> allSchemata) throws SQLException {
 
@@ -645,6 +665,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         return allTAPSchemas;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     protected abstract String getColumnNamesQuery(String tapSchemaName, String tableName);
 
     private List<String> getColumns(String tapSchemaName, String tableName, Connection connection) throws SQLException {
@@ -678,6 +701,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         return true;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public String detectVersion(String tapSchemaName) throws SQLException {
 
@@ -706,6 +732,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
 
     protected abstract String getTableTypesQuery(String schemaName);
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public Map<String, String> getAllTableTypes(String schemaName) throws SQLException {
         LOG.debug("getTablesTypes");
@@ -728,6 +757,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         return tablesTypes;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public List<String> getExposedSchemas(String tapSchemaName) throws SQLException {
 
@@ -750,6 +782,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
 
     protected abstract String getAllSchemaNamesQuery();
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public List<String> getAllSchemaNames() throws SQLException {
         String query = getAllSchemaNamesQuery();
@@ -761,6 +796,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
 
     protected abstract String getAllTablesNamesQuery(String schemaName);
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public List<String> getAllTablesNames(String schemaName) throws SQLException {
         String query = getAllTablesNamesQuery(schemaName);
@@ -770,6 +808,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         return allTables;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public List<String> getAllColumnsNames(String schemaName, String tableName) throws SQLException {
         String query = getColumnNamesQuery(schemaName, tableName);
@@ -780,6 +821,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
 
     protected abstract Map<String, Map<String, Object>> getAllColumnsOriginalMetadata(String schemaName, String tableName) throws SQLException;
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public Map<String, Map<String, Object>> getAllColumnsMetadata(String schemaName, String tableName, TableModel tableModel, DataTypeMode dataTypeMode) throws SQLException {
 
@@ -812,6 +856,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
 
     protected abstract String getDataTypeFromADQLType(String adqlType);
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void addColumn(ColumnHolder columnHolder, ColumnModel columnModel) throws SQLException {
 
@@ -832,6 +879,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public Set<String> getKeysToRemove(String tapSchemaName, String like) throws SQLException {
 
@@ -855,6 +905,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         return keysId;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public Set<String> getKeysToRemoveFromUnexistingColumn(String tapSchemaName, ColumnHolder unexistingColumn) throws SQLException {
 
@@ -895,6 +948,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         return keysToRemoveIds;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void deleteUnexistingEntities(String tapSchemaName, ConsistencyChecks consistencyChecks, Set<String> keysToRemoveIds) throws SQLException {
         try (Connection conn = dataSource.getConnection()) {
@@ -995,6 +1051,9 @@ public abstract class DBBrokerTemplate implements DBBroker {
         }
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void updateTapSchemaColumnValue(String tapSchemaName, String completeTableName, String columnName, String key, Object value) throws SQLException {
 
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBWrapper.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBWrapper.java
index 70a63857b9d0323fa580ed488757f6c06713a432..5d80bafa0f19817b0796076ed0fef0f181f90d6e 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBWrapper.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DBWrapper.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
  * {@code ObsCore} table, is stored into the source database (because one could
  * perform SQL JOINS between astronomical data schemata and the ObsCore table).
  * <p>
- * An user asks, for example, {@link getSourceDataSource()}, and the
+ * An user asks, for example, {@link #getSourceDataSource()}, and the
  * {@code DBWrapper} returns the correct {@code DataSource}, both if it is
  * separated from the TAP_SCHEMA {@code DataSource} or if they are the same
  * object.
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DataTypeMode.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DataTypeMode.java
index 20b9da06a4229c267d62534118aef24d1a26aee6..7b49c41c10330e5545238c69ce06764a5f7cbe6a 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DataTypeMode.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/DataTypeMode.java
@@ -23,12 +23,24 @@
 package it.inaf.ia2.tsm.datalayer;
 
 /**
+ * This enum is used to specify the syntax used by a TAP_SCHEMA for representing
+ * the data types.
+ * <p>
+ * The {@code DataTypeMode} for a given TAP_SCHEMA is specified into the XML
+ * configuration as an attribute of the schema element.
  *
+ * @see it.inaf.ia2.tsm.model.SchemaModel
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
 public enum DataTypeMode {
 
+    /**
+     * For TAP 1.0: VARCHAR, SMALLINT, INTEGER, BIGINT, BLOB, ...
+     */
     ADQL("ADQL"),
+    /**
+     * For TAP 1.1: char, short, int, long, unsignedByte, ...
+     */
     VOTABLE("VOTable");
 
     private final String name;
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/mysql/MySQLDBBroker.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/mysql/MySQLDBBroker.java
index 2cc1204f91d62281779f38b466ae847fe3c7fed1..a27550dfc6fe72dafe6a20b96ab06a1df8cd92ea 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/mysql/MySQLDBBroker.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/mysql/MySQLDBBroker.java
@@ -44,7 +44,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- *
+ * MySQL implementation of a {@link it.inaf.ia2.tsm.datalayer.DBBroker}.
+ * 
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
 public class MySQLDBBroker extends DBBrokerTemplate {
@@ -91,6 +92,9 @@ public class MySQLDBBroker extends DBBrokerTemplate {
         return null;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public Map<String, Map<String, Object>> getAllColumnsOriginalMetadata(String schemaName, String tableName) throws SQLException {
 
@@ -124,7 +128,7 @@ public class MySQLDBBroker extends DBBrokerTemplate {
                 // Datatype and Size
                 String dbType = resultSet.getString("Type").toUpperCase();
 
-                ADQL adqlType = TypesMapping.getADQLFromDBType(dbType);
+                ADQL adqlType = TypesMapping.getADQLFromMySQLType(dbType);
                 String datatype = TypesMapping.getDataTypeFromMySQLType(dbType, getDataTypeMode());
 
                 Integer size = getSize(dbType);
@@ -210,6 +214,9 @@ public class MySQLDBBroker extends DBBrokerTemplate {
                 buildColumnsList(fromKeyColumns), escape(tapSchemaName), escape(targetTableName), buildColumnsList(toKeyColumns));
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public List<Key> getKeys(TapSchema tapSchema, String schemaName, String realSchemaName) throws SQLException {
         StringBuilder sb = new StringBuilder();
@@ -292,6 +299,9 @@ public class MySQLDBBroker extends DBBrokerTemplate {
         return "SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = '" + schemaName + "'";
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void alterDataType(String schemaName, String tableName, String columnName, String adqlDataType, Integer size) throws SQLException {
 
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/pgsql/PostgresDBBroker.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/pgsql/PostgresDBBroker.java
index e4237e12557dacea82cb39aa22cf334ae9588dcb..d5f2d89cf82594de6a4bb5e17708db5d2248e073 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/pgsql/PostgresDBBroker.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/datalayer/pgsql/PostgresDBBroker.java
@@ -46,6 +46,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
+ * PostgreSQL implementation of a {@link it.inaf.ia2.tsm.datalayer.DBBroker}.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -207,6 +208,9 @@ public class PostgresDBBroker extends DBBrokerTemplate {
         return sb.toString();
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public Map<String, Map<String, Object>> getAllColumnsOriginalMetadata(String schemaName, String tableSimpleName) throws SQLException {
 
@@ -275,7 +279,7 @@ public class PostgresDBBroker extends DBBrokerTemplate {
                     arraydimension = resultSet.getInt("arraydim");
                 }
 
-                ADQL adqlType = TypesMapping.getADQLFromDBType(dbType);
+                ADQL adqlType = TypesMapping.getADQLFromPostgresType(dbType);
                 String datatype = TypesMapping.getDataTypeFromPostgresType(dbType, getDataTypeMode());
 
                 if (!isArray && (ADQL.VARCHAR.equals(adqlType) || ADQL.CHAR.equals(adqlType))) {
@@ -304,6 +308,9 @@ public class PostgresDBBroker extends DBBrokerTemplate {
         return allColumnsMetadata;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public List<Key> getKeys(TapSchema tapSchema, String schemaName, String realSchemaName) throws SQLException {
 
@@ -448,6 +455,9 @@ public class PostgresDBBroker extends DBBrokerTemplate {
         return String.format("SELECT tablename FROM pg_catalog.pg_tables where schemaname = '%s'", schemaName);
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public void alterDataType(String schemaName, String tableName, String columnName, String adqlDataType, Integer size) throws SQLException {
 
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ColumnModel.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ColumnModel.java
index 2317fcb27905344a5258b5f506e228f8f3c4f50e..356bb39354b541200c3cc225f96ed270af01a278 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ColumnModel.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ColumnModel.java
@@ -30,7 +30,8 @@ import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 /**
- * Models a database column managed by TASMAN.
+ * JAXB model for the structure and the behavior of a database column which is
+ * created and edited by TASMAN.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -150,7 +151,7 @@ public class ColumnModel implements Serializable {
     }
 
     /**
-     * Specify the column default value.
+     * Specifies the column default value.
      */
     @XmlElement(name = "default-value")
     public String getDefaultValueString() {
@@ -248,7 +249,7 @@ public class ColumnModel implements Serializable {
     }
 
     /**
-     * Define the minimum value allowed for the column.
+     * Defines the minimum value allowed for the column.
      */
     @XmlElement(name = "min", nillable = true, required = false)
     public Integer getMinValue() {
@@ -260,7 +261,7 @@ public class ColumnModel implements Serializable {
     }
 
     /**
-     * Define the maximum value allowed for the column.
+     * Defines the maximum value allowed for the column.
      */
     @XmlElement(name = "max", nillable = true, required = false)
     public Integer getMaxValue() {
@@ -272,18 +273,18 @@ public class ColumnModel implements Serializable {
     }
 
     /**
-     * Retrieve the default value.
+     * Retrieves the default value.
      */
     @XmlTransient
     public Object getDefaultValue() {
         if (defaultValueString == null) {
             return null;
         }
-        return TypesMapping.parseDefaultValue(defaultValueString, getType());
+        return TypesMapping.parseTypedValue(defaultValueString, getType());
     }
 
     /**
-     * Retrieve the Java type from the column datatype.
+     * Retrieves the Java type from the column datatype.
      */
     @XmlTransient
     public Class getJavaType() {
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/CommaSeparatedListAdapter.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/CommaSeparatedListAdapter.java
index 450e73423c9227c5911cd79b3a81b44240984b19..62d73e57728daccd802ab766df9f4b15537d3968 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/CommaSeparatedListAdapter.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/CommaSeparatedListAdapter.java
@@ -27,6 +27,8 @@ import java.util.List;
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 
 /**
+ * JAXB adapter for marshalling and unmarshalling a String containing a comma
+ * separated list of values in an instance of {@code List<String>}.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DBTypeMapping.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DBTypeMapping.java
index 7d827f647aa332acab8b3b81de009e61ddd28c49..22914e6bc1f401f78ff46b175f24a78380702806 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DBTypeMapping.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DBTypeMapping.java
@@ -29,7 +29,10 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElements;
 
 /**
+ * JAXB model containing information about a vendor-specific RDBMS datatype. The
+ * name of the tag ("mysql" or "pgsql") identify the kind of database.
  *
+ * @see TypesMapping
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
 public class DBTypeMapping {
@@ -41,6 +44,15 @@ public class DBTypeMapping {
         types = new ArrayList<>();
     }
 
+    /**
+     * Tells if the {@link TypeMapping} having this element as a child must be
+     * used to convert the vendor-specific datatype into a datatype used by
+     * TASMAN.
+     * <p>
+     * This is necessary because there could be more ADQL types mapping to the
+     * same database type (e.g. Postgres bytea datatype is used both for ADQL,
+     * BLOB, BINARY and VARBINARY data types).
+     */
     @XmlAttribute(name = "inverse")
     public boolean isInverse() {
         return inverse;
@@ -50,6 +62,10 @@ public class DBTypeMapping {
         this.inverse = inverse;
     }
 
+    /**
+     * Returns a list of datatype names that are considered synonymous by
+     * TASMAN.
+     */
     @XmlElements({
         @XmlElement(name = "type")
     })
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DataTypeModeAdapter.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DataTypeModeAdapter.java
index 02fcd4e73d446b8f9317803725f7b8c5eb516915..fa2119948b91d2a452cb96eff4ed327425b3bd68 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DataTypeModeAdapter.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/DataTypeModeAdapter.java
@@ -26,6 +26,8 @@ import it.inaf.ia2.tsm.datalayer.DataTypeMode;
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 
 /**
+ * JAXB adapter for converting a string into a {@link DataTypeMode} enum
+ * allowing null values.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ModelLoadingException.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ModelLoadingException.java
index d50d2475b2f6207e94ed3e9e0cab632b12e2d43b..fc8380cef37fadb00b79be2eb5985214887ab488 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ModelLoadingException.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/ModelLoadingException.java
@@ -23,6 +23,8 @@
 package it.inaf.ia2.tsm.model;
 
 /**
+ * Exception thrown if there are problems in loading TASMAN XML configuration
+ * files.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModel.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModel.java
index f82241eab5d096035e40c2a2964eb22ecba36c90..cff9ec76ef5812532ce0bf3ce27a8e4558eab696 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModel.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModel.java
@@ -33,6 +33,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 /**
+ * JAXB model for defining a schema which is created and edited by TASMAN.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -73,6 +74,9 @@ public class SchemaModel implements Serializable {
         this.version = version;
     }
 
+    /**
+     * The version from which this model inherits its structure.
+     */
     @XmlAttribute(name = "extends")
     public String getExtendsFrom() {
         return extendsFrom;
@@ -107,6 +111,10 @@ public class SchemaModel implements Serializable {
         return null;
     }
 
+    /**
+     * The format used for representing data types (used only for TAP_SCHEMA
+     * models).
+     */
     @XmlAttribute(name = "datatype")
     @XmlJavaTypeAdapter(DataTypeModeAdapter.class)
     public DataTypeMode getDataTypeMode() {
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModels.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModels.java
index 6a6fcf315f056e0d936fec264448810400f586df..b8290d1debcad0b374ccd9a74a70ce9ebd68335a 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModels.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/SchemaModels.java
@@ -31,6 +31,7 @@ import java.util.Map;
 import java.util.Properties;
 
 /**
+ * Utility class for retrieving models of schemata managed by TASMAN.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -86,6 +87,12 @@ public class SchemaModels {
         return TAP_SCHEMA_MODELS.values();
     }
 
+    /**
+     * Returns the {@link TableModel} of TAP_SCHEMA table.
+     *
+     * @param tableName the name of the table.
+     * @param version TAP_SCHEMA version.
+     */
     public static TableModel getTapSchemaTableModel(String tableName, String version) {
         return getTapSchemaModel(version).getTable(tableName);
     }
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TableModel.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TableModel.java
index b63fab6595608544d00c48cd6f3026c8f7f6e065..537283105d48f31d0c7963a1d9dae6b22543c9e4 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TableModel.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TableModel.java
@@ -30,6 +30,8 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElements;
 
 /**
+ * JAXB model for a table which is created and edited by TASMAN, like TAP_SCHEMA
+ * tables or ObsCore.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypeMapping.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypeMapping.java
index eba8e4bd7b6a5a30a0a2f55812e44a7360c45e10..c260e68281211f1ce43304d30d89ee315e095e30 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypeMapping.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypeMapping.java
@@ -26,7 +26,10 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
 /**
+ * JAXB representation of a mapping between datatype using different
+ * syntaxes/languages.
  *
+ * @see TypesMapping
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
 public class TypeMapping {
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypesMapping.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypesMapping.java
index 484b4802c2ce2191b48d47a92ae5b2c972e705e4..4185534bafa68bf79725f098dc5042f0bf2c209b 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypesMapping.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/TypesMapping.java
@@ -33,6 +33,9 @@ import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
 
 /**
+ * Utility class for converting data types having different syntaxes.
+ * <p>
+ * It parses the sql_type_mapping.xml resource file.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -76,6 +79,9 @@ public class TypesMapping {
         return null;
     }
 
+    /**
+     * Converts an ADQL datatype into a Java type.
+     */
     public static Class getClassFromAdqlType(String adqlType) {
         TypeMapping typeMapping = getTypeMappingFromADQLType(adqlType);
         if (typeMapping == null) {
@@ -84,6 +90,9 @@ public class TypesMapping {
         return typeMapping.getJavaType();
     }
 
+    /**
+     * Converts an ADQL datatype to MySQL datatype.
+     */
     public static String getMySQLTypeFromADQLType(String adqlType) {
         TypeMapping typeMapping = getTypeMappingFromADQLType(adqlType);
         if (typeMapping == null) {
@@ -92,6 +101,9 @@ public class TypesMapping {
         return typeMapping.getMySQLMapping().getTypes().get(0);
     }
 
+    /**
+     * Converts an ADQL datatype to PostgreSQL datatype.
+     */
     public static String getPostgresSQLTypeFromADQLType(String adqlType) {
         TypeMapping typeMapping = getTypeMappingFromADQLType(adqlType);
         if (typeMapping == null) {
@@ -100,6 +112,15 @@ public class TypesMapping {
         return typeMapping.getPgsqlMapping().getTypes().get(0);
     }
 
+    /**
+     * Returns the correct datatype according to the {@link DataTypeMode} used
+     * by a TAP_SCHEMA.
+     *
+     * @param adqlType the datatype in ADQL format; this format is used in XML
+     * configuration files contained into the {@code schema_definition}
+     * resources folder.
+     * @param mode the {@code DataTypeMode} used by the TAP_SCHEMA.
+     */
     public static String getDataType(String adqlType, DataTypeMode mode) {
         switch (mode) {
             case ADQL:
@@ -111,6 +132,13 @@ public class TypesMapping {
         }
     }
 
+    /**
+     * Retrieves the {@code TypeMapping} for a datatype expressed in the mode
+     * used by a given TAP_SCHEMA.
+     *
+     * @param dataType the datatype, as exposed by the TAP_SCHEMA.
+     * @param mode the {@code DataTypeMode} used by the TAP_SCHEMA.
+     */
     public static TypeMapping getTypeMapping(String dataType, DataTypeMode mode) {
         for (TypeMapping typeMapping : TYPES) {
             switch (mode) {
@@ -179,6 +207,28 @@ public class TypesMapping {
         }
     }
 
+    /**
+     * Retrieves a datatype having the format required by a given TAP_SCHEMA
+     * from a MySQL datatype.
+     *
+     * @param mode the {@code DataTypeMode} used by the TAP_SCHEMA.
+     */
+    public static String getDataTypeFromMySQLType(String mysqlType, DataTypeMode mode) {
+
+        return (new DataTypeFromDBTypeMapper(mode) {
+            @Override
+            DBTypeMapping getDBTypeMapping(TypeMapping typeMapping) {
+                return typeMapping.getMySQLMapping();
+            }
+        }).getDataTypeFromDBType(mysqlType);
+    }
+
+    /**
+     * Retrieves a datatype having the format required by a given TAP_SCHEMA
+     * from a PostrgreSQL datatype.
+     *
+     * @param mode the {@code DataTypeMode} used by the TAP_SCHEMA.
+     */
     public static String getDataTypeFromPostgresType(String pgsqlType, DataTypeMode mode) {
 
         return (new DataTypeFromDBTypeMapper(mode) {
@@ -189,45 +239,55 @@ public class TypesMapping {
         }).getDataTypeFromDBType(pgsqlType);
     }
 
-    public static ADQL getADQLFromDBType(String dbType) {
+    /**
+     * Converts a MySQL datatype to an ADQL datatype.
+     *
+     * @param mysqlDBType the datatype, as read from MySQL information_schema.
+     */
+    public static ADQL getADQLFromMySQLType(String mysqlDBType) {
         try {
-            return ADQL.valueOf(TypesMapping.getDataTypeFromPostgresType(dbType, DataTypeMode.ADQL));
+            return ADQL.valueOf(getDataTypeFromMySQLType(mysqlDBType, DataTypeMode.ADQL));
         } catch (IllegalArgumentException e) {
             return null;
         }
     }
 
-    public static String getDataTypeFromMySQLType(String mysqlType, DataTypeMode mode) {
-
-        return (new DataTypeFromDBTypeMapper(mode) {
-            @Override
-            DBTypeMapping getDBTypeMapping(TypeMapping typeMapping) {
-                return typeMapping.getMySQLMapping();
-            }
-        }).getDataTypeFromDBType(mysqlType);
-    }
-
-    public static Object parseDefaultValue(String defaultValue, String type) {
-        return parseDefaultValue(defaultValue, ADQL.valueOf(type));
+    /**
+     * Converts a PostgreSQL datatype to an ADQL datatype.
+     *
+     * @param postgresDBType the datatype, as read from PostgreSQL
+     * information_schema.
+     */
+    public static ADQL getADQLFromPostgresType(String postgresDBType) {
+        try {
+            return ADQL.valueOf(getDataTypeFromPostgresType(postgresDBType, DataTypeMode.ADQL));
+        } catch (IllegalArgumentException e) {
+            return null;
+        }
     }
 
-    public static Object parseDefaultValue(String defaultValue, ADQL type) {
-
-        switch (type) {
+    /**
+     * Parses a string converting it in a typed object according to the datatype
+     * specified in ADQL format.
+     *
+     * @param type datatype in ADQL format
+     */
+    public static Object parseTypedValue(String value, String type) {
+        switch (ADQL.valueOf(type)) {
             case BOOLEAN:
-                return Boolean.parseBoolean(defaultValue);
+                return Boolean.parseBoolean(value);
             case SMALLINT:
-                return Short.parseShort(defaultValue);
+                return Short.parseShort(value);
             case INTEGER:
-                return Integer.parseInt(defaultValue);
+                return Integer.parseInt(value);
             case BIGINT:
-                return Long.parseLong(defaultValue);
+                return Long.parseLong(value);
             case REAL:
-                return Float.parseFloat(defaultValue);
+                return Float.parseFloat(value);
             case DOUBLE:
-                return Double.parseDouble(defaultValue);
+                return Double.parseDouble(value);
             default:
-                return defaultValue;
+                return value;
         }
     }
 }
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLMerger.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLMerger.java
index d0ca8bd64667769928dc14f270edda3f568ba98d..bd979bd1ce92aa5dd68161fced74336539478afc 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLMerger.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLMerger.java
@@ -37,6 +37,7 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
 /**
+ * Performs inheritance between TASMAN schema definition XML files.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -47,7 +48,11 @@ public class XMLMerger {
     private final Document parentDoc;
     private final Document childDoc;
 
-    XMLMerger(Document parentDoc, Document childDoc) throws ParserConfigurationException {
+    /**
+     * @param parentDoc the parent XML schema definition
+     * @param childDoc the XML schema definition which inherits from parent
+     */
+    public XMLMerger(Document parentDoc, Document childDoc) throws ParserConfigurationException {
         // Cloning parent document
         this.parentDoc = cloneDocument(parentDoc);
         this.childDoc = childDoc;
@@ -63,6 +68,9 @@ public class XMLMerger {
         return clonedDocument;
     }
 
+    /**
+     * Returns an XML document which is the result of the document inheritance.
+     */
     public Document getMergedDocument() {
 
         Element root = parentDoc.getDocumentElement();
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLModelsLoader.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLModelsLoader.java
index 017f8afc0f0e7de9a46d678d9f6ef339b2cce330..89a337c57b034e09aa13cdb92a073dfe94daa27f 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLModelsLoader.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/model/XMLModelsLoader.java
@@ -42,6 +42,8 @@ import org.w3c.dom.Element;
 import org.xml.sax.SAXException;
 
 /**
+ * Class used to parse TASMAN XML configuration files used to defining schemata
+ * structure and convert them into instances of {@link SchemaModel}.
  *
  * @author Sonia Zorba {@literal <zorba at oats.inaf.it>}
  */
@@ -62,10 +64,20 @@ public class XMLModelsLoader {
         inheritanceLevels = new HashMap<>();
     }
 
+    /**
+     * Loads the XML files and obtains schemata models.
+     *
+     * @return a {@code Map} having versions as keys and {@link SchemaModel}s
+     * as values.
+     */
     public Map<String, SchemaModel> load() {
         return load(XMLModelsLoader.class.getClassLoader());
     }
 
+    /**
+     * This variant is used for testing (specifying a {@code ClassLoader} it is
+     * possible to use test resource files instead of real application files).
+     */
     public Map<String, SchemaModel> load(ClassLoader classLoader) {
 
         try {