You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/23 11:04:58 UTC

[13/79] [partial] incubator-taverna-language git commit: Revert "temporarily empty repository"

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java
new file mode 100644
index 0000000..d119c89
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java
@@ -0,0 +1,165 @@
+package org.apache.taverna.scufl2.translator.t2flow.t23activities;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+
+import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.taverna.scufl2.api.configurations.Configuration;
+import org.apache.taverna.scufl2.api.io.ReaderException;
+import org.apache.taverna.scufl2.translator.t2flow.ParserState;
+import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
+import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
+
+import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
+import org.apache.taverna.scufl2.xml.t2flow.jaxb.HTTPHeaders;
+import org.apache.taverna.scufl2.xml.t2flow.jaxb.RESTConfig;
+
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+public class RESTActivityParser extends AbstractActivityParser {
+	private static final String ACTIVITY_XSD = "/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd";
+	private static final URI restRavenURI = ravenURI
+			.resolve("net.sf.taverna.t2.activities/rest-activity/");
+	private static final URI ravenUIURI = ravenURI
+			.resolve("net.sf.taverna.t2.ui-activities/rest-activity/");
+	private static final String className = "net.sf.taverna.t2.activities.rest.RESTActivity";
+	public static final URI ACTIVITY_URI = URI
+			.create("http://ns.taverna.org.uk/2010/activity/rest");
+	public static final URI HTTP_URI = URI.create("http://www.w3.org/2011/http#");
+	public static final URI HTTP_HEADERS_URI = URI.create("http://www.w3.org/2011/http-headers#");
+	public static final URI HTTP_METHODS_URI = URI.create("http://www.w3.org/2011/http-methods#");
+
+	@Override
+	public boolean canHandlePlugin(URI activityURI) {
+		String activityUriStr = activityURI.toASCIIString();
+		return ( activityUriStr.startsWith(restRavenURI.toASCIIString()) ||
+				 activityUriStr.startsWith(ravenUIURI.toASCIIString()) )
+				&& activityUriStr.endsWith(className);
+	}
+
+	@Override
+	public List<URI> getAdditionalSchemas() {
+		URL restXsd = RESTActivityParser.class.getResource(ACTIVITY_XSD);
+		try {
+			return Arrays.asList(restXsd.toURI());
+		} catch (Exception e) {
+			throw new IllegalStateException("Can't find REST schema "
+					+ restXsd);
+		}
+	}
+
+	@Override
+	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
+		return ACTIVITY_URI;
+	}
+
+	@Override
+	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
+			ConfigBean configBean, ParserState parserState)
+			throws ReaderException {
+		RESTConfig restConfig = unmarshallConfig(t2FlowParser, configBean,
+				"xstream", RESTConfig.class);
+
+		Configuration configuration = new Configuration();
+		configuration.setParent(parserState.getCurrentProfile());
+		parserState.setCurrentConfiguration(configuration);
+		try {
+		    ObjectNode json = (ObjectNode)configuration.getJson();
+		    
+		    configuration.setType(ACTIVITY_URI.resolve("#Config"));
+
+		    ObjectNode request = json.objectNode();
+		    json.put("request", request);
+
+		    String method = restConfig.getHttpMethod().toUpperCase();
+		    request.put("httpMethod", method);
+		    request.put("absoluteURITemplate", restConfig.getUrlSignature());
+		    
+		    ArrayNode headers = json.arrayNode();
+		    request.put("headers", headers);
+
+			if (restConfig.getAcceptsHeaderValue() != null && ! restConfig.getAcceptsHeaderValue().isEmpty()) {
+			    ObjectNode accept = json.objectNode();
+			    headers.add(accept);
+			    accept.put("header", "Accept");
+			    accept.put("value", restConfig.getAcceptsHeaderValue());
+			}
+            if (hasContent(method)) {
+				if (restConfig.getContentTypeForUpdates() != null && ! restConfig.getContentTypeForUpdates().isEmpty()) {
+				    ObjectNode accept = json.objectNode();
+	                headers.add(accept);
+	                accept.put("header", "Content-Type");
+	                accept.put("value", restConfig.getContentTypeForUpdates());
+				}
+				if (restConfig.isSendHTTPExpectRequestHeader()) {
+                    ObjectNode accept = json.objectNode();
+                    headers.add(accept);
+                    accept.put("header", "Expect");
+                    accept.put("value", "100-Continue");
+				}
+			}
+			if (restConfig.getOtherHTTPHeaders() != null
+					&& restConfig.getOtherHTTPHeaders().getList() != null)
+				for (HTTPHeaders.List list : restConfig.getOtherHTTPHeaders()
+						.getList()) {
+					String fieldName = list.getContent().get(0).getValue();
+					String fieldValue = list.getContent().get(1).getValue();
+
+					ObjectNode accept = json.objectNode();
+					headers.add(accept);
+					accept.put("header", fieldName);
+					accept.put("value", fieldValue);
+				}
+			if (restConfig.getShowActualUrlPort() != null)
+				json.put("showActualURLPort", restConfig.getShowActualUrlPort()
+						.booleanValue());
+			if (restConfig.getShowResponseHeadersPort() != null)
+				json.put("showResponseHeadersPort", restConfig
+						.getShowResponseHeadersPort().booleanValue());
+
+			if (restConfig.isShowRedirectionOutputPort())
+				json.put("showRedirectionOutputPort", true);
+			if (restConfig.getEscapeParameters() != null
+					&& !restConfig.getEscapeParameters())
+				json.put("escapeParameters", false);
+			if (restConfig.getOutgoingDataFormat() != null)
+				json.put("outgoingDataFormat",
+						restConfig.getOutgoingDataFormat());
+			return configuration;
+		} finally {
+			parserState.setCurrentConfiguration(null);
+		}
+	}
+
+	private boolean hasContent(String methodName) {
+		if (Arrays.asList("GET", "HEAD", "DELETE", "CONNECT").contains(methodName))
+			return false;
+		// Most probably does have or could have content
+		return true;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java
new file mode 100644
index 0000000..7451c2a
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java
@@ -0,0 +1,123 @@
+package org.apache.taverna.scufl2.translator.t2flow.t23activities;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+
+import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.taverna.scufl2.api.configurations.Configuration;
+import org.apache.taverna.scufl2.api.io.ReaderException;
+import org.apache.taverna.scufl2.translator.t2flow.ParserState;
+import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
+import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
+import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
+import org.apache.taverna.scufl2.xml.t2flow.jaxb.XPathConfig;
+import org.apache.taverna.scufl2.xml.t2flow.jaxb.XPathNamespaceMap.Entry;
+
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+public class XPathActivityParser extends AbstractActivityParser {
+	private static final String ACTIVITY_XSD = "/org/apache/taverna/scufl2/translator/t2flow/xsd/xpathactivity.xsd";
+	private static URI xpathRavenURI = ravenURI
+			.resolve("net.sf.taverna.t2.activities/xpath-activity/");
+	private static URI ravenUIURI = ravenURI
+			.resolve("net.sf.taverna.t2.ui-activities/xpath-activity/");
+	private static String className = "net.sf.taverna.t2.activities.xpath.XPathActivity";
+	public static URI ACTIVITY_URI = URI
+			.create("http://ns.taverna.org.uk/2010/activity/xpath");
+	public static URI NAMESPACE_MAPPING_URI = URI
+			.create("http://ns.taverna.org.uk/2010/activity/xpath/NamespaceMapping");
+
+	@Override
+	public boolean canHandlePlugin(URI activityURI) {
+		String activityUriStr = activityURI.toASCIIString();
+		return (activityUriStr.startsWith(xpathRavenURI.toASCIIString()) || activityUriStr
+				.startsWith(ravenUIURI.toASCIIString()))
+				&& activityUriStr.endsWith(className);
+	}
+
+	@Override
+	public List<URI> getAdditionalSchemas() {
+		URL xpathXsd = XPathActivityParser.class.getResource(ACTIVITY_XSD);
+		try {
+			return Arrays.asList(xpathXsd.toURI());
+		} catch (Exception e) {
+			throw new IllegalStateException("Can't find XPath schema "
+					+ xpathXsd);
+		}
+	}
+
+	@Override
+	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
+		return ACTIVITY_URI;
+	}
+
+	@Override
+	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
+			ConfigBean configBean, ParserState parserState)
+			throws ReaderException {
+
+		XPathConfig xpathConfig = unmarshallConfig(t2FlowParser, configBean,
+				"xstream", XPathConfig.class);
+
+		Configuration configuration = new Configuration();
+		configuration.setParent(parserState.getCurrentProfile());
+		parserState.setCurrentConfiguration(configuration);
+
+		try {
+		    
+		    ObjectNode json = (ObjectNode)configuration.getJson();
+		    configuration.setType(ACTIVITY_URI.resolve("#Config"));
+
+			String xmlDocument = xpathConfig.getXmlDocument();
+			if (xmlDocument != null) {
+			    json.put("exampleXmlDocument", xmlDocument);
+			}
+
+			String xpathExpression = xpathConfig.getXpathExpression();
+			json.put("xpathExpression", xpathExpression);
+
+			
+			ArrayNode namespaceMap = json.arrayNode();
+			json.put("xpathNamespaceMap", namespaceMap);
+
+			// TODO look at why the schema translation here is so wrong
+			for (Entry list : xpathConfig.getXpathNamespaceMap().getEntry()) {
+				String namespacePrefix = list.getContent().get(0).getValue();
+				String namespaceURI = list.getContent().get(1).getValue();
+
+				ObjectNode map = json.objectNode();
+				map.put("prefix", namespacePrefix);
+				map.put("uri", namespaceURI);
+				namespaceMap.add(map);
+			}
+		} finally {
+			parserState.setCurrentConfiguration(null);
+		}
+		return configuration;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader b/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
new file mode 100644
index 0000000..81c18e6
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
@@ -0,0 +1 @@
+org.apache.taverna.scufl2.translator.t2flow.T2FlowReader
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser b/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser
new file mode 100644
index 0000000..8d048f1
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser
@@ -0,0 +1,24 @@
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.DataflowActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BeanshellActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.RshellActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SpreadsheetActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.StringConstantActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomobyActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SoaplabActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLXMLSplitterParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomartActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ApiConsomerActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.InteractionActivityParser
+org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ComponentActivityParser
+
+org.apache.taverna.scufl2.translator.t2flow.t23activities.ExternalToolActivityParser
+org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser
+org.apache.taverna.scufl2.translator.t2flow.t23activities.XPathActivityParser
+
+org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ParallelizeParser
+org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ErrorBounceParser
+org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.FailoverParser
+org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser
+org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.LoopParser
+org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.InvokeParser
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml b/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml
new file mode 100644
index 0000000..ceaa7dd
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:beans="http://www.springframework.org/schema/beans"
+	xsi:schemaLocation="http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
+		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<service ref="dataflowActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="beanshellActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="rshellActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="spreadsheetActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="stringConstantActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="biomobyActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="soaplabActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="wsdlActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="wsdlXMLSplitterParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="biomartActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="apiConsomerActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+
+	<service ref="externalToolActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="restActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="xPathActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+
+	<service ref="interactionActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="componentActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	
+	<service ref="parallelizeParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="errorBounceParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="failoverParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="retryParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="loopParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+	<service ref="invokeParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
+
+	<set id="t2Parsers" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" cardinality="0..N" />
+
+	<service ref="t2FlowReader" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleReader">
+		<service-properties>
+			<beans:entry key="mediaType" value="application/vnd.taverna.t2flow+xml" />
+		</service-properties>
+	</service>
+
+</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml b/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml
new file mode 100644
index 0000000..f57e774
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<bean id="t2FlowParser" class="org.apache.taverna.scufl2.translator.t2flow.T2FlowParser">
+		<property name="t2Parsers" ref="t2Parsers" />
+	</bean>
+
+	<bean id="t2FlowReader" class="org.apache.taverna.scufl2.translator.t2flow.T2FlowReader">
+		<property name="parser">
+			<ref local="t2FlowParser" />
+		</property>
+	</bean>
+
+	<bean id="dataflowActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.DataflowActivityParser" />
+	<bean id="beanshellActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BeanshellActivityParser" />
+	<bean id="rshellActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.RshellActivityParser" />
+	<bean id="spreadsheetActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SpreadsheetActivityParser" />
+	<bean id="stringConstantActivityParser"
+		class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.StringConstantActivityParser" />
+	<bean id="biomobyActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomobyActivityParser" />
+	<bean id="soaplabActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SoaplabActivityParser" />
+	<bean id="wsdlActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLActivityParser" />
+	<bean id="wsdlXMLSplitterParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLXMLSplitterParser" />
+	<bean id="biomartActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomartActivityParser" />
+	<bean id="apiConsomerActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ApiConsomerActivityParser" />
+
+	<bean id="externalToolActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.t23activities.ExternalToolActivityParser" />
+	<bean id="restActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser" />
+	<bean id="xPathActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.t23activities.XPathActivityParser" />
+
+	<bean id="interactionActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.InteractionActivityParser" />
+	<bean id="componentActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ComponentActivityParser" />
+	
+	<bean id="parallelizeParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ParallelizeParser" />
+	<bean id="errorBounceParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ErrorBounceParser" />
+	<bean id="failoverParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.FailoverParser" />
+	<bean id="retryParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser" />
+	<bean id="loopParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.LoopParser" />
+	<bean id="invokeParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.InvokeParser" />
+
+
+</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd
new file mode 100644
index 0000000..e55d6db
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<xsd:schema elementFormDefault="unqualified"
+
+	xmlns:tool="http://taverna.sf.net/2011/xml/activity/xpath" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities"
+	jxb:version="1.0">
+
+	<xsd:annotation>
+		<xsd:appinfo>
+			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
+
+			<!-- <jxb:schemaBindings> <jxb:package name="uk.org.taverna.scufl2.xml.t2flow.interaction.jaxb"
+				/> </jxb:schemaBindings> -->
+		</xsd:appinfo>
+	</xsd:annotation>
+
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
+		schemaLocation="t2flow.xsd" />
+		
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2activities"
+		schemaLocation="t2activities.xsd" />
+
+	<xsd:element
+		name="net.sf.taverna.t2.component.ComponentActivityConfigurationBean"
+		type="ComponentConfig" substitutionGroup="tav:abstractConfigBean" />
+
+	<xsd:complexType name="ComponentConfig">
+		<xsd:complexContent>
+			<xsd:extension base="tav:AbstractConfigBean">
+				<xsd:sequence>
+					<xsd:element name="registryBase" type="xsd:anyURI" />
+					<xsd:element name="familyName" type="xsd:string" />
+					<xsd:element name="componentName" type="xsd:string" />
+					<xsd:element name="componentVersion" type="xsd:int" minOccurs="0"/>
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd
new file mode 100644
index 0000000..55a3a86
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<xsd:schema elementFormDefault="unqualified"
+
+	xmlns:tool="http://taverna.sf.net/2011/xml/activity/external-tool"
+	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="1.0">
+
+	<xsd:annotation>
+		<xsd:appinfo>
+			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
+
+			<jxb:schemaBindings>
+				<jxb:package name="uk.org.taverna.scufl2.xml.t2flow.externalTool.jaxb" />
+			</jxb:schemaBindings>
+		</xsd:appinfo>
+	</xsd:annotation>
+
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
+		schemaLocation="t2flow.xsd" />
+
+	<xsd:element
+		name="net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean"
+		type="ExternalToolConfig" substitutionGroup="tav:abstractConfigBean" />
+
+	<xsd:element
+		name="net.sf.taverna.t2.activities.usecase.UseCaseActivityConfigurationBean"
+		type="UsecaseConfig" substitutionGroup="tav:abstractConfigBean" />
+
+
+
+	<xsd:complexType name="UsecaseConfig">
+		<xsd:complexContent>
+			<xsd:extension base="tav:AbstractConfigBean">
+				<xsd:sequence>
+					<xsd:element name="repositoryUrl" type="xsd:anyURI" />
+					<xsd:element name="usecaseid" type="xsd:string" />
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="ExternalToolConfig">
+		<xsd:complexContent>
+			<xsd:extension base="tav:AbstractConfigBean">
+				<xsd:sequence>
+
+					<xsd:choice>
+						<xsd:sequence>
+							<xsd:element name="mechanismType" type="xsd:string" />
+							<xsd:element name="mechanismName" type="xsd:string" />
+							<xsd:element name="mechanismXML" type="xsd:string" />						
+						</xsd:sequence>
+						<xsd:element name="group" type="Group" />					
+					</xsd:choice>
+					<xsd:element name="repositoryUrl" type="xsd:anyURI" minOccurs="0" />
+					<xsd:element name="externaltoolid" type="xsd:string"  />
+
+					<xsd:element name="useCaseDescription" type="UsecaseDescription" />
+					<xsd:element name="edited" type="xsd:boolean" />
+
+				</xsd:sequence>
+			</xsd:extension>
+
+		</xsd:complexContent>
+
+	</xsd:complexType>
+
+	<xsd:complexType name="UsecaseDescription">
+		<xsd:sequence>
+			<xsd:element name="usecaseid" type="xsd:string" />
+			<xsd:element name="group" type="xsd:string" minOccurs="0"/>
+			<xsd:element name="description" type="xsd:string" />
+			<xsd:element name="command" type="xsd:string" />
+			<xsd:element name="test__local" type="xsd:string"
+				minOccurs="0" />
+			<xsd:element name="preparingTimeoutInSeconds" type="xsd:int" />
+			<xsd:element name="executionTimeoutInSeconds" type="xsd:int" />
+			<xsd:element name="tags" />
+			<xsd:element name="REs" />
+			<xsd:element name="queue__preferred" />
+			<xsd:element name="queue__deny" />
+			<xsd:element name="static__inputs" type="StaticInputs" />
+			<xsd:element name="inputs" type="EntryMap" />
+			<xsd:element name="outputs" type="EntryMap" />
+
+			<xsd:element name="includeStdIn" type="xsd:boolean" />
+			<xsd:element name="includeStdOut" type="xsd:boolean" />
+			<xsd:element name="includeStdErr" type="xsd:boolean" />
+			<xsd:element name="validReturnCodes" type="ReturnCodes" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="EntryMap">
+		<xsd:sequence>
+			<xsd:element name="entry" minOccurs="0" maxOccurs="unbounded"
+				type="Entry" />
+		</xsd:sequence>
+	</xsd:complexType>
+	
+	<xsd:complexType name="ReturnCodes">
+		<xsd:sequence>
+			<xsd:element name="int" minOccurs="0" maxOccurs="unbounded"
+				type="xsd:int" />
+		</xsd:sequence>
+	</xsd:complexType>
+	
+	<xsd:complexType name="StaticInputs">
+		<xsd:sequence>
+			<xsd:element name="de.uni__luebeck.inb.knowarc.usecases.ScriptInputStatic"
+					type="ScriptInputStatic" minOccurs="0" maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+	
+	<xsd:complexType name="Group">
+		<xsd:sequence>
+			<xsd:element name="invocationGroupName" type="xsd:string" />			
+			<xsd:element name="mechanismType" type="xsd:string" />
+			<xsd:element name="mechanismName" type="xsd:string" />
+			<xsd:element name="mechanismXML" type="xsd:string" />
+		</xsd:sequence>
+	</xsd:complexType>
+	
+
+	<xsd:complexType name="Entry">
+		<xsd:sequence>
+			<xsd:element name="string" type="xsd:string" />
+			<xsd:choice>
+				<xsd:element name="de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser"
+					type="ScriptInputUser" />
+				<xsd:element name="de.uni__luebeck.inb.knowarc.usecases.ScriptOutput"
+					type="ScriptOutput" />
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="ScriptInputUser">
+		<xsd:sequence>
+			<xsd:element name="tag" type="xsd:string" />
+			<xsd:element name="file" type="xsd:boolean" />
+			<xsd:element name="tempFile" type="xsd:boolean" />
+			<xsd:element name="binary" type="xsd:boolean" />
+			<xsd:element name="charsetName" type="xsd:string" />
+			<xsd:element name="forceCopy" type="xsd:boolean" />
+			<xsd:element name="list" type="xsd:boolean" />
+			<xsd:element name="concatenate" type="xsd:boolean" />
+			<xsd:element name="mime" />
+		</xsd:sequence>
+	</xsd:complexType>
+	
+	
+	<xsd:complexType name="ScriptInputStatic">
+		<xsd:sequence>
+			<xsd:element name="tag" type="xsd:string" />
+			<xsd:element name="file" type="xsd:boolean" />
+			<xsd:element name="tempFile" type="xsd:boolean" />
+			<xsd:element name="binary" type="xsd:boolean" />
+			<xsd:element name="charsetName" type="xsd:string" />
+			<xsd:element name="forceCopy" type="xsd:boolean" />
+			<xsd:choice>
+				<xsd:element name="content" >
+					<xsd:complexType>
+						<xsd:simpleContent><xsd:extension base="xsd:string">
+							<xsd:attribute name="class" fixed="string" use="optional"/>
+						</xsd:extension>						
+						</xsd:simpleContent>						
+					</xsd:complexType>					
+				</xsd:element>
+				<xsd:element name="url" type="xsd:anyURI" />			
+			</xsd:choice>
+
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="ScriptOutput">
+		<xsd:sequence>
+			<xsd:element name="path" type="xsd:string" />
+			<xsd:element name="binary" type="xsd:boolean" />
+			<xsd:element name="mime" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd
new file mode 100644
index 0000000..e1a6b16
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<xsd:schema elementFormDefault="unqualified"
+
+	xmlns:tool="http://taverna.sf.net/2011/xml/activity/xpath" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities"
+	jxb:version="1.0">
+
+	<xsd:annotation>
+		<xsd:appinfo>
+			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
+
+			<!-- <jxb:schemaBindings> <jxb:package name="uk.org.taverna.scufl2.xml.t2flow.interaction.jaxb"
+				/> </jxb:schemaBindings> -->
+		</xsd:appinfo>
+	</xsd:annotation>
+
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
+		schemaLocation="t2flow.xsd" />
+		
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2activities"
+		schemaLocation="t2activities.xsd" />
+
+	<xsd:element
+		name="net.sf.taverna.t2.activities.interaction.InteractionActivityConfigurationBean"
+		type="InteractionConfig" substitutionGroup="tav:abstractConfigBean" />
+
+	<xsd:complexType name="InteractionConfig">
+		<xsd:complexContent>
+			<xsd:extension base="tav:AbstractConfigBean">
+				<xsd:sequence>
+					<xsd:element name="inputs" type="activities:ActivityInputPorts" />
+					<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
+				
+					<xsd:element name="presentationOrigin" type="xsd:string" minOccurs="0" />
+					<xsd:element name="interactionActivityType" type="xsd:string" minOccurs="0" />
+					<xsd:element name="progressNotification" type="xsd:boolean" minOccurs="0" />
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd
new file mode 100644
index 0000000..7eb4e42
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<xsd:schema elementFormDefault="unqualified"
+
+	xmlns:tool="http://taverna.sf.net/2011/xml/activity/rest" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+	jxb:version="1.0">
+
+	<xsd:annotation>
+		<xsd:appinfo>
+			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
+
+<!--
+			<jxb:schemaBindings>
+				<jxb:package name="uk.org.taverna.scufl2.xml.t2flow.rest.jaxb" />
+			</jxb:schemaBindings>
+			-->
+		</xsd:appinfo>
+	</xsd:annotation>
+
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
+		schemaLocation="t2flow.xsd" />
+
+	<xsd:element
+		name="net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean"
+		type="RESTConfig" substitutionGroup="tav:abstractConfigBean" />
+
+
+	<xsd:complexType name="RESTConfig">
+		<xsd:complexContent>
+			<xsd:extension base="tav:AbstractConfigBean">
+				<xsd:sequence>
+					<xsd:element name="httpMethod" type="xsd:string" />
+					<xsd:element name="urlSignature" type="xsd:string" />
+					<xsd:element name="acceptsHeaderValue" type="xsd:string" />
+					<xsd:element name="contentTypeForUpdates" type="xsd:string" />
+					<xsd:element name="outgoingDataFormat" type="xsd:string" />
+					<xsd:element name="sendHTTPExpectRequestHeader" type="xsd:boolean" />
+					<xsd:element name="showRedirectionOutputPort" type="xsd:boolean" />
+                    <xsd:element name="showActualUrlPort" type="xsd:boolean" minOccurs="0" />
+                    <xsd:element name="showResponseHeadersPort" type="xsd:boolean" minOccurs="0" />
+                    
+					<xsd:element name="escapeParameters" type="xsd:boolean" minOccurs="0" />
+					<xsd:element name="otherHTTPHeaders" type="HTTPHeaders" minOccurs="0" />
+					<xsd:element name="activityInputs" type="ActivityInputs" />
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:complexType name="ActivityInputs">
+		<xsd:sequence>
+			<xsd:element name="entry" minOccurs="0" maxOccurs="unbounded">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element name="string" type="xsd:string" />
+						<xsd:element name="java-class" type="xsd:string" />
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+	
+	
+	<xsd:complexType name="HTTPHeaders">
+		<xsd:sequence>
+			<xsd:element name="list" minOccurs="0" maxOccurs="unbounded">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element name="string" type="xsd:string" />
+						<xsd:element name="string" type="xsd:string" />
+					</xsd:sequence>
+				</xsd:complexType>
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+
+</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd
new file mode 100644
index 0000000..ffd10c5
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd
@@ -0,0 +1,530 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<xsd:schema elementFormDefault="unqualified"
+	targetNamespace="http://taverna.sf.net/2008/xml/t2activities"
+	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities"
+	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
+	jxb:version="1.0">
+
+	<xsd:annotation>
+		<xsd:appinfo>
+			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
+
+			<jxb:schemaBindings>
+				<jxb:package name="uk.org.taverna.scufl2.xml.t2flow.jaxb" />
+			</jxb:schemaBindings>
+		</xsd:appinfo>
+	</xsd:annotation>
+
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
+		schemaLocation="t2flow.xsd" />
+
+	<xsd:complexType name="DataflowConfig">
+		<xsd:annotation>
+			<xsd:documentation>Configuration for the nested dataflow activity.
+				The actual nested dataflow is referenced by uuid to identify the
+				dataflow element of the workflow container.</xsd:documentation>
+		</xsd:annotation>
+		<xsd:attribute name="ref" type="tav:uuid"></xsd:attribute>
+	</xsd:complexType>
+	<xsd:complexType name="ApiConsumerConfig">
+		<xsd:sequence>
+
+			<xsd:element name="apiConsumerName" type="xsd:string" />
+			<xsd:element name="apiConsumerDescription" type="xsd:string" />
+			<xsd:element name="description" type="xsd:string" />
+			<xsd:element name="className" type="xsd:string" />
+			<xsd:element name="methodName" type="xsd:string" />
+			<xsd:element name="parameterNames" type="activities:ApiConsumerParameterNames" />
+
+			<xsd:element name="parameterDimensions"
+				type="activities:ApiConsumerParameterDimensions" />
+			<xsd:element name="parameterTypes" type="activities:ApiConsumerParameterTypes" />
+			<xsd:element name="returnType" type="xsd:string" />
+			<xsd:element name="returnDimension" type="xsd:nonNegativeInteger" />
+			<xsd:element name="isMethodStatic" type="xsd:boolean" />
+			<xsd:element name="isMethodConstructor" type="xsd:boolean" />
+
+			<xsd:element name="classLoaderSharing" type="activities:ClassLoaderSharing" />
+			<xsd:element name="localDependencies" type="activities:LocalDependencies" />
+			<xsd:element name="artifactDependencies" type="activities:ArtifactDependencies" />
+			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
+			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
+
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="ApiConsumerParameterNames">
+		<xsd:sequence>
+			<xsd:element name="string" type="xsd:string" minOccurs="0"
+				maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="ApiConsumerParameterDimensions">
+		<xsd:sequence>
+			<xsd:element name="int" type="xsd:nonNegativeInteger"
+				minOccurs="0" maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="ApiConsumerParameterTypes">
+		<xsd:sequence>
+			<xsd:element name="string" type="xsd:string" minOccurs="0"
+				maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="BeanshellConfig">
+		<xsd:annotation>
+			<xsd:documentation>Configuration for the Beanshell activity.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:all>
+			<xsd:element name="script" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation>A Beanshell script</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element name="dependencies" type="activities:Dependencies" />
+			<xsd:element name="classLoaderSharing" type="activities:ClassLoaderSharing" />
+			<xsd:element name="localDependencies" type="activities:LocalDependencies" />
+			<xsd:element name="artifactDependencies" type="activities:ArtifactDependencies" />
+			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
+			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
+			<xsd:element name="localworkerName" type="xsd:string"
+						minOccurs="0" />
+		</xsd:all>
+	</xsd:complexType>
+	<xsd:complexType name="StringConstantConfig">
+		<xsd:sequence>
+			<xsd:sequence>
+				<xsd:element name="value" type="xsd:string"></xsd:element>
+			</xsd:sequence>
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="RShellConfig">
+		<xsd:all>
+			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
+			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
+			<xsd:element name="rVersion" type="xsd:string" minOccurs="0" />
+			<xsd:element name="script" type="xsd:string" />
+			<xsd:element name="connectionSettings" type="activities:RShellConnection" />
+			<xsd:element name="inputSymanticTypes" type="activities:RShellSymanticType" />
+			<xsd:element name="outputSymanticTypes" type="activities:RShellSymanticType" />
+		</xsd:all>
+	</xsd:complexType>
+	<xsd:complexType name="RShellConnection">
+		<xsd:sequence>
+			<xsd:element name="host" type="xsd:string" />
+			<xsd:element name="port" type="xsd:unsignedShort" />
+			<xsd:element name="username" type="xsd:string" minOccurs="0"/>
+			<xsd:element name="password" type="xsd:string" minOccurs="0"/>
+			<xsd:element name="keepSessionAlive" type="xsd:boolean" />
+			<xsd:element name="newRVersion" type="xsd:boolean" default="false" minOccurs="0"/>
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="RShellSymanticType">
+	<xsd:sequence>
+		<xsd:element
+			name="net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean" minOccurs="0" maxOccurs="unbounded">
+
+			<xsd:complexType>
+			<xsd:annotation>
+				<xsd:appinfo>
+					<jxb:class name="RShellPortSymanticTypeBean" />
+				</xsd:appinfo>
+			</xsd:annotation>
+				<xsd:sequence>
+
+					<xsd:element name="name" type="xsd:string" />
+					<xsd:element name="symanticType">
+						<xsd:complexType>
+							<xsd:simpleContent>
+								<xsd:extension base="xsd:string">
+									<xsd:attribute name="reference" type="xsd:string"
+										use="optional" />
+								</xsd:extension>
+							</xsd:simpleContent>
+						</xsd:complexType>
+					</xsd:element>
+				</xsd:sequence>
+			</xsd:complexType>
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType>
+
+
+	<xsd:complexType name="WSDLConfig">
+		<xsd:annotation>
+			<xsd:documentation>Configuration for the WSDL activity.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:sequence>
+			<xsd:element name="wsdl" type="xsd:anyURI">
+				<xsd:annotation>
+					<xsd:documentation>Location of WSDL specification as an URL.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element name="operation" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation>Name of operation within the WSDL specification.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element name="securityProfile" type="activities:WSDLSecurityProfile"
+				minOccurs="0">
+				<xsd:annotation>
+					<xsd:documentation>Name of 'security profile' to apply.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:simpleType name="WSDLSecurityProfile">
+		<xsd:union memberTypes="activities:StandardWSDLSecurityProfile xsd:string" />
+	</xsd:simpleType>
+
+	<xsd:simpleType name="StandardWSDLSecurityProfile">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="HTTPDigestAuthN" />
+			<xsd:enumeration value="HTTPBasicAuthNPlainTextPassword" />
+			<xsd:enumeration value="WSSecurityTimestampUsernameTokenDigestPassword" />
+			<xsd:enumeration value="WSSecurityTimestampUsernameTokenPlainTextPassword" />
+			<xsd:enumeration value="WSSecurityUsernameTokenDigestPassword" />
+			<xsd:enumeration value="WSSecurityUsernameTokenPlainTextPassword" />
+		</xsd:restriction>
+	</xsd:simpleType>
+
+	<xsd:complexType name="XMLSplitterConfig">
+		<xsd:all>
+			<xsd:element name="wrappedTypeXML" type="xsd:string" />
+			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
+			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
+		</xsd:all>
+	</xsd:complexType>
+	<xsd:complexType name="BioMartConfig">
+		<xsd:sequence>
+			<xsd:element name="MartService">
+				<xsd:complexType>
+					<xsd:attribute name="location" type="xsd:anyURI"></xsd:attribute>
+				</xsd:complexType>
+			</xsd:element>
+			<xsd:element name="MartDataset" />
+			<xsd:element name="Query" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="BioMobyConfig">
+		<xsd:complexContent>
+			<xsd:extension base="activities:BioMobyObjectConfig">
+				<xsd:sequence>
+					<xsd:element name="category" type="activities:BioMobyCategory">
+					</xsd:element>
+					<xsd:element name="serviceType" type="activities:BioMobyServiceType">
+					</xsd:element>
+					<xsd:element name="secondaries" type="activities:BioMobySecondaries">
+					</xsd:element>
+				</xsd:sequence>
+
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:complexType name="BioMobyObjectConfig">
+		<xsd:sequence>
+			<xsd:element name="mobyEndpoint" type="xsd:anyURI" />
+			<xsd:element name="serviceName" />
+			<xsd:element name="authorityName" />
+
+		</xsd:sequence>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="BioMobyParserConfig">
+		<xsd:sequence>
+			<xsd:element name="datatypeName" />
+			<xsd:element name="registryEndpoint" type="xsd:anyURI" />
+			<xsd:element name="articleNameUsedByService" />
+
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="SoaplabConfig">
+		<xsd:annotation>
+			<xsd:documentation>Configuration for the SoapLab activity.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:sequence>
+			<xsd:element name="endpoint" type="xsd:anyURI">
+				<xsd:annotation>
+					<xsd:documentation>Location of Soaplab endpoint as an URL.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element name="pollingInterval" type="xsd:nonNegativeInteger">
+				<xsd:annotation>
+					<xsd:documentation>Milliseconds between polling for asynchronous
+						service completion. If 0, the synchronous 'waitFor' method is
+						used
+						instead.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element name="pollingBackoff" type="xsd:double">
+				<xsd:annotation>
+					<xsd:documentation>
+						Multiplication factor to apply to current
+						polling interval (initially "pollingInterval"), gradually
+						increasing the polling interval. It is advisable
+						to keep this close
+						to 1.0, for instance 1.1.
+						The polling interval will however never
+						be larger than the specified
+						"pollingIntervalMax". Must be
+						above 0.0
+						to avoid negative polling
+						intervals.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element name="pollingIntervalMax" type="xsd:nonNegativeInteger">
+				<xsd:annotation>
+					<xsd:documentation>Maximum polling interval in milliseconds after
+						multiplying with "pollingBackoff". Should be larger than
+						"pollingInterval".
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+
+		</xsd:sequence>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="SpreadsheetImportConfig">
+		<xsd:sequence>
+			<xsd:element name="columnRange" type="activities:SpreadsheetRange" />
+			<xsd:element name="rowRange" type="activities:SpreadsheetRange" />
+			<xsd:element name="emptyCellValue" type="xsd:string" />
+			<xsd:element name="columnNames" type="activities:SpreadsheetColumnNames" />
+			<xsd:element name="allRows" type="xsd:boolean" />
+			<xsd:element name="excludeFirstRow" type="xsd:boolean" />
+			<xsd:element name="ignoreBlankRows" type="xsd:boolean" />
+
+			<xsd:element name="emptyCellPolicy" type="activities:SpreadsheetEmptyCellPolicy" />
+			<xsd:element name="outputFormat" type="activities:OutputFormat" />
+			<xsd:element name="csvDelimiter" type="xsd:string" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+
+	<xsd:simpleType name="SpreadsheetEmptyCellPolicy">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="EMPTY_STRING"></xsd:enumeration>
+			<xsd:enumeration value="USER_DEFINED"></xsd:enumeration>
+			<xsd:enumeration value="GENERATE_ERROR"></xsd:enumeration>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+	<xsd:simpleType name="OutputFormat">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="PORT_PER_COLUMN"></xsd:enumeration>
+			<xsd:enumeration value="SINGLE_PORT"></xsd:enumeration>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+
+	<xsd:complexType name="SpreadsheetColumnNames">
+		<xsd:sequence>
+			<xsd:element name="entry" type="activities:SpreadsheetColumnNameEntry"
+				minOccurs="0" maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="SpreadsheetColumnNameEntry">
+		<xsd:sequence>
+			<xsd:element name="string" type="xsd:string" minOccurs="2"
+				maxOccurs="2" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+
+
+	<xsd:complexType name="SpreadsheetRange">
+		<xsd:sequence>
+			<xsd:element name="start" type="xsd:nonNegativeInteger" />
+			<xsd:element name="end" type="xsd:nonNegativeInteger" />
+			<xsd:element name="excludes" type="activities:SpreadsheetExcludes" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="SpreadsheetExcludes">
+		<xsd:sequence>
+			<xsd:element name="exclude" type="activities:SpreadsheetRange"
+				minOccurs="0" maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="LocalDependencies">
+
+		<xsd:sequence>
+			<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"
+				minOccurs="0">
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="ArtifactDependencies">
+		<xsd:sequence>
+			<xsd:element name="net.sf.taverna.raven.repository.BasicArtifact"
+				type="activities:BasicArtifact" maxOccurs="unbounded" minOccurs="0">
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="Dependencies">
+		<xsd:sequence>
+			<xsd:choice>
+				<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"
+					minOccurs="0">
+				</xsd:element>
+				<xsd:element name="element" type="activities:DependencyElement"
+					maxOccurs="unbounded" minOccurs="0">
+				</xsd:element>
+			</xsd:choice>
+		</xsd:sequence>
+		<xsd:attribute name="class" type="xsd:string" use="optional"></xsd:attribute>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="DependencyElement">
+		<xsd:simpleContent>
+			<xsd:extension base="xsd:string">
+				<xsd:attribute name="class" use="optional" />
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+
+	<xsd:simpleType name="ClassLoaderSharing">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="workflow" />
+			<xsd:enumeration value="system" />
+		</xsd:restriction>
+	</xsd:simpleType>
+
+	<xsd:complexType name="BasicArtifact">
+		<xsd:sequence>
+			<xsd:element name="groupId" type="xsd:string" />
+			<xsd:element name="artifactId" type="xsd:string" />
+			<xsd:element name="version" type="xsd:string" />
+			<xsd:element name="hashCode" type="xsd:string" minOccurs="0" />
+			<xsd:element name="string" type="xsd:string" minOccurs="0" />
+		</xsd:sequence>
+	</xsd:complexType>
+
+	<xsd:complexType name="ActivityInputPorts">
+		<xsd:sequence>
+			<xsd:element
+				name="net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean"
+				minOccurs="0" maxOccurs="unbounded" type="activities:ActivityPortDefinitionBean">
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="ActivityPortDefinitionBean">
+	<xsd:choice minOccurs="1" maxOccurs="unbounded" id="activityPortChoice">
+		<xsd:annotation>
+			<xsd:documentation>
+	These seem to come in any order depending on Activity type and Taverna
+	version (probably some internal hash maps involved) - and instead of
+	trying to model this using xsd:any, xsd:groups and xsd:choice, I just
+	went for an unbounded xsd:choice. Users will have to deal with the following
+	additional constaints:
+
+	These elements are required, maximum 1 occurance: name, depth
+
+	These can occur 0..unbounded times:
+	handledReferenceSchemes, translatedElementType
+
+	The rest are optional, but must maximally appear once.
+
+			</xsd:documentation>
+		</xsd:annotation>
+
+		<xsd:element name="handledReferenceSchemes" type="xsd:string"/>
+		<xsd:element name="translatedElementType" type="xsd:string" />
+		<xsd:element name="name" type="xsd:string" />
+		<xsd:element name="depth" type="xsd:nonNegativeInteger" />
+		<xsd:element name="allowsLiteralValues" type="xsd:boolean" />
+		<xsd:element name="mimeTypes">
+			<xsd:complexType>
+				<xsd:choice>
+					<xsd:element name="string" type="xsd:string" minOccurs="0"
+						maxOccurs="unbounded" />
+					<xsd:element name="element" type="activities:DependencyElement" />
+				</xsd:choice>
+				<xsd:attribute name="class" type="xsd:string" use="optional" />
+			</xsd:complexType>
+		</xsd:element>
+		<xsd:element name="granularDepth" type="xsd:nonNegativeInteger" />
+
+	</xsd:choice>
+</xsd:complexType>
+
+	<xsd:complexType name="ActivityOutputPorts">
+		<xsd:sequence>
+			<xsd:element
+				name="net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean"
+				minOccurs="0" maxOccurs="unbounded" type="activities:ActivityPortDefinitionBean">
+			</xsd:element>
+		</xsd:sequence>
+
+	</xsd:complexType>
+	<xsd:complexType name="BioMobyCategory">
+		<xsd:sequence>
+			<xsd:any namespace="##any" processContents="lax" minOccurs="0"
+				maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="BioMobyServiceType">
+		<xsd:sequence>
+			<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##any"
+				processContents="lax">
+			</xsd:any>
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="BioMobySecondaries">
+		<xsd:sequence>
+			<xsd:element minOccurs="0" maxOccurs="unbounded" name="entry"
+				type="activities:BioMobyEntry">
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="BioMobyEntry">
+		<xsd:sequence>
+			<xsd:element minOccurs="2" maxOccurs="2" name="string"
+				type="xsd:anyType">
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd
new file mode 100644
index 0000000..f56f228
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<xsd:schema elementFormDefault="unqualified"
+	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:annotations="http://taverna.sf.net/2008/xml/t2flow/annotations"
+	jxb:version="1.0">
+
+	<xsd:annotation>
+		<xsd:appinfo>
+			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
+
+			<!-- <jxb:schemaBindings> <jxb:package name="uk.org.taverna.scufl2.xml.t2flow.annotations.jaxb" 
+				/> </jxb:schemaBindings> -->
+		</xsd:appinfo>
+	</xsd:annotation>
+
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
+		schemaLocation="t2flow.xsd" />
+
+<!-- Note: JAXB Does not seem to pick up these due to xsd:any in tav:AnnotationBean
+
+ -->
+	<xsd:complexType name="IdentificationAssertion">
+		<xsd:complexContent>
+			<xsd:restriction base="tav:AnnotationBean">
+				<xsd:sequence>
+					<xsd:element name="identification" type="tav:uuid" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion" />
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+	
+	<xsd:complexType name="AbstractTextual" abstract="true">
+		<xsd:complexContent>
+			<xsd:restriction base="tav:AnnotationBean">
+				<xsd:sequence>
+					<xsd:element name="text" type="xsd:string" />
+				</xsd:sequence>
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="Author">
+		<xsd:complexContent>
+			<xsd:restriction base="AbstractTextual">
+				<xsd:sequence>
+					<xsd:element name="text" type="xsd:string" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.Author" />
+
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+	
+	<xsd:complexType name="DescriptiveTitle">
+		<xsd:complexContent>
+			<xsd:restriction base="AbstractTextual">
+				<xsd:sequence>
+					<xsd:element name="text" type="xsd:string" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle" />
+
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:complexType name="ExampleValue">
+		<xsd:complexContent>
+			<xsd:restriction base="AbstractTextual">
+				<xsd:sequence>
+					<xsd:element name="text" type="xsd:string" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue" />
+
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+	<xsd:complexType name="FreeTextDescription">
+		<xsd:complexContent>
+			<xsd:restriction base="AbstractTextual">
+				<xsd:sequence>
+					<xsd:element name="text" type="xsd:string" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription" />
+
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:complexType name="HostInstitution">
+		<xsd:complexContent>
+			<xsd:restriction base="AbstractTextual">
+				<xsd:sequence>
+					<xsd:element name="text" type="xsd:string" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution" />
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:complexType name="MimeType">
+		<xsd:complexContent>
+			<xsd:restriction base="AbstractTextual">
+				<xsd:sequence>
+					<xsd:element name="text" type="xsd:string" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.MimeType" />
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+	
+	<xsd:complexType name="Optional">
+		<xsd:complexContent>
+			<xsd:restriction base="tav:AnnotationBean">
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.Optional" />
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+
+	<xsd:complexType name="SemanticAnnotation">
+		<xsd:complexContent>
+			<xsd:restriction base="tav:AnnotationBean">
+				<xsd:sequence>
+					<xsd:element name="mimeType" type="xsd:string" default="text/rdf+n3" />
+					<xsd:element name="content" type="xsd:string" />
+				</xsd:sequence>
+				<xsd:attribute name="class" form="unqualified"
+					fixed="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation" />
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+
+</xsd:schema>
+		
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd
new file mode 100644
index 0000000..a11c84e
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<xsd:schema targetNamespace="http://taverna.sf.net/2008/xml/t2flow"
+	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" elementFormDefault="qualified"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:layers="http://taverna.sf.net/2008/xml/t2layers"
+	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities">
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2layers"
+		schemaLocation="t2layers.xsd" />
+	<xsd:import schemaLocation="t2annotations.xsd" />
+	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2activities"
+		schemaLocation="t2activities.xsd" />
+	<xsd:import schemaLocation="externaltoolactivity.xsd" />
+	<xsd:import schemaLocation="restactivity.xsd" />
+	<xsd:import schemaLocation="xpathactivity.xsd" />
+
+	<xsd:annotation>
+		<xsd:documentation>
+			Restricting schema of t2flow.xsd that describes the
+			configuration beans for the
+			dispatch stack layers and activities,
+			given the shipped Taverna 2.0/2.1
+			with no additional plugins
+			installed.
		</xsd:documentation>
+	</xsd:annotation>
+	<xsd:redefine schemaLocation="t2flow.xsd">
+		<xsd:complexType name="ConfigBean">
+			<xsd:complexContent>
+				<xsd:restriction base="tav:ConfigBean">
+					<xsd:choice>
+						<xsd:element form="unqualified" name="null">
+							<xsd:annotation>
+								<xsd:documentation>
+									null - meaning no configuration
+								</xsd:documentation>
+							</xsd:annotation>
+						</xsd:element>
+
+
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig"
+							type="layers:RetryConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig"
+							type="layers:ParallelizeConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration"
+							type="layers:LoopConfig">
+						</xsd:element>
+
+
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean"
+							type="activities:ApiConsumerConfig">
+						</xsd:element>
+
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean"
+							type="activities:BeanshellConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean"
+							type="activities:BeanshellConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean"
+							type="activities:StringConstantConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean"
+							type="activities:RShellConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean"
+							type="activities:WSDLConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean"
+							type="activities:XMLSplitterConfig">
+						</xsd:element>
+						<xsd:element form="unqualified" name="MartQuery"
+							type="activities:BioMartConfig">
+						</xsd:element>
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean"
+							type="activities:BioMobyConfig" />
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean"
+							type="activities:BioMobyObjectConfig" />
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.biomoby.MobyParseDatatypeActivityConfigurationBean"
+							type="activities:BioMobyParserConfig" />
+
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration"
+							type="activities:SpreadsheetImportConfig" />
+
+						<xsd:element form="unqualified"
+							name="net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean"
+							type="activities:SoaplabConfig" />
+
+
+						<xsd:element name="dataflow" type="activities:DataflowConfig" />
+
+						<xsd:element ref="tav:abstractConfigBean" />
+
+					</xsd:choice>
+					<xsd:attribute name="encoding" use="required" type="tav:Encoding" />
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+						
+	</xsd:redefine>
+
+
+	<xsd:simpleType name="Encoding">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="xstream"></xsd:enumeration>
+			<xsd:enumeration value="dataflow"></xsd:enumeration>
+			<xsd:enumeration value="jdomxml"></xsd:enumeration>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+
+
+</xsd:schema>
\ No newline at end of file