<commit_before><?xml version="1.0" encoding="utf-8"?>
<!-- $Id$ -->
<xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xslt="output.xsl"
 xmlns:doap="http://usefulinc.com/ns/doap#"
        >
    <xsl:output method="xml" encoding="utf-8"/>
    <xsl:namespace-alias stylesheet-prefix="xslt" result-prefix="xsl"/>

    <xsl:template match="/">

        <xsl:apply-templates/>

    </xsl:template>

    <xsl:template match="xsl:stylesheet">
        <xsl:copy>
            <xsl:for-each select="@*">
                <xsl:copy/>
            </xsl:for-each>
            
           <!-- <xsl:copy-of select="document('elementpath.xsl')/root/*"/>-->

            <xsl:apply-templates/>
        </xsl:copy>

    </xsl:template>

<!--
<xsl:template match="xsl:apply-templates">
    <xhtml:div id="{generate-id()}" bxe_xpath="{@select}"></xhtml:div>
</xsl:template>-->

    <xsl:template match="*">
        <xsl:copy>

            <xsl:for-each select="@*">
                <xsl:copy/>
            </xsl:for-each>

            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    
    <xsl:template match="xsl:include">
        <xsl:variable name="doc" select="document(@href)"/>
        <xsl:copy-of select="$doc/xsl:stylesheet/xsl:param"/>
        <xsl:copy-of select="$doc/xsl:stylesheet/xsl:variable"/>
        <xsl:apply-templates select="$doc/xsl:stylesheet/xsl:include"/>
        <xsl:apply-templates select="$doc/xsl:stylesheet/xsl:template"/>
        
    </xsl:template>

    <xsl:template match="xsl:value-of[ not(ancestor::xsl:attribute) and 
                                       not(contains(@select,'$')) and 
                                       not(contains(@select,'(')) and
                                       not(number(@select) = @select) 
                                       
                                       ]
                         |xsl:copy-of">
        <xsl:choose>
            <xsl:when test="not(../@__bxe_id)">
                <xsl:variable name="xpath">
                    <xsl:choose>
                        <xsl:when test="contains(@select, '@')"><xsl:value-of select="@select"/>/parent::*/@__bxe_id</xsl:when>
                        <xsl:when test="@select = '.' and ../xsl:template[match='text()']">../@__bxe_id</xsl:when>
                        
                        <xsl:when test="@select"><xsl:value-of select="@select"/>/@__bxe_id</xsl:when>
                        
                        <xsl:otherwise>@__bxe_id</xsl:otherwise>
                    </xsl:choose>
                  </xsl:variable>             
                    
                <span>
                    <xsl:element name="attribute" namespace="http://www.w3.org/1999/XSL/Transform">
                        <xsl:attribute name="name">__bxe_id</xsl:attribute>
                        <xsl:element name="value-of" namespace="http://www.w3.org/1999/XSL/Transform">
                            <xsl:attribute name="select"><xsl:value-of select="$xpath"/></xsl:attribute>
                        </xsl:element>
                    </xsl:element>
                    <xsl:call-template name="copyValueOfNode"/>
                </span>
            </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="copyValueOfNode"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="copyValueOfNode">
                <!-- attribute nodes... -->
        <xsl:if test="contains(@select, '@')">
            <xsl:element name="attribute" namespace="http://www.w3.org/1999/XSL/Transform">
                <xsl:attribute name="name">__bxe_attribute</xsl:attribute>
                <xsl:value-of select="substring-after(@select,'@')"/>
            </xsl:element>
    

        </xsl:if>
        <xsl:element name="copy-of" namespace="http://www.w3.org/1999/XSL/Transform">
            <xsl:attribute name="select">
                <xsl:choose>
                    <xsl:when test="@select">
                        <xsl:value-of select="@select"/>/@__bxe_defaultcontent</xsl:when>
                    <xsl:otherwise>@__bxe_defaultcontent</xsl:otherwise>
                </xsl:choose>
            </xsl:attribute>
        </xsl:element>

        <xsl:copy>
            <xsl:for-each select="@*"><commit_msg>check if bxe_Id is set <commit_after><?xml version="1.0" encoding="utf-8"?>
<!-- $Id$ -->
<xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xslt="output.xsl"
 xmlns:doap="http://usefulinc.com/ns/doap#"
        >
    <xsl:output method="xml" encoding="utf-8"/>
    <xsl:namespace-alias stylesheet-prefix="xslt" result-prefix="xsl"/>

    <xsl:template match="/">

        <xsl:apply-templates/>

    </xsl:template>

    <xsl:template match="xsl:stylesheet">
        <xsl:copy>
            <xsl:for-each select="@*">
                <xsl:copy/>
            </xsl:for-each>
            
           <!-- <xsl:copy-of select="document('elementpath.xsl')/root/*"/>-->

            <xsl:apply-templates/>
        </xsl:copy>

    </xsl:template>

