優先順位ルールのスキーマ

優先順位のルールは、データ・ドメイン内でシングル・レコードとして表されます。

config-service:putPrecedenceRules操作では、優先順位ルールを処理し、新しいルールの追加や既存のルールの更新を行います。各precedenceRule要素では、次のスキーマ構文を使用します。
<mdex:precedenceRule 
   key="ruleName" 
   triggerAttributeKey="triggerAttrName"
   triggerAttributeValue="mval|sval" 
   targetAttributeKey="targetAttrName"
   isLeafTrigger="true|false"/>
次の表では、precedenceRule属性の意味について説明します。
表1 precedenceRule属性スキーマの意味
precedenceRule属性 意味
key 優先順位ルールの一意の識別子(つまり、ルールの名前)を指定します。識別子は文字列であり、NCName形式に従う必要はありません。
triggerAttributeKey 優先順位ルールをトリガーするEndeca標準属性または管理対象属性の名前を指定します。つまり、ターゲット属性を表示するには、まず指定の属性を選択する必要があります。
triggerAttributeValue オプション。使用する場合、ユーザーにターゲット属性を表示する前に選択されている必要がある属性値(管理対象値の指定子または標準属性値のいずれか)を指定します。使用しない場合、トリガー属性の任意の値によりルールがトリガーされます。有効なtriggerAttributeValueを使用した場合は、特定の標準値または管理対象値にトリガーがさらに絞り込まれます。
targetAttributeKey トリガー属性値の選択後に表示されるEndeca標準属性または管理対象属性の名前を指定します。
isLeafTrigger トリガーが管理対象属性である場合、isLeafTriggerではトリガー属性値のタイプを表すブール値(小文字であることが必要です)を指定します。
  • trueである場合、トリガー属性はリーフ・タイプです。これは、リーフ値が選択された場合にのみ優先順位ルールが起動することを意味します。つまり、トリガー管理対象属性の任意のリーフ管理対象値を問い合せると、ターゲット管理対象値が表示されます(多数のトリガー、1つのターゲット)。
  • false(デフォルト)である場合、トリガー属性は非リーフ・タイプです。これは、任意の値が選択された場合に優先順位ルールが起動することを意味します。つまり、トリガーまたはその下位オブジェクトのいずれかとして指定された管理対象値がナビゲーション状態である場合に、ターゲットが示されます(1つのトリガー、1つのターゲット)。

isLeafTriggerはEndeca標準属性に適用されないことに注意してください。優先順位ルールを作成する場合で、優先順位ルールの実行中に使用する値がDgraphによって無視されるときは、これを指定する必要があります。

優先順位ルールの例

次に、ProvinceRuleという名前の優先順位ルールを作成するconfig-service:putPrecedenceRules操作の例を示します。
<config-service:configTransaction 
   xmlns:config-service="http://www.endeca.com/MDEX/config/services/types/1/0" 
   xmlns:mdex="http://www.endeca.com/MDEX/XQuery/2009/09">
  <config-service:putPrecedenceRules>
     <mdex:precedenceRule
        key="ProvinceRule" 
        triggerAttributeKey="DimGeography_StateProvinceName"
        triggerAttributeValue="Queensland" 
        targetAttributeKey="DimGeography_City"
        isLeafTrigger="true"/>
  </config-service:putPrecedenceRules>
</config-service:configTransaction>

この例では、操作でオプションのOuterTransactionId要素を使用しないことに注意してください。この操作は、WebServiceClientコンポーネントのリクエスト構造に配置できます。