IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Création d'attribut optionel non présent dans un fichier source lors d'une transformation XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 51
    Points : 36
    Points
    36
    Par défaut Création d'attribut optionel non présent dans un fichier source lors d'une transformation XSL
    Bonjour,

    Lorsque j'applique une transformation XSL à mon fichier XML ( Ce fichier référence un schéma xsd) qui à pour but de supprimer deux types d'élément et de recopier les autres à identiques, j’obtiens mon fichier moins les éléments que je veux supprimer. Par contre si un attribut est définit optionnel dan mon schéma avec une valeur par défaut alors cet attribut est automatiquement crée avec sa valeur par défaut alors qu'il n'existe pas dans mon XML source.

    Ma feuille XSL :

    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
    20
    21
    22
    23
    24
     
     
    <xsl:stylesheet version="2.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"  />
     
    	<!-- ***************************** -->
    	<!-- Main template                  -->
    	<!-- ***************************** -->
    	<xsl:template match="/">
    		<xsl:apply-templates select="*"/>
    	</xsl:template>
     
    	<!-- **************************************** -->
    	<!-- copy only object for given file      -->
    	<!-- **************************************** -->
    	<xsl:template match="*">
    		<xsl:if  test=" name()!='Inputs' and name()!='ClientLN' " >
    			<xsl:copy> 
    				<xsl:copy-of select="@*" />
    				<xsl:apply-templates/>
    			</xsl:copy>
    		</xsl:if>
    	</xsl:template>
    </xsl:stylesheet>
    J'ai pu voir qu'il exister un attribut 'validation' qui peut être définie sur les balises copy et copy-of par contre après quelques essai aucun changement. J'avoue ne pas trop comprendre les effets des valeurs de cet attribut.

    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    XSLT n'y est pour rien, c'est le parseur qui ajoute les attributs par défaut.

    Quand un attribut est déclaré avoir une valeur par défaut, le XML est équivalent avec cet attribut à cette valeur, ou sans cet attribut. Il n'y a pas de différence entre les deux.
    Par commodité, les parseurs ajoutent souvent les attributs à valeur par défaut des document qu'ils lisent. Par conséquent, tout ce qui est après le parseur est persuadé que le document contenait cet attribut.

    Il ne faut pas trop trop compter dessus, mais ce n'est pas du tout interdit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [2012] Accéder à une valeur d'attribut non présente dans le cube
    Par phoenix75 dans le forum SSAS
    Réponses: 1
    Dernier message: 23/09/2014, 15h15
  2. Résultat d'insert non présent dans la base
    Par yozine dans le forum Hibernate
    Réponses: 2
    Dernier message: 11/10/2007, 20h56
  3. Réponses: 13
    Dernier message: 19/03/2007, 16h55
  4. récupération des id non présente dans une CIF
    Par Zen_Fou dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/04/2006, 12h00
  5. Réponses: 1
    Dernier message: 07/10/2005, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo