parser
パーサー定義。
使用法
(要素の名前とその name 属性を使用して) リポジトリーで保管および取得できます。
説明
パーサーは、ストリング (任意のテキスト、HTML、XML など) を、Vivisimo オブジェクトによって解釈される XML に変換します。Watson™ Explorer では、2 つのタイプのパーサー (正規表現に基づくものと、XSL に基づくもの) がサポートされます。
以下も参照してください。
- オンラインまたは印刷資料での解析に関するチュートリアル
属性
- async (ブール デフォルト: true) - 非同期処理。解析タグの場合、次の兄弟の前に要求をエンキューするのか (false)、処理するのか。 他の要素の場合、要素を処理する前に処理する必要がある非同期要求が含まれている場合にのみ、この属性は意味を持ちます。 その際、false の場合、要素の次の兄弟は、現行要素の後にのみ処理されます。true の場合、Watson Explorer は現行要素が処理されるのを待たずに、次の兄弟を処理します。
- elt-id (整数) - 使用法: 内部
- max-elt-id (整数) - 使用法: 内部
- execute-acl (テキスト)
- process (テキスト) - 処理される属性または子、あるいはその両方を決定する XPath。現在、「」、「*」、「@*」、および「*|@*」のみがサポートされます。
- internal (テキスト)
- overrides (テキスト)
- overrides-status (以下のいずれか: identical、merge)
- no-override (以下のみが可能: no-override)
- modified (整数)
- modified-by (テキスト)
- do-not-delete (以下のみが可能: do-not-delete) - 管理インターフェースからのリポジトリー内の要素の削除を許可しません。 使用法: 内部
- read-only (以下のみが可能: read-only) - 管理インターフェースからのリポジトリー内の要素の変更を許可しません。 使用法: 内部
- products (以下のいずれかのリスト: all、vivisimo、velocity、discovery、clustermed、clustergoogle、life-sciences、japanese、chinese、mobile、ius、admin、admin-full)- 使用法: 内部
- url (URI)
- name (以下のタイプのいずれか: NMToken、xs:string の制限形式: パターン ¥#anonymous¥#¥d+)
- type (以下のいずれか: regex、regex-text、case-insensitive-regex、case-insensitive-regex-text、perl-regex、perl-regex-text、case-insensitive-perl-regex、case-insensitive-perl-regex-text、xsl、html-xsl、java デフォルト: regex) -
- regex: 正規表現ベースのパーサー。flex とよく似ており、このタイプのパーサーは正規表現を使用して、ある状態から別の状態に切り替え、コンテンツを区切ります。Watson Explorer スキーマに準拠した XML を出力します。このパーサーは Posix 正規表現を使用します。
- regex-text: regex と同じですが、XML ではなく、テキストを出力します。HTML Web ページなどのデータを変換する場合に役立ちます。
- case-insensitive-regex: regex と同じですが、大/小文字が区別されません。
- case-insensitive-regex-text: regex-text と同じですが、大/小文字が区別されません。
- perl-regex: 正規表現ベースのパーサー。flex とよく似ており、このタイプのパーサーは正規表現を使用して、ある状態から別の状態に切り替え、コンテンツを区切ります。Watson Explorer スキーマに準拠した XML を出力します。このパーサーは Perl スタイルの正規表現を使用します。
- perl-regex-text: perl-regex と同じですが、XML ではなく、テキストを出力します。HTML Web ページなどのデータを変換する場合に役立ちます。
- case-insensitive-perl-regex: perl-regex と同じですが、大/小文字が区別されません。
- case-insensitive-perl-regex-text: perl-regex-text と同じですが、大/小文字が区別されません。
- xsl: XSL 変換パーサー。XSL は、パーサー・ノード内のテキスト・ノードとして出現する必要があります。タグが含まれた XML 宣言および xsl:stylesheet は、オプションです。XSL が誤った形式の XML である場合、Watson Explorer は修正しようとします。
- html-xsl: HTML から XML への変換が事前に行われることを除いて、xsl と同じです。HTML はあいまいであるため、HTML から XML への変換は、多くの方法で実行可能です。Watson Explorer では、閉じられていないタグを閉じ、欠落しているタグ (html や body など) を追加し、エンティティーをエスケープし、他の正規化ステップを実行しようとします。
- java: 入力データに対して Java クラスをインスタンス化して実行します。このパーサー・タイプは完成していないため、使用してはなりません。
- java-classname (テキスト) - インスタンス化する完全修飾 Java クラス名。この属性は、java パーサー・タイプでのみ適用できます。
子
- 以下のいずれかを選択します。
- scope: (1 個のみ) - 変数スコープ。
- 任意の数の以下の項目を任意の順序で選択します。
- match: (ゼロ個以上) - 正規表現パーサーで、ある状態から別の状態に移行するための正規表現のマッチングを定義します。
- state: (ゼロ個以上) - 正規表現パーサーの Flex のような状態。
- add-content: (ゼロ個以上) - 正規表現パーサーで、含まれている state/match に入るときに content 要素を XML 出力に追加します。
例
入力例:
<parser name="p"> <match token="ok"> <add-document/> <add-content name="c"/> </match> </parser> <parse parser="p">ok</parse>
出力例:
<parser name="p"> <match token="ok"> <add-document/> <add-content name="c"/> </match> </parser> <documents> <document id="Ndoc0"> <content name="c" type="html" action="cluster" weight="1">ok</content> </document> </documents>
入力例:
<parser name="p" type="xsl"> <xsl:template match="/test"> <document> <content name="test"> <xsl:value-of select="."/> </content> </document> </xsl:template> </parser> <parse parser="p"><?xml version="1.0"?><test>ok</test></parse>
出力例:
<parser name="p" type="xsl"> <xsl:template match="/test"> <document> <content name="test"> <xsl:value-of select="."/> </content> </document> </xsl:template> </parser> <documents> <document id="Ndoc0"> <content name="test" type="html" action="cluster" weight="1">ok</content> </document> </documents>
入力例:
<parser name="p" type="xsl"> <xsl:template match="/html/body"> <document> <content name="test"> <xsl:value-of select="."/> </content> </document> </xsl:template> </parser> <parse parser="p"><html><body>ok</body></html></parse>
出力例:
<parser name="p" type="xsl"> <xsl:template match="/html/body"> <document> <content name="test"> <xsl:value-of select="."/> </content> </document> </xsl:template> </parser> <documents> <document id="Ndoc0"> <content name="test" type="html" action="cluster" weight="1">ok</content> </document> </documents>