Sto scrivendo una applicazione in C# che crea e modifica file XML contenenti regole per un Firewall Linux e poi lancia una trasformazione XSLT con un foglio che creo io a parte. La struttura del file XML è la seguente (a spanne):
<FIREWALL name="Firewall1">
<ETH name="0">
<TYPE name="Header">
<RULE name="" ...../>
<RULE name="" ...../>
</TYPE>
<TYPE name="Service">
<RULE name="" ...../>
<RULE name="" ...../>
</TYPE>
</ETH>
<ETH name="lo">
.....
.....
.....
</ETH>
</FIREWALL>
In sostanza quello che voglio fare è applicare DIVERSI template alle RULES in base al loro tipo (TYPE) con una struttura del tipo xsl:choose se possibile. Per intenderci quello che sto facendo è tradurre una struttura XML in linguaggio IPTables per Linux e di conseguenza diversi tipi di regole (RULES) hanno diversi tipi di traduzione che implemento appunto con diversi template XSLT.
Il problema è che non riesco a implementare questa cosa, sono alle prime armi con XSLT, so fare un template e in realtà ho già fatto i template per i vari tipi (TYPE) e presi singolarmente funzionano e traducono correttamente, il problema è che quando li metto tutti assieme e provo a fare questa struttura con choose non funziona più niente, non esistendo un debug non capisco cosa non quadra. Dalla disperazione ho provato a scrivere un XSLT BIANCO con un when (o if che sia) e non ci entra mai nel when o if, neppure se come condizione metto 1=1 -.-" La cosa assurda è che la struttura che vorrei io richiede neanche 10 righe di codice e non riesco a scriverle xD Qualcuno mi può aiutare?
EDIT: L'istruzione che ho scritto io è la seguente:
<xsl:template match="TYPE">
<xsl:choose>
<xsl:when test="name='Header'">
CHIAMO IL TEMPLATE CORRISPONDENTE PER LE RULES AL SUO INTERNO (COME?)
</xsl:when>
</xsl:choose>
</xsl:template>
Che comunque nel when non ci entra mai, ho provato a scriverci dentro ciao e non appare >.<

Rispondi quotando