以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 DTD/XML Schema 』 (http://bbs.xml.org.cn/list.asp?boardid=23) ---- DTD 2 schema的问题,急 (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=22148) |
-- 作者:stellaryun -- 发布时间:9/12/2005 4:11:00 PM -- DTD 2 schema的问题,急 我用xmlspy将一个dtd文件转换成xml schema, xmlspy自己转换成的xsd文档竟然不能保存, 报错说: this schema doesn't apppear to be valid by itself (as a part of another schema, it might still be ok): <xs:element ref="function"> makes the content model non-deterministic. Possible causes:name equlity, 在这个xsd文件里,function作为element只出现了一次,但是其他的element有属性名是function,按照我的理解,这样的重名是没有问题的 (dtd文件肯定没有错,是已经在使用的开源项目的文档提供的,xmlspy也没有检测到错误) 用eclipse的emf工程导入这个有报错的xsd文件的时候 请问这里的overlap是指什么?可能出现这个问题的原因有哪些呢? |
-- 作者:stellaryun -- 发布时间:9/12/2005 4:23:00 PM -- 急盼大侠指导啊! |
-- 作者:fengzhiyi -- 发布时间:9/12/2005 8:38:00 PM -- 转换不能保存是因为你的xml或schema有错,既然schema没错,就是xml的问题了,eclipse报错的情况好像也是这个问题,你已经发现问题了,function已经被定义为元素,就不能被重定义为属性。 |
-- 作者:stellaryun -- 发布时间:9/12/2005 10:14:00 PM -- 我知道不能保存是有错,我说的是dtd没有错,而xmlspy转换出来的schema有错 function作为elment,和其他element有名为function的属性不冲突 写个简单的例子: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="a"> <xs:complexType> <xs:choice> <xs:element name="a" type="xs:string"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="b"> <xs:complexType> <xs:attribute name="a" type="xs:string"/> </xs:complexType> </xs:element> </xs:schema> a作为element和b有名为a的属性是没有冲突的,这个xsd文件就没有错误
|
-- 作者:fengzhiyi -- 发布时间:9/13/2005 9:09:00 AM -- 把xml文件和schema文件贴出来看一下,大家共同讨论一下,看到底问题出在哪? |
-- 作者:stellaryun -- 发布时间:9/13/2005 9:38:00 AM -- ft 就不是xml和schema的问题 是dtd和schema互换的问题 贴出来你别摔倒就行 |
-- 作者:stellaryun -- 发布时间:9/13/2005 9:39:00 AM -- <!-- STAf eXecution (STAX) Document Type Definition (DTD) Generated Date: 20031021-17:54:56 This DTD module is identified by the SYSTEM identifier: SYSTEM 'stax.dtd' --> <!-- Parameter entities referenced in Element declarations --> <!ENTITY % stax-elems 'function | script | signalhandler'> <!ENTITY % task 'timer | log | parallel | call | stafcmd | script | tcstatus | message | iterate | sequence | import | raise | job | nop | process | try | break | testcase | paralleliterate | continue | throw | release | signalhandler | rethrow | block | hold | terminate | return | if | call-with-list | loop | call-with-map'> <!--================= STAX Job Definition ========================== --> <!-- file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (156 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide The root element STAX contains all other elements. It consists of an optional defaultcall element and any number of function, script, and/or signalhandler elements. --> <!ELEMENT stax ((%stax-elems;)*, defaultcall?, (%stax-elems;)*)> <!--================= The Default Call Function Element ============ --> <!-- The defaultcall element defines the function to call by default to start the job. This can be overridden by the 'FUNCTION' parameter when submitting the job to be executed. The function attribute's value is a literal. --> <!ELEMENT defaultcall (#PCDATA)> <!ATTLIST defaultcall function IDREF #REQUIRED > <!--================= Continue Element ============================= --> <!-- The continue element can be used to continue to the top of a loop or iterate element. --> <!ELEMENT continue EMPTY> <!--================= Break Element ================================ --> <!-- The break element can be used to break out of a loop or iterate element. --> <!ELEMENT break EMPTY> <!--================= The Call-With-Map Element ==================== --> <!-- Perform a function with the referenced name with any number of arguments in the form of a map of named arguments. The function and name attribute values as well as the argument value are evaluated via Python. --> <!ELEMENT call-with-map (call-map-arg*)> <!ATTLIST call-with-map function CDATA #REQUIRED > <!ELEMENT call-map-arg (#PCDATA)> <!ATTLIST call-map-arg name CDATA #REQUIRED > <!--================= The No Operation Element ===================== --> <!-- No operation action. --> <!ELEMENT nop EMPTY> <!--================= The Function Element ========================= --> <!-- The function element defines a named task which can be called. The name and scope attribute values are literals. If desired, the function can be described using a function-prolog element (or the deprecated function-description element) and/or a function-epilog element. Also, if desired, the function element file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (157 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide can define the arguments that can be passed to the function. --> <!ELEMENT function ((function-prolog | function-description)?, (function-epilog)?, (function-no-args | function-single-arg | function-list-args | function-map-args)?, (%task;))> <!ATTLIST function name ID #REQUIRED requires IDREFS #IMPLIED scope (local | global) "global" > <!ELEMENT function-prolog (#PCDATA)> <!ELEMENT function-epilog (#PCDATA)> <!ELEMENT function-description (#PCDATA)> <!ELEMENT function-no-args EMPTY> <!ELEMENT function-single-arg (function-required-arg | function-optional-arg)> <!ELEMENT function-list-args (((function-required-arg+, function-optional-arg*) | (function-required-arg*, function-optional-arg+)), (function-other-args)?)> <!ELEMENT function-map-args ((function-required-arg | function-optional-arg)+, (function-other-args)?)> <!ELEMENT function-required-arg (#PCDATA)> <!ATTLIST function-required-arg name CDATA #REQUIRED > <!ELEMENT function-optional-arg (#PCDATA)> <!ATTLIST function-optional-arg name CDATA #REQUIRED default CDATA "None" > <!ELEMENT function-other-args (#PCDATA)> <!ATTLIST function-other-args name CDATA #REQUIRED > <!--================= The Iterate Element ========================= --> <!-- The iterate element iterates through a list of items, performing its contained task while substituting each item in the list. The iterated tasks are performed in sequence. --> <!ELEMENT iterate (%task;)> <!-- var is the name of the variable which will contain the current item in the list or tuple being iterated. It is a literal. in is the list or tuple to be iterated. It is evaluated via Python and must evaluate to be a list or tuple. file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (158 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide indexvar is the name of a variable which will contain the index of the current item in the list or tuple being iterated. It is a literal. The value for the first index is 0. --> <!ATTLIST iterate var CDATA #REQUIRED in CDATA #REQUIRED indexvar CDATA #IMPLIED > <!--================= The Log Element ============================== --> <!-- Writes a message and its log level to a STAX Job User Log file. The message must evaluate via Python to a string. The log level specified defaults to 'info'. If specified, it must evaluate via Python to a string containing one of the following STAF Log Service Log levels: fatal, warning, info, trace, trace2, trace3, debug, debug2, debug3, start, stop, pass, fail, status, user1, user2, user3, user4, user5, user6, user7, user8 The message attribute is evaluated via Python. If it evaluates to true, the message text will also be sent to the STAX Job Monitor in addition to being logged. The message attribute defaults to the STAXMessageLog variable whose value defaults to 0 (false) but can be changed within the STAX job to turn on messaging. If an if attribute is specified and it evaluates via Python to false, then the log element is ignored. --> <!ELEMENT log (#PCDATA)> <!ATTLIST log level CDATA "'info'" message CDATA "STAXMessageLog" if CDATA "1" > <!--================= The Parallel Iterate Element ================ --> <!-- The parallel iterate element iterates through a list of items, performing its contained task while substituting each item in the list. The iterated tasks are performed in parallel. --> <!ELEMENT paralleliterate (%task;)> <!-- var is the name of a variable which will contain the current item in the list or tuple being iterated. It is a literal. in is the list or tuple to be iterated. It is evaluated via Python and must evaluate to be a list or tuple. indexvar is the name of a variable which will contain the index of the current item in the list or tuple being iterated. It is a literal. The value of the first index is 0. --> <!ATTLIST paralleliterate var CDATA #REQUIRED in CDATA #REQUIRED indexvar CDATA #IMPLIED > <!--================= The Throw Element ============================ --> <!-- The throw element specifies an exception to throw. file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (159 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide The exception attribute value and any additional information is evaluated via Python. --> <!ELEMENT throw (#PCDATA)> <!ATTLIST throw exception CDATA #REQUIRED > <!--================= The Block Element ============================ --> <!-- Defines a task block that can be held, released, or terminated. Used in conjunction with the hold/terminate/release elements to define a task block that can be held, terminated, or released. The name attribute value is evaluated via Python. --> <!ELEMENT block (%task;)> <!ATTLIST block name CDATA #REQUIRED > <!--================= The Try / Catch Block Elements =============== --> <!-- The try element allows you to perform an action and to catch exceptions that are thrown. --> <!ELEMENT try ((%task;), catch+)> <!-- The catch element performs a task when the specified exception is caught. The var attribute specifies the name of the variable to receive the data specified within the throw element. The typevar attribute specifies the name of the variable to receive the type of the exception. --> <!ELEMENT catch (%task;)> <!ATTLIST catch exception CDATA #REQUIRED var CDATA #IMPLIED typevar CDATA #IMPLIED > <!--================= The Terminate Element ======================== --> <!-- The terminate element specifies to terminate a block in the job. --> <!ELEMENT terminate EMPTY> <!ATTLIST terminate block CDATA #IMPLIED > <!--================= The Sequence Element ========================= --> <!-- The sequence element performs one or more tasks in sequence. --> <!ELEMENT sequence (%task;)+> <!--================= The Timer Element ============================ --> <!-- The timer element runs a task for a specified duration. If the task is still running at the end of the specified duration, then the RC variable is set to 1, else if the task ended before file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (160 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide the specified duration, the RC variable is set to 0, else if the timer could not start due to an invalid duration, the RC variable is set to -1. --> <!ELEMENT timer (%task;)> <!-- duration is the maximum length of time to run the task. Time can be expressed in milliseconds, seconds, minutes, hours, days, weeks, or years. It is evaluated via Python. Examples: duration='50' (50 milliseconds) duration='90s' (90 seconds) duration='5m' ( 5 minutes) duration='36h' (36 hours) duration='3d' ( 3 days) duration='1w' ( 1 week) duration='1y' ( 1 year) --> <!ATTLIST timer duration CDATA #REQUIRED > <!--================= The Message Element ========================== --> <!-- Generates an event and makes the message value available to the STAX Job Monitor. The message must evaluate via Python to a string. The log attribute is evaluated via Python to a boolean. If it evaluates to true, the message text will also be logged in the STAX Job User log. The log attribute defaults to the STAXLogMessage variable whose value defaults to 0 (false) but can by changed within the STAX job to turn on logging. The log level is ignored if the log attribute does not evaluate to true. It defaults to 'info'. If specified, it must evaluate via Python to a string containing one of the following STAF Log Service logging levels: fatal, warning, info, trace, trace2, trace3, debug, debug2, debug3, start, stop, pass, fail, status, user1, user2, user3, user4, user5, user6, user7, user8 If an if attribute is specified and it evaluates via Python to false, the message element is ignored. --> <!ELEMENT message (#PCDATA)> <!ATTLIST message log CDATA "STAXLogMessage" level CDATA "'info'" if CDATA "1" > <!--================= The Signal Handler Element =================== --> <!-- The signalhandler element defines how to handle a specified signal. The signal attribute value is evaluated via Python. --> <!ELEMENT signalhandler (%task;)> <!ATTLIST signalhandler signal CDATA #REQUIRED > <!--================= The Testcase Element ========================= --> <!-- file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (161 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide Defines a testcase. Used in conjunction with the tcstatus element to mark the status for a testcase. The name attribute value is evaluated via Python. --> <!ELEMENT testcase (%task;)> <!ATTLIST testcase name CDATA #REQUIRED mode CDATA "'default'" > <!--================= The Import Elements ============================ --> <!-- Allows importing of functions from another STAX XML job file. --> <!ELEMENT import (import-include?, import-exclude?)?> <!ATTLIST import machine CDATA #REQUIRED file CDATA #REQUIRED mode CDATA "'error'" > <!ELEMENT import-include (#PCDATA)> <!ELEMENT import-exclude (#PCDATA)> <!--================= The Hold Element ============================= --> <!-- The hold element specifies to hold a block in the job. --> <!ELEMENT hold EMPTY> <!ATTLIST hold block CDATA #IMPLIED > <!--================= The Conditional Element (if-then-else) ======= --> <!-- Allows you to write an if or a case construct with zero or more elseifs and one or no else statements. The expr attribute value is evaluated via Python and must evaluate to a boolean value. --> <!ELEMENT if ((%task;), elseif*, else?)> <!ATTLIST if expr CDATA #REQUIRED > <!ELEMENT elseif (%task;)> <!ATTLIST elseif expr CDATA #REQUIRED > <!ELEMENT else (%task;)> <!--================= The STAF Command Element ===================== --> <!-- Specifies a STAF command to be executed. Its name and all of its element values are evaluated via Python. --> <!ELEMENT stafcmd (location, service, request)> <!ATTLIST stafcmd name CDATA #IMPLIED > <!ELEMENT service (#PCDATA)> <!ELEMENT request (#PCDATA)> <!--================= The STAF Process Element ===================== --> <!-- Specifies a STAF process to be started. All of its non-empty element values are evaluated via Python. --> <!ENTITY % procgroup1 '((parms?, workdir?) | (workdir?, parms?))'> <!ENTITY % procgroup2 '((title?, workload?) | (workload?, title?))'> <!ENTITY % procgroup1a '((parms?, workload?) | (workload?, parms?))'> <!ENTITY % procgroup2a '((title?, workdir?) | (workdir?, title?))'> <!ENTITY % procgroup3 '(((vars | var | envs | env)*, useprocessvars?) | (useprocessvars?, (vars | var | envs | env)*))'> <!ENTITY % procgroup4 '(((username, password?)?, disabledauth?) | ((disabledauth?, (username, password?)?)))'> <!ENTITY % procgroup5 '((stdin?, stdout?, stderr?) | (stdout?, stderr?, stdin?) | (stderr?, stdin?, stdout?) | (stdin?, stderr?, stdout?) | (stdout?, stdin?, stderr?) | (stderr?, stdout?, stdin?))'> <!ENTITY % returnfileinfo '(returnfiles | returnfile)*'> <!ENTITY % procgroup5a '((%returnfileinfo;, returnstdout?, returnstderr?) | (returnstdout?, returnstderr?, %returnfileinfo;) | (returnstderr?, %returnfileinfo;, returnstdout?) | (%returnfileinfo;, returnstderr?, returnstdout?) | (returnstdout?, %returnfileinfo;, returnstderr?) | (returnstderr?, returnstdout?, %returnfileinfo;))'> <!ENTITY % procgroup6 '((stopusing?, console?, statichandlename?) | (stopusing?, statichandlename?, console?) | (console?, stopusing?, statichandlename?) | (console?, statichandlename?, stopusing?) | (statichandlename?, stopusing?, console?) | (statichandlename?, console?, stopusing?))'> <!ELEMENT process (location, command, ((%procgroup1;, %procgroup2;) | (%procgroup2;, %procgroup1;) | (%procgroup1a;, %procgroup2a;) | (%procgroup2a;, %procgroup1a;)), %procgroup3;, ((%procgroup4;, %procgroup5;, %procgroup5a;, %procgroup6;) | (%procgroup4;, %procgroup6;, %procgroup5;, %procgroup5a;) | (%procgroup5;, %procgroup5a;, %procgroup4;, %procgroup6;) | (%procgroup5;, %procgroup5a;, %procgroup6;, %procgroup4;) | (%procgroup6;, %procgroup4;, %procgroup5;, %procgroup5a;) | (%procgroup6;, %procgroup5;, %procgroup5a;, %procgroup4;)), other?, process-action?)> <!ATTLIST process name CDATA #IMPLIED > <!-- The process element must contain a location element and a command element. --> <!ELEMENT location (#PCDATA)> <!ELEMENT command (#PCDATA)> <!ATTLIST command mode CDATA "'default'" shell CDATA #IMPLIED > <!-- The parms element specifies any parameters that you wish to pass to the command. The value is evaluated via Python to a string. --> <!ELEMENT parms (#PCDATA)> <!ATTLIST parms if CDATA "1" > <!-- The workdir element specifies the directory from which the command should be executed. If you do not specify this element, the command will be started from whatever directory STAFProc is currently in. The value is evaluated via Python to a string. --> <!ELEMENT workdir (#PCDATA)> <!ATTLIST workdir if CDATA "1" > <!-- The title element specifies the program title of the process. Unless overridden by the process, the title will be the text that is displayed on the title bar of the application. The value is evaluated via Python to a string. --> <!ELEMENT title (#PCDATA)> <!ATTLIST title if CDATA "1" > <!-- The workload element specifies the name of the workload for which this process is a member. This may be useful in conjunction with other process elements. The value is evaluated via Python to a string. --> <!ELEMENT workload (#PCDATA)> <!ATTLIST workload if CDATA "1" > <!-- The vars (and var) elements specify STAF variables that go into the process specific STAF variable pool. The value must evaluate via Python to a string or a list of strings. Multiple vars elements may be specified for a process. The format for each variable is: 'varname=value' So, a list containing 3 variables could look like: ['var1=value1', 'var2=value2', 'var3=value3'] Specifying only one variable could look like either: ['var1=value1'] or 'var1=value1' --> <!ELEMENT vars (#PCDATA)> <!ATTLIST vars if CDATA "1" > <!ELEMENT var (#PCDATA)> <!ATTLIST var if CDATA "1" > <!-- The envs (and env) elements specify environment variables that will be set for the process. Environment variables may be mixed case, however most programs assume environment variable names will be uppercase, so, in most cases, ensure that your environment variable names are uppercase. The value must evaluate via Python to a string or a list of strings. Multiple envs elements may be specified for a process. The format for each variable is: 'varname=value' So, a list containing 3 variables could look like: ['ENV_VAR_1=value1', 'ENV_VAR_2=value2', 'ENV_VAR_3=value3'] Specifying only one variable could look like either: ['ENV_VAR_1=value1'] or 'ENV_VAR_1=value1' --> <!ELEMENT envs (#PCDATA)> <!ATTLIST envs if CDATA "1" > <!ELEMENT env (#PCDATA)> <!ATTLIST env if CDATA "1" > <!-- The useprocessvars element specifies that STAF variable references should try to be resolved from the STAF variable pool associated with the process being started first. If the STAF variable is not found in this pool, the STAF global variable pool should then be searched. --> <!ELEMENT useprocessvars EMPTY> <!ATTLIST useprocessvars if CDATA "1" > <!-- The username element specifies the username under which the process should be started. The value is evaluated via Python to a string. --> <!ELEMENT username (#PCDATA)> <!ATTLIST username if CDATA "1" > <!-- The password element specifies the password with which to authenticate the user specified with the username element. The value is evaluated via Python to a string. --> <!ELEMENT password (#PCDATA)> <!ATTLIST password if CDATA "1" > <!-- The disabledauth element specifies the action to take if a username/password is specified but authentication has been disabled. action Must evaluate via Python to a string containing either: - 'error' specifies that an error should be returned. - 'ignore' specifies that any username/password specified is ignored if authentication is desabled. This action overrides any default specified in the STAF configuration file. --> <!ELEMENT disabledauth EMPTY> <!ATTLIST disabledauth if CDATA "1" action CDATA #REQUIRED > <!-- The stdin element specifies the name of the file from which standard input will be read. The value is evaluated via Python to a string. --> <!ELEMENT stdin (#PCDATA)> <!ATTLIST stdin if CDATA "1" > <!-- The stdout element specifies the name of the file to which standard output will be redirected. The value is evaluated via Python to a string. --> <!ELEMENT stdout (#PCDATA)> <!-- mode specifies what to do if the file already exists. The value must evaluate via Python to one of the following: 'replace' - specifies that the file will be replaced. 'append' - specifies that the process' standard output will be appended to the file. --> <!ATTLIST stdout if CDATA "1" mode CDATA "'replace'" > <!-- The stderr element specifies the file to which standard error will be redirected. The mode and filename are evaluated via Python to a string. --> <!ELEMENT stderr (#PCDATA)> <!-- mode specifies what to do if the file already exists or to redirect standard error to the same file as standard output. The value must evaluate via Python to one of the following: 'replace' - specifies that the file will be replaced. 'append' - specifies that the process's standard error will be appended to the file. 'stdout' - specifies to redirect standard error to the same file to which standard output is redirected. file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (166 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide If a file name is specified, it is ignored. --> <!ATTLIST stderr if CDATA "1" mode CDATA "'replace'" > <!-- The returnstdout element specifies to return in STAXResult the contents of the file where standard output was redirected when the process completes. --> <!ELEMENT returnstdout EMPTY> <!ATTLIST returnstdout if CDATA "1" > <!-- The returnstderr element specifies to return in STAXResult the contents of the file where standard error was redirected when the process completes. --> <!ELEMENT returnstderr EMPTY> <!ATTLIST returnstderr if CDATA "1" > <!-- The returnfiles (and returnfile) elements specify that the contents of the specified file(s) should be returned in STAXResult when the process completes. The value must evaluate via Python to a string or a list of strings. Multiple returnfile(s) elements may be specified for a process. --> <!ELEMENT returnfiles (#PCDATA)> <!ATTLIST returnfiles if CDATA "1" > <!ELEMENT returnfile (#PCDATA)> <!ATTLIST returnfile if CDATA "1" > <!-- The stopusing element allows you to specify the method by which this process will be STOPed, if not overridden on the STOP command. The value is evaluated via Python to a string. --> <!ELEMENT stopusing (#PCDATA)> <!ATTLIST stopusing if CDATA "1" > <!-- The console element allows you to specify if the process should get a new console window or share the STAFProc console. use Must evaluate via Python to a string containing either: - 'new' specifies that the process should get a new console window. This option only has effect on Win32. This is file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (167 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide the default for Win32 and OS/2 systems. - 'same' specifies that the process should share the STAFProc console. This option only has effect on Win32. This is the default for Unix systems. --> <!ELEMENT console EMPTY> <!ATTLIST console if CDATA "1" use CDATA #REQUIRED > <!-- Specifies that a static handle should be created for this process. The value is evaluated via Python to a string. It will be the registered name of the static handle. Using this option will also cause the environment variable STAF_STATIC_HANDLE to be set appropriately for the process. --> <!ELEMENT statichandlename (#PCDATA)> <!ATTLIST statichandlename if CDATA "1" > <!-- The process-action element specifies a task to be executed when a process has started. --> <!ELEMENT process-action (%task;)> <!ATTLIST process-action if CDATA "1" > <!-- The other element specifies any other STAF parameters that may arise in the future. It is used to pass additional data to the STAF PROCESS START request. The value is evaluated via Python to a string. --> <!ELEMENT other (#PCDATA)> <!ATTLIST other if CDATA "1" > <!--================== The STAX Job Element ===================== --> <!-- Specifies a STAX sub-job to be executed. This element is equivalent to a STAX EXECUTE request. The name attribute specifies the name of the job. The job name defaults to the value of the function name called to start the job. Its name and all of its element values are evaluated via Python. The job element must contain a location element and either a file or data element. This attribute is equivalent to the JOBNAME option for a STAX EXECUTE command. The clearlogs attribute specifies to delete the STAX Job and Job User logs before the job is executed to ensure that only one job's contents are in the log. This attribute is equivalent to the CLEARLOGS option for a STAX EXECUTE command. The default is the same option that was specified for the parent job. Valid values include 'parent', 'default', 'enabled', and 'disabled'. file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (168 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide The monitor attribute specifies whether to automatically monitor the subjob. Note that 'Automatically monitor recommended sub-jobs' must be selected in the STAX Job Monitor properties in order for it to be used. The default value for the monitor attribute is 0, a false value. The logtcelapsedtime attribute specifies to log the elapsed time for a testcase in the summary record in the STAX Job log and on a LIST TESTCASES request. This attribute is equivalent to the LOGTCELAPSEDTIME option for a STAX EXECUTE command. The default is the same option that was specified for the parent job. Valid values include 'parent', 'default', 'enabled', and 'disabled'. The logtcnumstarts attribute specifies to log the number of starts for a testcase in the summary record in the STAX Job log and on a LIST TESTCASES request. This attribute is equivalent to the LOGNUMSTARTS option for a STAX EXECUTE command. The default is the same option that was specified for the parent job. Valid values include 'parent', 'default', 'enabled', and 'disabled'. The logtcstartstop attribute specifies to log start/stop records for testcases in the STAX Job log. This attribute is equivalent to the LOGTCSTARTSTOP option for a STAX EXECUTE command. The default is the same option that was specified for the parent job. Valid values include 'parent', 'default', 'enabled', and 'disabled'. The job element must contain either a job-file or job-data element. The job element has the following optional elements: job-function, job-function-args, job-scriptfile(s), and job-script Each of these optional elements may specify an if attribute. The if attribute must evaluate via Python to a true or false value. If it does not evaluate to a true value, the element is ignored. The default value for the if attribute is 1, a true value. Note that in Python, true means any nonzero number or nonempty object; false means not true, such as a zero number, an empty object, or None. Comparisons and equality tests return 1 or 0 (true or false). --> <!ELEMENT job ((job-file | job-data), job-function?, job-function-args?, (job-scriptfile | job-scriptfiles)?, job-script*, job-action?)> <!ATTLIST job name CDATA #IMPLIED clearlogs CDATA "'parent'" monitor CDATA #IMPLIED logtcelapsedtime CDATA "'parent'" logtcnumstarts CDATA "'parent'" logtcstartstop CDATA "'parent'" > <!-- The job-file element specifies the fully qualified name of a file containing the XML document for the STAX job to be executed. The job-file element is equivalent to the FILE option for a STAX EXECUTE command. The machine attribute specifies the name of the machine where the xml file is located. If not specified, it defaults to Python file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (169 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide variable STAXJobXMLMachine. The machine attribute is equivalent to the MACHINE option for a STAX EXECUTE command. --> <!ELEMENT job-file (#PCDATA)> <!ATTLIST job-file machine CDATA "STAXJobXMLMachine" > <!-- The job-data element specifies a string containing the XML document for the job to be executed. This element is equivalent to the DATA option for a STAX EXECUTE command. The eval attribute specifies whether the data is be evaluated by Python in the parent job. For example, if the job-data information is dynamically generated and assigned to a Python variable, rather than just containing the literal XML information, then you would need to set the eval attribute to true (e.g. eval="1"). The default for the eval attribute is false ("0"). --> <!ELEMENT job-data (#PCDATA)> <!ATTLIST job-data eval CDATA "0" > <!-- The job-function element specifies the name of the function element to call to start the job, overriding the defaultcall element, if any, specified in the XML document. The <function name> must be the name of a function element specified in the XML document. This element is equivalent to the FUNCTION option for a STAX EXECUTE command. --> <!ELEMENT job-function (#PCDATA)> <!ATTLIST job-function if CDATA "1" > <!-- The job-function-args element specifies arguments to pass to the function element called to start the job, overriding the arguments, if any, specified for the defaultcall element in the XML document. This element is equivalent to the ARGS option for a STAX EXECUTE command. The eval attribute specifies whether the data is to be evaluated by Python in the parent job. The default for the eval attribute is false ("0"). --> <!ELEMENT job-function-args (#PCDATA)> <!ATTLIST job-function-args if CDATA "1" eval CDATA "0" > <!-- The job-script element specifies Python code to be executed. This element is equivalent to the SCRIPT option for a STAX EXECUTE command. Multiple job-script elements may be specified. The eval attribute specifies whether the data is to be evaluated by Python in the parent job. The default for the eval attribute is false ("0"). file:///C|/dev/autobuild/extract/src/staf/services/stax/docs/userguide/staxug.html (170 of 177) [6/27/2005 1:41:52 PM] STAF Execution Engine (STAX) Service User's Guide --> <!ELEMENT job-script (#PCDATA)> <!ATTLIST job-script if CDATA "1" eval CDATA "0" > <!-- The job-scriptfile element (equivalent to the job-scriptfiles element) specifies the fully qualified name of a file containing Python code to be executed, or a list of file names containing Python code to be executed. The value must evaluate via Python to a string or a list of strings. This element is equivalent to the SCRIPTFILE option for a STAX EXECUTE command. Specifying only one scriptfile could look like either: ['C:/stax/scriptfiles/scriptfile1.py'] or 'C:/stax/scriptfiles/scriptfiel1.py' Specifying a list containing 3 scriptfiles could look like: ['C:/stax/scriptfiles/scriptfile1.py', 'C:/stax/scriptfiles/scriptfile2.py', C:/stax/scriptfiles/scriptfile2.py' ] The machine attribute specifies the name of the machine where the SCRIPTFILE(s) are located. If not specified, it defaults to Python variable STAXJobScriptFileMachine. This attribute is equivalent to the SCRIPTFILEMACHINE option for a STAX EXECUTE command. --> <!ELEMENT job-scriptfile (#PCDATA)> <!ATTLIST job-scriptfile if CDATA "1" machine CDATA "STAXJobScriptFileMachine" > <!ELEMENT job-scriptfiles (#PCDATA)> <!ATTLIST job-scriptfiles if CDATA "1" machine CDATA "STAXJobScriptFileMachine" > <!-- The job-action element specifies a task to be executed after the sub-job has started. This task will be executed in parallel with the sub-job via a new STAX-Thread. The task will be able to use the STAXSubJobID variable to obtain the sub-job ID in order to interact with the job. If the job completes before the task completes, the job will remain in a non-complete state until the task completes. If the job cannot be started, the job-action task is not executed. --> <!ELEMENT job-action (%task;)> <!ATTLIST job-action if CDATA "1" > <!--================= The Call-With-List Element =================== --> <!-- Perform a function with the referenced name with any number of arguments in the form of a list. The function attribute value and argument values are evaluated via Python. --> <!ELEMENT call-with-list (call-list-arg*)> <!ATTLIST call-with-list function CDATA #REQUIRED > <!ELEMENT call-list-arg (#PCDATA)> <!--================= The Testcase Status Element ================== --> <!-- Marks status result ('pass' or 'fail') for a testcase and allows additional information to be specified. The status result and the additional info is evaluated via Python. --> <!ELEMENT tcstatus (#PCDATA)> <!ATTLIST tcstatus result CDATA #REQUIRED > <!--================= The Return Element =========================== --> <!-- Specifies a value to return from a function. --> <!ELEMENT return (#PCDATA)> <!--================= The Release Element ========================== --> <!-- The release element specifies to release a block in the job. --> <!ELEMENT release EMPTY> <!ATTLIST release block CDATA #IMPLIED > <!--================= The Rethrow Element ========================= --> <!-- The rethrow element specifies to rethrow the current exception. --> <!ELEMENT rethrow EMPTY> <!--================= The Raise Element ============================ --> <!-- A raise signal element raises a specified signal. Signals can also be raised by the STAX execution engine. The signal attribute value is evaluated via Python. --> <!ELEMENT raise EMPTY> <!ATTLIST raise signal CDATA #REQUIRED > <!--================= The Call Element ============================= --> <!-- Perform a function with the referenced name. The function attribute value is evaluated via Python. Arguments can be specified as data to the call element. Arguments are evaluated via Python. --> <!ELEMENT call (#PCDATA)> <!ATTLIST call function CDATA #REQUIRED > <!--================= The Loop Element ============================= --> <!-- The loop element performs a task a specified number of times, allowing specification of an upper and lower bound with an increment value and where the index counter is available to sub-tasks. Also, while and/or until expressions can be specified. --> <!ELEMENT loop (%task;)> <!-- var is the name of a variable which will contain the loop index variable. It is a literal. from is the starting value of the loop index variable. It must evaluate to an integer value via Python. to is the maximum value of the loop index variable It must evaluate to an integer value via Python. by is the increment value for the loop index variable It must evaluate to an integer value via Python. while is an expression that must evaluate to a boolean value and is performed at the top of each loop. If it evaluates to false, it breaks out of the loop. until is an expression that must evaluate to a boolean value and is performed at the bottom of each loop. If it evaluates to false, it breaks out of the loop. --> <!ATTLIST loop var CDATA #IMPLIED from CDATA '1' to CDATA #IMPLIED by CDATA '1' while CDATA #IMPLIED until CDATA #IMPLIED > <!--================= The Script Element =========================== --> <!-- Specifies Python code to be executed. --> <!ELEMENT script (#PCDATA)> <!--================= The Parallel Element ========================= --> <!-- The parallel element performs one or more tasks in parallel. --> <!ELEMENT parallel (%task;)+> |
-- 作者:stellaryun -- 发布时间:9/13/2005 9:46:00 AM -- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--W3C Schema generated by XMLSpy v2005 rel. 3 U (http://www.altova.com)--> <!--Please add namespace attributes, a targetNamespace attribute and import elements according to your requirements--> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:import namespace="http://www.w3.org/XML/1998/namespace"/> <xs:element name="stax"> <xs:complexType> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="function"/> <xs:element ref="script"/> <xs:element ref="signalhandler"/> </xs:choice> <xs:element ref="defaultcall" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="function"/> <xs:element ref="script"/> <xs:element ref="signalhandler"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="defaultcall"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="function" type="xs:IDREF" use="required"/> </xs:complexType> </xs:element> <xs:element name="continue"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="break"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="call-with-map"> <xs:complexType> <xs:sequence> <xs:element ref="call-map-arg" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="function" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="call-map-arg"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="nop"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="function"> <xs:complexType> <xs:sequence> <xs:choice minOccurs="0"> <xs:element ref="function-prolog"/> <xs:element ref="function-description"/> </xs:choice> <xs:choice minOccurs="0"> <xs:element ref="function-epilog"/> </xs:choice> <xs:choice minOccurs="0"> <xs:element ref="function-no-args"/> <xs:element ref="function-single-arg"/> <xs:element ref="function-list-args"/> <xs:element ref="function-map-args"/> </xs:choice> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> </xs:sequence> <xs:attribute name="name" type="xs:ID" use="required"/> <xs:attribute name="requires" type="xs:IDREFS"/> <xs:attribute name="scope" default="global"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="global"/> <xs:enumeration value="local"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="function-prolog"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="function-epilog"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="function-description"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="function-no-args"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="function-single-arg"> <xs:complexType> <xs:choice> <xs:element ref="function-required-arg"/> <xs:element ref="function-optional-arg"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="function-list-args"> <xs:complexType> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="function-required-arg" maxOccurs="unbounded"/> <xs:element ref="function-optional-arg" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:sequence> <xs:element ref="function-required-arg" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="function-optional-arg" maxOccurs="unbounded"/> </xs:sequence> </xs:choice> <xs:choice minOccurs="0"> <xs:element ref="function-other-args"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="function-map-args"> <xs:complexType> <xs:sequence> <xs:choice maxOccurs="unbounded"> <xs:element ref="function-required-arg"/> <xs:element ref="function-optional-arg"/> </xs:choice> <xs:choice minOccurs="0"> <xs:element ref="function-other-args"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="function-required-arg"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="function-optional-arg"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="default" type="xs:string" default="None"/> </xs:complexType> </xs:element> <xs:element name="function-other-args"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="iterate"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="var" type="xs:string" use="required"/> <xs:attribute name="in" type="xs:string" use="required"/> <xs:attribute name="indexvar" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="log"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="level" type="xs:string" default="'info'"/> <xs:attribute name="message" type="xs:string" default="STAXMessageLog"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="paralleliterate"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="var" type="xs:string" use="required"/> <xs:attribute name="in" type="xs:string" use="required"/> <xs:attribute name="indexvar" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="throw"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="exception" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="block"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="try"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:element ref="catch" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="catch"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="exception" type="xs:string" use="required"/> <xs:attribute name="var" type="xs:string"/> <xs:attribute name="typevar" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="terminate"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="block" type="xs:string"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="sequence"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="timer"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="duration" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="message"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="log" type="xs:string" default="STAXLogMessage"/> <xs:attribute name="level" type="xs:string" default="'info'"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="signalhandler"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="signal" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="testcase"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="mode" type="xs:string" default="'default'"/> </xs:complexType> </xs:element> <xs:element name="import"> <xs:complexType> <xs:sequence minOccurs="0"> <xs:element ref="import-include" minOccurs="0"/> <xs:element ref="import-exclude" minOccurs="0"/> </xs:sequence> <xs:attribute name="machine" type="xs:string" use="required"/> <xs:attribute name="file" type="xs:string" use="required"/> <xs:attribute name="mode" type="xs:string" default="'error'"/> </xs:complexType> </xs:element> <xs:element name="import-include"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="import-exclude"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="hold"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="block" type="xs:string"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="if"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:element ref="elseif" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="else" minOccurs="0"/> </xs:sequence> <xs:attribute name="expr" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="elseif"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="expr" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="else"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="stafcmd"> <xs:complexType> <xs:sequence> <xs:element ref="location"/> <xs:element ref="service"/> <xs:element ref="request"/> </xs:sequence> <xs:attribute name="name" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="service"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="request"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="process"> <xs:complexType> <xs:sequence> <xs:element ref="location"/> <xs:element ref="command"/> <xs:choice> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="parms" minOccurs="0"/> <xs:element ref="workdir" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workdir" minOccurs="0"/> <xs:element ref="parms" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="title" minOccurs="0"/> <xs:element ref="workload" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workload" minOccurs="0"/> <xs:element ref="title" minOccurs="0"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="title" minOccurs="0"/> <xs:element ref="workload" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workload" minOccurs="0"/> <xs:element ref="title" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="parms" minOccurs="0"/> <xs:element ref="workdir" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workdir" minOccurs="0"/> <xs:element ref="parms" minOccurs="0"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="parms" minOccurs="0"/> <xs:element ref="workload" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workload" minOccurs="0"/> <xs:element ref="parms" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="title" minOccurs="0"/> <xs:element ref="workdir" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workdir" minOccurs="0"/> <xs:element ref="title" minOccurs="0"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="title" minOccurs="0"/> <xs:element ref="workdir" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workdir" minOccurs="0"/> <xs:element ref="title" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="parms" minOccurs="0"/> <xs:element ref="workload" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="workload" minOccurs="0"/> <xs:element ref="parms" minOccurs="0"/> </xs:sequence> </xs:choice> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="vars"/> <xs:element ref="var"/> <xs:element ref="envs"/> <xs:element ref="env"/> </xs:choice> <xs:element ref="useprocessvars" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="useprocessvars" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="vars"/> <xs:element ref="var"/> <xs:element ref="envs"/> <xs:element ref="env"/> </xs:choice> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice> <xs:sequence> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> </xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> </xs:sequence> </xs:choice> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> </xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> </xs:sequence> </xs:choice> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> </xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> </xs:sequence> </xs:choice> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> </xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> </xs:sequence> </xs:choice> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> </xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> </xs:sequence> </xs:choice> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> </xs:choice> </xs:sequence> <xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="console" minOccurs="0"/> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="statichandlename" minOccurs="0"/> <xs:element ref="console" minOccurs="0"/> <xs:element ref="stopusing" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> <xs:element ref="stderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="stderr" minOccurs="0"/> <xs:element ref="stdout" minOccurs="0"/> <xs:element ref="stdin" minOccurs="0"/> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> <xs:element ref="returnstderr" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element ref="returnstderr" minOccurs="0"/> <xs:element ref="returnstdout" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="returnfiles"/> <xs:element ref="returnfile"/> </xs:choice> </xs:sequence> </xs:choice> <xs:choice> <xs:sequence> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> </xs:sequence> <xs:choice> <xs:sequence> <xs:element ref="disabledauth" minOccurs="0"/> <xs:sequence minOccurs="0"> <xs:element ref="username"/> <xs:element ref="password" minOccurs="0"/> </xs:sequence> </xs:sequence> </xs:choice> </xs:choice> </xs:sequence> </xs:choice> <xs:element ref="other" minOccurs="0"/> <xs:element ref="process-action" minOccurs="0"/> </xs:sequence> <xs:attribute name="name" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="location"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="command"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="mode" type="xs:string" default="'default'"/> <xs:attribute name="shell" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="parms"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="workdir"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="title"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> |
-- 作者:stellaryun -- 发布时间:9/13/2005 9:47:00 AM -- <xs:element name="workload"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="vars"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="var"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="envs"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="env"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="useprocessvars"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="if" type="xs:string" default="1"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="username"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="password"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="disabledauth"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="action" type="xs:string" use="required"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="stdin"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="stdout"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="mode" type="xs:string" default="'replace'"/> </xs:complexType> </xs:element> <xs:element name="stderr"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="mode" type="xs:string" default="'replace'"/> </xs:complexType> </xs:element> <xs:element name="returnstdout"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="if" type="xs:string" default="1"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="returnstderr"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="if" type="xs:string" default="1"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="returnfiles"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="returnfile"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="stopusing"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="console"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="use" type="xs:string" use="required"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="statichandlename"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="process-action"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="other"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="job"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element ref="job-file"/> <xs:element ref="job-data"/> </xs:choice> <xs:element ref="job-function" minOccurs="0"/> <xs:element ref="job-function-args" minOccurs="0"/> <xs:choice minOccurs="0"> <xs:element ref="job-scriptfile"/> <xs:element ref="job-scriptfiles"/> </xs:choice> <xs:element ref="job-script" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="job-action" minOccurs="0"/> </xs:sequence> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="clearlogs" type="xs:string" default="'parent'"/> <xs:attribute name="monitor" type="xs:string"/> <xs:attribute name="logtcelapsedtime" type="xs:string" default="'parent'"/> <xs:attribute name="logtcnumstarts" type="xs:string" default="'parent'"/> <xs:attribute name="logtcstartstop" type="xs:string" default="'parent'"/> </xs:complexType> </xs:element> <xs:element name="job-file"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="machine" type="xs:string" default="STAXJobXMLMachine"/> </xs:complexType> </xs:element> <xs:element name="job-data"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="eval" type="xs:string" default="0"/> </xs:complexType> </xs:element> <xs:element name="job-function"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="job-function-args"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="eval" type="xs:string" default="0"/> </xs:complexType> </xs:element> <xs:element name="job-script"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="eval" type="xs:string" default="0"/> </xs:complexType> </xs:element> <xs:element name="job-scriptfile"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="machine" type="xs:string" default="STAXJobScriptFileMachine"/> </xs:complexType> </xs:element> <xs:element name="job-scriptfiles"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="if" type="xs:string" default="1"/> <xs:attribute name="machine" type="xs:string" default="STAXJobScriptFileMachine"/> </xs:complexType> </xs:element> <xs:element name="job-action"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="if" type="xs:string" default="1"/> </xs:complexType> </xs:element> <xs:element name="call-with-list"> <xs:complexType> <xs:sequence> <xs:element ref="call-list-arg" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="function" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="call-list-arg"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="tcstatus"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="result" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="return"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="release"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="block" type="xs:string"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="rethrow"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"/> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="raise"> <xs:complexType> <xs:complexContent> <xs:restriction base="xs:anyType"> <xs:attribute name="signal" type="xs:string" use="required"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="call"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> <xs:attribute name="function" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="loop"> <xs:complexType> <xs:choice> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> <xs:attribute name="var" type="xs:string"/> <xs:attribute name="from" type="xs:string" default="1"/> <xs:attribute name="to" type="xs:string"/> <xs:attribute name="by" type="xs:string" default="1"/> <xs:attribute name="while" type="xs:string"/> <xs:attribute name="until" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="script"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <xs:element name="parallel"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="timer"/> <xs:element ref="log"/> <xs:element ref="parallel"/> <xs:element ref="call"/> <xs:element ref="stafcmd"/> <xs:element ref="script"/> <xs:element ref="tcstatus"/> <xs:element ref="message"/> <xs:element ref="iterate"/> <xs:element ref="sequence"/> <xs:element ref="import"/> <xs:element ref="raise"/> <xs:element ref="job"/> <xs:element ref="nop"/> <xs:element ref="process"/> <xs:element ref="try"/> <xs:element ref="break"/> <xs:element ref="testcase"/> <xs:element ref="paralleliterate"/> <xs:element ref="continue"/> <xs:element ref="throw"/> <xs:element ref="release"/> <xs:element ref="signalhandler"/> <xs:element ref="rethrow"/> <xs:element ref="block"/> <xs:element ref="hold"/> <xs:element ref="terminate"/> <xs:element ref="return"/> <xs:element ref="if"/> <xs:element ref="call-with-list"/> <xs:element ref="loop"/> <xs:element ref="call-with-map"/> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |
-- 作者:jerimyy -- 发布时间:9/24/2005 9:32:00 PM -- 好长啊。我看着都晕了。以后多多指教啊 |
-- 作者:happydiudiu -- 发布时间:10/6/2005 10:33:00 AM -- 太长了吧,~~ |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
578.125ms |