AttrParse 要素は、AttrParse オブジェクトを定義します。
属性 |
説明 |
---|---|
name |
AttrParse オブジェクトを一意に定義します。この値は、アダプタの「リソースパラメータ」ページで指定されます。 |
ユーザーリストを解析する 1 つ以上のトークン。AttrParse オブジェクトでサポートされるトークンは次のとおりです。
次の例では、行の最初の 19 文字を読み取り、余分な空白を削除し、値としてのその文字列を USERID リソース属性に代入します。次に、5 つの空白文字をスキップし、NAME リソース属性を抽出します。この属性は最大 21 文字で、空白は削除されます。サンプルでは、「Phone number:」の文字列をチェックしています。電話番号が解析され、PHONE リソース属性に割り当てられます。電話番号は、「Phone number: 」の末尾の空白文字のあとから始まり、次に現れる空白文字で終わります。末尾の空白文字は削除されます。
<AttrParse name=’Example AttrParse’> <str name=’USERID’ trim=’true’ len=’19’/> <skip len=’5’/> <str name=’NAME’ trim=’true’ len=’21’/> <t offset=’-1’>Phone number: </t> <str name=’PHONE’ trim=’true’ term=’ ’/> </AttrParse>
次の文字列は、このサンプル AttrParse の文法に適合します。・ 記号は空白文字を表しています。
gwashington123·····ABCD·George·Washington····Phone·number:·123-1234· alincoln···········XYZ··Abraham·Lincoln······Phone·number:·321-4321·
1 番目の場合、解析後のユーザー属性マップには、次の内容が含まれます。
USERID=“gwashington123”, NAME=“George Washington”, PHONE=“123-1234”
同様に、2 番目のユーザー属性マップには次の内容が含まれます。
USERID=”alincoln”, NAME=”Abraham Lincoln”, PHONE=“321-4321”
テキストの残りの部分は無視されます。
collectCsvHeader トークンは、コンマ区切り (CSV) ファイルのヘッダーとして指定された行を読み取ります。
スクリプトゲートウェイアダプタとシェルスクリプトアダプタは、このトークンを使用します。collectCsvHeader および collectCsvLines トークンは、スクリプトゲートウェイアダプタが使用する唯一のトークンです。
ヘッダー内の各名前は、リソースアダプタのスキーママップのリソースユーザー属性と同じ名前にします。ヘッダー内の文字列がリソースユーザー属性名と一致しない場合、後続データ行内の対応する位置にある名前と値は無視されます。
属性 |
説明 |
---|---|
idHeader |
アカウント ID とみなすヘッダーの値を指定します。この属性は省略可能ですが、指定することをお勧めします。指定されていない場合は、nameHeader 属性の値が使用されます。 |
nameHeader |
ヘッダー内でアカウントの名前とみなす値を指定します。多くの場合、これは idHeader と同じ値です。 指定されていない場合は、idHeader の値が使用されます。この属性は省略可能ですが、指定することをお勧めします。 |
delim |
省略可能です。ヘッダー内の値を区切る文字列。デフォルト値は , (コンマ) です。 |
minCount |
ヘッダーが有効であるためには、delim 属性で指定した文字列が少なくともいくつヘッダーに存在しなければならないかを指定します。 |
trim |
省略可能です。true に設定されている場合、値の始めや終わりに空白があれば、それらの空白を削除します。デフォルトは false です。 |
unQuote |
省略可能です。true に設定されている場合、値が引用符で囲まれていれば、引用符を削除します。デフォルトは false です。 |
なし
次の例は、accountId をアカウント ID として使用する値に指定してします。空白および引用符は値から削除されます。
<collectCsvHeader idHeader=’accountId’ delim=’,’ trim=’true’ unQuote=’true’/>
collectCvsLines トークンは、コンマ区切り (CSV) ファイルの行を解析します。このトークンの前に collectCvsHeader トークンを呼び出しておきます。
スクリプトゲートウェイアダプタとシェルスクリプトアダプタは、このトークンを使用します。collectCsvHeader および collectCsvLines トークンは、スクリプトゲートウェイアダプタが使用する唯一のトークンです。
次の属性のいずれかが指定されていない場合、その値は、前に発行された collectCsvHeader トークンから継承されます。
属性 |
説明 |
---|---|
idHeader |
アカウント ID とみなす値を指定します。 |
nameHeader |
アカウントの名前とみなす値を指定します。 |
delim |
省略可能です。ヘッダー内の値を区切る文字列。デフォルト値は , (コンマ) です。 |
trim |
省略可能です。true に設定されている場合、値の始めや終わりに空白があれば、それらの空白を削除します。デフォルトは false です。 |
unQuote |
省略可能です。true に設定されている場合、値が引用符で囲まれていれば、引用符を削除します。デフォルトは false です。 |
なし
次の例は、値から空白と引用符を削除します。
<collectCsvLines trim=’yes’ unQuote=’yes’/>
eol トークンは、行末文字 (\n) に一致します。解析位置は、次の行の最初の文字に進められます。
なし
なし
次のトークンは行末文字に一致します。
<eol/>
flag トークンは、多くの場合、アカウントプロパティーを定義するフラグがユーザーアカウントに存在するかどうかを判定するために、opt トークン内で使用されます。このトークンは、指定された文字列を検索します。そのテキストが見つかると、AttrParse は boolean 型の true を属性に代入し、そのエントリを属性マップに追加します。
解析位置は、一致したテキストのあとの最初の文字に進められます。
検索するテキスト。
次のトークンは、現在の解析位置で AUDIT を検索し、見つかった場合は、ユーザー属性マップに AUDIT_FLAG=true を追加します。
<flag offset=’-1’ name=’AUDIT’>AUDIT_FLAG</flag> |
次のトークンは、現在の解析位置で xxxxCICS を検索します。xxxx は、空白文字を含む任意の 4 文字です。この文字列が見つかった場合、AttrParse は CICS=true をユーザー属性マップに追加します。
<flag offset=’4’ name=’CICS’>CICS</flag> |
int トークンは、整数型のアカウント属性をキャプチャーします。属性名と整数値がアカウント属性マップに追加されます。解析位置は、その整数のあとの最初の文字に進められます。
なし
次のトークンは、6 桁の整数を検索し、その桁数の整数値を SALARY 属性の属性値マップに追加します。
<int name=’SALARY’ len=’6’/> |
値 010250 が見つかった場合、AttrParse は SALARY=10250 を値マップに追加します。
次のトークンは、任意の桁数を検索し、その整数値を AGE 属性の属性マップに追加します。
<int name=’AGE’ len=’-1’ noval=’NOT GIVEN’/> |
たとえば、値 34 が見つかった場合、AGE=34 が属性マップに追加されます。NOT GIVEN という文字列の場合、値は AGE属性の属性マップに追加されません。
loop トークンは、トークンに含まれている要素を、入力がなくなるまで繰り返し実行します。
なし
一様ではありません。
次の例は、CSV ファイルの内容を読み取ります。
<loop> <skipLinesUntil token=’,’ minCount=’4’ /> <collectCsvHeader idHeader=’accountId’ /> <collectCvsLines /> </loop>
multiLine トークンは、複数の行で繰り返すパターンに一致します。次の行が multiLine の内部 AttrParse 文字列に一致する場合、解析後の出力はアカウント属性マップの最上位に追加されます。解析位置は、内部 AttrParse 文字列と一致しない最初の行に進められます。
属性 |
説明 |
---|---|
opt |
内部 AttrParse 文字列が省略可能である可能性があることを示します。 内部 AttrParse 文字列に一致する行がない可能性があることと、次のトークンによる解析を続行することを示します。 |
データ行を解析する任意の AttrParse トークン。
次の multiLine トークンは、GROUPS[space][space][space]= タグと、空白文字で区切られたグループリストが含まれている複数のグループ行を検索します。
<multiLine opt=’true’> <t>GROUPS[space][space][space]=</t> <str name=’GROUP’ multi=’true’ delim=’ ’ trim=’true’/> <skipToEol/> </multiLine>
次の文字列が入力として読み取られた場合、AttrParse は GROUPS = {Group1,Group2,Group3,Group4} をアカウント属性マップに追加します。
GROUPS[space][space][space]= Group1[space]Group2\n GROUPS[space][space][space]= Group3[space]Group4\n Unrelated text...
opt トークンは、複数のトークンで構成される文字など、任意の複雑な文字列を解析します。検索トークンが存在する場合、内部 AttrParse 文字列を使用して画面の次の部分を解析します。任意セクションが存在する場合、解析位置は、任意セクションの末尾のあとの文字に進められます。それ以外の場合は、解析位置は変更されません。
なし
apMatch トークンと、それに続く AttrParse トークンで構成されます。
apMatch。オプションのセクションがあるかどうかを判定するためのトークンを含みます。apMatch は、opt トークン内だけで使用できるサブトークンです。apMatch トークンには、常にサブトークンとして flag トークンが含まれます。
AttrParse。画面の任意部分の解析方法を指定します。このバージョンの AttrParse 要素では、name 引数を使用しません。それ以外のすべてのトークンを含めることができます。
次の opt トークンは、CONSNAME= テキストトークンへの一致を探します。見つかった場合は、長さが 8 の文字列を解析して、空白を削除し、その文字列を NETVIEW.CONSNAME 属性のアカウント属性マップに追加します。
<opt> <apMatch> <t offset=’-1’> CONSNAME= </t> </apMatch> <AttrParse> <str name=’NETVIEW.CONSNAME’ len=’8’ trim=’true’ /> </AttrParse> </opt>
skip トークンは、スキップできる画面領域や、解析するユーザーに関する有用な情報が含まれていない画面領域をトークン化します。解析位置は、スキップされた文字のあとの最初の文字に進められます。
属性 |
説明 |
---|---|
len |
画面上でスキップする文字数を示します。 |
なし
次の例では、最初のトークンは 17文字をスキップし、2 番目のトークンは 1 文字だけスキップします。
<skip len=’17’/> <skip len=’1’/>
skipLinesUntil トークンは、指定した文字列が minCount で指定した数以上見つかるまで、入力行をスキップします。
属性 |
説明 |
---|---|
token |
検索する文字列。 |
minCount |
必須の token 属性で指定された文字列のインスタンスの最小数。 |
なし
次のトークンは、2 つのコンマが含まれている行の次の行まで前方にスキップします。解析位置は、その行の最初の文字になります。
<skipLinesUntil token=’,’ minCount=’2’/>
skipToEol トークンは、現在の解析位置から行の終わりまでのすべての文字をスキップします。解析位置は、次の行の最初の文字に進められます。
なし
なし
次のトークンは、現在の行の終わりまですべての文字をスキップします。解析位置は、次の行の最初の文字になります。
<skipToEol/>
skipWhitespace トークンは、空白文字をスキップするために使用します。システムは、Java の空白文字の定義を使用します。解析位置は、空白以外の最初の文字に進められます。
なし
なし
次のトークンは、現在の解析位置ですべての空白をスキップします。
<skipWhitespace/>
str トークンは、文字列のアカウント属性をキャプチャーします。属性名と文字列値がアカウント属性マップに追加されます。解析位置は、その文字列のあとの最初の文字に進められます。
なし
次のトークンは、長さが 21 文字の文字列を検索し、前後の空白を削除します。
<str name=’NAME’ trim=’true’ len=’21’/>
[space][space]George Washington[space][space] という文字列の場合、AttrParse は NAME=”George Washington” をアカウント属性マップに追加します。
次のトークンは、長さが 21 文字の文字列を検索し、前後の空白を削除します。
<str name=’NAME’ trim=’true’ len=’21’/>
[space][space]George Washington[space][space] という文字列の場合、AttrParse は NAME=”George Washington” をアカウント属性マップに追加します。
次のトークンは、) (右括弧) で終わる任意の長さの文字列を検索します。
<str name=’STATISTICS.SEC-VIO’ term=’)’ />
2– Monday, Wednesday - )text という文字列の場合、AttrParse は STATISTICS.SEC-VIO=”2– Monday, Wednesday - “ をアカウント属性マップに追加します。
次のトークンは、現在の解析位置から現在の行の終わりまで、空白文字で区切られた単語のリストを検索します。
<str name=’GROUP’ multi=’true’ delim=’ ’ trim=’true’/>
Group1 Group2 newGroup lastGroup\n という文字列があった場合、AttrParse はグループ名文字列のリスト {Group1, Group2, newGroup, lastGroup} を GROUP 属性のアカウント属性マップに追加します。
次のトークンも、同じような機能を果たしますが、アカウント属性マップが、次のようにコロン (:) で連結される点が前の例と異なります。 GROUP={Group1:Group2:newGroup:lastGroup}
<str name=’GROUP’ multi=’true’ delim=’ ’ trim=’true’ append=’true’ appendSeperator=’:’ />
t トークンは、テキストをトークン化するために使用します。通常は、スクリーンスクレーピング中にラベルを認識し、解析している画面上の場所に関する知識を提供するために使用されます。解析位置は、一致したテキストのあとの最初の文字に進められます。構文解析部は常に、テキスト行内の左から右に進行します。
検索するテキスト
次のトークンは、現在の解析位置で Address Line 1:[space] を検索します。
<t offset=’-1’>Address Line 1: </t>
次のトークンは、現在の解析位置で xxZip Code:[space] を検索します。xx は、空白文字を含む任意の 2 文字です。
<t offset=’2’>Zip Code: </t>
次のトークンは、現在の解析位置で Phone:[space] を検索します。AttrParse は、Employee ID という文字列を最初に見つけると、エラーを生成します。
<t offset=’-1’ termToken=’Employee ID’>Phone: </t>