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>