新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> DTD, XML Schema(XMLS), RELAX NG
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DTD/XML Schema 』 → DTD 2 schema的问题,急 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 9326 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: DTD 2 schema的问题,急 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     stellaryun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:91
      门派:XML.ORG.CN
      注册:2005/7/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stellaryun发送一个短消息 把stellaryun加入好友 查看stellaryun的个人资料 搜索stellaryun在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stellaryun的博客楼主
    发贴心情 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文件的时候
    解析报错,说:
    the element "#******" may not overlap with another element

    请问这里的overlap是指什么?可能出现这个问题的原因有哪些呢?


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/12 16:11:00
     
     stellaryun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:91
      门派:XML.ORG.CN
      注册:2005/7/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stellaryun发送一个短消息 把stellaryun加入好友 查看stellaryun的个人资料 搜索stellaryun在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stellaryun的博客2
    发贴心情 
    急盼大侠指导啊!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/12 16:23:00
     
     fengzhiyi 帅哥哟,离线,有人找我吗?巨蟹座1979-7-6
      
      
      威望:4
      等级:大一(高数修炼中)
      文章:104
      积分:771
      门派:XML.ORG.CN
      注册:2005/2/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fengzhiyi发送一个短消息 把fengzhiyi加入好友 查看fengzhiyi的个人资料 搜索fengzhiyi在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fengzhiyi的博客3
    发贴心情 
    转换不能保存是因为你的xml或schema有错,既然schema没错,就是xml的问题了,eclipse报错的情况好像也是这个问题,你已经发现问题了,function已经被定义为元素,就不能被重定义为属性。

    ----------------------------------------------
    Don't walk in front of me, I won't follow you.
    Don't walk behind me,I won't guide you.
    Just walk beside me,then we can hand in hand together.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/12 20:38:00
     
     stellaryun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:91
      门派:XML.ORG.CN
      注册:2005/7/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stellaryun发送一个短消息 把stellaryun加入好友 查看stellaryun的个人资料 搜索stellaryun在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stellaryun的博客4
    发贴心情 
    我知道不能保存是有错,我说的是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文件就没有错误
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/12 22:14:00
     
     fengzhiyi 帅哥哟,离线,有人找我吗?巨蟹座1979-7-6
      
      
      威望:4
      等级:大一(高数修炼中)
      文章:104
      积分:771
      门派:XML.ORG.CN
      注册:2005/2/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fengzhiyi发送一个短消息 把fengzhiyi加入好友 查看fengzhiyi的个人资料 搜索fengzhiyi在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fengzhiyi的博客5
    发贴心情 
    把xml文件和schema文件贴出来看一下,大家共同讨论一下,看到底问题出在哪?

    ----------------------------------------------
    Don't walk in front of me, I won't follow you.
    Don't walk behind me,I won't guide you.
    Just walk beside me,then we can hand in hand together.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/13 9:09:00
     
     stellaryun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:91
      门派:XML.ORG.CN
      注册:2005/7/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stellaryun发送一个短消息 把stellaryun加入好友 查看stellaryun的个人资料 搜索stellaryun在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stellaryun的博客6
    发贴心情 
    ft
    就不是xml和schema的问题
    是dtd和schema互换的问题
    贴出来你别摔倒就行
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/13 9:38:00
     
     stellaryun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:91
      门派:XML.ORG.CN
      注册:2005/7/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stellaryun发送一个短消息 把stellaryun加入好友 查看stellaryun的个人资料 搜索stellaryun在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stellaryun的博客7
    发贴心情 
    <!--
    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;)+>
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/13 9:39:00
     
     stellaryun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:91
      门派:XML.ORG.CN
      注册:2005/7/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stellaryun发送一个短消息 把stellaryun加入好友 查看stellaryun的个人资料 搜索stellaryun在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stellaryun的博客8
    发贴心情 
    <?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>
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/13 9:46:00
     
     stellaryun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:91
      门派:XML.ORG.CN
      注册:2005/7/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给stellaryun发送一个短消息 把stellaryun加入好友 查看stellaryun的个人资料 搜索stellaryun在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看stellaryun的博客9
    发贴心情 
     <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>
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/13 9:47:00
     
     jerimyy 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:25
      积分:163
      门派:XML.ORG.CN
      注册:2005/9/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jerimyy发送一个短消息 把jerimyy加入好友 查看jerimyy的个人资料 搜索jerimyy在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jerimyy的博客10
    发贴心情 
    好长啊。我看着都晕了。以后多多指教啊
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/9/24 21:32:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DTD/XML Schema 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/28 16:31:36

    本主题贴数11,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    7,066.406ms