1

スキーマを定義するにはDTDが必要であり、ブラウザーに表示して「きれい」に見せたい場合はXSLTが必要だと思います。しかし、XQuery を使用してクエリを実行し、Web ブラウザーで表示できる、明確に定義された XML ドキュメントを作成するには、他に何が必要なのかわかりません。

4

2 に答える 2

2

厳密に言えば、何も必要ありません。XML は、スキーマ定義がなくても機能します。

スキーマ定義 (XSD、RelaxNG、または DTD で) は、XML の構造が目的に準拠していることを検証できるため、XML を操作するさまざまなツールに役立ちます。

ブラウザで見たい情報が XML に含まれている場合は、XSLT から HTML への変換が便利です。しかし、それは必要とはほど遠いです。

XPath または XQuery を使用して XML をクエリするには、XPath または XQuery プロセッサが必要です。

于 2008-09-15T17:22:40.867 に答える
1

XQquery を使用して XML ドキュメントをクエリ可能にするために、DTD または XSD を定義する必要はありません。DTD または XSD の目的は、XML ドキュメントの厳密な構造を定義し、使用前に検証できるようにすることです。

最新のブラウザーは XML ファイルを非常にうまく解釈し、DOM ツリーを表示します。ブラウザー表示用に拡張された XML の書式設定が必要な場合は、XSLT 変換ファイルを作成してから、XSLT ファイルを指す元の XML ドキュメントにディレクティブを追加する必要があります。ブラウザはそのディレクティブを選択し、組み込みの XSLT プロセッサを使用して出力を取得します。出力はブラウザによって解釈されます。

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>
于 2008-09-15T17:30:04.997 に答える