Waar met het includen van bestanden zoals in de vorige sectie aan bod kwam tamelijk veel mogelijk is, wordt het het nuttigst in combinatie met de <snippets>-opdracht. Snippets zijn kleinere secties die u kunt invoegen in een ander deel van het bestand. Een voorbeeld maakt dit het duidelijkst:
<document> <snippets> <snippet id="notitie"> <frame> <text> Dit wordt op twee plaatsen in de GUI ingevoegd </text> </frame> </snippet> </snippets> <dialog label="test"> <column> <insert snippet="notitie"/> [...] <insert snippet="notitie"/> </column> </dialog> </document>
Dus u definieert een snippet op een plaats bovenin het XML-bestand, en daarna <insert> (invoegen) u die op elke plaats die u wenst.
Hoewel dit voorbeeld op zichzelf niet bijster nuttig is, kunt u denken aan het combineren hiervan met een <include>d .xml
-bestand. Merk op dat u in hetzelfde bestand ook snippets kunt plaatsen voor het .rkh
-bestand. U <include> het bestand eenvoudig ook daar, en <insert> de relevante snippet:
<!-- Dit is een bestand genaamd "common_snippets.xml" --> <document> <snippet id="common_opties"> <spinbox id="iets" [...]/> [...] </snippet> <snippet id="common_notitie"> <text>Een belangrijke notitie voor dit type plugin</text> </snippet> <snippet id="common_help"> <setting id="iets">Dit doet iets</setting> [...] </snippet> </document>
<!-- Dit is het .xml-bestand van de plugin --> <document> <snippets> <!-- Importeer de common snippets --> <include file="common_snippets.xml"/> </snippets> <dialog label="test2"> <insert snippet="common_notitie"/> <spinbox id="iets_plugin_specifiek" [...] /> <insert snippet="common_opties"/> </dialog> </document>
Gelijk aan inclusie in JS, is de omgekeerde aanpak vaak zelf nog nuttiger:
<!-- Dit is een bestand met de naam "common_layout.xml" --> <document> <column> <insert snippet="notitie"> [...] <insert snippet="plugin_parameters"> </column> [...] </document>
<!-- Dit is het .xml-bestand van de plugin --> <document> <snippets> <snippet id="notitie"> <text>De notitie voor deze specifieke plugin</text> </snippet> <snippet id="plugin_parameters"> <frame label="Parameters specifiek voor deze plugin"> [...] </frame> </snippet> </snippets> <dialog label="test3"> <include file="common_layout.xml"/> </dialog> </document>
Het is tenslotte ook mogelijk snippets <in te voegen> in andere snippets, als: a) ze niet in elkaar zijn genest, en b) de <snippets>-sectie bovenin het bestand is geplaatst (voordat een geneste snippet wordt ingevoegd); dit omdat <insert>-statements worden gelezen van boven naar beneden.