Edit D:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\xml\xsl\kusrls.xsl
<?xml version="1.0"?> <!-- NAME kusrls.xsl DESCRIPTION Convert mdapi RLS_POLICY_T document to RLS POLICY document (SXML) Convert mdapi RLS_GROUP_T document to RLS GROUP document (SXML) Convert mdapi RLS_CONTEXT_T document to RLS CONTEXT document (SXML) MODIFIED MM/DD/YY lbarton 11/09/05 - bug 4724986: fix handling of xmlns sdavidso 11/02/05 - fix inconsistent stylesheet format htseng 12/08/04 - Initial version --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://xmlns.oracle.com/ku"> <!-- Top level imports --> <!-- ******************************************************************* Template: RLS_POLICY_T - top-level template for RLS_POLICY. This template puts out - the opening RLS_POLICY element (with xmlns and version attributes) - NAME elements ******************************************************************** --> <xsl:template match="RLS_POLICY_T"> <xsl:element name="RLS_POLICY"> <!-- See note about xmlns attribute in kustable.xsl --> <xsl:attribute name="xmlns">http://xmlns.oracle.com/ku</xsl:attribute> <xsl:attribute name="version">1.0</xsl:attribute> <xsl:element name="SCHEMA"> <xsl:value-of select="BASE_OBJ/OWNER_NAME"/> </xsl:element> <xsl:element name="NAME"> <xsl:value-of select="BASE_OBJ/NAME"/> </xsl:element> <xsl:element name="POLICY_GROUP"> <xsl:value-of select="GNAME"/> </xsl:element> <xsl:element name="POLICY_NAME"> <xsl:value-of select="NAME"/> </xsl:element> <xsl:element name="FUNCTION_SCHEMA"> <xsl:value-of select="PFSCHMA"/> </xsl:element> <xsl:element name="POLICY_FUNCTION"> <xsl:if test="PPNAME"> <xsl:value-of select="PPNAME"/> <xsl:text>.</xsl:text> </xsl:if> <xsl:value-of select="PFNAME"/> </xsl:element> <xsl:element name="STATEMENT_TYPE_LIST"> <!-- The stmt_type uses 5 bits, values 2048, 8, 4, 2, and 1. These represent INDEX,DELETE,UPDATE,INSERT AND SELECT. --> <!-- If bit 2048 is set, is 'INDEX' --> <xsl:if test="STMT_TYPE >= 2048"> <xsl:element name="STATEMENT_TYPE_LIST_ENTRY"> <xsl:element name="NAME"> <xsl:text>INDEX</xsl:text> </xsl:element> </xsl:element> </xsl:if> <!-- If bit 8 is set, is 'DELETE' --> <xsl:if test="(STMT_TYPE mod 2048)>=8"> <xsl:element name="STATEMENT_TYPE_LIST_ENTRY"> <xsl:element name="NAME"> <xsl:text>DELETE</xsl:text> </xsl:element> </xsl:element> </xsl:if> <!-- If bit 4 is set, is 'UPDATE' --> <xsl:if test="(STMT_TYPE mod 8)>=4"> <xsl:element name="STATEMENT_TYPE_LIST_ENTRY"> <xsl:element name="NAME"> <xsl:text>UPDATE</xsl:text> </xsl:element> </xsl:element> </xsl:if> <!-- If bit 2 is set, is 'INSERT' --> <xsl:if test="(STMT_TYPE mod 4)>=2"> <xsl:element name="STATEMENT_TYPE_LIST_ENTRY"> <xsl:element name="NAME"> <xsl:text>INSERT</xsl:text> </xsl:element> </xsl:element> </xsl:if> <!-- If bit 1 is set, is 'SELECT' --> <xsl:if test="(STMT_TYPE mod 2)=1"> <xsl:element name="STATEMENT_TYPE_LIST_ENTRY"> <xsl:element name="NAME"> <xsl:text>SELECT</xsl:text> </xsl:element> </xsl:element> </xsl:if> </xsl:element> <xsl:element name="UPDATE_CHECK"> <xsl:choose> <xsl:when test="CHECK_OPT = 1"> <xsl:text>Y</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>N</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:element> <xsl:element name="ENABLE"> <xsl:choose> <xsl:when test="ENABLE_FLAG = 1"> <xsl:text>Y</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>N</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:element> <!-- static_policy will be ignored and overwritten by policy_type --> <xsl:element name="STATIC_POLICY"> <xsl:text>N</xsl:text> </xsl:element> <xsl:element name="POLICY_TYPE"> <xsl:value-of select="POLICY_TYPE"/> </xsl:element> <xsl:element name="LONG_PREDICATE"> <xsl:choose> <xsl:when test="LONG_PRED = 512"> <xsl:text>N</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>Y</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:element> <xsl:if test="REL_COLS/REL_COLS_ITEM"> <xsl:element name="RELEVANT_COLUMN_LIST"> <xsl:for-each select="REL_COLS/REL_COLS_ITEM"> <xsl:element name="RELEVANT_COLUMN_LIST_ENTRY"> <xsl:element name="NAME"> <xsl:value-of select="SEC_REL_COL"/> </xsl:element> </xsl:element> </xsl:for-each> </xsl:element> </xsl:if> <!-- security relevant cols option --> <xsl:if test="REL_COLS_OPT = 4096"> <xsl:element name="ALL_ROWS"/> </xsl:if> </xsl:element> </xsl:template> <!-- Template to recreate RLS_CONTEXT --> <xsl:template match="RLS_CONTEXT_T"> <xsl:element name="RLS_CONTEXT"> <xsl:attribute name="xmlns">http://xmlns.oracle.com/ku</xsl:attribute> <xsl:attribute name="version">1.0</xsl:attribute> <xsl:element name="SCHEMA"> <xsl:value-of select="BASE_OBJ/OWNER_NAME"/> </xsl:element> <xsl:element name="NAME"> <xsl:value-of select="BASE_OBJ/NAME"/> </xsl:element> <xsl:element name="NAMESPACE"> <xsl:value-of select="NAME"/> </xsl:element> <xsl:element name="ATTRIBUTE"> <xsl:value-of select="ATTR"/> </xsl:element> </xsl:element> </xsl:template> <!-- Template to recreate RLS_GROUP --> <xsl:template match="RLS_GROUP_T"> <xsl:element name="RLS_GROUP"> <xsl:attribute name="xmlns">http://xmlns.oracle.com/ku</xsl:attribute> <xsl:attribute name="version">1.0</xsl:attribute> <xsl:element name="SCHEMA"> <xsl:value-of select="BASE_OBJ/OWNER_NAME"/> </xsl:element> <xsl:element name="NAME"> <xsl:value-of select="BASE_OBJ/NAME"/> </xsl:element> <xsl:element name="POLICY_GROUP"> <xsl:value-of select="NAME"/> </xsl:element> </xsl:element> </xsl:template> </xsl:stylesheet>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de