Använda <snippets>

Medan det är ganska kraftfullt att inkludera filer som visas i föregående avsnitt, blir det som mest användbart när det kombineras med <snippets>. De är egentligen mindre delar som kan infogas på ett annat ställe i filen. Det åskådliggörs bäst av ett exempel:

<document>
        <snippets>
                <snippet id="note">
                        <frame>
                                <text>
                Det här infogas på två ställen i det grafiska användargränssnittet
                                </text>
                        </frame>
                </snippet>
        </snippets>
        <dialog label="test">
                <column>
                        <insert snippet="note"/>
                        [...]
                        <insert snippet="note"/>
                </column>
        </dialog>
</document>
        

Sålunda definieras delen på ett ställe längst upp i XML-filen, och sedan infogas den på vilket eller vilka ställen som man vill med <insert>.

Medan exemplet inte är alltför användbart i sig, tänk på att kombinera det med en .xml-fil inkluderad med <include>. Observera att det också går att placera delar för .rkh-filen i samma fil. Man inkluderar helt enkelt filen där också med <include>, och infogar relevanta delar med <insert>:

<!-- Det här är en fil som heter "common_snippets.xml" -->
<document>
        <snippet id="common_options">
                <spinbox id="någonting" [...]/>
                [...]
        </snippet>
        <snippet id="common_note">
                <text>En viktig anmärkning för den här typen av insticksprogram</text>
        </snippet>

        <snippet id="common_help">
                <setting id="something">Det här gör någonting</setting>
                [...]
        </snippet>
</document>
        
<!-- Det här är insticksprogrammets .xml-fil -->
<document>
        <snippets>
                <!-- Importera common snippets -->
                <include file="common_snippets.xml"/>
        </snippets>

        <dialog label="test2">
                <insert snippet="common_note"/>
                <spinbox id="någonting_insticksprogramspecifikt" [...] />
                <insert snippet="common_options"/>
        </dialog>
</document>
        

I likhet med att inkludera i JS, är det omvända tillvägagångssättet ofta ännu mer användbart:

<!-- Det här är en fil som heter "common_layout.xml" -->
<document>
        <column>
                <insert snippet="note">
                [...]
                <insert snippet="plugin_parameters">
        </column>
        [...]
</document>
        
<!-- Det här är insticksprogrammets .xml-fil -->
<document>
        <snippets>
                <snippet id="note">
                        <text>Anmärkningen använd för det här specifika insticksprogrammet</text>
                </snippet>

                <snippet id="plugin_parameters">
                        <frame label="Parametrar specifika för det här insticksprogrammet">
                                [...]
                        </frame>
                </snippet>
        </snippets>

        <dialog label="test3">
                <include file="common_layout.xml"/>
        </dialog>
</document>
        

Till sist, är det också möjligt att infoga delar med <insert> i andra delar, under förutsättning att det för det första bara finns en nivå av inkapsling, och för det andra att sektionen med <snippets> placeras längst upp i filen (innan en inkapslad del infogas), beroende på att satser med <insert> hanteras uppifrån och ner.