MINI MINI MANI MO
<?xml version="1.0"?>
<!--
NAME
kudvpolobjcalts.xsl
DESCRIPTION
XSLT stylesheet for XML => DDL
conversion of ku$_dv_policy_obj_c_alts_t UDTs
corresponding to Database Vault Policy by ADD_CMD_RULE_TO_POLICY
NOTES
Do NOT modify this file under any circumstance. Copy the file
if you wish to use this stylesheet with an external XML/XSL parser
MODIFIED MM/DD/YY
sjavagal 10/04/17 - Bug 26882631: handle mixed case usernames
sanbhara 08/21/15 - Bug 21299474 - adding scope to
ADD_CMD_RULE_TO_POLICY.
kaizhuan 02/05/15 - Bug 20481939: Update file name
kaizhuan 11/11/14 - Project 46812: Support DV policy/Command rule fine grained protection
kaizhuan 11/11/14 - created
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Import the kucommon.xsl script, otherwise this template will never get invoked. See line 43 in kucommon.xsl, where the comment is "Top level template for all objects", this is the xsl equivalent of 'main'. -->
<xsl:import href="kucommon.xsl"/>
<!-- Top-level parameters -->
<!-- Parameters for DDL generation -->
<xsl:param name="PRETTY">1</xsl:param>
<xsl:param name="SQLTERMINATOR">0</xsl:param>
<!-- Parameters required for DoParse to function correctly. -->
<xsl:param name="PRS_DDL">0</xsl:param>
<xsl:param name="PRS_DELIM">\{]`</xsl:param>
<xsl:param name="PRS_VERB">0</xsl:param>
<xsl:param name="PRS_OBJECT_TYPE">0</xsl:param>
<xsl:param name="PRS_SCHEMA">0</xsl:param>
<xsl:param name="PRS_NAME">0</xsl:param>
<xsl:param name="PRS_GRANTEE">0</xsl:param>
<xsl:param name="PRS_GRANTOR">0</xsl:param>
<xsl:param name="PRS_BASE_OBJECT_SCHEMA">0</xsl:param>
<xsl:param name="PRS_BASE_OBJECT_NAME">0</xsl:param>
<xsl:param name="PRS_BASE_OBJECT_TYPE">0</xsl:param>
<!-- Template to add a command rule to a new Database Vault Policy -->
<xsl:template match="DVPS_DV_POLICY_OBJ_C_ALTS_T">
<xsl:call-template name="DoParse">
<xsl:with-param name="Verb">DBMS_MACADM</xsl:with-param>
<xsl:with-param name="ObjectType">DVPS_DV_POLICY_OBJ_C_ALTS</xsl:with-param>
</xsl:call-template>
<xsl:text>BEGIN DVSYS.DBMS_MACADM.ADD_CMD_RULE_TO_POLICY(policy_name => </xsl:text>
<xsl:call-template name="EscapeString">
<xsl:with-param name="OrigStr" select="POLICY_NAME"/>
<xsl:with-param name="Leading">'</xsl:with-param>
<xsl:with-param name="Trailing">'</xsl:with-param>
<xsl:with-param name="NullVal">NULL</xsl:with-param>
</xsl:call-template>
<xsl:text>, command => </xsl:text>
<xsl:call-template name="EscapeString">
<xsl:with-param name="OrigStr" select="COMMAND"/>
<xsl:with-param name="Leading">'</xsl:with-param>
<xsl:with-param name="Trailing">'</xsl:with-param>
<xsl:with-param name="NullVal">NULL</xsl:with-param>
</xsl:call-template>
<xsl:text>, object_owner => </xsl:text>
<xsl:call-template name="TSQuoteObject">
<xsl:with-param name="Schema" select="OBJECT_OWNER"/>
</xsl:call-template>
<xsl:text>, object_name => </xsl:text>
<xsl:call-template name="TSQuoteObject">
<xsl:with-param name="Object" select="OBJECT_NAME"/>
</xsl:call-template>
<xsl:text>, clause_name => </xsl:text>
<xsl:call-template name="EscapeString">
<xsl:with-param name="OrigStr" select="CLAUSE_NAME"/>
<xsl:with-param name="Leading">'</xsl:with-param>
<xsl:with-param name="Trailing">'</xsl:with-param>
<xsl:with-param name="NullVal">NULL</xsl:with-param>
</xsl:call-template>
<xsl:text>, parameter_name => </xsl:text>
<xsl:call-template name="EscapeString">
<xsl:with-param name="OrigStr" select="PARAMETER_NAME"/>
<xsl:with-param name="Leading">'</xsl:with-param>
<xsl:with-param name="Trailing">'</xsl:with-param>
<xsl:with-param name="NullVal">NULL</xsl:with-param>
</xsl:call-template>
<xsl:text>, event_name => </xsl:text>
<xsl:call-template name="EscapeString">
<xsl:with-param name="OrigStr" select="EVENT_NAME"/>
<xsl:with-param name="Leading">'</xsl:with-param>
<xsl:with-param name="Trailing">'</xsl:with-param>
<xsl:with-param name="NullVal">NULL</xsl:with-param>
</xsl:call-template>
<xsl:text>, component_name => </xsl:text>
<xsl:call-template name="EscapeString">
<xsl:with-param name="OrigStr" select="COMPONENT_NAME"/>
<xsl:with-param name="Leading">'</xsl:with-param>
<xsl:with-param name="Trailing">'</xsl:with-param>
<xsl:with-param name="NullVal">NULL</xsl:with-param>
</xsl:call-template>
<xsl:text>, action_name => </xsl:text>
<xsl:call-template name="EscapeString">
<xsl:with-param name="OrigStr" select="ACTION_NAME"/>
<xsl:with-param name="Leading">'</xsl:with-param>
<xsl:with-param name="Trailing">'</xsl:with-param>
<xsl:with-param name="NullVal">NULL</xsl:with-param>
</xsl:call-template>
<xsl:if test="$VERSION>=1202000000">
<xsl:text>, scope=> </xsl:text>
<xsl:choose>
<xsl:when test="SCOPE">
<xsl:value-of select="SCOPE"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>NULL</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:text>); END;</xsl:text>
<!-- Terminate inner SQL statement -->
<xsl:call-template name="DoTerminator">
<xsl:with-param name="Text"/>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>
OHA YOOOO