diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java b/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java
index 2f0d9b3d866731a8a8437ee2a4cf44fbf9b3ac27..4354703ed81858378226440a9ee85dc3ba8a955f 100644
--- a/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java
+++ b/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java
@@ -16,6 +16,7 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import net.ivoa.xml.vospace.v2.ContainerNode;
 import net.ivoa.xml.vospace.v2.DataNode;
+import net.ivoa.xml.vospace.v2.LinkNode;
 import net.ivoa.xml.vospace.v2.StructuredDataNode;
 
 public class NodeUtils {
@@ -190,6 +191,8 @@ public class NodeUtils {
             return "container";
         } else if (node instanceof DataNode) {
             return "data";
+        } else if (node instanceof LinkNode) {
+            return "link";
         }
         throw new UnsupportedOperationException("Unable to retrieve database node type for class " + node.getClass().getCanonicalName());
     }
@@ -228,6 +231,9 @@ public class NodeUtils {
             case "structured":
                 node = new StructuredDataNode();
                 break;
+            case "link":
+                node = new LinkNode();
+                break;
             default:
                 throw new UnsupportedOperationException("Node type " + type + " not supported yet");
         }