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

Outils Discussion :

Appliquer une feuille de style à un export XMi (UML 2.1/XMi 2.1)


Sujet :

Outils

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2004
    Messages : 44
    Points : 40
    Points
    40
    Par défaut Appliquer une feuille de style à un export XMi (UML 2.1/XMi 2.1)
    Bonjour à tous,

    Dans le cadre d'un projet, je fais des exports XMi de mes diagrammes de classe sous Enterprise Architect.
    J'aimerai pouvoir appliquer une feuille XSL sur cet export, mais je n'arrive pas à parcourir le fichier XMi.

    Je ne demande pas un truc tout fait, mais juste des indications afin que je puisse me documenter ou bien avoir un retour sur expérience de quelqu'un qui aurai déjà fait ca.

    Merci d'avance

    Voici le une partie du fichier XMi (XML)
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <xmi:XMI xmi:version="2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1">
    	<xmi:Documentation exporter="Enterprise Architect" exporterVersion="6.5"/>
    	<uml:Model xmi:type="uml:Model" name="EA_Model" visibility="public">
    		<packagedElement xmi:type="uml:Package" xmi:id="EAPK_755FA594_455F_4cfb_BEA2_61DB6D6E5121" name="Class Model" visibility="public">
    			<packagedElement xmi:type="uml:Class" xmi:id="EAID_F9A8FF89_1589_4711_BF2B_60051EACFBD3" name="test1" visibility="public"/>
    			<packagedElement xmi:type="uml:Association" xmi:id="EAID_115DDBFA_8387_4b78_A09C_3B4F503B1C70" name="linke" visibility="public">
    				<memberEnd xmi:idref="EAID_dst5DDBFA_8387_4b78_A09C_3B4F503B1C70"/>
    				<memberEnd xmi:idref="EAID_src5DDBFA_8387_4b78_A09C_3B4F503B1C70"/>
    				<ownedEnd xmi:type="uml:Property" xmi:id="EAID_src5DDBFA_8387_4b78_A09C_3B4F503B1C70" visibility="public" association="EAID_115DDBFA_8387_4b78_A09C_3B4F503B1C70" isOrdered="false" isDerived="false" isDerivedUnion="false" aggregation="none">
    					<type xmi:idref="EAID_E06D3873_A305_40ed_A075_B2EF9E41003D"/>
    				</ownedEnd>
    			</packagedElement>
    			<packagedElement xmi:type="uml:Class" xmi:id="EAID_E06D3873_A305_40ed_A075_B2EF9E41003D" name="test2" visibility="public">
    				<ownedAttribute xmi:type="uml:Property" xmi:id="EAID_dst5DDBFA_8387_4b78_A09C_3B4F503B1C70" visibility="public" association="EAID_115DDBFA_8387_4b78_A09C_3B4F503B1C70" isOrdered="false" isDerived="false" isDerivedUnion="false" aggregation="shared">
    					<type xmi:idref="EAID_F9A8FF89_1589_4711_BF2B_60051EACFBD3"/>
    				</ownedAttribute>
    			</packagedElement>
    			<packagedElement xmi:type="uml:Package" xmi:id="EAPK_BE44AF4E_CA10_4843_A609_98B98F954E04" name="reusable" visibility="public">
    				<packagedElement xmi:type="uml:Class" xmi:id="EAID_0AD32B60_B7AA_4a07_80BA_C2112E1A72A5" name="party" visibility="public">
    					<ownedAttribute xmi:type="uml:Property" xmi:id="EAID_97539091_05A8_4bcc_AC0F_B6590011FA93" name="age" visibility="private" isDerived="false">
    						<lowerValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000001_05A8_4bcc_AC0F_B6590011FA93" value="1"/>
    						<upperValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000002_05A8_4bcc_AC0F_B6590011FA93" value="1"/>
    					</ownedAttribute>
    					<ownedAttribute xmi:type="uml:Property" xmi:id="EAID_367EBAF3_6229_4f9c_8D45_294BEF973F3A" name="id" visibility="private" isDerived="false">
    						<lowerValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000003_6229_4f9c_8D45_294BEF973F3A" value="1"/>
    						<upperValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000004_6229_4f9c_8D45_294BEF973F3A" value="1"/>
    					</ownedAttribute>
    					<ownedAttribute xmi:type="uml:Property" xmi:id="EAID_4FAAAF96_268A_45a1_AD7C_B9555FFF60BF" name="prenom" visibility="private" isDerived="false">
    						<lowerValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000005_268A_45a1_AD7C_B9555FFF60BF" value="1"/>
    						<upperValue xmi:type="uml:LiteralInteger" xmi:id="EAID_LI000006_268A_45a1_AD7C_B9555FFF60BF" value="1"/>
    					</ownedAttribute>
    				</packagedElement>
    			</packagedElement>
    			<packagedElement xmi:type="uml:Package" xmi:id="EAPK_5CCD3D2F_A71E_4a8b_82E2_F98DE93D3772" name="type" visibility="public"/>
    		</packagedElement>
    	</uml:Model>
    Et une partie très simple de mon 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
    <?xml version="1.0" encoding="iso-8859-1"?><!-- DWXMLSource="test.xml" -->
    <xsl:stylesheet version="1.0"
    				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0"
                    xmlns:uml="http://schema.omg.org/spec/UML/2.1/uml.xml"
                    xmlns:xmi="http://schema.omg.org/spec/XMI/2.1"
                    exclude-result-prefixes="uml">
    <xsl:output method="xml" encoding="iso-8859-1" indent="yes" />
    
    <xsl:template match="/">
    	<xsl:apply-templates select="xmi:XMI" />
    </xsl:template>
    
    <xsl:template match="xmi:XMI">
    	<xsl:value-of select="@xmi:version" />
        <xsl:apply-templates select="xmi:XMI/uml:Model" />
    </xsl:template>
    
    <xsl:template match="xmi:XMI/uml:Model">
        <xsl:value-of select="@name" />
    </xsl:template>
    
    </xsl:stylesheet>
    Désolé d'avoir posté le même topic dans 2 sections (Conception/UML et Technologies/Divers :: XML/XSL et SOAP :: XSL/XSLT/XPATH) mais en fait il me semble que les 2 catégories sont concernées

  2. #2
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2004
    Messages : 44
    Points : 40
    Points
    40
    Par défaut
    Ajout d'un morceau de code

  3. #3
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2004
    Messages : 44
    Points : 40
    Points
    40
    Par défaut
    Bon j'avance un peu, a priori le problème viendrai de la ligne <uml:Model ...>
    Je ne sait pas pourquoi, mais impossible de lire les attributs de cette ligne

    De même si je fais un chemin absolu et que donc j'utilise select=".../uml:Modle/...", ca ne fonctionne pas...

    Si quelqu'un a une explication je suis preneur

    Pour le moment je penche vers une histoire de namespace mais je ne sais pas trop...

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    un mois après, je ne sais pas si ca te sera utile, mais j'ai plusieurs remarques (peutêtre stupide, je ne suis pas très fort en xml/xsl-t):
    * ton fichier XMI (xml) ne contient pas de déclaration de fichier xml genre <?xml ?>
    * dans ton premier template, tu sélectionnes le root (noeud xmi:XMI), puis tu veux appliquer un template avec <apply-templates select="xmi:XMI" /> au root . le root ne contenant pas le root, il ne va pas le trouver. (mon raisonement est faux si il manque une partie du code).
    en gros, je pense que tu peux supprimer complètement le premier template
    * dans le deuxième noeud, maintenant premier, tu reprends le chemin. si tu prends le chemin absolu, il faut un slash devant : "/xmi:XMI/uml:Model" ou en relatif directement "uml:Model" ou en barbare "//uml:Model"

    d'après mes remarques, on devrait obtenir :
    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
    <?xml version="1.0" encoding="iso-8859-1"?><!-- DWXMLSource="test.xml" -->
    <xsl:stylesheet version="1.0"
    				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0"
                    xmlns:uml="http://schema.omg.org/spec/UML/2.1/uml.xml"
                    xmlns:xmi="http://schema.omg.org/spec/XMI/2.1"
                    exclude-result-prefixes="uml">
    <xsl:output method="xml" encoding="iso-8859-1" indent="yes" />
    
    <xsl:template match="xmi:XMI">
    	<xsl:value-of select="@xmi:version" />
        <xsl:apply-templates select="//uml:Model" /><!--on applique à tous les noeuds uml:Model, quelque soit leur profondeur, le template approprié
    </xsl:template>
    
    <xsl:template match="uml:Model">
        <xsl:value-of select="@name" />
    </xsl:template>
    
    </xsl:stylesheet>
    bon, après, je ne suis pas très fort mais j'espère que ca te donnera au moins des pistes de réflexion. en outre, je n'ai jamais traité plusieurs namespace avec un xsl

  5. #5
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2004
    Messages : 44
    Points : 40
    Points
    40
    Par défaut
    Merci à toi (désolé pour la réponse tardive)
    J'ai trouvé ce que je voulais, je suis plus avancé maintenant

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Urgence signalée::XMI 2.1 et XSLT
    Ce sujet semble clos ,mais moi je débute aussi un travail semblable:parser des fichier XMI d'enterprise architect en utilisation XSLT.si qq a des exemples XSLT,je lui en serais infiniment reconnaissant.j'ai des délais qui me tiennent à la gorge c'est très urgent

  7. #7
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2004
    Messages : 44
    Points : 40
    Points
    40
    Par défaut
    Désolé de ne pouvoir t aider...
    Franchement ce n'est pas très compliqué par contre je te recommande d utiliser XMLSpy qui m'a beaucoup aidé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/01/2013, 10h11
  2. Réponses: 4
    Dernier message: 11/12/2007, 14h50
  3. Réponses: 5
    Dernier message: 22/07/2005, 23h40
  4. Rattacher une feuille de style a un XML existant
    Par aour dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 08/10/2002, 22h07

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