| source |
<xs:element name="transformation">
<xs:annotation>
<xs:documentation>A "transformation" describes the specification of process environment with placeholders</xs:documentation>
</xs:annotation>
<xs:complexType name="TransformationType">
<xs:annotation>
<xs:documentation>A "transformation" describes the specification of process environment with placeholders</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The parameter list to the "transformation" can contain any number of parameter declarations, which are placeholder for parameter passing.</xs:documentation>
</xs:annotation>
<xs:element name="declare">
<xs:annotation>
<xs:documentation>Each parameter is declared using the "declare" element, specifying the name and container type.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:annotation>
<xs:documentation>For default values in transformations and derivation passed values.</xs:documentation>
</xs:annotation>
<xs:choice minOccurs="0">
<xs:element name="scalar">
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="DVScalarType">
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="list">
<xs:complexType>
<xs:complexContent>
<xs:extension base="DVListType">
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="link" type="LinkageType" use="required"/>
<xs:attribute name="container" type="ContainerType" default="scalar"/>
<xs:attribute name="vdlns" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:annotation>
<xs:documentation>The only mandatory part is the spec of an executable, or another transformation to invoke.</xs:documentation>
</xs:annotation>
<xs:element name="declare-temp" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Temporary declarations only provide bindings between parameter and temp. lfns. No other container types are allowed.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:annotation>
<xs:documentation>Mixed content allowing only "use" in transformations.</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="use" type="UseType"/>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="link" type="LinkageType"/>
<xs:attribute name="container" type="ContainerType" use="optional" fixed="scalar"/>
<xs:attribute name="vdlns" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:annotation>
<xs:documentation>A transformation is either simple or a compound transformation.</xs:documentation>
</xs:annotation>
<xs:element name="call" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A compound transformation consists of one or more calls to other transformations.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Each invoked transformation will be passed the required argument list.</xs:documentation>
</xs:annotation>
<xs:element name="pass">
<xs:annotation>
<xs:documentation>The "pass" element established the binding between an actual parameter with its named formal counterpart.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:annotation>
<xs:documentation>The container type of the formal arg must match the chosen content container.</xs:documentation>
</xs:annotation>
<xs:element name="scalar">
<xs:complexType mixed="true">
<xs:annotation>
<xs:documentation>Mixed content allowing only "use" in transformations.</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="use" type="UseType"/>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="list">
<xs:annotation>
<xs:documentation>A lists consists of zero or more "i" items.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="item">
<xs:annotation>
<xs:documentation>Each element in a list may have an optional index for sparse vectors.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:annotation>
<xs:documentation>Mixed content allowing only "use" in transformations.</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="use" type="UseType"/>
</xs:sequence>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="bind" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uses" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
<xs:attribute name="vdlns" type="xs:string" use="optional"/>
<xs:attribute name="minIncludeVersion" type="xs:string" default='"unbounded"'/>
<xs:attribute name="maxIncludeVersion" type="xs:string" default='"unbounded"'/>
</xs:complexType>
</xs:element>
<xs:sequence>
<xs:element name="pre-script" minOccurs="0">
<xs:annotation>
<xs:documentation>An optional DAGMan prescript to run in scheduler universe.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="ExecutionType">
<xs:attribute name="universe" type="UniverseType" use="optional" default="scheduler"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="executable">
<xs:annotation>
<xs:documentation>The name of the executable itself.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="ExecutionType">
<xs:attribute name="universe" type="UniverseType" use="optional" default="vanilla"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="post-script" minOccurs="0">
<xs:annotation>
<xs:documentation>An optional DAGMan postscript to run in scheduler universe.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent mixed="true">
<xs:extension base="ExecutionType">
<xs:attribute name="universe" type="UniverseType" use="optional" default="scheduler"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="argument" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A command line argument spec consists of an arbitrary number of namable chunks.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="use" type="UseType">
<xs:annotation>
<xs:documentation>"use" references a bound parameter.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:choice>
<xs:element name="profile" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Each "profile" element declares one DAGMan, Condor, or Unix envronment variable.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:annotation>
<xs:documentation>Mixed content allowing only "use" in transformations.</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs=< |