後期試験 ・ 2008 年 1 月 28 日 3 時限実施 ・ ページ
授業 科目 |
プログラミング基礎 II | 学生番号 | 学科 | 学年 | 組 | 番 | フリ ガナ |
評点 | ||||||||
氏名 | ||||||||||||||||
担当者 | DÜRST, Martin J. |
次の XSLT 関連の英語の用語に相当する日本語の用語を書いて、簡単に説明しなさい。
次の XSLT の要素の機能や役割を簡単に説明しなさい。
<xsl:variable>
<xsl:template>
<xsl:apply-templates>
<xsl:value-of>
<xsl:if>
<xsl:choose>
<xsl:when>
<xsl:otherwise>
後期試験 ・ 2008 年 1 月 28 日 3 時限実施 ・ ページ
XSLT の変換ファイルはよく「スタイルシート」とも呼ばれている。その理由と背景を説明しなさい。
元々 XSLT の最初の目的は表示用に XML ファイルを色々変換することでした。 表示用だからスタイルシートの役割です。 表示のための様々な変換は表示と関係ないデータ変換でも使えるということなので、一般的には 「変換ファイル」と言った方が妥当です。 XSLT のトップの要素も <xsl:transform> でも <xsl:stylesheet> でもいいです。
XSLT の処理で行われるキャッチボールを具体的 (要素名など) に説明しなさい。
XSLT の処理は主に、<xsl:apply-templates> 要素で match される木のノードがボールとして投げられ、変換ファイルの中での <xsl:template 要素がこのようなボール (複数も可) をキャッチして処理するによって行われる。
XSLT で使われる XML 木のノードの種類を列挙し、 それぞれについて、入力でどうマッチするのか、どうやって出力するのかを下記の表に記入しなさい。
ノードの種類 | 入力 | 出力 |
---|---|---|
ルートノード | XPath で / で | 自動的 |
要素ノード | XPath で要素名で | <xsl:template 内に記述 |
属性ノード | @属性名で | 出力の要素に; <xsl:attribute> で |
コメントノード | comment() ノードテストで | <xsl:comment> で |
処理命令ノード | processing-instruction() ノードテストで | <xsl:processing-instruction> で |
名前空間ノード | 要素名の接頭辞など | 要素に xmlns:接頭辞 属性 |
テキストノード | text() ノードテストで | <xsl:template>内のテキスト |
XSLT は「宣言型プログラミング言語」と呼ばれている。なぜなのか説明しなさい。
宣言型プログラミング言語は入力に対する条件とそれによる結果だけ指定すればいい言語である。 それ以上細かいこと、例えば処理の順番などは指定しなくてよい。XSLT はまさにその様に、 XPath で条件を指定し、<xsl:template> の内容で出力を指定しますので、宣言型言語である。
コマンドプロンプトで msxsl を実行したらエラーにはならなかったが、出力が文字化けした。 原因と対策をできるだけ詳しく説明しなさい。
エラーがでなかったので、入力には文字コードの問題が無い可能性が高いです。msxsl は何も指定しないと出力が UTF-16 になる。コマンドプロンプトでみるには出力を Shift_JIS にしないといけない。変換ファイルの最初の方に <xsl:output を追加し、その中で encoding 属性の値を Shift_JIS にした方がいい。
後期試験 ・ 2008 年 1 月 28 日 3 時限実施 ・ ページ
授業 科目 |
プログラミング基礎 II | 学生番号 | 学科 | 学年 | 組 | 番 | フリ ガナ |
評点 | ||||||||
氏名 | ||||||||||||||||
担当者 | DÜRST, Martin J. |
XSLT には複数の要素に出てくる属性がいくつかある。次の表に、その行の要素にその欄の属性が使われる場合には「○」、そうでない場合には「×」と記入しなさい。
name |
test |
mode |
select |
|
<xsl:for-each> |
× | × | × | ○ |
<xsl:if> |
× | ○ | × | × |
<xsl:attribute> |
○ | × | × | × |
<xsl:param> |
○ | × | × | ○ |
<xsl:call-template> |
○ | × | × | × |
<xsl:sort> |
× | × | × | ○ |
<xsl:variable> |
○ | × | × | ○ |
<xsl:when> |
× | ○ | × | × |
<xsl:with-param> |
○ | × | × | ○ |
<xsl:apply-templates> |
× | × | ○ | ○ |
<xsl:template> |
○ | × | ○ | × |
<xsl:value-of> |
× | × | × | ○ |
次のそれぞれのノードを選択するような XPath を書きなさい。
授業で XSLT そのものについてではなく、情報テクノロジー一般について自分に勉強になったことについて書きなさい。 (具体的なものでなくて、印象でもよい。)
[例題:
プログラムは正確に書くのが難しい。
プログラム言語は思ったより色々あります。
自動かには繰り返しと枝分かれが大切。]