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 :

Schema.rng et xmlns


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Schema.rng et xmlns
    Bonjour à tous !

    Je suis face à quelque chose que je n'ai jamais fait en XSLT et je n'ai pas trouvé/compris la documentation sur cela.

    J'ai actuellement un document XML qui commence comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <TEI>
    Et je voudrais, après une transformation XSLT, qu'il commence ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-model href="../schema/Mon_schema.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
    <TEI xmlns="http://www.tei-c.org/ns/1.0">
    Seulement, je suis face à deux difficultés :
    1. schema.rng : je ne sais absolument pas comment faire pour ajouter une balise <?xml-model> à mon document
    2. xmlns : lorsque j'ajoute simplement et naïvement ce spacename à mon TEI, il me rajoute des spacename vide sur plusieurs autres balises de mon <teiHeader>, ce qui invalide mon document, le même résultat se produit lorsque je le fais dans le <xsl:stylesheet>

    Voici mon dernier essai (au petit bonheur la chance) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8"?>
    <?xml-model href="../schema/mon_schema.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:a="http://oeuvres.github.io/Teinte/teinte.rng"
            xmlns:rng="http://relaxng.org/ns/structure/1.0"
            xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
            version="2.0"
            extension-element-prefixes="rng">
    Et son résultat (loin de ce que je veux) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="UTF-8"?>
    <TEI xmlns:a="http://oeuvres.github.io/Teinte/teinte.rng"
         xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl">
    Auriez-vous une piste pour moi s'il-vous-plait ?

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Je ne suis pas très sür l'utilité des autres namespaces dans votre appli, donc, je ne me focalise que sur celui de tei et la construction et le placement de pi ajouté.

    Prenant un demo tei doc que j'emprunte de
    https://gist.github.com/CliffordAnderson/8671757

    Si je fais cette transformation qui contient largement la transformation identique quoi que plus complète tenant compte de comment() et processing-instruction() puisqu'on peut souhaîte dans ce genre d'application préserver toute information dans le document original, et en plus on note que xslt 1.0 suffit :
    Code xslt1 : 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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no" indent="yes" />
    <xsl:strip-space elements="*" />
    <xsl:template match="/">
        <xsl:processing-instruction name="xml-model">
            <xsl:text>href="../schema/Mon_schema.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"</xsl:text>
        </xsl:processing-instruction>
        <xsl:text>&#x0a;</xsl:text>
        <xsl:apply-templates select="*" />
    </xsl:template>
    <xsl:template match="*|@*|text()|comment()|processing-instruction()">
        <xsl:copy>
            <xsl:apply-templates select="*|@*|text()|comment()|processing-instruction()" />
        </xsl:copy>
    </xsl:template>
    </xsl:stylesheet>
    Et ça donne :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8"?>
    <?xml-model href="../schema/Mon_schema.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
    <TEI xmlns="http://www.tei-c.org/ns/1.0">
       <teiHeader type="text">
          <!-- etc -->
       </teiHeader>
       <text>
          <!-- etc -->
       </text>
    </TEI>
    Est-ce tout ça c'est clair ?

Discussions similaires

  1. [XSD] XML Schema
    Par sleepy2002 dans le forum Valider
    Réponses: 3
    Dernier message: 15/09/2003, 09h33
  2. [DEB.] - Transposer une table SQL en XML SCHEMA ???
    Par oulahoup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2003, 15h11
  3. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55
  4. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25
  5. schema xml + xml qui va avec, comment verifier?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 02/03/2003, 11h16

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