3112N/A<!--
3112N/A ! CDDL HEADER START
3112N/A !
3112N/A ! The contents of this file are subject to the terms of the
3112N/A ! Common Development and Distribution License, Version 1.0 only
3112N/A ! (the "License"). You may not use this file except in compliance
3112N/A ! with the License.
3112N/A !
6982N/A ! You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
6982N/A ! or http://forgerock.org/license/CDDLv1.0.html.
3112N/A ! See the License for the specific language governing permissions
3112N/A ! and limitations under the License.
3112N/A !
4251N/A ! When distributing Covered Code, include this CDDL HEADER in each
6982N/A ! file and include the License file at legal-notices/CDDLv1_0.txt.
6982N/A ! If applicable, add the following below this CDDL HEADER, with the
6982N/A ! fields enclosed by brackets "[]" replaced with your own identifying
6982N/A ! information:
3112N/A ! Portions Copyright [yyyy] [name of copyright owner]
3112N/A !
3112N/A ! CDDL HEADER END
3112N/A !
4251N/A ! Copyright 2007-2009 Sun Microsystems, Inc.
3112N/A ! -->
3112N/A
2889N/A<!--
2889N/A STAf eXecution (STAX) Document Type Definition (DTD)
2889N/A
4714N/A Generated Date: 20090818-11:49:53
2889N/A
2889N/A This DTD module is identified by the SYSTEM identifier:
2889N/A
2889N/A SYSTEM 'stax.dtd'
2889N/A
2889N/A-->
2889N/A
2889N/A<!-- Parameter entities referenced in Element declarations -->
2889N/A
2889N/A<!ENTITY % stax-elems 'function | script | signalhandler'>
2889N/A
4714N/A<!ENTITY % task 'timer | parallel | log |
4714N/A call | stafcmd | script |
4714N/A tcstatus | message | iterate |
4714N/A sequence | import | raise |
4714N/A job | process | nop |
4714N/A try | break | testcase |
4714N/A paralleliterate | continue | throw |
4714N/A release | signalhandler | rethrow |
4714N/A block | hold | terminate |
4714N/A return | if | call-with-list |
4714N/A loop | call-with-map'>
2889N/A
2889N/A<!--================= STAX Job Definition ========================== -->
2889N/A<!--
2889N/A The root element STAX contains all other elements. It consists
2889N/A of an optional defaultcall element and any number of function,
2889N/A script, and/or signalhandler elements.
2889N/A-->
2889N/A<!ELEMENT stax ((%stax-elems;)*, defaultcall?, (%stax-elems;)*)>
2889N/A
2889N/A<!--================= The Default Call Function Element ============ -->
2889N/A<!--
2889N/A The defaultcall element defines the function to call by default
2889N/A to start the job. This can be overridden by the 'FUNCTION'
2889N/A parameter when submitting the job to be executed.
2889N/A The function attribute's value is a literal.
2889N/A-->
2889N/A<!ELEMENT defaultcall (#PCDATA)>
2889N/A<!ATTLIST defaultcall
2889N/A function IDREF #REQUIRED
2889N/A>
2889N/A
4714N/A<!--================= The Timer Element ============================ -->
4714N/A<!--
4714N/A The timer element runs a task for a specified duration.
4714N/A If the task is still running at the end of the specified duration,
4714N/A then the RC variable is set to 1, else if the task ended before
4714N/A the specified duration, the RC variable is set to 0, else if the
4714N/A timer could not start due to an invalid duration, the RC variable
4714N/A is set to -1.
4714N/A-->
4714N/A<!ELEMENT timer (%task;)>
4714N/A<!-- duration is the maximum length of time to run the task.
4714N/A Time can be expressed in milliseconds, seconds, minutes,
4714N/A hours, days, weeks, or years. It is evaluated via Python.
4714N/A Examples: duration='50' (50 milliseconds)
4714N/A duration='90s' (90 seconds)
4714N/A duration='5m' ( 5 minutes)
4714N/A duration='36h' (36 hours)
4714N/A duration='3d' ( 3 days)
4714N/A duration='1w' ( 1 week)
4714N/A duration='1y' ( 1 year)
4714N/A-->
4714N/A<!ATTLIST timer
4714N/A duration CDATA #REQUIRED
4714N/A>
4714N/A
4714N/A<!--================= The Parallel Element ========================= -->
4714N/A<!--
4714N/A The parallel element performs one or more tasks in parallel.
4714N/A-->
4714N/A<!ELEMENT parallel (%task;)+>
4714N/A
4714N/A<!--================= The Log Element ============================== -->
4714N/A<!--
4714N/A Writes a message and its log level to a STAX Job User Log file.
4714N/A The message must evaluate via Python to a string.
4714N/A
4714N/A The log level specified defaults to 'info'. If specified, it
4714N/A must evaluate via Python to a string containing one of the
4714N/A following STAF Log Service Log levels:
4714N/A fatal, warning, info, trace, trace2, trace3, debug, debug2,
4714N/A debug3, start, stop, pass, fail, status, user1, user2, user3,
4714N/A user4, user5, user6, user7, user8
4714N/A The message attribute is evaluated via Python. If it evaluates
4714N/A to true, the message text will also be sent to the STAX Job Monitor.
4714N/A The message attribute defaults to the STAXMessageLog variable whose
4714N/A value defaults to 0 (false) but can by changed within the STAX job
4714N/A to turn on messaging.
4714N/A
4714N/A If an if attribute is specified and it evaluates via Python to
4714N/A false, then the log element is ignored.
4714N/A-->
4714N/A<!ELEMENT log (#PCDATA)>
4714N/A<!ATTLIST log
4714N/A level CDATA "'info'"
4714N/A message CDATA "STAXMessageLog"
4714N/A if CDATA "1"
4714N/A>
4714N/A
2889N/A<!--================= The Call Element ============================= -->
2889N/A<!--
2889N/A Perform a function with the referenced name.
2889N/A The function attribute value is evaluated via Python.
2889N/A Arguments can be specified as data to the call element.
2889N/A Arguments are evaluated via Python.
2889N/A-->
2889N/A<!ELEMENT call (#PCDATA)>
2889N/A<!ATTLIST call
2889N/A function CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A
4714N/A<!--================= The STAF Command Element ===================== -->
4714N/A<!--
4714N/A Specifies a STAF command to be executed.
4714N/A Its name and all of its element values are evaluated via Python.
4714N/A-->
4714N/A<!ELEMENT stafcmd (location, service, request)>
4714N/A<!ATTLIST stafcmd
4714N/A name CDATA #IMPLIED
4714N/A>
4714N/A<!ELEMENT service (#PCDATA)>
4714N/A<!ELEMENT request (#PCDATA)>
4714N/A
4714N/A<!--================= The Script Element =========================== -->
2889N/A<!--
4714N/A Specifies Python code to be executed.
2889N/A-->
4714N/A<!ELEMENT script (#PCDATA)>
4714N/A
4714N/A<!--================= The Testcase Status Element ================== -->
4714N/A<!--
4714N/A Marks status result ('pass' or 'fail' or 'info') for a testcase
4714N/A and allows additional information to be specified. The status
4714N/A result and the additional info is evaluated via Python.
4714N/A-->
4714N/A<!ELEMENT tcstatus (#PCDATA)>
4714N/A<!ATTLIST tcstatus
4714N/A result CDATA #REQUIRED
2889N/A>
2889N/A
4714N/A<!--================= The Message Element ========================== -->
2889N/A<!--
4714N/A Generates an event and makes the message value available to the
4714N/A STAX Job Monitor. The message must evaluate via Python to a string.
4714N/A
4714N/A The log attribute is evaluated via Python to a boolean. If it
4714N/A evaluates to true, the message text will also be logged in the STAX
4714N/A Job User log. The log attribute defaults to the STAXLogMessage
4714N/A variable whose value defaults to 0 (false) but can by changed within
4714N/A the STAX job to turn on logging.
4714N/A
4714N/A The log level is ignored if the log attribute does not evaluate to
4714N/A true. It defaults to 'info'. If specified, it must evaluate via
4714N/A Python to a string containing one of the following STAF Log Service
4714N/A logging levels:
4714N/A fatal, warning, info, trace, trace2, trace3, debug, debug2,
4714N/A debug3, start, stop, pass, fail, status, user1, user2, user3,
4714N/A user4, user5, user6, user7, user8
4714N/A
4714N/A If an if attribute is specified and it evaluates via Python to
4714N/A false, the message element is ignored.
2889N/A-->
4714N/A<!ELEMENT message (#PCDATA)>
4714N/A<!ATTLIST message
4714N/A log CDATA "STAXLogMessage"
4714N/A level CDATA "'info'"
4714N/A if CDATA "1"
2889N/A>
2889N/A
4714N/A<!--================= The Iterate Element ========================= -->
2889N/A<!--
4714N/A The iterate element iterates through a list of items, performing
4714N/A its contained task while substituting each item in the list.
4714N/A The iterated tasks are performed in sequence.
2889N/A-->
4714N/A<!ELEMENT iterate (%task;)>
4714N/A<!-- var is the name of the variable which will contain the
4714N/A current item in the list or tuple being iterated.
4714N/A It is a literal.
4714N/A in is the list or tuple to be iterated. It is evaluated
4714N/A via Python and must evaluate to be a list or tuple.
4714N/A indexvar is the name of a variable which will contain the index of
4714N/A the current item in the list or tuple being iterated.
4714N/A It is a literal. The value for the first index is 0.
4714N/A-->
4714N/A<!ATTLIST iterate
4714N/A var CDATA #REQUIRED
4714N/A in CDATA #REQUIRED
4714N/A indexvar CDATA #IMPLIED
2889N/A>
2889N/A
2889N/A<!--================= The Function Element ========================= -->
2889N/A<!--
2889N/A The function element defines a named task which can be called.
2889N/A The name and scope attribute values are literals.
2889N/A If desired, the function can be described using a function-prolog
2889N/A element (or the deprecated function-description element) and/or a
2889N/A function-epilog element. Also, if desired, the function element
2889N/A can define the arguments that can be passed to the function.
2889N/A-->
2889N/A<!ELEMENT function ((function-prolog | function-description)?,
2889N/A (function-epilog)?,
2889N/A (function-no-args | function-single-arg |
2889N/A function-list-args | function-map-args)?,
2889N/A (%task;))>
2889N/A<!ATTLIST function
2889N/A name ID #REQUIRED
2889N/A requires IDREFS #IMPLIED
2889N/A scope (local | global) "global"
2889N/A>
2889N/A
2889N/A<!ELEMENT function-prolog (#PCDATA)>
2889N/A
2889N/A<!ELEMENT function-epilog (#PCDATA)>
2889N/A
2889N/A<!ELEMENT function-description (#PCDATA)>
2889N/A
2889N/A<!ELEMENT function-no-args EMPTY>
2889N/A
2889N/A<!ELEMENT function-single-arg (function-required-arg |
2889N/A function-optional-arg |
2889N/A function-arg-def)>
2889N/A
2889N/A<!ELEMENT function-list-args ((((function-required-arg+,
2889N/A function-optional-arg*) |
2889N/A (function-required-arg*,
2889N/A function-optional-arg+)),
2889N/A (function-other-args)?) |
2889N/A function-arg-def+)>
2889N/A
2889N/A<!ELEMENT function-map-args (((function-required-arg |
2889N/A function-optional-arg)+,
2889N/A (function-other-args+)?) |
2889N/A function-arg-def+)>
2889N/A
2889N/A<!ELEMENT function-required-arg (#PCDATA)>
2889N/A<!ATTLIST function-required-arg
2889N/A name CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A<!ELEMENT function-optional-arg (#PCDATA)>
2889N/A<!ATTLIST function-optional-arg
2889N/A name CDATA #REQUIRED
2889N/A default CDATA "None"
2889N/A>
2889N/A
2889N/A<!ELEMENT function-other-args (#PCDATA)>
2889N/A<!ATTLIST function-other-args
2889N/A name CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A<!ELEMENT function-arg-def (function-arg-description?,
2889N/A function-arg-private?,
2889N/A function-arg-property*)>
2889N/A<!ATTLIST function-arg-def
2889N/A name CDATA #REQUIRED
2889N/A type (required | optional | other) "required"
2889N/A default CDATA "None"
2889N/A>
2889N/A
2889N/A<!ELEMENT function-arg-description (#PCDATA)>
2889N/A
2889N/A<!ELEMENT function-arg-private EMPTY>
2889N/A
2889N/A<!ELEMENT function-arg-property (function-arg-property-description?,
2889N/A function-arg-property-data*)>
2889N/A<!ATTLIST function-arg-property
2889N/A name CDATA #REQUIRED
2889N/A value CDATA #IMPLIED
2889N/A>
2889N/A
2889N/A<!ELEMENT function-arg-property-description (#PCDATA)>
2889N/A
2889N/A<!ELEMENT function-arg-property-data (function-arg-property-data)*>
2889N/A<!ATTLIST function-arg-property-data
2889N/A type CDATA #REQUIRED
2889N/A value CDATA #IMPLIED
2889N/A>
2889N/A
4714N/A<!--================= The Sequence Element ========================= -->
2889N/A<!--
4714N/A The sequence element performs one or more tasks in sequence.
2889N/A-->
4714N/A<!ELEMENT sequence (%task;)+>
2889N/A
2889N/A<!--================= The Import Element ========================== -->
2889N/A<!--
2889N/A Allows importing of functions from another STAX XML job file.
2889N/A-->
2889N/A<!ELEMENT import (import-include?, import-exclude?)?>
2889N/A<!ATTLIST import
2889N/A file CDATA #REQUIRED
4714N/A machine CDATA #IMPLIED
4714N/A mode CDATA "'error'"
2889N/A>
2889N/A<!ELEMENT import-include (#PCDATA)>
2889N/A<!ELEMENT import-exclude (#PCDATA)>
2889N/A
2889N/A
4714N/A<!--================= The Raise Element ============================ -->
2889N/A<!--
4714N/A A raise signal element raises a specified signal.
4714N/A Signals can also be raised by the STAX execution engine.
4714N/A The signal attribute value is evaluated via Python.
2889N/A-->
4714N/A<!ELEMENT raise EMPTY>
4714N/A<!ATTLIST raise
4714N/A signal CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A<!--================== The STAX Job Element ===================== -->
2889N/A<!--
2889N/A Specifies a STAX sub-job to be executed. This element is equivalent
2889N/A to a STAX EXECUTE request.
2889N/A
2889N/A The name attribute specifies the name of the job. The job name
2889N/A defaults to the value of the function name called to start the job.
2889N/A Its name and all of its element values are evaluated via Python.
2889N/A The job element must contain a location element and either a
2889N/A file or data element. This attribute is equivalent to the
2889N/A JOBNAME option for a STAX EXECUTE command.
2889N/A
2889N/A The clearlogs attribute specifies to delete the STAX Job and Job
2889N/A User logs before the job is executed to ensure that only one job's
2889N/A contents are in the log. This attribute is equivalent to the
2889N/A CLEARLOGS option for a STAX EXECUTE command. The default is the
2889N/A same option that was specified for the parent job. Valid values
2889N/A include 'parent', 'default', 'enabled', and 'disabled'.
2889N/A
2889N/A The monitor attribute specifies whether to automatically monitor the
2889N/A subjob. Note that 'Automatically monitor recommended sub-jobs' must
2889N/A be selected in the STAX Job Monitor properties in order for it to be
2889N/A used. The default value for the monitor attribute is 0, a false
2889N/A value.
2889N/A
2889N/A The logtcelapsedtime attribute specifies to log the elapsed time
2889N/A for a testcase in the summary record in the STAX Job log and on a
2889N/A LIST TESTCASES request. This attribute is equivalent to the
2889N/A LOGTCELAPSEDTIME option for a STAX EXECUTE command. The default is
2889N/A the same option that was specified for the parent job. Valid values
2889N/A include 'parent', 'default', 'enabled', and 'disabled'.
2889N/A
2889N/A The logtcnumstarts attribute specifies to log the number of starts
2889N/A for a testcase in the summary record in the STAX Job log and on a
2889N/A LIST TESTCASES request. This attribute is equivalent to the
2889N/A LOGNUMSTARTS option for a STAX EXECUTE command. The default is
2889N/A the same option that was specified for the parent job. Valid values
2889N/A include 'parent', 'default', 'enabled', and 'disabled'.
2889N/A
2889N/A The logtcstartstop attribute specifies to log start/stop records
2889N/A for testcases in the STAX Job log. This attribute is equivalent to
2889N/A the LOGTCSTARTSTOP option for a STAX EXECUTE command. The default
2889N/A is the same option that was specified for the parent job. Valid
2889N/A values include 'parent', 'default', 'enabled', and 'disabled'.
2889N/A
4251N/A The pythonoutput attribute specifies where to write Python stdout/stderr
4251N/A (e.g. from a print statement in a script element). This attribute
4251N/A is equivalent to the PYTHONOUTPUT option for a STAX EXECUTE command.
4251N/A The default is the same option that was specified for the parent job.
4251N/A Valid values include 'parent', 'default', 'jobuserlog', 'message',
4251N/A 'jobuserlogandmsg', and 'jvmlog'.
4251N/A
4251N/A The pythonloglevel attribute specifies the log level to use when writing
4251N/A Python stdout (e.g. from a print statement in a script element) if the
4251N/A python output is written to the STAX Job User Log. This attribute is
4251N/A equivalent to the PYTHONLOGLEVEL option for a STAX EXECUTE command.
4251N/A The default is the same option that was specified for the parent job.
4251N/A Valid values include 'parent', 'default', or a valid STAF log level
4251N/A such as 'Info', 'Trace', 'User1', etc.
4251N/A
2889N/A The job element must contain either a job-file or job-data element.
2889N/A
2889N/A The job element has the following optional elements:
2889N/A job-function, job-function-args, job-scriptfile(s), and job-script
2889N/A
2889N/A Each of these optional elements may specify an if attribute.
2889N/A The if attribute must evaluate via Python to a true or false value.
2889N/A If it does not evaluate to a true value, the element is ignored.
2889N/A The default value for the if attribute is 1, a true value.
2889N/A Note that in Python, true means any nonzero number or nonempty
2889N/A object; false means not true, such as a zero number, an empty
2889N/A object, or None. Comparisons and equality tests return 1 or 0
2889N/A (true or false).
2889N/A-->
2889N/A<!ELEMENT job ((job-file | job-data),
2889N/A job-function?, job-function-args?,
2889N/A (job-scriptfile | job-scriptfiles)?,
2889N/A job-script*, job-action?)>
2889N/A<!ATTLIST job
2889N/A name CDATA #IMPLIED
2889N/A clearlogs CDATA "'parent'"
2889N/A monitor CDATA #IMPLIED
2889N/A logtcelapsedtime CDATA "'parent'"
2889N/A logtcnumstarts CDATA "'parent'"
2889N/A logtcstartstop CDATA "'parent'"
4251N/A pythonoutput CDATA "'parent'"
4251N/A pythonloglevel CDATA "'parent'"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The job-file element specifies the fully qualified name of a file
2889N/A containing the XML document for the STAX job to be executed.
2889N/A The job-file element is equivalent to the FILE option for a STAX
2889N/A EXECUTE command.
2889N/A
2889N/A The machine attribute specifies the name of the machine where the
2889N/A xml file is located. If not specified, it defaults to Python
2889N/A variable STAXJobXMLMachine. The machine attribute is equivalent
2889N/A to the MACHINE option for a STAX EXECUTE command.
2889N/A -->
2889N/A<!ELEMENT job-file (#PCDATA)>
2889N/A<!ATTLIST job-file
2889N/A machine CDATA "STAXJobXMLMachine"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The job-data element specifies a string containing the XML document
2889N/A for the job to be executed. This element is equivalent to the
2889N/A DATA option for a STAX EXECUTE command.
2889N/A
2889N/A The eval attribute specifies whether the data is be evaluated by
2889N/A Python in the parent job. For example, if the job-data information
2889N/A is dynamically generated and assigned to a Python variable, rather
2889N/A than just containing the literal XML information, then you would
2889N/A need to set the eval attribute to true (e.g. eval="1").
2889N/A The default for the eval attribute is false ("0").
2889N/A -->
2889N/A<!ELEMENT job-data (#PCDATA)>
2889N/A<!ATTLIST job-data
2889N/A eval CDATA "0"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The job-function element specifies the name of the function element
2889N/A to call to start the job, overriding the defaultcall element, if any,
2889N/A specified in the XML document. The <function name> must be the name
2889N/A of a function element specified in the XML document. This element is
2889N/A equivalent to the FUNCTION option for a STAX EXECUTE command.
2889N/A-->
2889N/A<!ELEMENT job-function (#PCDATA)>
2889N/A<!ATTLIST job-function
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The job-function-args element specifies arguments to pass to the
2889N/A function element called to start the job, overriding the arguments,
2889N/A if any, specified for the defaultcall element in the XML document.
2889N/A This element is equivalent to the ARGS option for a STAX EXECUTE
2889N/A command.
2889N/A
2889N/A The eval attribute specifies whether the data is to be evaluated
2889N/A by Python in the parent job. The default for the eval attribute
2889N/A is false ("0").
2889N/A-->
2889N/A<!ELEMENT job-function-args (#PCDATA)>
2889N/A<!ATTLIST job-function-args
2889N/A if CDATA "1"
2889N/A eval CDATA "0"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The job-script element specifies Python code to be executed.
2889N/A This element is equivalent to the SCRIPT option for a STAX
2889N/A EXECUTE command. Multiple job-script elements may be specified.
2889N/A
2889N/A The eval attribute specifies whether the data is to be evaluated
2889N/A by Python in the parent job. The default for the eval attribute
2889N/A is false ("0").
2889N/A-->
2889N/A<!ELEMENT job-script (#PCDATA)>
2889N/A<!ATTLIST job-script
2889N/A if CDATA "1"
2889N/A eval CDATA "0"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The job-scriptfile element (equivalent to the job-scriptfiles
2889N/A element) specifies the fully qualified name of a file containing
2889N/A Python code to be executed, or a list of file names containing
2889N/A Python code to be executed. The value must evaluate via Python to
2889N/A a string or a list of strings. This element is equivalent to the
2889N/A SCRIPTFILE option for a STAX EXECUTE command.
2889N/A
2889N/A Specifying only one scriptfile could look like either:
2889N/A ['C:/stax/scriptfiles/scriptfile1.py'] or
2889N/A 'C:/stax/scriptfiles/scriptfiel1.py'
2889N/A Specifying a list containing 3 scriptfiles could look like:
2889N/A ['C:/stax/scriptfiles/scriptfile1.py',
2889N/A 'C:/stax/scriptfiles/scriptfile2.py',
2889N/A C:/stax/scriptfiles/scriptfile2.py' ]
2889N/A
2889N/A The machine attribute specifies the name of the machine where the
2889N/A SCRIPTFILE(s) are located. If not specified, it defaults to Python
2889N/A variable STAXJobScriptFileMachine. This attribute is equivalent
2889N/A to the SCRIPTFILEMACHINE option for a STAX EXECUTE command.
2889N/A-->
2889N/A<!ELEMENT job-scriptfile (#PCDATA)>
2889N/A<!ATTLIST job-scriptfile
2889N/A if CDATA "1"
2889N/A machine CDATA "STAXJobScriptFileMachine"
2889N/A>
2889N/A
2889N/A<!ELEMENT job-scriptfiles (#PCDATA)>
2889N/A<!ATTLIST job-scriptfiles
2889N/A if CDATA "1"
2889N/A machine CDATA "STAXJobScriptFileMachine"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The job-action element specifies a task to be executed after the
2889N/A sub-job has started. This task will be executed in parallel with
2889N/A the sub-job via a new STAX-Thread. The task will be able to use the
2889N/A STAXSubJobID variable to obtain the sub-job ID in order to interact
2889N/A with the job. If the job completes before the task completes, the
2889N/A job will remain in a non-complete state until the task completes.
2889N/A If the job cannot be started, the job-action task is not executed.
2889N/A-->
2889N/A<!ELEMENT job-action (%task;)>
2889N/A<!ATTLIST job-action
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--================= The STAF Process Element ===================== -->
2889N/A<!--
2889N/A Specifies a STAF process to be started.
2889N/A All of its non-empty element values are evaluated via Python.
2889N/A-->
2889N/A<!ENTITY % procgroup1 '((parms?, workdir?) | (workdir?, parms?))'>
2889N/A<!ENTITY % procgroup2 '((title?, workload?) | (workload?, title?))'>
2889N/A<!ENTITY % procgroup1a '((parms?, workload?) | (workload?, parms?))'>
2889N/A<!ENTITY % procgroup2a '((title?, workdir?) | (workdir?, title?))'>
2889N/A<!ENTITY % procgroup3 '(((vars | var | envs | env)*, useprocessvars?) |
2889N/A (useprocessvars?, (vars | var | envs | env)*))'>
2889N/A<!ENTITY % procgroup4 '(((username, password?)?, disabledauth?) |
2889N/A ((disabledauth?, (username, password?)?)))'>
2889N/A<!ENTITY % procgroup5 '((stdin?, stdout?, stderr?) |
2889N/A (stdout?, stderr?, stdin?) |
2889N/A (stderr?, stdin?, stdout?) |
2889N/A (stdin?, stderr?, stdout?) |
2889N/A (stdout?, stdin?, stderr?) |
2889N/A (stderr?, stdout?, stdin?))'>
2889N/A<!ENTITY % returnfileinfo '(returnfiles | returnfile)*'>
2889N/A<!ENTITY % procgroup5a '((%returnfileinfo;, returnstdout?, returnstderr?) |
2889N/A (returnstdout?, returnstderr?, %returnfileinfo;) |
2889N/A (returnstderr?, %returnfileinfo;, returnstdout?) |
2889N/A (%returnfileinfo;, returnstderr?, returnstdout?) |
2889N/A (returnstdout?, %returnfileinfo;, returnstderr?) |
2889N/A (returnstderr?, returnstdout?, %returnfileinfo;))'>
2889N/A<!ENTITY % procgroup6 '((stopusing?, console?, focus?, statichandlename?) |
2889N/A (stopusing?, console?, statichandlename?, focus?) |
2889N/A (stopusing?, focus?, console?, statichandlename?) |
2889N/A (stopusing?, focus?, statichandlename?, console?) |
2889N/A (stopusing?, statichandlename?, console?, focus?) |
2889N/A (stopusing?, statichandlename?, focus?, console?) |
2889N/A (console?, focus?, stopusing?, statichandlename?) |
2889N/A (console?, focus?, statichandlename?, stopusing?) |
2889N/A (console?, stopusing?, focus?, statichandlename?) |
2889N/A (console?, stopusing?, statichandlename?, focus?) |
2889N/A (console?, statichandlename?, focus?, stopusing?) |
2889N/A (console?, statichandlename?, stopusing?, focus?) |
2889N/A (focus?, console?, stopusing?, statichandlename?) |
2889N/A (focus?, console?, statichandlename?, stopusing?) |
2889N/A (focus?, stopusing?, console?, statichandlename?) |
2889N/A (focus?, stopusing?, statichandlename?, console?) |
2889N/A (focus?, statichandlename?, console?, stopusing?) |
2889N/A (focus?, statichandlename?, stopusing?, console?) |
2889N/A (statichandlename?, stopusing?, console?, focus?) |
2889N/A (statichandlename?, stopusing?, focus?, console?) |
2889N/A (statichandlename?, console?, focus?, stopusing?) |
2889N/A (statichandlename?, console?, stopusing?, focus?) |
2889N/A (statichandlename?, focus?, console?, stopusing?) |
2889N/A (statichandlename?, focus?, stopusing?, console?))'>
2889N/A<!ELEMENT process (location, command,
2889N/A ((%procgroup1;, %procgroup2;) |
2889N/A (%procgroup2;, %procgroup1;) |
2889N/A (%procgroup1a;, %procgroup2a;) |
2889N/A (%procgroup2a;, %procgroup1a;)),
2889N/A %procgroup3;,
2889N/A ((%procgroup4;, %procgroup5;, %procgroup5a;, %procgroup6;) |
2889N/A (%procgroup4;, %procgroup6;, %procgroup5;, %procgroup5a;) |
2889N/A (%procgroup5;, %procgroup5a;, %procgroup4;, %procgroup6;) |
2889N/A (%procgroup5;, %procgroup5a;, %procgroup6;, %procgroup4;) |
2889N/A (%procgroup6;, %procgroup4;, %procgroup5;, %procgroup5a;) |
2889N/A (%procgroup6;, %procgroup5;, %procgroup5a;, %procgroup4;)),
2889N/A other?, process-action?)>
2889N/A<!ATTLIST process
2889N/A name CDATA #IMPLIED
2889N/A>
2889N/A
2889N/A<!--
2889N/A The process element must contain a location element and a
2889N/A command element.
2889N/A-->
2889N/A<!ELEMENT location (#PCDATA)>
2889N/A<!ELEMENT command (#PCDATA)>
2889N/A<!ATTLIST command
2889N/A mode CDATA "'default'"
2889N/A shell CDATA #IMPLIED
2889N/A>
2889N/A
2889N/A<!--
2889N/A The parms element specifies any parameters that you wish to
2889N/A pass to the command.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT parms (#PCDATA)>
2889N/A<!ATTLIST parms
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The workload element specifies the name of the workload for
2889N/A which this process is a member. This may be useful in
2889N/A conjunction with other process elements.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT workload (#PCDATA)>
2889N/A<!ATTLIST workload
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The title element specifies the program title of the process.
2889N/A Unless overridden by the process, the title will be the text
2889N/A that is displayed on the title bar of the application.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT title (#PCDATA)>
2889N/A<!ATTLIST title
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The workdir element specifies the directory from which the
2889N/A command should be executed. If you do not specify this
2889N/A element, the command will be started from whatever directory
2889N/A STAFProc is currently in.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT workdir (#PCDATA)>
2889N/A<!ATTLIST workdir
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The vars (and var) elements specify STAF variables that go into the
2889N/A process specific STAF variable pool.
2889N/A The value must evaluate via Python to a string or a list of
2889N/A strings. Multiple vars elements may be specified for a process.
2889N/A The format for each variable is:
2889N/A 'varname=value'
2889N/A So, a list containing 3 variables could look like:
2889N/A ['var1=value1', 'var2=value2', 'var3=value3']
2889N/A Specifying only one variable could look like either:
2889N/A ['var1=value1'] or
2889N/A 'var1=value1'
2889N/A-->
2889N/A<!ELEMENT vars (#PCDATA)>
2889N/A<!ATTLIST vars
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!ELEMENT var (#PCDATA)>
2889N/A<!ATTLIST var
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The envs (and env) elements specify environment variables that will
2889N/A be set for the process. Environment variables may be mixed case,
2889N/A however most programs assume environment variable names will
2889N/A be uppercase, so, in most cases, ensure that your environment
2889N/A variable names are uppercase.
2889N/A The value must evaluate via Python to a string or a list of
2889N/A strings. Multiple envs elements may be specified for a process.
2889N/A The format for each variable is:
2889N/A 'varname=value'
2889N/A So, a list containing 3 variables could look like:
2889N/A ['ENV_VAR_1=value1', 'ENV_VAR_2=value2', 'ENV_VAR_3=value3']
2889N/A Specifying only one variable could look like either:
2889N/A ['ENV_VAR_1=value1'] or
2889N/A 'ENV_VAR_1=value1'
2889N/A-->
2889N/A<!ELEMENT envs (#PCDATA)>
2889N/A<!ATTLIST envs
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!ELEMENT env (#PCDATA)>
2889N/A<!ATTLIST env
2889N/A if CDATA "1"
2889N/A>
2889N/A<!--
2889N/A The useprocessvars element specifies that STAF variable
2889N/A references should try to be resolved from the STAF variable
2889N/A pool associated with the process being started first.
2889N/A If the STAF variable is not found in this pool, the STAF
2889N/A global variable pool should then be searched.
2889N/A-->
2889N/A<!ELEMENT useprocessvars EMPTY>
2889N/A<!ATTLIST useprocessvars
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The stopusing element allows you to specify the method by
2889N/A which this process will be STOPed, if not overridden on the
2889N/A STOP command.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT stopusing (#PCDATA)>
2889N/A<!ATTLIST stopusing
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The console element allows you to specify if the process should
2889N/A get a new console window or share the STAFProc console.
2889N/A
2889N/A use Must evaluate via Python to a string containing either:
2889N/A - 'new' specifies that the process should get a new console
2889N/A window. This option only has effect on Windows systems.
2889N/A This is the default for Windows systems.
2889N/A - 'same' specifies that the process should share the
2889N/A STAFProc console. This option only has effect on Windows
2889N/A systems. This is the default for Unix systems.
2889N/A-->
2889N/A<!ELEMENT console EMPTY>
2889N/A<!ATTLIST console
2889N/A if CDATA "1"
2889N/A use CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A<!--
2889N/A The focus element allows you to specify the focus that is to be
2889N/A given to any new windows opened when starting a process on a Windows
2889N/A system. The window(s) it effects depends on whether you are using
2889N/A the 'default' or the 'shell' command mode:
2889N/A - Default command mode (no SHELL option): The focus specified is
2889N/A given to any new windows opened by the command specified.
2889N/A - Shell command mode: The focus specified is given only to the
2889N/A new shell command window opened, not to any windows opened by
2889N/A the specified command.
2889N/A
2889N/A The focus element only has effect on Windows systems and requires
2889N/A STAF V3.1.4 or later on the machine where the process is run.
2889N/A
2889N/A mode Must evaluate via Python to a string containing one of the
2889N/A following values:
2889N/A - 'background' specifies to display a window in the background
2889N/A (e.g. not give it focus) in its most recent size and position.
2889N/A This is the default.
2889N/A - 'foreground' specifies to display a window in the foreground
2889N/A (e.g. give it focus) in its most recent size and position.
2889N/A - 'minimized' specifies to display a window as minimized.
2889N/A-->
2889N/A<!ELEMENT focus EMPTY>
2889N/A<!ATTLIST focus
2889N/A if CDATA "1"
2889N/A mode CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A<!--
2889N/A The username element specifies the username under which
2889N/A the process should be started.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT username (#PCDATA)>
2889N/A<!ATTLIST username
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The password element specifies the password with which to
2889N/A authenticate the user specified with the username element.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT password (#PCDATA)>
2889N/A<!ATTLIST password
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!-- The disabledauth element specifies the action to take if a
2889N/A username/password is specified but authentication has been disabled.
2889N/A
2889N/A action Must evaluate via Python to a string containing either:
2889N/A - 'error' specifies that an error should be returned.
2889N/A - 'ignore' specifies that any username/password specified
2889N/A is ignored if authentication is desabled.
2889N/A This action overrides any default specified in the STAF
2889N/A configuration file.
2889N/A-->
2889N/A<!ELEMENT disabledauth EMPTY>
2889N/A<!ATTLIST disabledauth
2889N/A if CDATA "1"
2889N/A action CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A<!--
2889N/A Specifies that a static handle should be created for this process.
2889N/A The value is evaluated via Python to a string. It will be the
2889N/A registered name of the static handle. Using this option will also
2889N/A cause the environment variable STAF_STATIC_HANDLE to be set
2889N/A appropriately for the process.
2889N/A-->
2889N/A<!ELEMENT statichandlename (#PCDATA)>
2889N/A<!ATTLIST statichandlename
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The stdin element specifies the name of the file from which
2889N/A standard input will be read. The value is evaluated via
2889N/A Python to a string.
2889N/A-->
2889N/A<!ELEMENT stdin (#PCDATA)>
2889N/A<!ATTLIST stdin
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The stdout element specifies the name of the file to which
2889N/A standard output will be redirected.
2889N/A The mode and filename are evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT stdout (#PCDATA)>
2889N/A<!-- mode specifies what to do if the file already exists.
2889N/A The value must evaluate via Python to one of the
2889N/A following:
2889N/A 'replace' - specifies that the file will be replaced.
2889N/A 'append' - specifies that the process' standard
2889N/A output will be appended to the file.
2889N/A-->
2889N/A<!ATTLIST stdout
2889N/A if CDATA "1"
2889N/A mode CDATA "'replace'"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The stderr element specifies the file to which standard error will
2889N/A be redirected. The mode and filename are evaluated via Python to a
2889N/A string.
2889N/A-->
2889N/A<!ELEMENT stderr (#PCDATA)>
2889N/A<!-- mode specifies what to do if the file already exists or to
2889N/A redirect standard error to the same file as standard output.
2889N/A The value must evaluate via Python to one of the following:
2889N/A 'replace' - specifies that the file will be replaced.
2889N/A 'append' - specifies that the process's standard error will
2889N/A be appended to the file.
2889N/A 'stdout' - specifies to redirect standard error to the
2889N/A same file to which standard output is redirected.
2889N/A If a file name is specified, it is ignored.
2889N/A-->
2889N/A<!ATTLIST stderr
2889N/A if CDATA "1"
2889N/A mode CDATA "'replace'"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The returnstdout element specifies to return in STAXResult
2889N/A the contents of the file where standard output was redirected
2889N/A when the process completes.
2889N/A-->
2889N/A<!ELEMENT returnstdout EMPTY>
2889N/A<!ATTLIST returnstdout
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The returnstderr element specifies to return in STAXResult
2889N/A the contents of the file where standard error was redirected
2889N/A when the process completes.
2889N/A-->
2889N/A<!ELEMENT returnstderr EMPTY>
2889N/A<!ATTLIST returnstderr
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The returnfiles (and returnfile) elements specify that the
2889N/A contents of the specified file(s) should be returned in
2889N/A STAXResult when the process completes. The value must evaluate
2889N/A via Python to a string or a list of strings. Multiple returnfile(s)
2889N/A elements may be specified for a process.
2889N/A-->
2889N/A<!ELEMENT returnfiles (#PCDATA)>
2889N/A<!ATTLIST returnfiles
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!ELEMENT returnfile (#PCDATA)>
2889N/A<!ATTLIST returnfile
2889N/A if CDATA "1"
2889N/A>
2889N/A
2889N/A<!--
2889N/A The process-action element specifies a task to be executed
2889N/A when a process has started.
2889N/A-->
2889N/A<!ELEMENT process-action (%task;)>
2889N/A<!ATTLIST process-action
2889N/A if CDATA "1"
2889N/A>
2889N/A<!--
2889N/A The other element specifies any other STAF parameters that
2889N/A may arise in the future. It is used to pass additional data
2889N/A to the STAF PROCESS START request.
2889N/A The value is evaluated via Python to a string.
2889N/A-->
2889N/A<!ELEMENT other (#PCDATA)>
2889N/A<!ATTLIST other
2889N/A if CDATA "1"
2889N/A>
2889N/A
4714N/A<!--================= The No Operation Element ===================== -->
4714N/A<!--
4714N/A No operation action.
4714N/A-->
4714N/A<!ELEMENT nop EMPTY>
4714N/A
4714N/A<!--=============== The Try / Catch / Finally Elements ============= -->
4714N/A<!--
4714N/A The try element allows you to perform a task and to catch
4714N/A exceptions that are thrown. Also, if a finally element is
4714N/A specified, then the finally task is executed, no matter whether
4714N/A the try task completes normally or abruptly, and no matter whether
4714N/A a catch element is first given control.
4714N/A-->
4714N/A<!ELEMENT try ((%task;), ((catch+) | ((catch*), finally)))>
4714N/A<!--
4714N/A The catch element performs a task when the specified exception is
4714N/A caught. The var attribute specifies the name of the variable to
4714N/A receive the data specified within the throw element. The typevar
4714N/A attribute specifies the name of the variable to receive the type
4714N/A of the exception. The sourcevar attribute specifies the name
4714N/A of the variable to receive the source information for the exception.
4714N/A
4714N/A-->
4714N/A<!ELEMENT catch (%task;)>
4714N/A<!ATTLIST catch
4714N/A exception CDATA #REQUIRED
4714N/A var CDATA #IMPLIED
4714N/A typevar CDATA #IMPLIED
4714N/A sourcevar CDATA #IMPLIED
4714N/A>
4714N/A<!ELEMENT finally (%task;)>
4714N/A
4714N/A<!--================= Break Element ================================ -->
4714N/A<!--
4714N/A The break element can be used to break out of a loop or iterate
4714N/A element.
4714N/A-->
4714N/A<!ELEMENT break EMPTY>
4714N/A
4714N/A<!--================= The Testcase Element ========================= -->
4714N/A<!--
4714N/A Defines a testcase. Used in conjunction with the tcstatus
4714N/A element to mark the status for a testcase.
4714N/A The name attribute value is evaluated via Python.
4714N/A-->
4714N/A<!ELEMENT testcase (%task;)>
4714N/A<!ATTLIST testcase
4714N/A name CDATA #REQUIRED
4714N/A mode CDATA "'default'"
4714N/A>
4714N/A
4714N/A<!--================= The Parallel Iterate Element ================ -->
4714N/A<!--
4714N/A The parallel iterate element iterates through a list of items,
4714N/A performing its contained task while substituting each item in
4714N/A the list. The iterated tasks are performed in parallel.
4714N/A-->
4714N/A<!ELEMENT paralleliterate (%task;)>
4714N/A<!-- var is the name of a variable which will contain the current
4714N/A item in the list or tuple being iterated.
4714N/A It is a literal.
4714N/A in is the list or tuple to be iterated. It is evaluated
4714N/A via Python and must evaluate to be a list or tuple.
4714N/A indexvar is the name of a variable which will contain the index of
4714N/A the current item in the list or tuple being iterated.
4714N/A It is a literal. The value of the first index is 0.
4714N/A-->
4714N/A<!ATTLIST paralleliterate
4714N/A var CDATA #REQUIRED
4714N/A in CDATA #REQUIRED
4714N/A indexvar CDATA #IMPLIED
4714N/A>
4714N/A
4714N/A<!--================= Continue Element ============================= -->
4714N/A<!--
4714N/A The continue element can be used to continue to the top of a loop
4714N/A or iterate element.
4714N/A-->
4714N/A<!ELEMENT continue EMPTY>
4714N/A
4714N/A<!--================= The Throw Element ============================ -->
4714N/A<!--
4714N/A The throw element specifies an exception to throw.
4714N/A The exception attribute value and any additional information
4714N/A is evaluated via Python.
4714N/A-->
4714N/A<!ELEMENT throw (#PCDATA)>
4714N/A<!ATTLIST throw
4714N/A exception CDATA #REQUIRED
4714N/A>
4714N/A
4714N/A<!--================= The Release Element ========================== -->
4714N/A<!--
4714N/A The release element specifies to release a block in the job.
4714N/A If an if attribute is specified and it evaluates via Python to
4714N/A false, the release element is ignored.
4714N/A-->
4714N/A<!ELEMENT release EMPTY>
4714N/A<!ATTLIST release
4714N/A block CDATA #IMPLIED
4714N/A if CDATA "1"
4714N/A>
4714N/A
2889N/A<!--================= The Signal Handler Element =================== -->
2889N/A<!--
2889N/A The signalhandler element defines how to handle a specified signal.
2889N/A The signal attribute value is evaluated via Python.
2889N/A-->
2889N/A<!ELEMENT signalhandler (%task;)>
2889N/A<!ATTLIST signalhandler
2889N/A signal CDATA #REQUIRED
2889N/A>
2889N/A
4714N/A<!--================= The Rethrow Element ========================= -->
4714N/A<!--
4714N/A The rethrow element specifies to rethrow the current exception.
4714N/A-->
4714N/A<!ELEMENT rethrow EMPTY>
4714N/A
4714N/A<!--================= The Block Element ============================ -->
4714N/A<!--
4714N/A Defines a task block that can be held, released, or terminated.
4714N/A Used in conjunction with the hold/terminate/release elements to
4714N/A define a task block that can be held, terminated, or released.
4714N/A The name attribute value is evaluated via Python.
4714N/A-->
4714N/A<!ELEMENT block (%task;)>
4714N/A<!ATTLIST block
4714N/A name CDATA #REQUIRED
4714N/A>
4714N/A
4714N/A<!--================= The Hold Element ============================= -->
4714N/A<!--
4714N/A The hold element specifies to hold a block in the job.
4714N/A If an if attribute is specified and it evaluates via Python to
4714N/A false, the hold element is ignored.
4714N/A-->
4714N/A<!ELEMENT hold EMPTY>
4714N/A<!ATTLIST hold
4714N/A block CDATA #IMPLIED
4714N/A if CDATA "1"
4714N/A>
4714N/A
4714N/A<!--================= The Terminate Element ======================== -->
4714N/A<!--
4714N/A The terminate element specifies to terminate a block in the job.
4714N/A If an if attribute is specified and it evaluates via Python to
4714N/A false, the terminate element is ignored.
4714N/A-->
4714N/A<!ELEMENT terminate EMPTY>
4714N/A<!ATTLIST terminate
4714N/A block CDATA #IMPLIED
4714N/A if CDATA "1"
4714N/A>
4714N/A
4714N/A<!--================= The Return Element =========================== -->
4714N/A<!--
4714N/A Specifies a value to return from a function.
4714N/A-->
4714N/A<!ELEMENT return (#PCDATA)>
4714N/A
4714N/A<!--================= The Conditional Element (if-then-else) ======= -->
4714N/A<!--
4714N/A Allows you to write an if or a case construct with zero or more
4714N/A elseifs and one or no else statements.
4714N/A
4714N/A The expr attribute value is evaluated via Python and must evaluate
4714N/A to a boolean value.
4714N/A-->
4714N/A<!ELEMENT if ((%task;), elseif*, else?)>
4714N/A<!ATTLIST if
4714N/A expr CDATA #REQUIRED
4714N/A>
4714N/A<!ELEMENT elseif (%task;)>
4714N/A<!ATTLIST elseif
4714N/A expr CDATA #REQUIRED
4714N/A>
4714N/A<!ELEMENT else (%task;)>
4714N/A
4714N/A<!--================= The Call-With-List Element =================== -->
4714N/A<!--
4714N/A Perform a function with the referenced name with any number of
4714N/A arguments in the form of a list. The function attribute value
4714N/A and argument values are evaluated via Python.
4714N/A-->
4714N/A<!ELEMENT call-with-list (call-list-arg*)>
4714N/A<!ATTLIST call-with-list
4714N/A function CDATA #REQUIRED
4714N/A>
4714N/A
4714N/A<!ELEMENT call-list-arg (#PCDATA)>
4714N/A
4714N/A
4714N/A<!--================= The Loop Element ============================= -->
4714N/A<!--
4714N/A The loop element performs a task a specified number of times,
4714N/A allowing specification of an upper and lower bound with an
4714N/A increment value and where the index counter is available to
4714N/A sub-tasks. Also, while and/or until expressions can be
4714N/A specified.
4714N/A-->
4714N/A<!ELEMENT loop (%task;)>
4714N/A<!-- var is the name of a variable which will contain the loop
4714N/A index variable. It is a literal.
4714N/A from is the starting value of the loop index variable.
4714N/A It must evaluate to an integer value via Python.
4714N/A to is the maximum value of the loop index variable
4714N/A It must evaluate to an integer value via Python.
4714N/A by is the increment value for the loop index variable
4714N/A It must evaluate to an integer value via Python.
4714N/A while is an expression that must evaluate to a boolean value
4714N/A and is performed at the top of each loop. If it
4714N/A evaluates to false, it breaks out of the loop.
4714N/A until is an expression that must evaluate to a boolean value
4714N/A and is performed at the bottom of each loop. If it
4714N/A evaluates to false, it breaks out of the loop.
4714N/A-->
4714N/A<!ATTLIST loop
4714N/A var CDATA #IMPLIED
4714N/A from CDATA '1'
4714N/A to CDATA #IMPLIED
4714N/A by CDATA '1'
4714N/A while CDATA #IMPLIED
4714N/A until CDATA #IMPLIED
4714N/A>
4714N/A
2889N/A<!--================= The Call-With-Map Element ==================== -->
2889N/A<!--
2889N/A Perform a function with the referenced name with any number of
2889N/A arguments in the form of a map of named arguments. The function
2889N/A and name attribute values as well as the argument value are
2889N/A evaluated via Python.
2889N/A-->
2889N/A<!ELEMENT call-with-map (call-map-arg*)>
2889N/A<!ATTLIST call-with-map
2889N/A function CDATA #REQUIRED
2889N/A>
2889N/A
2889N/A<!ELEMENT call-map-arg (#PCDATA)>
2889N/A<!ATTLIST call-map-arg
2889N/A name CDATA #REQUIRED
2889N/A>
2889N/A