diff --git a/src/tap/resource/Capabilities.java b/src/tap/resource/Capabilities.java
index 8e548080f1e44b39636be399e7f284e4cd6e1515..7734dc4e80a7dbecd9443f03bdabca81eeeda086 100644
--- a/src/tap/resource/Capabilities.java
+++ b/src/tap/resource/Capabilities.java
@@ -118,11 +118,11 @@ public class Capabilities implements TAPResource, VOSIResource {
 		// Write the XML document header:
 		out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
 		out.print("<vosi:capabilities xmlns:vosi=\"http://www.ivoa.net/xml/VOSICapabilities/v1.0\"");
-		out.print(" xmlns:tr=\"http://www.ivoa.net/xml/TAP/v0.1\"");
+		out.print(" xmlns:tr=\"http://www.ivoa.net/xml/TAPRegExt/v1.0\"");
 		out.print(" xmlns:vr=\"http://www.ivoa.net/xml/VOResource/v1.0\"");
 		out.print(" xmlns:vs=\"http://www.ivoa.net/xml/VODataService/v1.0\"");
 		out.print(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
-		out.println(" xsi:schemaLocation=\"http://www.ivoa.net/xml/TAP/v0.1 http://www.ivoa.net/xml/TAP/v0.1\">");
+		out.println(" xsi:schemaLocation=\"http://www.ivoa.net/xml/VOSICapabilities/v1.0 http://www.ivoa.net/xml/VOSICapabilities/v1.0 http://www.ivoa.net/xml/TAPRegExt/v1.0 http://www.ivoa.net/xml/TAPRegExt/v1.0 http://www.ivoa.net/xml/VOResource/v1.0 http://www.ivoa.net/xml/VOResource/v1.0 http://www.ivoa.net/xml/VODataService/v1.0 http://www.ivoa.net/xml/VODataService/v1.0\">");
 
 		// Write the full list of this TAP capabilities:
 		out.print(tap.getCapability());
diff --git a/src/tap/resource/TAP.java b/src/tap/resource/TAP.java
index 65ab29e5740b8b2c83a72f89de9de00aad397b11..c4d3f82e93b26c644ca8716b2fd2ff257c3bed5d 100644
--- a/src/tap/resource/TAP.java
+++ b/src/tap/resource/TAP.java
@@ -438,6 +438,16 @@ public class TAP implements VOSIResource {
 			xml.append("\t</outputFormat>\n");
 		}
 
+		// Write upload methods: INLINE, HTTP, FTP:
+		if (service.uploadEnabled()){
+			xml.append("\t<uploadMethod ivo-id=\"ivo://ivoa.org/tap/uploadmethods#inline\" />\n");
+			xml.append("\t<uploadMethod ivo-id=\"ivo://ivoa.org/tap/uploadmethods#http\" />\n");
+			xml.append("\t<uploadMethod ivo-id=\"ivo://ivoa.org/tap/uploadmethods#ftp\" />\n");
+			xml.append("\t<uploadMethod ivo-id=\"ivo://ivoa.net/std/TAPRegExt#upload-inline\" />\n");
+			xml.append("\t<uploadMethod ivo-id=\"ivo://ivoa.net/std/TAPRegExt#upload-http\" />\n");
+			xml.append("\t<uploadMethod ivo-id=\"ivo://ivoa.net/std/TAPRegExt#upload-ftp\" />\n");
+		}
+
 		// Retention period (for asynchronous jobs):
 		int[] retentionPeriod = service.getRetentionPeriod();
 		if (retentionPeriod != null && retentionPeriod.length >= 2){
@@ -478,16 +488,8 @@ public class TAP implements VOSIResource {
 			}
 		}
 
-		// Upload capabilities and limits:
+		// Upload limits
 		if (service.uploadEnabled()){
-			// Write upload methods: INLINE, HTTP, FTP:
-			xml.append("<uploadMethod ivo-id=\"ivo://ivoa.org/tap/uploadmethods#inline\" />");
-			xml.append("<uploadMethod ivo-id=\"ivo://ivoa.org/tap/uploadmethods#http\" />");
-			xml.append("<uploadMethod ivo-id=\"ivo://ivoa.org/tap/uploadmethods#ftp\" />");
-			xml.append("<uploadMethod ivo-id=\"ivo://ivoa.net/std/TAPRegExt#upload-inline\" />");
-			xml.append("<uploadMethod ivo-id=\"ivo://ivoa.net/std/TAPRegExt#upload-http\" />");
-			xml.append("<uploadMethod ivo-id=\"ivo://ivoa.net/std/TAPRegExt#upload-ftp\" />");
-
 			// Write upload limits:
 			int[] uploadLimit = service.getUploadLimit();
 			LimitUnit[] uploadLimitType = service.getUploadLimitType();