diff --git a/src/main/java/net/ivoa/xml/uws/v1/package-info.java b/src/main/java/net/ivoa/xml/uws/v1/package-info.java
index 9146854a8eaeca3edca3e0c1b0c221469d1e2acc..ed3178b78545a0f4da00b5d9db6790bead166ddc 100644
--- a/src/main/java/net/ivoa/xml/uws/v1/package-info.java
+++ b/src/main/java/net/ivoa/xml/uws/v1/package-info.java
@@ -19,6 +19,10 @@
             @javax.xml.bind.annotation.XmlNs(
                     namespaceURI = "http://www.w3.org/2001/XMLSchema-instance",
                     prefix = "xsi"
+            ),
+            @javax.xml.bind.annotation.XmlNs(
+                    namespaceURI = "http://www.w3.org/1999/xlink",
+                    prefix = "xlink"
             )
         }
         // </edit>
diff --git a/src/main/java/net/ivoa/xml/vospace/v2/package-info.java b/src/main/java/net/ivoa/xml/vospace/v2/package-info.java
index 65f6dfb6a2849d52175d76eacc2dbe47d4a489a2..16b0c732bd0abd44485c3cbb7def1567e59f6c82 100644
--- a/src/main/java/net/ivoa/xml/vospace/v2/package-info.java
+++ b/src/main/java/net/ivoa/xml/vospace/v2/package-info.java
@@ -18,6 +18,10 @@
             @javax.xml.bind.annotation.XmlNs(
                     namespaceURI = "http://www.w3.org/2001/XMLSchema-instance",
                     prefix = "xsi"
+            ),
+            @javax.xml.bind.annotation.XmlNs(
+                    namespaceURI = "http://www.w3.org/1999/xlink",
+                    prefix = "xlink"
             )
         }
         // </edit>
diff --git a/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java b/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java
index 56f351aea1844159d156b3a9d960f55320c23fd9..713181de6dd54383f2945e8214d922dad4f5e4ff 100644
--- a/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java
+++ b/src/test/java/net/ivoa/xml/uws/v1/JobSummaryTest.java
@@ -67,7 +67,7 @@ public class JobSummaryTest {
         transfer.setDirection("pullFromVoSpace");
         Protocol protocol1 = new Protocol();
         protocol1.setUri("ivo://ivoa.net/vospace/core#httpget");
-        Protocol protocol2= new Protocol();
+        Protocol protocol2 = new Protocol();
         protocol2.setUri("ivo://ivoa.net/vospace/core#httpsget");
         transfer.getProtocols().add(protocol1);
         transfer.getProtocols().add(protocol2);
diff --git a/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java b/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..8630dadb46c886371ab3f76140e20cceb4918875
--- /dev/null
+++ b/src/test/java/net/ivoa/xml/uws/v1/ShortJobDescriptionTest.java
@@ -0,0 +1,68 @@
+package net.ivoa.xml.uws.v1;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+import javax.xml.bind.JAXB;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
+
+public class ShortJobDescriptionTest {
+
+    @Test
+    public void testXmlSerialization() throws Exception {
+
+        ShortJobDescription jobDesc = getShortJobDescription();
+
+        String xml;
+        try ( StringWriter sw = new StringWriter()) {
+            JAXB.marshal(jobDesc, sw);
+            xml = sw.toString();
+            System.out.println(xml);
+        }
+
+        assertTrue(xml.contains("xlink:type=\"type\""));
+
+        try ( StringReader sr = new StringReader(xml)) {
+            ShortJobDescription deserialized = JAXB.unmarshal(sr, ShortJobDescription.class);
+            verifyJobsAreEquals(deserialized);
+        }
+    }
+
+    private ShortJobDescription getShortJobDescription() {
+
+        ShortJobDescription jobDesc = new ShortJobDescription();
+        jobDesc.setCreationTime(getXmlDate("2015-05-26T11:06:45.713"));
+        jobDesc.setId("job_id");
+        jobDesc.setPhase(ExecutionPhase.EXECUTING);
+        jobDesc.setHref("href");
+        jobDesc.setOwnerId("owner_id");
+        jobDesc.setRunId("run_id");
+        jobDesc.setType("type");
+
+        return jobDesc;
+    }
+
+    private XMLGregorianCalendar getXmlDate(String dateTimeString) {
+        try {
+            return DatatypeFactory.newInstance().newXMLGregorianCalendar(dateTimeString);
+        } catch (DatatypeConfigurationException ex) {
+            throw new RuntimeException(ex);
+        }
+    }
+
+    private void verifyJobsAreEquals(ShortJobDescription deserialized) {
+
+        assertEquals("href", deserialized.getHref());
+        assertEquals("job_id", deserialized.getId());
+        assertEquals("owner_id", deserialized.getOwnerId());
+        assertEquals("run_id", deserialized.getRunId());
+        assertEquals("type", deserialized.getType());
+        assertEquals("href", deserialized.getHref());
+        assertEquals("2015-05-26T11:06:45.713", deserialized.getCreationTime().toString());
+        assertEquals(ExecutionPhase.EXECUTING, deserialized.getPhase());
+    }
+}