<!--
<xsl:template match="xsl:apply-templates">
    <xhtml:div id="{generate-id()}" bxe_xpath="{@select}"></xhtml:div>
</xsl:template>-->

    <xsl:template match="*">
        <xsl:copy>

            <xsl:for-each select="@*">
                <xsl:copy/>
            </xsl:for-each>

            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    
    <xsl:template match="xsl:include">
        <xsl:variable name="doc" select="document(@href)"/>
        <xsl:copy-of select="$doc/xsl:stylesheet/xsl:param"/>
        <xsl:copy-of select="$doc/xsl:stylesheet/xsl:variable"/>
        <xsl:apply-templates select="$doc/xsl:stylesheet/xsl:include"/>
        <xsl:apply-templates select="$doc/xsl:stylesheet/xsl:template"/>
        
    </xsl:template>

    <xsl:template match="xsl:value-of[ not(ancestor::xsl:attribute) and 
                                       not(contains(@select,'$')) and 
                                       not(contains(@select,'(')) and
                                       not(number(@select) = @select) 
                                       
                                       ]
                         |xsl:copy-of">
        <xsl:choose>
            <xsl:when test="not(../@__bxe_id)">
                <xsl:variable name="xpath">
                    <xsl:choose>
                        <xsl:when test="contains(@select, '@')"><xsl:value-of select="@select"/>/parent::*/@__bxe_id</xsl:when>
                        <xsl:when test="@select = '.' and ../xsl:template[match='text()']">../@__bxe_id</xsl:when>
                        
                        <xsl:when test="@select"><xsl:value-of select="@select"/>/@__bxe_id</xsl:when>
                        
                        <xsl:otherwise>@__bxe_id</xsl:otherwise>
                    </xsl:choose>
                  </xsl:variable>             
                <xsl:element name="choose" namespace="http://www.w3.org/1999/XSL/Transform">
                   <xsl:element name="when" namespace="http://www.w3.org/1999/XSL/Transform">
                       <xsl:attribute name="test"><xsl:value-of select="$xpath"/> != ''</xsl:attribute>
                       
                                
                    <span>
                    <xsl:element name="attribute" namespace="http://www.w3.org/1999/XSL/Transform">
                        <xsl:attribute name="name">__bxe_id</xsl:attribute>
                        <xsl:element name="value-of" namespace="http://www.w3.org/1999/XSL/Transform">
                            <xsl:attribute name="select"><xsl:value-of select="$xpath"/></xsl:attribute>
                        </xsl:element>
                    </xsl:element>
                    <xsl:call-template name="copyValueOfNode"/>
                </span>
                </xsl:element>
                    <xsl:element name="otherwise" namespace="http://www.w3.org/1999/XSL/Transform">   
                    
                        <xsl:call-template name="copyValueOfNode"/>
                    </xsl:element>
                    </xsl:element>
                    
                
            </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="copyValueOfNode"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="copyValueOfNode">
                <!-- attribute nodes... -->
        <xsl:if test="contains(@select, '@')">
            <xsl:element name="attribute" namespace="http://www.w3.org/1999/XSL/Transform">
                <xsl:attribute name="name">__bxe_attribute</xsl:attribute>
                <xsl:value-of select="substring-after(@select,'@')"/>
            </xsl:element>
    

        </xsl:if>
        <xsl:element name="copy-of" namespace="http://www.w3.org/1999/XSL/Transform">
            <xsl:attribute name="select">
                <xsl:choose>
                    <xsl:when test="@select">
                        <xsl:value-of select="@select"/>/@__bxe_defaultcontent</xsl:when>
                    <xsl:otherwise>@__bxe_defaultcontent</xsl:otherwise>
                </xsl:choose>
            </xsl:attribute>
        </xsl:element>

        <xsl:copy>
            <xsl:for-each select="@*">
{'fraction_non_alphanumeric': 0.17356248673880756, 'fraction_numerical': 0.009229789942711649, 'mean_word_length': 1.6128048780487805, 'pattern_counts': {'":': 0, '<': 203, '<?xml version=': 2, '>': 203, 'https://': 0, 'lorem ipsum': 0, 'www.': 15, 'xml': 12}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5732460', 'n_tokens_mistral': 3059, 'n_tokens_neox': 2609, 'n_words': 320}