La mise à jour d'un fichier XML source consiste à :
Ceci nécéssite de :
<models> <model key="struts" type="xml" /> </models>
<output> <file key="struts" > <insert path="/struts/package/action[last()]" position="after" > <template uri="/ftl/struts2/struts.xml/action.ftl" /> </insert> </file> </output>
Pour indiquer le fichier XML source à modifier (qui a été définit dans le modèle), l'attribut key de l'élement file doit faire référence à l'attribut key de l'élement model.
<action name="${actionName}" class="${actionClassName}"> <#if resultType != '' > <result type="${resultType}" /> </#if> </action>
La définition d'un modèle de type xml et de key xmlFileToUpdate qui permet d'indiquer le fichier XML à mettre à jour s'effectue comme ceci :
... <models> <model type="xml" key="xmlFileToUpdate" /> ... </models> ...
L'élement file est contenu dans l'élement output. Il permet de décrire la mise à jour à effectuer sur le fichier XML source qui a été définit dans le modèle. La mise à jour du fichier XML définit dans le modèle de key xmlFileToUpdate s'effectue comme ceci :
... <output> <file key="xmlFileToUpdate" > ... </file> </output> ...
L'élement insert est contenu dans l'élement file. Il permet d'insérer un fragment XML :
... <file key="xmlFileToUpdate" > <insert path="..." position="..." > <template uri="..." /> </insert> </file> ...
Pour indiquer l'endroit précis ou le fragment XML généré par un template doit être insérer, vous devez utiliser les attributs :
Le fragment XML à insérer est généré. Cette génération de ce fragment s'effectue à partir d'un template (Freemarker, velocity, XSL,...).
Pour générer un fragment XML à l'aide du template path_of_myTemplate, insert doit contenir :
... <insert path="..." position="..." > <template uri="path_of_myTemplate" /> </insert> ...