パスワードの作成例:作成ルール

次のスタイルシートは作成ルールに使用できます。このスタイルシートは、ユーザを作成して、ユーザのSurname属性とCN属性からユーザのパスワードを生成し、識別情報変換を実行します(傍受または変換しようとするイベントを除き、文書に記述されたすべての情報を渡します)。

<?xml version="1.0" encoding="ISO-8859-1"?> 

<!-- This stylesheet has an example of how to replace a create rule with
an XSLT stylesheet and supply an initial password for "User" objects.-->

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform
"version="1.0">

<!-- ensure we have required NDS attributes -->
<xsl:template match="add">
<xsl:if test="add-attr[@attr-name='Surname'] and
add-attr[@attr-name='CN']">
<!-- copy the add through -->
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<!-- add a <password> element -->
<xsl:call-template name="create-password"/>
</xsl:copy>
</xsl:if>

<!-- if the xsl:if fails, we don't have all the required attributes
so we won't copy the add through, and the create rule will veto the add -->

</xsl:template>

<xsl:template name="create-password">
<password>
<xsl:value-of select="concat(add-attr[@attr-name='Surname']/value,
'-',add-attr[@attr-name='CN']/value)"/>
</password>
</xsl:template>

<!-- identity transform for everything we don't want to change -->

<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

</xsl:transform>