blob: 86f3b7bca3c7cf800427ee2fd913e1d1bbaa1b05 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!-- ******************************************************************************* -->
<!-- * Copyright (c) 2012 University of Illinois All rights reserved. This program -->
<!-- * and the accompanying materials are made available under the terms of the -->
<!-- * Eclipse Public License v1.0 which accompanies this distribution, and is -->
<!-- * available at http://www.eclipse.org/legal/epl-v10.html -->
<!-- * -->
<!-- * Contributors: -->
<!-- * Chris Navarro - Design and implementation -->
<!-- ****************************************************************************** -->
<xs:schema targetNamespace="http://eclipse.org/ptp/etfw" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:etfw="http://eclipse.org/ptp/etfw"
xmlns:rm="http://eclipse.org/ptp/rm" elementFormDefault="qualified">
<xs:import schemaLocation="http://eclipse.org/ptp/schemas/v1.1/rm.xsd" namespace="http://eclipse.org/ptp/rm" />
<!-- This should be uncommented once the special TAU widgets are part of the resource_manager_type.xsd file -->
<xs:element name="etfwTool" type="etfw:EtfwToolProcessType" />
<xs:complexType name="EtfwToolProcessType">
<xs:sequence>
<xs:element name="controlData" minOccurs="0" type="etfw:ControlDataType" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="execTool" type="etfw:ExecToolType" />
<xs:element name="analysisTool" type="etfw:AnalysisToolType" />
<xs:element name="buildTool" type="etfw:BuildToolType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="prepend-execution" type="xs:boolean" default="false" />
<xs:attribute name="recompile" type="xs:boolean" default="false" />
<xs:attribute name="explicit-execution" type="xs:boolean" default="false" />
</xs:complexType>
<xs:complexType name="ControlDataType">
<xs:sequence>
<xs:element name="attribute" minOccurs="0" maxOccurs="unbounded" type="rm:attribute-type" />
<!-- similar to the start-up-command in the rm schema -->
<xs:element name="initialize-command" minOccurs="0" maxOccurs="unbounded" type="rm:command-type" />
<!-- similar to "shut-down-command in the rm schema -->
<xs:element name="clean-up-command" minOccurs="0" maxOccurs="unbounded" type="rm:command-type" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="BuildToolType">
<xs:sequence>
<!--<xs:element name="toolId" type="xs:string" minOccurs="0" maxOccurs="1" /> <xs:element name="toolName" type="xs:string" minOccurs="0"
maxOccurs="1" /> <xs:element name="toolType" type="xs:string" minOccurs="0" maxOccurs="1" /> -->
<xs:element name="global" type="etfw:ToolAppType" minOccurs="0" maxOccurs="1" />
<xs:element name="cc-compiler" minOccurs="0" maxOccurs="1" type="etfw:ToolAppType" />
<xs:element name="cxx-compiler" minOccurs="0" maxOccurs="1" type="etfw:ToolAppType" />
<xs:element name="f90-compiler" minOccurs="0" maxOccurs="1" type="etfw:ToolAppType" />
<xs:element name="all-compilers" minOccurs="0" maxOccurs="1" type="etfw:ToolAppType" />
<xs:element name="upc-compiler" minOccurs="0" maxOccurs="1" type="etfw:ToolAppType" />
<xs:element name="tool-state" minOccurs="0" type="etfw:ToolStateType"/>
</xs:sequence>
<xs:attribute name="tool-id" type="xs:string" />
<xs:attribute name="tool-name" type="xs:string" />
<xs:attribute name="tool-type" type="xs:string" />
<xs:attribute name="require-true" type="xs:string" />
<xs:attribute name="replace-compiler" type="xs:boolean" />
<xs:attribute name="set-success-attribute" type="xs:string" />
</xs:complexType>
<xs:complexType name="ExecToolType">
<xs:sequence>
<!-- <xs:element name="toolId" type="xs:string" minOccurs="0" maxOccurs="1" /> <xs:element name="toolName" type="xs:string" minOccurs="0"
maxOccurs="1" /> <xs:element name="toolType" type="xs:string" minOccurs="0" maxOccurs="1" /> -->
<xs:element name="global" type="etfw:ToolAppType" minOccurs="0" maxOccurs="1" />
<xs:element name="execUtils" type="etfw:ToolAppType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="tool-state" minOccurs="0" type="etfw:ToolStateType"/>
</xs:sequence>
<xs:attribute name="tool-id" type="xs:string" />
<xs:attribute name="tool-name" type="xs:string" />
<xs:attribute name="tool-type" type="xs:string" />
<xs:attribute name="require-true" type="xs:string" />
<xs:attribute name="prepend-execution" type="xs:boolean" default="false" />
<xs:attribute name="replace-execution" type="xs:boolean" default="false" />
<xs:attribute name="set-success-attribute" type="xs:string" />
</xs:complexType>
<xs:complexType name="AnalysisToolType">
<xs:sequence>
<!-- <xs:element name="toolId" type="xs:string" minOccurs="0" maxOccurs="1" /> <xs:element name="toolName" type="xs:string" minOccurs="0"
maxOccurs="1" /> <xs:element name="toolType" type="xs:string" minOccurs="0" maxOccurs="1" /> -->
<xs:element name="global" type="etfw:ToolAppType" minOccurs="0" maxOccurs="1" />
<xs:element name="analysis-commands" type="etfw:ToolAppType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="for-all-like" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="tool-state" minOccurs="0" type="etfw:ToolStateType"/>
</xs:sequence>
<xs:attribute name="tool-id" type="xs:string" />
<xs:attribute name="tool-name" type="xs:string" />
<xs:attribute name="tool-type" type="xs:string" />
<xs:attribute name="require-true" type="xs:string" />
<xs:attribute name="depth" type="xs:int" default="-1" />
<xs:attribute name="useDefaultLocation" type="xs:boolean" default="false" />
<xs:attribute name="useLatestFileOnly" type="xs:boolean" default="true" />
<xs:attribute name="set-success-attribute" type="xs:string" />
</xs:complexType>
<xs:complexType name="ToolAppType">
<xs:sequence>
<!-- <xs:element name="toolCommand" minOccurs="0" type="xs:string" /> -->
<!-- <xs:element name="visualizer" minOccurs="0" maxOccurs="1" type="xs:boolean" default="false" /> -->
<xs:element name="inputId" minOccurs="0" type="xs:string" />
<!-- ToolPane[] toolpanes -->
<!-- IAppInput[] allInput -->
<xs:element name="toolPanes" minOccurs="0" maxOccurs="unbounded" type="etfw:ToolPaneType" />
<xs:element name="inputArgs" minOccurs="0" type="etfw:ToolIOType" maxOccurs="unbounded" />
<xs:element name="outputArgs" minOccurs="0" type="etfw:ToolIOType" maxOccurs="unbounded" />
<xs:element name="toolArguments" minOccurs="0" maxOccurs="unbounded" type="etfw:ToolArgumentType" />
</xs:sequence>
<xs:attribute name="tool-id" type="xs:string" />
<xs:attribute name="tool-name" type="xs:string" />
<xs:attribute name="tool-command" type="xs:string" />
<xs:attribute name="tool-group" type="xs:string" />
<xs:attribute name="out-to-file" type="xs:string" />
<xs:attribute name="visualizer" type="xs:boolean" default="false" />
</xs:complexType>
<xs:complexType name="ToolIOType">
<xs:sequence>
<xs:element name="id" type="xs:string" />
<xs:element name="directory" type="xs:int" default="0" minOccurs="1" maxOccurs="1" />
<xs:element name="file" type="xs:int" default="0" minOccurs="1" maxOccurs="1" />
<xs:element name="pathFlag" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ToolArgumentType">
<xs:attribute name="flag" type="xs:string" />
<xs:attribute name="value" type="xs:string" />
<xs:attribute name="separator" type="xs:string" />
<xs:attribute name="conf-val" type="xs:string" />
<xs:attribute name="localFile" type="xs:boolean" default="false" />
<xs:attribute name="useConfValue" type="xs:boolean" default="false" />
<xs:attribute name="requireValue" type="xs:boolean" default="false" />
<xs:attribute name="argType" type="xs:int" default="0" />
</xs:complexType>
<xs:complexType name="ToolPaneType">
<xs:sequence>
<xs:element name="configId" type="xs:string" minOccurs="0" maxOccurs="1" default="" />
<xs:element name="configVarId" type="xs:string" minOccurs="0" maxOccurs="1" default="" />
<xs:element name="optionPane" minOccurs="0" maxOccurs="1" type="rm:tab-controller-type" />
</xs:sequence>
<xs:attribute name="pane-name" type="xs:string" />
<xs:attribute name="prepend-with" type="xs:string" />
<xs:attribute name="enclose-with" type="xs:string" />
<xs:attribute name="separate-with" type="xs:string" />
<xs:attribute name="enclose-values" type="xs:string" />
<xs:attribute name="separate-name-value" type="xs:string" />
<xs:attribute name="virtual" type="xs:boolean" default="false" />
<xs:attribute name="embedded" type="xs:boolean" default="false" />
</xs:complexType>
<xs:complexType name="ToolStateType">
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element name="execute-if" minOccurs="0" type="etfw:ToolStateRuleType"/>
<xs:element name="do-not-execute-if" minOccurs="0" type="etfw:ToolStateRuleType"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ToolStateRuleType">
<xs:choice>
<xs:element name="not" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="rule" type="etfw:ToolStateRuleType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="and" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="rule" maxOccurs="unbounded" type="etfw:ToolStateRuleType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="or" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="rule" maxOccurs="unbounded" type="etfw:ToolStateRuleType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="attribute" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:schema>