エックス‐エム‐エル【XML】
XML
XML (Extensible Markup Language)
XML
読み方:エックスエムエル
別名:拡張可能マークアップ言語
XMLとは、W3C(World Wide Web Consortium)によって標準が規定されている、文書あるいはデータの構造を記述できる構造化文書の仕様のことである。
XMLはマークアップ言語の一種であり、HTMLのようにタグを用いて文章構造を定義する。ユーザーがタグの定義と使い方を決めることができるメタ言語の性格を持っている点が大きな特徴となっている。
XMLで作成された文書はXML文書などと呼ばれる。XML文書は、先頭にXML宣言と呼ばれる、XML標準のバージョンや、使用される文字デンコーディングを示す部分を持つ。XML宣言に続く部分を、XMLインスタンスと呼び、文書データ本体の他、データ部分の書式を規定するルール、表示方法を規定するスタイルシートなどを含むことができる。書式を表現するために用いられる言語はスキーマ言語と呼ばれ、DTD(Document Type Definition)とXML Schemaが用いられている。またXMLのスタイルシートには、XSL(eXtensible Stylesheet Language)、およびCSS(Cascading Style Sheet)が用いられる。
XMLは、汎用のマークアップ言語として、多種多様な分野においてデータ交換のために利用されている。異なる組織間で共通の書式でデータを交換するEDI(Electronic Data Interchange)用に業界ごとの様々な書式が規定されている。たとえば金融の分野ではXBRL(eXtensible Business Reporting Language)の例を挙げることができる。XBRLは電子政府のシステムでも活用されており、国税の電子申告・電子納付などで用いられている。
機能モジュールごとのデータ交換をXML文書によって行う仕組みとしてはSOAPがあり、SOAPを用いると、モジュール間の結びつきを疎結合にして、より柔軟なシステムを構築することができる。その他、ベクタデータをWebブラウザで表示するためのデータ表現形式であるSVG(Scalable Vector Graphics)、Microsoftが開発した描画用言語のXAML、2007 Microsoft Office systemで初めて導入されたMicrosoft Office向けの文書フォーマットであるOOXML(Office Open XML)など、XMLの応用事例は枚挙にいとまがない。
XMLで定義されたデータを扱うデータベースは、XMLデータベースと呼ばれる。
XMLのような汎用マークアップ言語の標準としては、XMLに先立ち、SGML(Standard Generalized Markup Language)が登場していた。SGMLの仕様は非常に大きかったためにWebでの利用には適さず、普及することがなかった。SGMLを母体としてHTMLが考案されたが、HTMLは逆にWebのページ記述に特化していたため、汎用性に欠いており、多種多様な分野におけるデータ交換などの目的には対応できなかった。XMLは、そのような事情を背景に持ちながら、コンパクトでありながら、より汎用的な利用に適した仕様として策定された、正式版は1998年に初めて登場している。
2002年には、HTML、XML、CSSを使ってHTMLの仕様を再定義したXHTML 1.0が発表されている。
参照リンク
XML Consortium Top
XML: | WSDL XHTML XLink XML XML Master:Professional XML Schema XML名前空間 |
.xml
XML パーサ関数
- XML_ERROR_NONE (integer)
- XML_ERROR_NO_MEMORY (integer)
- XML_ERROR_SYNTAX (integer)
- XML_ERROR_NO_ELEMENTS (integer)
- XML_ERROR_INVALID_TOKEN (integer)
- XML_ERROR_UNCLOSED_TOKEN (integer)
- XML_ERROR_PARTIAL_CHAR (integer)
- XML_ERROR_TAG_MISMATCH (integer)
- XML_ERROR_DUPLICATE_ATTRIBUTE (integer)
- XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)
- XML_ERROR_PARAM_ENTITY_REF (integer)
- XML_ERROR_UNDEFINED_ENTITY (integer)
- XML_ERROR_RECURSIVE_ENTITY_REF (integer)
- XML_ERROR_ASYNC_ENTITY (integer)
- XML_ERROR_BAD_CHAR_REF (integer)
- XML_ERROR_BINARY_ENTITY_REF (integer)
- XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)
- XML_ERROR_MISPLACED_XML_PI (integer)
- XML_ERROR_UNKNOWN_ENCODING (integer)
- XML_ERROR_INCORRECT_ENCODING (integer)
- XML_ERROR_UNCLOSED_CDATA_SECTION (integer)
- XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)
- XML_OPTION_CASE_FOLDING (integer)
- XML_OPTION_TARGET_ENCODING (integer)
- XML_OPTION_SKIP_TAGSTART (integer)
- XML_OPTION_SKIP_WHITE (integer)
イベントハンドラ
XML イベントハンドラは次のように定義されます。 表 323. サポートされる XML ハンドラハンドラ設定用の PHP 関数 | イベントの説明 |
---|---|
xml_set_element_handler() | 要素イベントは、XML パーサーが開始または終了タグに出会うたび に発行されます。開始タグと終了タグについて別のハンドラがあり ます。 |
xml_set_character_data_handler() | 文字データは、タグの間の空白を含めて XML ドキュメントにおけ るほぼ全ての非マークアップ部分の内容です。XML パーサーは、 空白を加えたり削除したりしないことに注意してください。空白が 意味を有するかどうかを決めるのは、アプリケーション側の責任 です。 |
xml_set_processing_instruction_handler() | PHP プログラマは、既に処理用命令 (PI) に既に慣れているに違 いありません。<?php ?> は処理用命令であり、この場合、 php は "PI ターゲット"と呼ばれます。 これらの処理はアプリケーション依存ですが、全ての PI ターゲッ トが "XML" から始まることだけは、規定されています。 |
xml_set_default_handler() | 別のハンドラでしないことをデフォルトのハンドラで行います。 XML およびドキュメント型の宣言のようなことをデフォルトハンドラで 行います。 |
xml_set_unparsed_entity_decl_handler() | このハンドラは、処理されない (NDATA) エンティティの宣言用に コールされます。 |
xml_set_notation_decl_handler() | このハンドラは、表記の宣言用にコールされます。 |
xml_set_external_entity_ref_handler() | このハンドラは、XML パーサーが外部処理された通常のエンティティ への参照を見つけた際にコールされます。これは、例えば、ファ イルまたは URL への参照とすることが可能です。例としては、 外部エンティティ の例 を参照ください。 |
大文字変換(Case Folding)
要素ハンドラ関数は、その要素に大文字小文字を変換する (case-folded)の名前をつけることができます。 大文字変換(case-folding) は、XML標準により "大文字でないものは等 価な大文字に置換される一連の文字に適用されるプロセス" として定義 されています。言い替えると、XML に関しては単に大文字変換は大文字 にすることを意味します。デフォルトで、ハンドラ関数に渡される全ての要素名は、大文字変換さ れます。この動作は、xml_parser_get_option() およびxml_parser_set_option() 関数でXMLパーサー 毎にそれぞれ問い合わせ、制御することが可能です。
エラーコード
(xml_parse() により返されるものとして) XMLエラーコードとして次のような定数が定義されています。:XML_ERROR_NONE |
XML_ERROR_NO_MEMORY |
XML_ERROR_SYNTAX |
XML_ERROR_NO_ELEMENTS |
XML_ERROR_INVALID_TOKEN |
XML_ERROR_UNCLOSED_TOKEN |
XML_ERROR_PARTIAL_CHAR |
XML_ERROR_TAG_MISMATCH |
XML_ERROR_DUPLICATE_ATTRIBUTE |
XML_ERROR_JUNK_AFTER_DOC_ELEMENT |
XML_ERROR_PARAM_ENTITY_REF |
XML_ERROR_UNDEFINED_ENTITY |
XML_ERROR_RECURSIVE_ENTITY_REF |
XML_ERROR_ASYNC_ENTITY |
XML_ERROR_BAD_CHAR_REF |
XML_ERROR_BINARY_ENTITY_REF |
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF |
XML_ERROR_MISPLACED_XML_PI |
XML_ERROR_UNKNOWN_ENCODING |
XML_ERROR_INCORRECT_ENCODING |
XML_ERROR_UNCLOSED_CDATA_SECTION |
XML_ERROR_EXTERNAL_ENTITY_HANDLING |
文字エンコーディング
PHPのXML拡張機能は、異なった文字エンコーディング を通じて» Unicode 文字セットをサポートします。ソースエンコーディング およびターゲットエンコーディング という2種類の文字エンコーディングがあります。 PHP におけるドキュメントの内部表現は、常に UTF-8でエンコードされます。ソースエンコーディングは、XMLドキュメントが 構文解析された際に行わ れます。XML パーサの 作成を行う際に、ソースエンコードを指定することができます。 (このエンコーディングは、その XML パーサーが存在する間、後で変更す ることはできません)サポートされるソースエンコーディングは、 ISO-8859-1, US-ASCII , UTF-8 です。前の二つは、シングルバイトエンコー ディングです。これは、各文字がシングルバイトで表現されることを意 味します。UTF-8 は、1から4バイトの可変ビット 数(最大21ビット)で構成された文字をエンコードすることが可能です。 PHP で用いられるデフォルトのソースエンコーディングは、 ISO-8859-1です。
ターゲットエンコーディングは、PHPがデータをXMLハンドラ関数に 渡す時に行われます。あるXMLパーサが作成された際、ターゲットエン コーディングは、ソースエンコーディングと同様に設定されます。 しかし、これは、いつでも変更可能です。ターゲットエンコーディング は、タグ名と同様に文字データに作用し、命令を処理します。
XML パーサがソースエンコーディングが表現できる範囲の外側の文字に 出会った場合、エラーが返されます。
解釈するXMLドキュメントにおいてPHPが文字に出会った際に、選択した ターゲットエンコーディングで表現できない文字に出会った場合、問題 の文字は "降格" されます。現在、このことはこのような文字が疑問符 で置換されることを意味します。
例
以下にXMLドキュメントを処理するPHPスクリプトの例をいくつか示します。XML エレメント構造の例
この最初の例は、あるドキュメント中のstart エレメントの構造をイン デントを付けて表示します。 例 2454. XML エレメント構造を表示 <?php
$file = "data.xml";
$depth = array();
function startElement($parser, $name, $attrs)
{
global $depth;
for ($i = 0; $i < $depth[$parser]; $i++) {
print " ";
}
print "$name\n";
$depth[$parser]++;
}
function endElement($parser, $name)
{
global $depth;
$depth[$parser]--;
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
die("XML 入力をオープンできませんでした");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML エラー: %s が %d 行目で発生しました",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>
XMLタグのマッピングの例
例 2455. XMLをHTMLにマップするこの例は、XMLドキュメントのタグを直接HTMLタグにマップします。 "map array" にないエレメントは無視されます。もちろん、この例は、 特定の XML ドキュメント型を有する場合のみ動作します。
<?php
$file = "data.xml";
$map_array = array(
"BOLD" => "B",
"EMPHASIS" => "I",
"LITERAL" => "TT"
);
function startElement($parser, $name, $attrs)
{
global $map_array;
if (isset($map_array[$name])) {
echo "<$map_array[$name]>";
}
}
function endElement($parser, $name)
{
global $map_array;
if (isset($map_array[$name])) {
echo "</$map_array[$name]>";
}
}
function characterData($parser, $data)
{
echo $data;
}
$xml_parser = xml_parser_create();
// case-folding を用いることで、$map_array から確実にタグを見つけられるようにします
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
die("XML 入力をオープンできませんでした");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML エラー: %s が %d 行目で発生しました",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>
XML 外部エンティティの例
この例は、XML コードに焦点を当てます。この例は、他のドキュメント をインクルードし処理するための外部エンティティリファレンスのハン ドラの使用法およびPIの処理方法、PIが含むコードに関する"信頼度" を定義する手段を説明します。この例で使用される XML ドキュメントは、例題ファイル (xmltest.xml および xmltest2.xml) にあります。
例 2456. 外部エンティティの例
<?php
$file = "xmltest.xml";
function trustedFile($file)
{
// 信頼できるのは、自分自身が所有しているローカルファイルのみです
if (!eregi("^([a-z]+)://", $file)
&& fileowner($file) == getmyuid()) {
return true;
}
return false;
}
function startElement($parser, $name, $attribs)
{
echo "<<font color=\"#0000cc\">$name</font>";
if (count($attribs)) {
foreach ($attribs as $k => $v) {
echo " <font color=\"#009900\">$k</font>=\"<font
color=\"#990000\">$v</font>\"";
}
}
echo ">";
}
function endElement($parser, $name)
{
echo "</<font color=\"#0000cc\">$name</font>>";
}
function characterData($parser, $data)
{
echo "<b>$data</b>";
}
function PIHandler($parser, $target, $data)
{
switch (strtolower($target)) {
case "php":
global $parser_file;
// もし「信頼できる」ドキュメントだった場合、その中に書かれている
// PHP コードを実行しても安全だと考えます。そうでない場合、
// コードを実行するかわりにコードそのものを表示します。
if (trustedFile($parser_file[$parser])) {
eval($data);
} else {
printf("信頼できない PHP コード: <i>%s</i>",
htmlspecialchars($data));
}
break;
}
}
function defaultHandler($parser, $data)
{
if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
printf('<font color="#aa00aa">%s</font>',
htmlspecialchars($data));
} else {
printf('<font size="-1">%s</font>',
htmlspecialchars($data));
}
}
function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
$publicId) {
if ($systemId) {
if (!list($parser, $fp) = new_xml_parser($systemId)) {
printf("エンティティ %s (%s にある) をオープンできませんでした\n", $openEntityNames,
$systemId);
return false;
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($parser, $data, feof($fp))) {
printf("XML エラー: %s が、%d 行目でエンティティ %s のパース中に発生しました\n",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser), $openEntityNames);
xml_parser_free($parser);
return false;
}
}
xml_parser_free($parser);
return true;
}
return false;
}
function new_xml_parser($file)
{
global $parser_file;
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
xml_set_processing_instruction_handler($xml_parser, "PIHandler");
xml_set_default_handler($xml_parser, "defaultHandler");
xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");
if (!($fp = @fopen($file, "r"))) {
return false;
}
if (!is_array($parser_file)) {
settype($parser_file, "array");
}
$parser_file[$xml_parser] = $file;
return array($xml_parser, $fp);
}
if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
die("XML 入力をオープンできませんでした");
}
echo "<pre>";
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML エラー: %s が %d 行目で発生しました\n",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
echo "</pre>";
echo "パースが完了しました\n";
xml_parser_free($xml_parser);
?>
例 2457. xmltest.xml
<?xml version='1.0' ?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
<TITLE>Title &plainEntity;</TITLE>
<para>
<informaltable>
<tgroup cols="3">
<tbody>
<row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
<row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
</tbody>
</tgroup>
</informaltable>
</para>
&systemEntity;
<section id="about">
<title>About this Document</title>
<para>
<!-- this is a comment -->
<?php print 'Hi! This is PHP version '.phpversion(); ?>
</para>
</section>
</chapter>
このファイルは、xmltest.xml からインクルードされます。 例 2458. xmltest2.xml
<?xml version="1.0" ?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
<element attrib="value"/>
&testEnt;
<?php print "This is some more PHP code being executed."; ?>
</foo>
目次
- utf8_decode — UTF-8 エンコードされた ISO-8859-1 文字列をシングルバイトの ISO-8859-1 に変換する
- utf8_encode — ISO-8859-1 文字列を UTF-8 にエンコードする
- xml_error_string — XML パーサのエラー文字列を得る
- xml_get_current_byte_index — XML パーサのカレントのバイトインデックスを得る
- xml_get_current_column_number — XML パーサのカレントのカラム番号を取得する
- xml_get_current_line_number — XML パーサのカレントの行番号を得る
- xml_get_error_code — XML パーサのエラーコードを得る
- xml_parse_into_struct — 配列構造体に XML データを処理する
- xml_parse — XML ドキュメントの処理を開始する
- xml_parser_create_ns — 名前空間をサポートした XML パーサを生成する
- xml_parser_create — XML パーサを作成する
- xml_parser_free — XML パーサを解放する
- xml_parser_get_option — XML パーサからオプションを得る
- xml_parser_set_option — XML パーサのオプションを設定する
- xml_set_character_data_handler — 文字データハンドラを設定する
- xml_set_default_handler — デフォルトのハンドラを設定する
- xml_set_element_handler — 開始要素および終了要素のハンドラを設定する
- xml_set_end_namespace_decl_handler — 名前空間終了ハンドラを設定する
- xml_set_external_entity_ref_handler — 外部エンティティリファレンスハンドラを設定する
- xml_set_notation_decl_handler — 表記法宣言ハンドラを設定する
- xml_set_object — オブジェクト内部で XML パーサを使用する
- xml_set_processing_instruction_handler — 処理命令 (PI) 用ハンドラを設定する
- xml_set_start_namespace_decl_handler — 名前空間開始ハンドラを設定する
- xml_set_unparsed_entity_decl_handler — 処理されないエンティティ宣言用ハンドラを設定する
Xml イベント
パブリック イベント
名前 | 説明 | |
---|---|---|
DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) | |
Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) | |
Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) | |
Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) | |
PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) | |
Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |
Xml クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説
Xml コントロールを使用して、書式設定したり、または XSL Transformations を使用したりせずに、XML ドキュメントの内容を表示します。
表示する XML ドキュメントを指定するには、次の 3 つのプロパティのいずれかを設定します。これらの 3 つのプロパティは、表示できる各種の XML ドキュメントを表します。適切なプロパティを設定することによって、System.Xml.XmlDocument、XML 文字列、または XML ファイルを表示できます。XML ドキュメントを指定するためのプロパティを次の表に示します。
DocumentContent | |
DocumentSource |
メモ |
---|
XML ドキュメントを表示するには、1 つ以上の XML ドキュメント プロパティを設定する必要があります。複数の XML ドキュメント プロパティが設定されている場合は、最後のプロパティ セットで参照された XML ドキュメントが表示されます。他のプロパティのドキュメントは無視されます。 |
オプションで、2 つのプロパティのいずれかを設定して、XML ドキュメントを出力ストリームに書き込む前に書式設定する XSLT (XSL Transformation) スタイル シートを指定できます。この 2 つのプロパティは、XML ドキュメントの書式設定に使用できる異なる種類の XSL Transformation スタイル シートを表します。適切なプロパティを設定することによって System.Xml.Xsl.XslCompiledTransform オブジェクトまたは XSL Transformation スタイル シート ファイルを使用して XML ドキュメントを書式設定できます。XSL Transformation スタイル シートが指定されていない場合、XML ドキュメントは既定の書式で表示されます。XSL Transformation スタイル シートを指定するプロパティを次の表に示します。
指定した System.Xml.Xsl.XslTransform オブジェクトを使用して、XML ドキュメントを書式設定します。 | |
TransformSource | 指定した XSL Transformation スタイル シート ファイルを使用して、XML ドキュメントを書式設定します。 |
メモ |
---|
XSL Transformation スタイル シートはオプションです。Transform プロパティまたは TransformSource プロパティの設定は必要ではありません。両方の XSL Transformation スタイル シート プロパティが設定されている場合は、最後のプロパティ セットによって、XML ドキュメントの書式設定に使用する XSL Transformation スタイル シートが決定されます。その他のプロパティは無視されます。 |
Xml クラスは、TransformArgumentList プロパティも提供します。このプロパティでは、XSL Transformation スタイル シートにオプションの引数を指定できます。引数には、XSLT (XSL Transformations) パラメータまたは拡張オブジェクトを指定できます。
Topic | Location |
---|---|
チュートリアル : XML データを表示する Web ページの作成 | Visual Studio での ASP .NET Web アプリケーションの作成 |
チュートリアル : 変換による Web フォーム ページへの XML ドキュメントの表示 | Visual Studio での ASP .NET Web アプリケーションの作成 |
方法 : Web フォーム ページに XML Web サーバー コントロールを追加する | ASP .NET Web アプリケーションの作成 |
方法 : Web フォーム ページに XML Web サーバー コントロールを追加する (Visual Studio) | Visual Studio での ASP .NET Web アプリケーションの作成 |
方法 : XML Web サーバー コントロール内に XML データを読み込む | ASP .NET Web アプリケーションの作成 |
方法 : XML Web サーバー コントロール内の XML データを変換する | ASP .NET Web アプリケーションの作成 |
サンプル XML ファイルと XSL Transformation スタイル シートから XmlDocument オブジェクトおよび XslTransform オブジェクトを作成する方法を次のコード例に示します。これらのオブジェクトは、XML ドキュメントを表示するために XML コントロールで使用されます。
<!-- The following example demonstrates how to create XmlDocument and XslTransform objects from the sample XML and XSL Transform files. The objects are then used by the Xml control to display the XML document. Make sure the sample XML file is called People.xml and the sample XSL Transform file is called Peopletable.xsl. --> <%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Xml" %> <%@ Import Namespace="System.Xml.Xsl" %> <html> <script runat="server"> Sub Page_Load(sender As Object, e As EventArgs) Dim doc As XmlDocument = New XmlDocument() doc.Load(Server.MapPath("people.xml")) Dim trans As XslTransform = new XslTransform() trans.Load(Server.MapPath("peopletable.xsl")) xml1.Document = doc xml1.Transform = trans End Sub </script> <body> <h3>Xml Example</h3> <form runat="server"> <asp:Xml id="xml1" runat="server" /> </form> </body> </html> <!-- For this example to work, paste the following code into a file named peopletable.xsl. Store the file in the same directory as your .aspx file. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/People"> <xsl:apply-templates select="Person" /> </xsl:template> <xsl:template match="Person"> <table width="100%" border="1"> <tr> <td> <b> <xsl:value-of select="Name/FirstName" />   <xsl:value-of select="Name/LastName" /> </b> </td> </tr> <tr> <td> <xsl:value-of select="Address/Street" /><br /> <xsl:value-of select="Address/City" /> , <xsl:value-of select="Address/State" /> <xsl:value-of select="Address/Zip" /> </td> </tr> <tr> <td> Job Title: <xsl:value-of select="Job/Title" /><br /> Description: <xsl:value-of select="Job/Description" /> </td> </tr> </table> </xsl:template> <xsl:template match="bookstore"> <!-- Prices and books --> <bookstore> <xsl:apply-templates select="book"/> </bookstore> </xsl:template> <xsl:template match="book"> <book> <xsl:attribute name="ISBN"> <xsl:value-of select="@ISBN"/> </xsl:attribute> <price> <xsl:value-of select="price"/> </price> <xsl:text> </xsl:text> </book> </xsl:template> </xsl:stylesheet> --> <!-- For this example to work, paste the following code into a file named people.xml. Store the file in the same directory as your .aspx file. <People> <Person> <Name> <FirstName>Joe</FirstName> <LastName>Suits</LastName> </Name> <Address> <Street>1800 Success Way</Street> <City>Redmond</City> <State>WA</State> <ZipCode>98052</ZipCode> </Address> <Job> <Title>CEO</Title> <Description>Wears the nice suit</Description> </Job> </Person> <Person> <Name> <FirstName>Linda</FirstName> <LastName>Sue</LastName> </Name> <Address> <Street>1302 American St.</Street> <City>Paso Robles</City> <State>CA</State> <ZipCode>93447</ZipCode> </Address> <Job> <Title>Attorney</Title> <Description>Stands up for justice</Description> </Job> </Person> <Person> <Name> <FirstName>Jeremy</FirstName> <LastName>Boards</LastName> </Name> <Address> <Street>34 Palm Avenue</Street> <City>Waikiki</City> <State>HI</State> <ZipCode>98052</ZipCode> </Address> <Job> <Title>Pro Surfer</Title> <Description>Rides the big waves</Description> </Job> </Person> <Person> <Name> <FirstName>Joan</FirstName> <LastName>Page</LastName> </Name> <Address> <Street>700 Webmaster Road</Street> <City>Redmond</City> <State>WA</State> <ZipCode>98073</ZipCode> </Address> <Job> <Title>Web Site Developer</Title> <Description>Writes the pretty pages</Description> </Job> </Person> </People> -->
<!-- The following example demonstrates how to create XmlDocument and XslTransform objects from the sample XML and XSL Transform files. The objects are then used by the Xml control to display the XML document. Make sure the sample XML file is called People.xml and the sample XSL Transform file is called Peopletable.xsl. --> <%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Xml" %> <%@ Import Namespace="System.Xml.Xsl" %> <html> <script runat="server"> void Page_Load(Object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("people.xml")); XslTransform trans = new XslTransform(); trans.Load(Server.MapPath("peopletable.xsl")); xml1.Document = doc; xml1.Transform = trans; } </script> <body> <h3>Xml Example</h3> <form runat="server"> <asp:Xml id="xml1" runat="server" /> </form> </body> </html> <!-- For this example to work, paste the following code into a file named peopletable.xsl. Store the file in the same directory as your .aspx file. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/People"> <xsl:apply-templates select="Person" /> </xsl:template> <xsl:template match="Person"> <table width="100%" border="1"> <tr> <td> <b> <xsl:value-of select="Name/FirstName" />   <xsl:value-of select="Name/LastName" /> </b> </td> </tr> <tr> <td> <xsl:value-of select="Address/Street" /><br /> <xsl:value-of select="Address/City" /> , <xsl:value-of select="Address/State" /> <xsl:value-of select="Address/Zip" /> </td> </tr> <tr> <td> Job Title: <xsl:value-of select="Job/Title" /><br /> Description: <xsl:value-of select="Job/Description" /> </td> </tr> </table> </xsl:template> <xsl:template match="bookstore"> <!-- Prices and books --> <bookstore> <xsl:apply-templates select="book"/> </bookstore> </xsl:template> <xsl:template match="book"> <book> <xsl:attribute name="ISBN"> <xsl:value-of select="@ISBN"/> </xsl:attribute> <price> <xsl:value-of select="price"/> </price> <xsl:text> </xsl:text> </book> </xsl:template> </xsl:stylesheet> --> <!-- For this example to work, paste the following code into a file named people.xml. Store the file in the same directory as your .aspx file. <People> <Person> <Name> <FirstName>Joe</FirstName> <LastName>Suits</LastName> </Name> <Address> <Street>1800 Success Way</Street> <City>Redmond</City> <State>WA</State> <ZipCode>98052</ZipCode> </Address> <Job> <Title>CEO</Title> <Description>Wears the nice suit</Description> </Job> </Person> <Person> <Name> <FirstName>Linda</FirstName> <LastName>Sue</LastName> </Name> <Address> <Street>1302 American St.</Street> <City>Paso Robles</City> <State>CA</State> <ZipCode>93447</ZipCode> </Address> <Job> <Title>Attorney</Title> <Description>Stands up for justice</Description> </Job> </Person> <Person> <Name> <FirstName>Jeremy</FirstName> <LastName>Boards</LastName> </Name> <Address> <Street>34 Palm Avenue</Street> <City>Waikiki</City> <State>HI</State> <ZipCode>98052</ZipCode> </Address> <Job> <Title>Pro Surfer</Title> <Description>Rides the big waves</Description> </Job> </Person> <Person> <Name> <FirstName>Joan</FirstName> <LastName>Page</LastName> </Name> <Address> <Street>700 Webmaster Road</Street> <City>Redmond</City> <State>WA</State> <ZipCode>98073</ZipCode> </Address> <Job> <Title>Web Site Developer</Title> <Description>Writes the pretty pages</Description> </Job> </Person> </People> -->
System.Web.UI.Control
System.Web.UI.WebControls.Xml
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Xml コンストラクタ
アセンブリ: System.Web (system.web.dll 内)
構文
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Xml プロパティ
パブリック プロパティ
関連項目
Xml クラスSystem.Web.UI.WebControls 名前空間
System.Xml.XmlDocument
System.Xml.Xsl.XslTransform
Document
DocumentContent
DocumentSource
TransformArgumentList
その他の技術情報
XML Web サーバー コントロールXml メソッド
パブリック メソッド
関連項目
Xml クラスSystem.Web.UI.WebControls 名前空間
System.Xml.XmlDocument
System.Xml.Xsl.XslTransform
Document
DocumentContent
DocumentSource
TransformArgumentList
その他の技術情報
XML Web サーバー コントロールXml メンバ
書式設定したり、または XSLT (Extensible Stylesheet Language Transformations) を使用したりせずに、XML ドキュメントを表示します。
パブリック コンストラクタ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) | |
Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) | |
Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) | |
Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) | |
PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) | |
Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |
関連項目
Xml クラスSystem.Web.UI.WebControls 名前空間
System.Xml.XmlDocument
System.Xml.Xsl.XslTransform
Document
DocumentContent
DocumentSource
TransformArgumentList
その他の技術情報
XML Web サーバー コントロール- XMLのページへのリンク