<commit_before><?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="2.0"
        xmlns:json="http://json.org/"
        xmlns:forms="http://www.w3.org/2002/xforms"
        >
    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" version="1.0" encoding="UTF-8"/>

    <xsl:variable name="formName">
        <xsl:value-of select="name(model/*:instance/node()[2])"/>
    </xsl:variable>

    <xsl:template match="/">
        <form>
            <xsl:apply-templates select="model/*:instance/node()"/>
            <xsl:apply-templates select="model/*:instance/node()/node()[not(@template) and not(ancestor::*[@template])]"/>
            <xsl:apply-templates select="//node()[@template]"/>
        </form>
    </xsl:template>

    <xsl:template match="/model/*:instance/node()">
        <xsl:call-template name="bind">
            <xsl:with-param name="bind_value" select="current()"/>
        </xsl:call-template>
    </xsl:template>


    <xsl:template match="model/*:instance/node()/node()[not(@template) and not(ancestor::*[@template])]">
        <xsl:call-template name="copy-model">
            <xsl:with-param name="model" select="current()"/>
        </xsl:call-template>
    </xsl:template>

    <!--<xsl:template match="model/*:instance/node()/node()[@template]">-->
    <xsl:template match="*[@template]">
        <xsl:call-template name="copy-repeat-model">
            <xsl:with-param name="model" select="current()"/>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="bind">
        <xsl:param name="bind_value"/>
        <xsl:if test="name($bind_value[1])">
            <xsl:element name="bind_type">
                <xsl:value-of select="local-name($bind_value)"/>
            </xsl:element>
            <xsl:element name="default_bind_path">
                <xsl:call-template name="genPath"/>
            </xsl:element>
        </xsl:if>
    </xsl:template>

    <xsl:template name="copy-model">
        <xsl:param name="model"/>
        <xsl:if test="name($model[1])">
            <xsl:if test="not($model[@template])">
                <xsl:element name="fields">
                    <xsl:attribute name="json:force-array" select="true()"/>

                    <xsl:attribute name="name">
                        <xsl:value-of select="local-name($model)"/>
                    </xsl:attribute>
                    <xsl:attribute name="bind">
                        <xsl:call-template name="genPath"/>
                    </xsl:attribute>
                    <xsl:if test="$model/text()">
                        <xsl:attribute name="value">
                            <xsl:value-of select="normalize-space($model/text()[1])"/>
                        </xsl:attribute>
                    </xsl:if>
                </xsl:element>

                <xsl:if test="$model/*">
                    <xsl:for-each select="$model/node()">
                        <xsl:call-template name="copy-model">
                            <xsl:with-param name="model" select="."/>
                        </xsl:call-template>
                    </xsl:for-each>
                </xsl:if>

            </xsl:if>
        </xsl:if><commit_msg>updating xslts to use wildcard paths<commit_after><?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="2.0"
        xmlns:json="http://json.org/"
        xmlns:forms="http://www.w3.org/2002/xforms"
        >
    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" version="1.0" encoding="UTF-8"/>

    <xsl:variable name="formName">
        <xsl:value-of select="name(model/*:instance/node()[2])"/>
    </xsl:variable>

    <xsl:template match="/">
        <form>
            <xsl:apply-templates select="model/*:instance/node()"/>
            <xsl:apply-templates select="model/*:instance/node()//node()[not(@template) and not(ancestor::*[@template])]"/>
            <xsl:apply-templates select="model/*:instance/node()//node()[@template]"/>
        </form>
    </xsl:template>

    <xsl:template match="/model/*:instance/node()">
        <xsl:call-template name="bind">
            <xsl:with-param name="bind_value" select="current()"/>
        </xsl:call-template>
    </xsl:template>


    <xsl:template match="model/*:instance/node()//node()[not(@template) and not(ancestor::*[@template])]">
        <xsl:call-template name="copy-model">
            <xsl:with-param name="model" select="current()"/>
        </xsl:call-template>
    </xsl:template>

    <xsl:template match="model/*:instance/node()//node()[@template]">
        <xsl:call-template name="copy-repeat-model">
            <xsl:with-param name="model" select="current()"/>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="bind">
        <xsl:param name="bind_value"/>
        <xsl:if test="name($bind_value[1])">
            <xsl:element name="bind_type">
                <xsl:value-of select="local-name($bind_value)"/>
            </xsl:element>
            <xsl:element name="default_bind_path">
                <xsl:call-template name="genPath"/>
            </xsl:element>
        </xsl:if>
    </xsl:template>

    <xsl:template name="copy-model">
        <xsl:param name="model"/>
        <xsl:if test="name($model[1])">
            <xsl:if test="not($model[@template])">
                <xsl:element name="fields">
                    <xsl:attribute name="json:force-array" select="true()"/>

                    <xsl:attribute name="name">
                        <xsl:value-of select="local-name($model)"/>
                    </xsl:attribute>
                    <xsl:attribute name="bind">
                        <xsl:call-template name="genPath"/>
                    </xsl:attribute>
                    <!--<xsl:if test="$model/text()">-->
                    <!--<xsl:attribute name="value">-->
                    <!--<xsl:value-of select="normalize-space($model/text()[1])"/>-->
                    <!--</xsl:attribute>-->
                    <!--</xsl:if>-->
                </xsl:element>

                <xsl:if test="$model/*">
                    <xsl:for-each select="$model/node()">
                        <xsl:call-template name="copy-model">
                            <xsl:with-param name="model" select="."/>
                        </xsl:call-template>
                    </xsl:for-each>
                </xsl:if>

            </xsl:if>
        </xsl:if>
{'fraction_non_alphanumeric': 0.1949685534591195, 'fraction_numerical': 0.006749501457278723, 'mean_word_length': 1.9515617926663649, 'pattern_counts': {'":': 0, '<': 142, '<?xml version=': 2, '>': 142, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 12}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2641967', 'n_tokens_mistral': 2082, 'n_tokens_neox': 1867, 'n_words': 256}