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

XML/XSL et SOAP Discussion :

conversion XML vers OpenDocument


Sujet :

XML/XSL et SOAP

  1. #1
    En attente de confirmation mail
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut conversion XML vers OpenDocument
    Bonjour à tous,
    Dans le cadre d'un projet, on souhaite convertir un fichier XML vers un autre fichier XML mais au format OpenDocument. Le but est de pouvoir générer un fichier OpenOffice au final pour permettre aux utilisateurs de modifier le document générer. J'arrive à créer un fichier XML de base puis avec un fichier XSL à le convertir en fichier XHTML (avec feuille de style) avec Xalan. Mais avec ce même fichier XML de base et un fichier XSL permettant de convertir ce fichier en un autre fichier XML pour OpenOffice, là Xalan râle car il ne reconnait pas cette norme (enfin je pense). et je voulais savoir si quelqu'un avait déjà eut le même problème ou bien si quelqu'un à une idée pour résoudre ce soucis (en espèrant que je me suis fait comprendre). J'ai cherché sur le Net mais sans succès.

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut Re: conversion XML vers OpenDocument
    Citation Envoyé par eGGyyS
    Mais avec ce même fichier XML de base et un fichier XSL permettant de convertir ce fichier en un autre fichier XML pour OpenOffice, là Xalan râle car il ne reconnait pas cette norme (enfin je pense).
    Salut, de quelle norme parles-tu ?
    Si le fichier XML en entrée est correct, si la feuille de style XSL est correcte, il n'y a aucune raison pour que ça ne fonctionne pas.
    Quelles sont les erreurs générées ?
    a+

  3. #3
    En attente de confirmation mail
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Xalan me sort ce message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Fatal Error] OpenOffice.xsl:17:32: The prefix "text" for element "text:p" is not bound.
    et lorsque je regarde dans le fichier XSL de transformation ça correspond à:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <text:p text:style-name="P1">
    le code de la partie XSL pour générer une partie du fichier est la suivante:
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <!-- TEMPLATE POUR L'ENTETE GENERAL DU DEVIS -->
    <xsl:template name="creation_entete_general" match="devis">			
    		<text:p text:style-name="P1">
    			<draw:frame draw:style-name="fr1" draw:name="Cadre3" text:anchor-type="paragraph" svg:x="0.03cm" svg:y="0cm" svg:width="16.923cm" draw:z-index="0">
    				<draw:text-box fo:min-height="5.81cm">
    					<text:p text:style-name="P2">
    						<draw:frame draw:style-name="fr2" draw:name="Image1" text:anchor-type="paragraph" svg:x="0cm" svg:y="0.026cm" svg:width="3.969cm" svg:height="0.977cm" draw:z-index="1">
    							<draw:image xlink:href="Pictures/{/entete_societe/image}" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
    						</draw:frame>
     
    						<draw:frame draw:style-name="fr3" draw:name="Cadre1" text:anchor-type="paragraph" svg:x="7.65cm" svg:y="0cm" svg:width="3.216cm" draw:z-index="2">
    							<draw:text-box fo:min-height="5.327cm">
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='date_devis']"/></text:p>
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='ref_devis']"/></text:p>
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='ref_client']"/></text:p>
    								<text:p text:style-name="P3"/>
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='societe_devis']"/></text:p>
    								<text:p text:style-name="P3"/>
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='contact_devis']"/></text:p>
    								<text:p text:style-name="P3"/>
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='tel_client']"/></text:p>
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='fax_client']"/></text:p>
    								<text:p text:style-name="P3"/>
    								<text:p text:style-name="P3"><xsl:apply-templates select="$messages/message[@name='nom_interlocuteur']"/></text:p>
    							</draw:text-box>
    						</draw:frame>
     
    						<draw:frame draw:style-name="fr4" draw:name="Cadre2" text:anchor-type="paragraph" svg:x="10.871cm" svg:y="0cm" svg:width="5.556cm" draw:z-index="3">
    							<draw:text-box fo:min-height="5.327cm">
    								<text:p text:style-name="P4"><xsl:value-of select="/entete_devis/date"/></text:p>
    								<text:p text:style-name="P5"><xsl:value-of select="/entete_devis/notre_reference_devis"/>*</text:p>
    								<text:p text:style-name="P5"><xsl:value-of select="/entete_devis/votre_reference_devis"/></text:p>
    								<text:p text:style-name="P5"/>
    								<text:p text:style-name="P5"><xsl:value-of select="/entete_devis/nom_societe"/></text:p>
    								<text:p text:style-name="P5"/>
    								<text:p text:style-name="P5"><xsl:value-of select="entete_devis/nom_contact"/></text:p>
    								<text:p text:style-name="P5"/>
    								<text:p text:style-name="P5"><xsl:value-of select="/entete_devis/telephone_client"/></text:p>
    								<text:p text:style-name="P5"><xsl:value-of select="/entete_devis/fax_client"/></text:p>
    								<text:p text:style-name="P5"/>
    								<text:p text:style-name="P5"><xsl:value-of select="/entete_devis/nom_interlocuteur"/></text:p>
    							</draw:text-box>
    						</draw:frame> 
     
    						<text:s text:c="2"/><xsl:value-of select="/entete_societe/nom_societe"/>
    					</text:p>
    						<text:p text:style-name="P6"><xsl:value-of select="/entete_societe/adresse1_societe"/></text:p>
    						<text:p text:style-name="P6"><xsl:value-of select="/entete_societe/adresse2_societe"/></text:p>
    						<text:p text:style-name="P6"><xsl:value-of select="/entete_societe/pays_societe"/><xsl:value-of select="entete_societe/cp_societe"/> <xsl:value-of select="/entete_societe/ville_societe"/></text:p>
    						<text:p text:style-name="P6"><xsl:apply-templates select="$messages/message[@name='tel_client']"/> <text:s/><xsl:value-of select="/entete_societe/telephone_societe"/></text:p>
    						<text:p text:style-name="P6"><xsl:apply-templates select="$messages/message[@name='fax_client']"/> <xsl:value-of select="/entete_societe/fax_societe"/></text:p>
    						<text:p text:style-name="P7">
    							<text:span text:style-name="T1"><text:tab/><text:tab/><xsl:apply-templates select="$messages/message[@name='site_societe']"/> </text:span>
    							<text:a xlink:type="simple" xlink:href="{entete_societe/website_societe}/"><text:span text:style-name="T2"><xsl:value-of select="/entete_societe/website_societe"/></text:span></text:a>
    							<text:a xlink:type="simple" xlink:href="{entete_societe/website_societe}/"> </text:a>
    						</text:p>
    						<text:p text:style-name="P6"><text:tab/><text:tab/><xsl:apply-templates select="$messages/message[@name='mail_societe']"/> <text:s text:c="2"/><text:a xlink:type="simple" xlink:href="mailto:contact@{entete_societe/email_societe}"><xsl:value-of select="/entete_societe/email_societe"/></text:a> </text:p>
    				</draw:text-box>
    			</draw:frame> *<xsl:apply-templates select="$messages/message[@name='rappel_client']"/>
    		</text:p>
    </xsl:template>
    J'ai simplement créer mon fichier type sous OpenOffice puis récupérer le contenu du fichier content.xml situé dans le fichier ODT que j'ai mit dans un fichier XSL et ensuite intégré les données que l'on souhaite afficher.

    Le fichier XML de base est correct et le fichier XSL doit l'être aussi sinon XMLSpy n'autoriserait pas à l'enregistrer,d'ailleur je n'ai pas testé la transformation avec ce dernier.

  4. #4
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Ou la la, alors je suis pas un pro de XSL ...
    Peut-être que tu pourrais utiliser Cooktop, il s'agit d'un outil XML bien sympa permettant de tester directement les transformations XSL.
    Peut-être que les erreurs générées seront plus explicites.

    Il est disponible à l'adresse : http://www.xmlcooktop.com/
    BOn courage

  5. #5
    En attente de confirmation mail
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ok merci du lien.

    Par contre je pense qu'il peux s'agir du fait que j'ai oublié d'ajouter la DTD de OpenDocument dans mon fichier XSL...

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Il faut que tu déclares dans ton XSL à quel espace de noms fait référence l'alias 'text'. Ca se fait dans le xsl:stylesheet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
    >
    Il faut que tu le fasses pour chaque espace de noms utilisé dans ta feuille de style XSL (la liste complète des URN de OpenDocument se trouve à la page 31 de la documentation de référence de OpenDocument)

  7. #7
    En attente de confirmation mail
    Inscrit en
    Février 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [Résolu] Convertion XML vers OpenDocument
    Oui j'ai pensé à ajouter la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0">
    je sais pas si tout est utile ou simplement ta ligne suffit mais en tout cas il me dit bien que le fichier est valide et CookTop le convertit bien.

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

Discussions similaires

  1. script de conversion xml vers Bash
    Par kandy dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 10/02/2010, 13h30
  2. script de conversion xml vers Bash
    Par kandy dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 08/02/2010, 19h00
  3. Conversion XML vers PDF avec ITEXT
    Par adelpiero dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 29/07/2008, 10h16
  4. Erreur de dépassement: conversion XML vers NTEXT
    Par carjo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/03/2008, 22h05
  5. [XSLT] Conversion xml vers txt ou mdb etc
    Par narodar dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/06/2006, 14h31

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