content/ns/2010/scufl2/scufl2.xsd (492 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://ns.taverna.org.uk/2010/scufl2#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:scufl2="http://ns.taverna.org.uk/2010/scufl2#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
jxb:version="1.0">
<xs:annotation>
<xs:appinfo>
<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
<jxb:globalBindings />
<jxb:schemaBindings>
<jxb:package name="org.apache.taverna.scufl2.rdfxml.jaxb" />
</jxb:schemaBindings>
</xs:appinfo>
</xs:annotation>
<!--
<xs:import namespace="http://purl.org/dc/elements/1.1/"
schemaLocation="http://dublincore.org/schemas/xmls/qdc/dc.xsd" />
<xs:import namespace="http://purl.org/dc/terms/"
schemaLocation="http://dublincore.org/schemas/xmls/qdc/dcterms.xsd" />
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
<xs:import namespace="http://www.w3.org/2002/07/owl#"
schemaLocation="owl.xsd" />
-->
<xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
schemaLocation="rdf.xsd" />
<xs:import namespace="http://www.w3.org/2000/01/rdf-schema#"
schemaLocation="rdfs.xsd" />
<xs:complexType name="WorkflowBundleDocument">
<xs:complexContent>
<xs:restriction base="rdf:RDF">
<xs:sequence>
<xs:element ref="scufl2:WorkflowBundle"></xs:element>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="WorkflowDocument">
<xs:complexContent>
<xs:restriction base="rdf:RDF">
<xs:sequence>
<xs:element ref="scufl2:Workflow"></xs:element>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProfileDocument">
<xs:complexContent>
<xs:restriction base="rdf:RDF">
<xs:sequence>
<xs:element ref="scufl2:Profile" />
<xs:element ref="scufl2:Activity" minOccurs="0"
maxOccurs="unbounded" />
<xs:element ref="scufl2:ProcessorBinding" minOccurs="0"
maxOccurs="unbounded" />
<xs:element ref="scufl2:Configuration" minOccurs="0"
maxOccurs="unbounded" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="WorkflowBundle">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" minOccurs="0" />
<xs:element name="globalBaseURI" type="rdf:Resource"
minOccurs="0" />
<xs:element name="mainWorkflow" type="rdf:Resource"
minOccurs="0" />
<xs:element name="workflow" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Workflow" type="scufl2:SeeAlsoType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mainProfile" type="rdf:Resource"
minOccurs="0" />
<xs:element name="profile" maxOccurs="unbounded"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Profile" type="scufl2:SeeAlsoType" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="rdfs:seeAlso" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="Configuration">
<xs:complexType>
<xs:sequence>
<xs:element ref="rdf:type" />
<xs:element ref="rdfs:seeAlso" minOccurs="0" />
<xs:element ref="scufl2:name" minOccurs="0" />
<xs:element name="configure" type="rdf:Resource" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="Activity">
<xs:complexType>
<xs:sequence>
<xs:element ref="rdf:type" />
<xs:element ref="scufl2:name" minOccurs="0" />
<xs:element name="inputActivityPort" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:InputActivityPort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="outputActivityPort" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:OutputActivityPort" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:complexType name="SeeAlsoType">
<xs:sequence>
<xs:element ref="rdfs:seeAlso" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
<xs:element name="Profile">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" />
<xs:element name="processorBinding" type="rdf:Resource"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="activateConfiguration" type="rdf:Resource"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="ProcessorBinding">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" minOccurs="0" />
<xs:element name="bindActivity" type="rdf:Resource" />
<xs:element name="bindProcessor" type="rdf:Resource" />
<xs:element name="activityPosition" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute ref="rdf:datatype" use="required"
fixed="http://www.w3.org/2001/XMLSchema#integer" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="inputPortBinding" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="InputPortBinding" type="scufl2:InputPortBinding" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="outputPortBinding" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="OutputPortBinding" type="scufl2:OutputPortBinding" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:complexType name="InputPortBinding">
<xs:sequence>
<xs:element name="bindInputActivityPort" type="rdf:Resource" />
<xs:element name="bindInputProcessorPort" type="rdf:Resource" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
<xs:complexType name="OutputPortBinding">
<xs:sequence>
<xs:element name="bindOutputActivityPort" type="rdf:Resource" />
<xs:element name="bindOutputProcessorPort" type="rdf:Resource" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
<xs:element name="InputActivityPort">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" />
<xs:element ref="scufl2:portDepth" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="OutputActivityPort">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" />
<xs:element ref="scufl2:portDepth" />
<xs:element ref="scufl2:granularPortDepth" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="Workflow">
<xs:complexType>
<xs:sequence>
<xs:sequence>
<xs:element ref="scufl2:name" />
<xs:element name="workflowIdentifier" type="rdf:Resource" />
<xs:element name="inputWorkflowPort" maxOccurs="unbounded"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:InputWorkflowPort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="outputWorkflowPort" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:OutputWorkflowPort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="processor" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:Processor" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="scufl2:datalink" minOccurs="0"
maxOccurs="unbounded" />
<xs:element ref="scufl2:control" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:element ref="rdfs:seeAlso" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="InputWorkflowPort">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" />
<xs:element ref="scufl2:portDepth" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="OutputWorkflowPort">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="Processor">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" />
<xs:element name="inputProcessorPort" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:InputProcessorPort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="outputProcessorPort" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:OutputProcessorPort" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dispatchStack" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:DispatchStack" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="iterationStrategyStack" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:IterationStrategyStack" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="InputProcessorPort">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element ref="scufl2:name" />
<xs:element ref="scufl2:portDepth" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="OutputProcessorPort">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:name" />
<xs:element ref="scufl2:portDepth" />
<xs:element ref="scufl2:granularPortDepth" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="DispatchStack">
<xs:complexType>
<xs:sequence>
<xs:element ref="rdf:type" minOccurs="0" />
<xs:element name="dispatchStackLayers" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:DispatchStackLayer" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute ref="rdf:parseType" use="required"
fixed="Collection" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="DispatchStackLayer">
<xs:complexType>
<xs:sequence>
<xs:element ref="rdf:type" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="IterationStrategyStack">
<xs:complexType>
<xs:sequence>
<xs:element name="iterationStrategies">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element ref="scufl2:DotProduct" />
<xs:element ref="scufl2:CrossProduct" />
</xs:choice>
</xs:sequence>
<xs:attribute ref="rdf:parseType" use="required"
fixed="Collection" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="CrossProduct">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:productOf" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="DotProduct">
<xs:complexType>
<xs:sequence>
<xs:element ref="scufl2:productOf" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="PortNode">
<xs:complexType>
<xs:sequence>
<xs:element name="iterateOverInputPort" type="rdf:Resource" />
<xs:element name="desiredDepth" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute ref="rdf:datatype" use="required"
fixed="http://www.w3.org/2001/XMLSchema#integer" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
</xs:element>
<xs:element name="productOf">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="scufl2:CrossProduct" />
<xs:element ref="scufl2:DotProduct" />
<xs:element ref="scufl2:PortNode" />
</xs:choice>
<xs:attribute ref="rdf:parseType" use="required" fixed="Collection" />
</xs:complexType>
</xs:element>
<xs:element name="datalink">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<jxb:class name="DataLinkEntry">
</jxb:class>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="DataLink" type="scufl2:DataLink" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="DataLink">
<xs:sequence>
<xs:element name="receiveFrom" type="rdf:Resource" />
<xs:element name="sendTo" type="rdf:Resource" />
<xs:element name="mergePosition" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute ref="rdf:datatype" use="required"
fixed="http://www.w3.org/2001/XMLSchema#integer" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
<xs:element name="control">
<xs:complexType>
<xs:sequence>
<xs:element name="Blocking" type="scufl2:Blocking" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Blocking">
<xs:sequence>
<xs:element name="block" type="rdf:Resource" />
<xs:element name="untilFinished" type="rdf:Resource" />
</xs:sequence>
<xs:attributeGroup ref="rdf:about" />
</xs:complexType>
<xs:element name="configurationType">
<xs:complexType>
<xs:attributeGroup ref="rdf:resource" />
</xs:complexType>
</xs:element>
<xs:element name="required">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute ref="rdf:datatype" use="required"
fixed="http://www.w3.org/2001/XMLSchema#boolean" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="name" type="xs:NCName" />
<xs:element name="granularPortDepth">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute ref="rdf:datatype" use="required"
fixed="http://www.w3.org/2001/XMLSchema#integer" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="portDepth">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute ref="rdf:datatype" use="required"
fixed="http://www.w3.org/2001/XMLSchema#integer" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>