Sun N1 Service Provisioning System 5.2 XML スキーマリファレンスガイド

<return> ステップの属性

<return> ステップには、String 型の属性値が 1 つあります。この値は戻り値です。値が指定されていない場合、ブロックは値が返されずにステップ実行されます。


例 2–4 <try> および <finally> ブロックでの <return> ステップの使用

次の例は、<try> および <finally> ブロック内の <return> ステップを示しています。値 b が返されます (Java の場合と同様)。


<try>
    <block>
        <return value="a"
    </block>
    <catch/>
    <finally>
         <return value="b">
    </finally>
</try>


例 2–5 条件付きでの <return> ステップの使用

条件付きで使用される <return> ステップの例を、次に示します (分かりやすいよう行番号を追加)。var1 true の場合、5 行目の <return> ステップによってブロックの残りのブロックがスキップされます。8 行目と 9 行目はまったく実行されません。var1true ではない場合は、9 行目の <return> ステップが、ブロック内で実行される最後のステップになります。


1. <control name = "blah" returns="true">
2.   <varList>
3.   <var name="var1" default="val1"/>
4.   <var name="var2" default="val2"/>
5.   </varList>
6.   <if>
7.      <condition><istrue value=":[var1]"/></condition>
8.      <then>
9.         <return value=":[var2]">
10.     </then>
11.  </if>
12.  <assign varName="var2" value="new value"/>
13.  <return value=":[var2]"/>
14.</control>


例 2–6 <try> ブロック内での条件付きの <return> ステップの使用

一方、次の例は、<try> ブロック内での <return> ステップの条件付きの使用を示しています。var1true かどうかにかかわらず、15 行目が実行される最後の行になります。


1. <control name="blah" returns="true">
2.   <varList>
3.   <var name="var1" default="val1"/>
4.   <var name="var2" default="val2"/>
5.   </varList>
6.   <try>
7.      <block>
8.          <if>
9.              <condition><istrue value=":[var1]"/></condition>
10.             <then>
11.                 <return value=":[var2]">
12.             </then>
13.         </if>
14.         <assign varName="var2" value="new value"/>
15.         <return value=":[var2]"/>
16.     </block>
17.  <catch/>
18.  <finally>
19.      <pause delaySecs="5"/>
20.  </finally>
21.   </try>
22.</control>


例 2–7 inlineSubplan 内での <return> ステップの使用

次の例は、inlineSubplan または execSubplan 本体の <SimpleSteps> 内にある <return> ステップを示しています。制御は、inlineSubplan または execSubplan を呼び出す一連のステップ内の次の行に戻ります。4 行目の <return> ステップのあとの、次のステップは 7 行目です。


1. <complexSteps>
2.   <inlineSubplan>
3.       <simpleSteps>
4.           <return/>
5.       </simpleSteps>
6.   </inlineSubplan>
7.   <inlineSubplan>
8.       <simpleSteps>
9.            <pause delaySecs="1"/>
10.      </simpleSteps>
11.  </inlineSubplan>
12.</complexSteps>