メタディレクトリエンジンは、ポリシーのスタイルシートに、スタイルシートが使用できる次のパラメータを渡します。
iManagerまたはDesignerで新しいスタイルシートを作成する場合、これらのパラメータへの宣言を含むスタイルシートで事前入力されます。
スキーママッピングポリシー、入力変換ポリシーおよび出力変換ポリシーを使用してクエリやコマンドパラメータを使用する場合、次の制限が適用されます。
クエリプロセッサの使用は、拡張機能のNovell® XSLTを実装するかどうかによって決まります。クエリを作成するには、XdsQueryProcessorインタフェースに対してネームスペースを宣言する必要があります。この作業は、次の内容をスタイルシートの<xsl:stylesheet>または<xsl:transform>要素に追加することで行います。
xmlns:query="http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsQueryProcessor"
iManagerまたはDesignerで新しいスタイルシートを作成する場合、ネームスペース宣言で事前入力されます。クエリプロセッサについての詳細は、「Class XdsQueryProcessor」を参照してください。
次の例では、クエリプロセッサの1つを使用しています(長すぎる行はラップされており、<では開始されません)。
<!-- Query object name queries NDS for the passed object name --> <xsl:template name="query-object-name"> <xsl:param name="object-name"/> <!-- build an xds query as a result tree fragment --> <xsl:variable name="query"> <query> <search-class class-name="{ancestor-or-self: :add/@class-name}"/> <!-- NOTE: depends on CN being the naming attribute --> <search-attr attr-name="CN"> <value><xsl:value-of select="$object-name"/ ></value> </search-attr> <!-- put an empty read attribute in so that we don’t get --> <!-- the whole object back --> <read-attr/> </query> </xsl:variable> <!-- query NDS --> <xsl:variable name="result" select="query:query($destQuery Processor,$query)"/> <!-- return an empty or non-empty result tree fragment --> <!-- depending on result of query --> <xsl:value-of select="$result//instance"/> </xsl:template>
他の例です。
<?xml version="1.0"?> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cmd="http://www.novell.com/nxsl/java com.novell.nds.dirxml.driver.XdsCommandProcessor" > <xsl:param name="srcCommandProcessor"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="add"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> <!-- on a user add, add Engineering department to the source object --> <xsl:variable name="dummy"> <modify class-name="{@class-name} "dest-dn="{@src-dn}"> <xsl-copy-of select="association"/> <modify-attr attr-name="OU"> <add-value> <value type="string">Engineering</value> </add-value> </modify-attr> </modify> </xsl:variable> <xsl:variable name="dummy2" select="cmd:execute($srcCommandProcessor, $dummy)"/> </xsl:template> </xsl:transform>