Cmdlets for JSON

Build 22.0.8479

api:enum

api:enum キーワードは、アイテム内のアトリビュート、制限のないリスト、与えられた値の範囲、および複数の値を持つアトリビュートの値を列挙することに使われます。api:enum のボディは、反復されるセットのエレメントごとに実行されます。

パラメータ

  • item:反復するアトリビュートのアイテム名。
  • attr:どのアトリビュートが反復されるかを指定する、マッチするエクスプレッション。例、"rsb.:*"。複数の値を持つアトリビュートの値を反復するパラメータを提供することもできます。
  • prefix:その上にアイテムが列挙される接頭辞。
  • expand:複数の値を持つアトリビュートが検出された場合に、どのようにapi:enum が挙動するかを指定するboolean 値。Expand がtrue に設定されている場合、api:enum のボディはアトリビュートのそれぞれの値につき一度づつ実行されます。False の場合、すべての値は、1つの文字列値として結合され、一度の反復のみが実行されます。デフォルトで、api:enum はすべての値をexpand しません。
  • sep[arator]:セパレータは、expand パラメータがfalse の場合、複数の値を持つアトリビュートの値を結合させるために使われます。追加で、セパレータはlistseparator が定義されていないリストの値をトークンとすることに使われます。デフォルト値は、new-line charactor "\n" です。
  • list:列挙される区切られた値のリスト。例えば、値のリストが"violet, indigo, blue, green, yellow, orange, red" で、セパレータが',' の場合、api:enum のスコープは虹のそれぞれの色ごとに実行されます。
  • range:昇順、降順で列挙される数字もしくは文字のレンジは、例えば、"a..z"、"Z..A" です。
  • recurse:ネストされたアトリビュートを列挙されるかどうか。デフォルトはtrue です。
Note:アトリビュートのレンジ、もしくはアイテムアトリビュートを指定できますが、両方同時にはできません。さらに、アトリビュートは、アルファベット順で列挙されます。

アトリビュートの制御

  • _attr:反復されるアトリビュートの名前。複数の値を持つアトリビュートの値を反復している場合、アトリビュート名は、名前の一部としてindex を持つ以外はアトリビュート名は同じです。Index は、ハッシュ記号(#)で名前と区別されます。例えば、name#1、name#2、etc.
  • _index:アイテム内でアトリビュートが出現するindex、もしくはリストエレメントが現在列挙されている位置。
  • _value:反復されるアトリビュートの値。複数の値を持つアトリビュートでは、expand およびセパレータパラメータ設定は、_value が1つのアトリビュート値の参照なのか、すべてのアトリビュート値の参照なのかを決定します。
  • _count:アトリビュート内またはリスト内の値の数。
  • _separator:リスト内の値を区切るセパレータ。

サンプル

アトリビュート名、および"input" と名付けられたアイテムのアトリビュート値を表示:

<api:set item="input" attr="Greeting" value="Hello" />
<api:set item="input" attr="Goodbye" value="See ya" />
<api:enum item="input">
  [_attr] is [_value]
  <br/>
</api:enum> 

goodbye is See ya greeting is Hello
値のリストを列挙するには、api:enum のリストおよびセパレータパラメータを使います。例えば、次のコードはcolors アットリビュートで指定された色をリストします。
<api:set attr="colors" value="violet, indigo, blue, green, yellow, orange, red"/>
<api:enum list="[colors]" separator=",">
  [_value] 
</api:enum>
値のレンジを列挙するには、レンジアトリビュートを使います。例えば、次のコードはa からz の文字セット、および1 から25 の数字をリストします:
<api:enum range="a..z">
  [_value] 
</api:enum>
<api:enum range="Z..A">
  [_value] 
</api:enum>
<api:enum range="1..25">
  [_value] 
</api:enum>
複数の値を持つアトリビュートの値すべてを列挙するには、複数の値を持つアトリビュートを指定するためにattr アーギュメントを使い、expand をtrue に設定します。
<api:set attr="foo.email#1" value="joe@mycompany.com"/>
<api:set attr="foo.email#2" value="john@mycompany.com"/>
<api:enum attr="foo.email" expand="true">
    ([_index]) [_attr] -> [_value]
</api:enum>
上記の例は次のアウトプットになります:
(1) email#1 -> joe@mycompany.com (2) email#2 -> john@mycompany.com

関連項目

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479