Question

Je pense avoir besoin d'une DTD pour définir le schéma et d'un XSLT si je souhaite l'afficher dans un navigateur et lui donner un aspect "joli". Mais je ne sais pas de quoi d'autre aurais-je besoin pour obtenir un document XML bien défini pouvant être interrogé à l'aide de XQuery et affiché dans un navigateur Web.

Était-ce utile?

La solution

Pour qu'un document XML puisse être interrogé à l'aide de XQquery, il n'est pas nécessaire de définir une DTD ou une XSD. DTD ou XSD a pour objectif de définir la structure stricte d'un document XML et de permettre sa validation avant son utilisation.

Les navigateurs modernes interprètent très bien les fichiers XML et affichent une arborescence DOM. Si un formatage XML amélioré pour l'affichage du navigateur est nécessaire, vous devez créer un fichier de transformation XSLT, puis ajouter une directive au document XML d'origine pointant vers le fichier XSLT. Le navigateur choisit cette directive et utilise le processeur XSLT intégré pour obtenir le résultat interprété par le navigateur.

info.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="info.xslt"?>
<info>
    <appName>My App</appName>
    <version>1.0.129</version>
    <buildTime>10-09-2008 12:44:03</buildTime>
</info>

info.xslt

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <head>
                <title>Application</title>
                <style type="text/css">
                    body { font-family: Lucida Console; }
                    #outer { text-align: left; }
                    #name {
                        font-weight: bold;
                        font-size: 1.2em;
                    }
                    #logo {
                        float: left;
                        padding-right: 20px;
                        padding-bottom: 200px;
                    }
                </style>
            </head>
            <body>
                <xsl:apply-templates select="info" />
            </body>
        </html>
    </xsl:template>

    <xsl:template match="info">
        <img id="logo" src="image.png" />
        <div id="outer">
            <div id="name">
                <xsl:value-of select="appName"/>
            </div>
            <div id="version">
                <xsl:value-of select="version"/>
            </div>
            <div id="date">
                <xsl:value-of select="buildTime"/>
            </div>
        </div>
    </xsl:template>
</xsl:stylesheet>

Autres conseils

Strictement parlant, vous n’avez besoin de rien. XML, même sans définition de schéma, fonctionne.

Une définition de schéma (dans XSD, RelaxNG ou DTD) aide divers outils fonctionnant avec le XML, car ils peuvent vérifier que la structure du XML est conforme à ce que vous souhaitez.

Une traduction XSLT en HTML est pratique si le XML contient des informations que vous voudrez consulter avec un navigateur. C'est loin d'être nécessaire, cependant.

Pour interroger le XML avec XPath ou XQuery, vous avez besoin d'un processeur XPath ou XQuery.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top