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> ...