スキーマを定義するにはDTDが必要であり、ブラウザーに表示して「きれい」に見せたい場合はXSLTが必要だと思います。しかし、XQuery を使用してクエリを実行し、Web ブラウザーで表示できる、明確に定義された XML ドキュメントを作成するには、他に何が必要なのかわかりません。
2 に答える
厳密に言えば、何も必要ありません。XML は、スキーマ定義がなくても機能します。
スキーマ定義 (XSD、RelaxNG、または DTD で) は、XML の構造が目的に準拠していることを検証できるため、XML を操作するさまざまなツールに役立ちます。
ブラウザで見たい情報が XML に含まれている場合は、XSLT から HTML への変換が便利です。しかし、それは必要とはほど遠いです。
XPath または XQuery を使用して XML をクエリするには、XPath または XQuery プロセッサが必要です。
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>