content/ns/2008/xml/t2flow/t2activities.xsd (452 lines of code) (raw):

<?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>