XML コンテンツ モデル

XML コンテンツ モデルでは、XML ベースのコンテンツにアクセスできます。

XML コンテンツ モデルは、XPath 式に基づくコンポーネントにアクセスする機能をサポートします。XPath 式は、呼び出し元がどの要素または属性を必要とするかを定義する文字列です。XML コンテンツ モデルは、さまざまなオブジェクトの作成と、XPath のサポートで通常必要となる式のコンパイルについて、詳細な内容を隠します。これにより、Python スクリプトからの呼び出しが単純になります。

XML コンテンツ モデルには、XML 文書を文字列として返す関数が含まれています。これにより、Python スクリプト ユーザーは、自分にとって望ましい Python ライブラリを使用して XML を解析できます。

API

表 1. API
戻り値 メソッド 説明
文字列 getXMLAsString() XML を文字列として返します。
数値 getNumericValue(String xpath) パスを評価した結果を数値として返します (例えば、パス式に一致する要素の数をカウントします)。
boolean getBooleanValue(String xpath) 指定されたパス式を評価した結果をブール値として返します。
文字列 getStringValue(String xpath, String attribute) 指定されたパスに一致する、属性値または XML ノード値のいずれかを返します。
文字列のリスト getStringValues(String xpath, String attribute) 指定されたパスに一致するすべての属性値または XML ノード値のリストを返します。
文字列のリストのリスト getValuesList(String xpath, <List of strings> attributes, boolean includeValue) 指定されたパスに一致するすべての属性値のリストを、必要な場合は XML ノード値と共に返します。
ハッシュ テーブル (key:string, value:list of string) getValuesMap(String xpath, String keyAttribute, <List of strings> attributes, boolean includeValue) キー属性または XML ノード値をキーとして使用するハッシュ テーブルを返し、また、指定された属性値のリストをテーブル値として返します。
boolean isNamespaceAware() XML パーサーが名前空間を認識している必要があるかどうかを返します。デフォルトは False です。
void setNamespaceAware(boolean value) XML パーサーが名前空間を認識している必要があるかどうかを設定します。このメソッドでは、後続の呼び出しで変更内容が取得されるようにするために reset() も呼び出します。
void reset() このコンテンツ モデルに関連付けられた内部ストレージをすべて消去します (キャッシュされた DOM オブジェクトなど)。

ノードおよび出力

この表では、このタイプのコンテンツ モデルを含む出力を作成するノードをリストします。

表 2. ノードおよび出力
ノード名 出力名 コンテナ ID
ほとんどのモデル ビルダー ほとんどの生成されたモデル "PMML"
"autodataprep" なし "PMML"

スクリプトの例

コンテンツにアクセスするための Python スクリプトのコードは、以下のようになります。

results = []
modelbuilder.run(results)
modeloutput = results[0]
cm = modeloutput.getContentModel("PMML")

dataFieldNames = cm.getStringValues("/PMML/DataDictionary/DataField", "name")
predictedNames = cm.getStringValues("//MiningSchema/MiningField[@usageType='predicted']", "name")