--- /dev/null
+<?xml version="1.1" encoding="ISO-8859-1"?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY nbsp " ">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="xalan://xml.apache.org/xalan/java" xmlns="http://www.xemelios.org/namespaces#manifeste" xmlns:n="http://www.xemelios.org/namespaces#manifeste" xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added" xmlns:ano="http://projets.admisource.gouv.fr/xemelios/namespaces#anomally" exclude-result-prefixes="java" version="2.0">
+
+ <xsl:output standalone="yes" method="xml" indent="yes"/>
+
+ <xsl:output encoding="ISO-8859-1"/>
+ <xsl:output version="1.0"/>
+
+ <xsl:param name="language" select="'fr'"/>
+
+ <xsl:param name="CodeBudget"/>
+ <xsl:param name="LibelleBudget"/>
+ <xsl:param name="CodeCollectivite"/>
+ <xsl:param name="LibelleCollectivite"/>
+
+ <xsl:template match="/*[position()=1]">
+ <manifeste xmlns="http://www.xemelios.org/namespaces#manifeste" xmlns:n="http://www.xemelios.org/namespaces#manifeste" xmlns:added="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:for-each select="@*">
+ <xsl:choose>
+ <xsl:when test="string-length(.) eq 0"/>
+ <xsl:otherwise><xsl:copy-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:for-each select="./*">
+ <xsl:call-template name="writeElement">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </manifeste>
+ </xsl:template>
+
+ <xsl:template name="writeElement">
+ <xsl:param name="el"/>
+ <xsl:choose>
+ <xsl:when test="namespace-uri($el) eq 'http://xemelios.org/schemas#import-rules'">
+ <xsl:element name="{name($el)}" namespace="http://xemelios.org/schemas#import-rules">
+ <xsl:for-each select="$el/@*"><xsl:copy-of select="."/></xsl:for-each>
+ <xsl:for-each select="$el/*">
+ <xsl:call-template name="writeElementRul">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{name($el)}">
+ <xsl:for-each select="$el/@*">
+ <xsl:choose>
+ <xsl:when test="string-length(.) eq 0"/>
+ <xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <!-- ajouts Attributs -->
+ <xsl:choose>
+ <xsl:when test="contains('|document|',concat('|',name($el),'|'))">
+ <xsl:attribute name="generated-id" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:attribute>
+ <xsl:attribute name="documentName" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:variable name="tab" select="tokenize(@path,'/')"/>
+ <xsl:value-of select="$tab[count($tab)]"/>
+ </xsl:attribute>
+ <xsl:attribute name="type" namespace="http://projets.admisource.gouv.fr/xemelios/namespaces#added">
+ <xsl:choose>
+ <xsl:when test="@type eq 'CGE' or @type eq 'cg-colloc'">Compte de Gestion SPL</xsl:when>
+ <xsl:when test="@type eq 'CGETAT' or @type eq 'cg-etat'">Compte de Gestion ETAT</xsl:when>
+ <xsl:when test="@type eq 'PES' or @type eq 'pes-aller'">PES Aller</xsl:when>
+ <xsl:when test="@type='PJ'">Pièces Justificatives</xsl:when>
+ <xsl:when test="@type='ERTN'">Titres RNF</xsl:when>
+ <xsl:when test="@type eq 'EDMN' or @type eq 'edmn'">Etats Détaillé des Mandats Nationaux</xsl:when>
+ <xsl:when test="@type eq 'cfg-paye'">Paye</xsl:when>
+ <xsl:otherwise><xsl:value-of select="@type"></xsl:value-of></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!-- recursion -->
+ <xsl:for-each select="$el/*">
+ <xsl:call-template name="writeElement">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:copy-of select="$el/text()" copy-namespaces="yes"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="writeElementRul">
+ <xsl:param name="el"/>
+ <xsl:element name="{name($el)}" namespace="http://xemelios.org/schemas#import-rules">
+ <xsl:for-each select="$el/@*"><xsl:copy-of select="."/></xsl:for-each>
+ <xsl:for-each select="$el/*">
+ <xsl:call-template name="writeElementRul">
+ <xsl:with-param name="el" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="iso-date">
+ <xsl:param name="datebrute"/>
+ <xsl:param name="separator">/</xsl:param>
+ <xsl:variable name="date.tokenize" select="tokenize($datebrute,'/')"/>
+ <xsl:choose>
+ <xsl:when test="string-length($datebrute)=10 and not(contains($datebrute,'..'))">
+ <xsl:value-of select="$date.tokenize[3]"/>
+ <xsl:value-of select="$separator"/>
+ <xsl:value-of select="$date.tokenize[2]"/>
+ <xsl:value-of select="$separator"/>
+ <xsl:value-of select="$date.tokenize[1]"/>
+ </xsl:when>
+ <xsl:when test="string-length($datebrute)=8 and not(contains($datebrute,'..'))">
+ <xsl:choose>
+ <xsl:when test="number($date.tokenize[3])>74">19<xsl:value-of select="$date.tokenize[3]"/></xsl:when>
+ <xsl:otherwise>20<xsl:value-of select="$date.tokenize[3]"/></xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$separator"/>
+ <xsl:value-of select="$date.tokenize[2]"/>
+ <xsl:value-of select="$separator"/>
+ <xsl:value-of select="$date.tokenize[1]"/>
+ </xsl:when>
+ <xsl:when test="string-length($datebrute)>0 and contains($datebrute,'..')">
+ <xsl:value-of select="$datebrute"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="date.in.string">
+ <xsl:param name="chaine"/>
+ <xsl:if test="string-length(normalize-space($chaine)) > 0">
+ <xsl:variable name="date" select="tokenize(normalize-space($chaine),'/')"/>
+ <xsl:variable name="day" select="substring($date[1],string-length($date[1])-1,2)"/>
+ <xsl:call-template name="iso-date">
+ <xsl:with-param name="datebrute"><xsl:value-of select="$day"/>/<xsl:value-of select="$date[2]"/>/<xsl:value-of select="normalize-space(replace($date[3],'-',''))"/></xsl:with-param>
+ <xsl:with-param name="separator">-</xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+</xsl:stylesheet>