青山学院大学

後期試験 ・ 2007 年 1 月 22 日 3 時限実施 ・ ページ

授業
科目
プログラミング基礎 II 学生番号 学科 学年 フリ
ガナ
  評点
                        氏名    
担当者 DÜRST, Martin J.

用語の説明 (16 点)

次の XSLT 関連の英語の用語に相当する日本語の用語を書いて、簡単に説明しなさい。

data type
データ型; データの種類で、例えば文字列、真理値、数字、ノードセット、ツリーが挙げられる。
parameter
引数; 変換全体や名前付きテンプレートに渡される名前付きのデータである。
node test
ノードテスト; XPath のステップの一部としてノードの種類又は名前をチェックする機能である。
string
文字列; 文字の羅列である。
push processing
プッシュ型処理; XSLT がもっとも得意とする雛形の適用によるデータ処理である。
node set
ノードセット; パターンの選択などによってノードの順番付き集合である。
axis
軸; XPath の一つのステップにおいてどの「方向」に向けてノードを割り出すのかの指定
step
ステップ; XPath の一部で、軸、ノードテスト、述語からなる

XSLT の要素の説明 (18 点)

次の XSLT の要素の機能や役割を簡単に説明しなさい。

<xsl:transform>
XSLT 変換全体の要素
<xsl:stylesheet>
XSLT 変換全体の要素。xsl:transform と同じ
<xsl:template>
出力のための雛形
<xsl:apply-templates>
雛形を適用したいときに使う
<xsl:output>
出力の詳細を決めるための要素
<xsl:variable>
変数を定義したいときに使う
<xsl:value-of>
何かの式 (XPath) の値を出力したいときに使う
<xsl:comment>
コメントの出力ができる
<xsl:strip-space>
空白の調整に使われる

後期試験 ・ 2007 年 1 月 22 日 3 時限実施 ・ ページ

並び換え (13 点)

<xsl:sort> 要素が使える XSLT の要素を列挙しなさい (3 点)。

<xsl:apply-templates>, <xsl:for-each>

<xsl:sort> のそれぞれの属性について説明しなさい (各 2 点)。

select
何 (例えばどの属性・子要素) を対処にして並び換えるかの指定。
data-type
文書 (text) を並び換えるのか数 (number) なのかの指定。(文書の場合は "1" < "10" < "2")
order
小さい順 (ascending, 即定値) か大きい順 (descending) かの指定
lang
言語依存の並び換えのための言語の指定
case-order
大文字と小文字しか差がない場合に順序を決められる

<xsl:if> と <xsl:choose> の違い (12 点)

XSLT で明記的な分類に使われる <xsl:if> と <xsl:choose> の違いを、書き方の面と使い方の面から詳しく (100字以上) 説明しなさい。

xsl:if は単純で、@test で一つの条件だけが書ける。条件が成立すると xsl:if の内容が出力される。

xsl:choose はもっと複雑である。内容には一つ以上の <xsl:when> 要素と、最後に必要に応じての <xsl:otherwise> 要素が来ます。xsl:when 要素それぞれに @test 属性内に条件がある。xsl:when 要素の条件は順番にチェックされ、最初に合っている条件の xsl:when の内容が 出力される。一つも条件が合わないと xsl:otherwise (もしあれば) の内容が出力される。

一つだけの条件や複数の独立した条件の場合には簡単なため xsl:if を使うべきですが、複数の排他的な処理の場合には xsl:choose を使うべき。

関数 (10 点)

XSLT で使われる次の関数を説明しなさい。

position()
現在選択された要素が処理対象の要素の中何番目なのかの数字を返す関数
last()
現在処理対象になっている要素の最後の要素の (position() で求める) 番号。処理対象要素の数と等しい。
not()
何かの条件があるときその反対 (真なら偽、偽なら真) を返す関数
document()
XSTL の入力は普通一つのデータファイルですが、複数のデータファイルからデータを読みたいときに残りのデータファイルをこの関数で読む。
sum()
選択対処の数値を合計する関数

青山学院大学

後期試験 ・ 2007 年 7 月 22 日 3 時限実施 ・ ページ

授業
科目
プログラミング基礎 II 学生番号 学科 学年 フリ
ガナ
  評点
                        氏名    
担当者 DÜRST, Martin J.

XSLT の共通の属性 (12 点)

XSLT には複数の要素に出てくる属性がいくつかある。次の表に、その行の要素にその欄の属性が使われる場合には「○」、そうでない場合には「×」と記入しなさい。

select test name mode
<xsl:apply-templates> × ×
<xsl:attribute> × × ×
<xsl:call-template> × × ×
<xsl:for-each> × × ×
<xsl:if> × × ×
<xsl:param> × ×
<xsl:sort> × × ×
<xsl:template> × ×
<xsl:value-of> × × ×
<xsl:variable> × ×
<xsl:when> × × ×
<xsl:with-param> × ×

XSLT の関連技術 (7 点)

XSLT は色々な技術と関係がある。次の文の        の中に、次の関連技術のリストからそれぞれ一つ選んで記入しなさい。

関連技術のリスト: XPath, CSS, XML, SVG, HTML, 名前空間, DTD

直接は関係はないが、入力のデータを DTD で検証すると XSLT の処理がスムーズにいく。

SVG は XML なので、XSLT の入力や出力には使えるが、特に深い関係がない。

XSLT は XML 変換専用のプログラム言語といえる。

select 属性や match 属性内に処理対象ノードの選択には XPath が使われる。

XSLT 処理用の要素と入出力のデータの要素、並びに複数の入力の区別には names が使われる。

XSLT は構造の変換が得意で、 CSS は見栄えの指定が簡単なのでよく両者は組み合わせて使われる。

XSLT の出力として HTML が多くて、xsl:output 要素で専用な設定がある。

後期試験 ・ 2007 年 1 月 22 日 3 時限実施 ・ ページ

自然な分類と繰り返し (12 点)

XSLT において「自然な分類」と「自然な繰り返し」の仕組みについて、説明しなさい。ただし、「分類」と「繰り返し」の説明も含めること。

自然な分類
分類というのは条件によって違う処理をするということです。XSLT において自然に条件によって違う処理をしたいときには、複数の xsl:apply-templates の select 属性内、又は複数の xsl:template の match 属性内でその条件をそれぞれ書けば、自然に処理が分類される。
自然な繰り返し
繰り返しというのは同じ処理を、例えば違うデータに対して何回も繰り返すことである。XSLT において自然な繰り返しは xsl:apply-templates と xsl:template による雛形の適用によって実現される。xsl:apply-templates で選択される複数のノードに対し、各々のノードにマッチする xsl:template が適用されることによって、多数のノードに対し同じ処理が自然にできる。

条件の書き方 (16 点)

test 属性や述語の [] 内に使えるように、条件を書きなさい。

次のことを前提にしてください:

ISBN 番号が付いている本
@isbn
在庫部数が 0 以上の本
@count > 0
在庫がない本
@count = 0
在庫部数が 5 以上で、値段が 2000以下の本
@count >= 5 and @price &lt;= 2000
在庫部数が 5 と違う
@count != 5
在庫部数が low という名前の変数より大きい
@count > $low
在庫部数が 10 より小さい又は値段が1000より小さい
@count < 10 or @price < 1000
題名が「XSLTの入門」と等しい
title = "XSLTの入門"