Bonjour,
J'ai un document XML sur lequel, sur une balise particulière, je veux ajouter un compteur pour assurer de l'unicité du champ.
De base mon doc xml est contenu dans des balises Document :
Ma transformation xsl ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> </Document>
Ne fonctionne que quand je supprime les attributs de ma balise Document (Que je supprime donc les références au schéma : comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:ns0="http://ws.powernet.ch/webservices"> <xsl:template match="node()"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="PmtInfId"> <xsl:copy> <xsl:copy-of select="@*"/><xsl:apply-templates/> <xsl:variable name="test"> <xsl:number level="any" count="PmtInfId" format="1" /> </xsl:variable> <xsl:value-of select="$test+1"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
Si je supprime les références au schéma dans Document que je transforme mon xml et que je les rajoute après la transformation, mon document valide pourtant toujours le schéma.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <Document> </Document>)
Pouvez-vous me dire ce que j'ai manqué et comme puis-je le faire marcher sans toucher a priori au fichier XML?
Merci d'avance.
Partager