content/ns/2008/xml/t2flow/t2layers.xsd (130 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 targetNamespace="http://taverna.sf.net/2008/xml/t2layers"
xmlns:layers="http://taverna.sf.net/2008/xml/t2layers" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
elementFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="RetryConfig">
<xsd:annotation>
<xsd:documentation>Defines parameters of retries for when an
activity fails.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="backoffFactor" type="xsd:double">
<xsd:annotation>
<xsd:documentation>A multiplication factor applied to the previous
delay on concurrent delays. Typically this number is quite close
to 1.0. A value of 1.0 means to always use the same delay, while a
factor of 2.0 means a doubling of delay for each retry. The delay
will however never be larger than the specified maxDelay.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="initialDelay" type="xsd:long">
<xsd:annotation>
<xsd:documentation>
Initial delay in milliseconds before the first
retry will be performed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="maxDelay" type="xsd:long">
<xsd:annotation>
<xsd:documentation>Maximum delay in milliseconds after
applying the backoffFactor.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="maxRetries" type="xsd:nonNegativeInteger">
<xsd:annotation>
<xsd:documentation>
Maximum number of retries. A number of 0 means
no retries will be performed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ParallelizeConfig">
<xsd:annotation>
<xsd:documentation>Defines maximum number of jobs to run
concurrently.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="maxJobs" type="xsd:nonNegativeInteger"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LoopConfig">
<xsd:annotation>
<xsd:documentation>Configuration of the loop layer,
which can call an activity again on a given condition. The outputs
of the activity in the processor that has this layer in it's
dispatch stack will be passed to a special conditional activity,
described by conditionXML. This conditional activity will determine
if the main activity is to be called again, by returning "true" or
"false" on it's "loop" output port. If this is the case, the
original job will be sent down again in the dispatch stack, possibly
with any modified input parameters (if other output ports from the
conditional activity matches the original input port names).
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="conditionXML" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Activity to invoke to do the conditional
checking as escaped XML of the format
tav:Activity, typically a Beanshell script. Must
have an output port of depth 0 called "loop" -
which string value will be checked as a boolean
- if it is equal to "true" then the main
activity will be invoked again.
Additional input ports can be defined - if they
match any processor input ports then they will
receive the processor inputs. If they match any
processor output ports they will receive outputs
from last invoking the activity.
Similarly, if output ports are defined, and they
match the processor input port, the output from
the conditional will replace the original
processor input on the next invocation of the
real activity. If they match the processor
output they will replace the output from the
activity.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="runFirst" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>If true, then the conditional activity will be
invoked before calling the "real" activity for the first time,
otherwise the real activity will always be called at least once.
It is generally not recommended to use runFirst=true unless the
conditional activity is able to produce values for all the
processor output ports. Also in this case one must be careful with
conditional activity input ports that are to be received from
calling the activity - they will be null on the first call.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="properties" type="layers:Properties">
<xsd:annotation>
<xsd:documentation>Properties saved by the UI for any
auto-generated conditonalXML. Note that these properties are
ignored when running the workflow and are only saved for the UI to
remember the properties used to generate the conditional activity.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Properties">
<xsd:sequence>
<xsd:element name="property" type="layers:Property"
maxOccurs="unbounded" minOccurs="0">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Property">
<xsd:attribute name="name" type="xsd:string" use="required"></xsd:attribute>
<xsd:attribute name="value" type="xsd:string" use="required"></xsd:attribute>
</xsd:complexType>
</xsd:schema>