Frage

Ich glaube, ich eine DTD muß das Schema und eine XSLT zu definieren, wenn ich es in einem Browser angezeigt werden soll und habe es so aussehen „hübsch“. Aber ich bin nicht sicher, was sonst würde ich ein wohldefinierte XML-Dokument haben muß, die unter Verwendung von XQuery und angezeigt in einem Web-Browser abgefragt werden kann.

War es hilfreich?

Lösung

Für ein XML-Dokument zu abfragbaren XQquery verwenden Sie müssen keine DTD oder XSD definieren. Der Zweck der DTD oder XSD ist die strenge Struktur eines XML-Dokuments zu definieren und Validierung vor der Verwendung zu ermöglichen.

Moderner Browser interpretiert XML-Dateien sehr gut und zeigt einen DOM-Baum. Wenn erweiterte Formatierung von XML für die Browser-Anzeige notwendig ist, müssen Sie eine XSLT-Transformation-Datei erstellen und dann eine Richtlinie zum ursprünglichen XML-Dokument hinzufügen, auf die XSLT-Datei verweist. Der Browser nimmt diese Richtlinie und nutzt die integrierten XSLT-Prozessor die Ausgabe zu erhalten, die dann vom Browser interpretiert wird.

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>

Andere Tipps

Genau genommen brauchen Sie nichts. XML, auch ohne Schema-Definition, funktioniert.

Ein Schema-Definition (in XSD, RelaxNG oder DTD) hilft verschiedene Tools, die mit dem XML arbeiten, weil sie, dass die Struktur des XML überprüfen können entspricht, was Sie wollen.

Eine XSLT-Übersetzung HTML ist schön, wenn die XML enthalten Informationen, die Sie an mit einem Browser aussehen wollen werden. Es ist weit von notwendigen, aber.

Um die XML mit XPath oder XQuery abfragen, benötigen Sie einen XPath oder XQuery-Prozessor.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top