‫お帰りなさい｡
‫このビデオでは､ XMLを使ったリンクを使用します｡
‫そして､ ここに「Link with XML」という小さなファイル､ あるいは小さなプロジェクトを作成しました｡
‫また､ Students XMLと呼ばれる小さな文字列をここに作成し､ XML文字列を格納しました｡
‫つまり､ これはstudentsと呼ばれるXMLタイプのオブジェクトで､ 内部に複数のオブジェクトを含んでいます｡
‫つまり､ Toniという名前､ 21歳という年齢､ そしてこの例ではYaleという大学を持つstudentオブジェクトが含まれているのです｡
‫しかも､ 3人もいるんですよ｡
‫XMLとはExtensible Markup Languageの略で､ データを作成したり､ データを構造化したりするために使われる多かれ少なかれの言語です｡
‫そして今回は､ 構造化データという､ ほとんどテーブルのように見ることができるデータを持っています｡
‫これはstudentsというテーブルで､ 複数の学生､ または単数の学生､ そしてNameとAというカラム､
‫またはHというカラム､ そしてUniversityという3つ目のカラムを含んでいますね｡
‫しかも､ 構造が違うだけで､ 複数の場面でXMLを見つけることができます｡
‫例えば､ 多くのウェブサイトでは､ データを共有するためにXMLを使っています｡
‫そこで､ XMLを使うAPIがあり､ そのXMLを使ってインターネットからデータを読み込んで､ プログラムの中で利用すればいいのです｡
‫そこで､ 当月のトップムービー100本を表示したいとします｡
‫そして､ XMLファイルを提供するウェブサイトからそれを読み込んで､ XMLファイルの特定の構造を中心にコードを作成し､
‫プログラム内やアプリ､ ウェブサイト内で使用することができるのです｡
‫そこで､ ここに「Baidu mice dot com」というサイトを開設しました｡
‫彼らはライブサッカーのXMLファイルを持っているので､ このXMLファイルを持っているわけです｡
‫もちろん､ これはもっと大きく､ たくさんの追加情報を持っていますが､ おおむね同じ構造になっています｡
‫このスポーツサッカーのコースがあるんですね｡
‫そして､ 更新されたときに､ どのカップの中に入っているのかがわかるようになっています｡
‫これが例えばアルバニアカップだったんですね｡
‫それから､ マッチ､ 日付のフォーマット､ 日付､ それからマッチのステータスなどです｡
‫ですから､ これはもっと複雑なのですが､ 一般的には同じ構造です｡
‫このマッチタグはここで開き､ ここで閉じますが､ 特定のカテゴリーで特定の日付に1つだけマッチしており､
‫マップステータス（開始日）がありました｡
‫そして､ 目標も見えてきます｡
‫まあ､ 今回の場合はクエスチョンマークなんですけどね｡
‫というわけで､ この試合は､ その通り､ ゴールに関する追加情報はなかった｡
‫でも､ ここにアルゼンチンの試合があり､ 複数のイベントがあります｡
‫19分にゴールがあったんですね｡
‫では､ 地元のチームだったところで､ 選手としてゴールを決めたのは誰なのか｡
‫それがエルビマという選手であり､ その時点での結果であったり｡
‫このように､ たくさんの情報を読み込んで､ アプリや番組で表示することができます｡
‫そして､ これはかなりクールです｡
‫XMLはかなり強力で､ サッカーだけでなく､ 表示すべきあらゆる種類のデータに使われ､
‫そのAPIを取得すればいいだけです｡
‫これは単なるXMLファイルの例ですが､ そうでなければ､ 彼らのAPIキーを取得して､ そのXMLファイルを呼び出して､
‫プログラム内で使用することができます｡
‫それは､ 天気も同じです｡
‫そこで､ ここにピクセル・ドット・コムというウェブサイトを紹介します｡
‫そして､ 気象情報なども持っています｡
‫この場合､ JSONやXMLファイルのためのAPIが用意されているわけです｡
‫でも､ そのことに深く突っ込むつもりはありません｡
‫いくつかの例を紹介したかったのです｡
‫そして一般的には､ それがXMLの力であり､ 私たちがXMLをチェックする理由なのです｡
‫ですから､ データを十分に活用するためにデータベースにアクセスする必要はなく､ 実際にはXMLファイルにアクセスしたり､
‫自分でXMLファイルを作成したりすることができます｡
‫でも､ このような構造になっているのです｡
‫そこで､ 生徒のクラスやテーブルを用意し､ その中に複数のエントリーを用意しています｡
‫そこで､ 21歳のトニという学生がいて､ この大学はイェール大学です｡
‫わかりました｡
‫では､ 次にそれを使ってみましょう｡
‫そして､ そのためには､ ここに名前空間を追加する必要があります｡
‫そして､ 名前空間はSystem Dot, XML, Dot Linkと呼ばれ､ 先に進んでこのクラスを使うことができます｡
‫そこで､ この学生からXMLドキュメントを作成する｡
‫ここで持っているXML文字列｡
‫ということで､ ここに生徒の×ドックファイル､ あるいはそういう名前のオブジェクトを作ることにします｡
‫そして､ それはX文書であるべきだ｡
‫わかりました｡
‫そして､ そのXドキュメントを初期化するのですが､ その方法は次の通りです｡
‫だから､ X文書､ ドットパース｡
‫つまり､ この文字列から､ 生徒のXML文字列をパースしているのです｡
‫これでリンクで使えるようになりました｡
‫だから､ とてもクールなんです｡
‫リンクはオブジェクトだけでなく､ 後述するデータベースやSQLにも使えますが､ XMLにも使えるので､
‫その威力は絶大です｡
‫XMLはそれ自体強力ですが､ リンクはさらに強力です｡ なぜなら､ リンクは同じようにすべてのことをやってくれるので､
‫私たちはデータを与えるだけでよいからです｡
‫それがXMLであろうと､ C嬰記号のオブジェクトであろうと､ ある種のデータベースであろうと関係ないのです｡
‫だから､ とてもクールなんです｡
‫これでstudentsという新しい変数を作れば､ 自動的にコレクションになりますね｡
‫今のところ､ ただの変数ですね｡
‫どんな変数なのかがわからない｡
‫そして､ このXML文書からここにリンクを使用することにします｡
‫つまり､ student x doc dot descendantsのstudentから､ ここではstudentになっているわけです｡
‫では､ この天孫降臨とは何なのか｡
‫その上にカーソルを置くと､ このドキュメントの子孫要素のフィルタリングされたコレクション､
‫またはドキュメント順に要素を返すことがわかります｡
‫つまり､ ここにあるように､ 列挙可能であると書いてあるわけです｡
‫こちらの学生さん｡
‫つまり､ ここにあるようなタイピングと全く同じなのです｡
‫つまり､ 私たちの生徒のxドキュメントを一人一人チェックし､ 生徒のxドキュメントは生徒のx html文字列を取りますね｡
‫そこで今度は､ 生徒を一人ずつ下降させ､ 一人ずつチェックします｡
‫ということで､ ここにあるものだけでもうリストなんです｡
‫そして､ その学生リストの中の学生を一人一人チェックしているのです｡
‫だから､ この路線でやっているんです｡
‫つまり､ 各タイプのラインに対応するもので､ あとは新しいエントリーを作成するだけです｡
‫そこで､ 新規を選択する｡
‫そして､ 何を選びたいのか｡
‫さて､ 名前をつけたいのですが､ 名前はstudent dot要素になります｡
‫そして､ この要素は､ ご覧のように､ この学生自身がX要素です｡
‫そこでカーソルを合わせると､ タイプXの要素であることがわかります｡
‫そこで､ elementと呼ばれるこのメソッドを使用することができます｡
‫いわば､ ××の小名ですね｡
‫そしてこの場合､ 例えばH大学という名前になります｡
‫つまり､ ここでは名前が私たちの名前になるわけです｡
‫そして､ その特定の名前の値のプロパティを持ち､ 次に､ 学生のドット要素であるHを持ち､
‫ここでも値を持ちたいのです｡
‫では､ 少しチャレンジとして､ 大学でも同じことをしてみましょう｡
‫わかりました｡
‫ぜひ試してみてください｡
‫大学生の要素､ その大学の価値｡
‫そして､ ここで忘れてはならないのが､ セミコロンである｡
‫なるほど､ それはもうカッコイイですね｡
‫そこで､ 学生向けにこのようなコレクションを用意しています｡
‫そして､ ご覧のように､ nameという文字列､ Hという文字列､ universityという文字列を持つ無数のコレクションです｡
‫だからAは新しい｡
‫そして､ ここにあるのは匿名性の高いタイプです｡
‫では､ 次にそれを使ってみましょう｡
‫例えば､ for eachループを使って､ studentコレクションに含まれるすべての生徒をチェックアウトし､
‫それを画面にプリントすることができるのです｡
‫だから､ それぞれの､ そしてここでは学生の中の学生のためのものです｡
‫だから､ あの中で｡
‫そして､ 自分はどうしたいのか？
‫まあ､ 単純にコンソールに何か書きたいだけなんですけどね｡
‫だから､ ダブルタブで､ 2番の大学から1番のHを持つ0番の学生のようなことを言うつもりです｡
‫そして､ この数字は誰のものなのか？
‫まあ､ 学生ドット名→学生ドットH→学生ドット大学なんですけどね｡
‫だから､ とてもクールなんです｡
‫そこで､ 学生のコレクションに含まれるこの学生オブジェクトを取り出します｡
‫つまり､ そのコレクションのすべてのオブジェクトと､ そのプロパティをここで使用することができます｡
‫ご覧のように､ nameというプロパティがあり､ これはかなりクールなものです｡
‫そこで､ そのコンソールの思想的な正しい行をチェックするだけでよいので､ 今度はコードを実行してみましょう｡
‫そして､ イェール大学の21歳の学生トニーさんです｡
‫それから､ カーラはイェール大学で17歳､ レイラは北京工科大学で19歳と､ かなり若いですね｡
‫そうそう､ そうなんです｡
‫このようなデータ､ つまりXMLデータを使って､ 自分がしたい､ あるいは好きなように使うだけでいいのです｡
‫私たちの場合は､ 単に表示するために使いましたが､
‫例えば､ ユーザーや学生などの情報をアプリで表示するために使うこともできます｡
‫そこで､ 教授とあなたは､ 学生のことをもっと知り､ 次の学期に備えたいとします｡
‫そして､ このXML構造を使って､ この学生に関する情報を取得し､ 確認することができます｡
‫では､ ちょっとしたチャレンジとして､ 前回のビデオで見ていただいた､ 仕分けというものです｡
‫それでは､ 生徒を年齢別に分類してください｡
‫では､ XMLファイルにある学生を､ どうぞ試してみてください｡
‫わかりました｡
‫ぜひ試してみてください｡
‫そこで､ sorted studentsという新しい変数を使って､ studentsのstudentから､ student
‫dot ageで順番に並べます｡
‫そして､ 学生そのものを選択するだけです｡
‫だから､ 学生を選んで､ それでおしまい｡
‫そして今度は､ Hごとに生徒を表示するために､ 再びfor eachループを使用するだけです｡
‫そこで､ 学生ではなく､ 店舗で仕分けされた学生を使うことにします｡
‫では､ 先ほどと同じようにコンソールに書き込んでいきますが､ 年齢順にソートしていきます｡
‫それが､ この新方式で実現するわけです｡
‫そして､ 私たちは学生のカルラ17歳､ それからレイラ19歳､ 2021歳です｡
‫つまり､ 以前は年齢で分類されていなかったが､ 今は分類されているということだ｡
‫自分でやってみて､ なんとかできるようになるといいですね｡
‫かなり駆け足で説明しましたが､ それはもう構造や考え方を使ったからで､ 単純に特定の変数で順番に説明すればいいんです｡
‫だから､ この場合､ Hによって｡
‫なるほど｡
‫次に､ 少し難しいのですが､ ここに別のタイプの情報を追加して､ 別の学生を追加してください｡
‫情報というのは､ 名前とか年齢とか大学とか､ そういうことですね｡
‫それは､ 彼らがいる年であったり､ 学期であったりします｡
‫では､ このXMLファイルで試してみてください｡
‫ですから､ すべての生徒のためにそれを拡張し､ 先に進んで別の生徒を作成してください｡
‫だから､ ちょっとだけ､ その練習をしておいてください｡
‫わかりました｡
‫ぜひ試してみてください｡
‫だから､ ここではセメスターを使うことにします｡
‫そこで､ 学期を決めて､ 例えばTonyが6学期目だとすると､ それを閉じる必要があります｡
‫だから､ ミスターム､ そして今は他の生徒にも同じことをやっています｡
‫実際に､ そのように行を全部コピーしてみましょう｡
‫こうすれば､ 少しはマシになる｡
‫では､ カーラが1学期､ そしてレイラが3学期としましょう｡
‫わかりました｡
‫そして今度は､ もう一人生徒を増やせと言ったのです｡
‫そこで､ この学生作品をここにコピーして､ 25歳､ 10学期目のフランクを作成します｡
‫だから､ 彼は修士課程で勉強しているし､ あるいは､ そうであっても｡
‫そうですね｡
‫博士号とかもありますね｡
‫そして､ ここでコードを拡張することができます｡
‫だから､ それはもう一つの課題としてあげたいんです｡
‫ですから､ このコードを拡張して､ 学期も表示されるようにしてください｡
‫だから､ このコードだけでなく､ 実はfor eachも同様です｡
‫わかりました｡
‫ぜひ試してみてください｡
‫そして､ 学生ドット要素であるsemesterと呼ぶことにしています｡
‫そして､ ここでは半値のドット値です｡
‫そしてもちろん､ ここではカンマをつける必要がある｡
‫そして､ テキストは彼のスラッシュ彼女の中に追加しましょう......ここでは性別が分からないので､ シンプルに彼の彼女の中にします｡
‫そして､ ここで3学期か3学期になります｡
‫そして､ 3番目とか2番目とか､ そういうことは書いてくれません｡
‫そんなに複雑にするつもりはなく､ シンプルにするつもりです｡
‫そして､ 学生ドットセメスターになり､ こうなりました｡
‫これでチェックできるようになったわけです｡
‫このコードを実行すると､ 生徒の学期値も表示されるはずです｡
‫ちなみに､ このコードを実行するとエラーが出ます｡
‫ご覧の通り､ ここは非常にデリケートな場所なので､ これは本当に良いことです｡
‫だから､ ここに学期があり､ ここに学期があるのですが､ もうお気づきかもしれませんね｡
‫だから､ 全く同じタイピングをすることが超重要なんです｡
‫だから､ まったく同じように書かなければならない｡ そうしないと､ エラーが出るからだ｡
‫開始タグと終了タグが一致しないんです｡
‫だから､ また始めようと思っています｡
‫そして､ 私たちは
‫そこで､ 大学から21歳の学生Tonyを迎え入れました｡
‫エールは6学期目｡
‫そして､ 1学期目のカルラさんです｡
‫3学期のLaylaがいます｡
‫そして最後にフランク､ 彼はずっと勉強しています｡
‫10学期に入ってからも､ こちらで注文しているそうです｡
‫そして､ この他の各ループでは､ 追加の情報を使用していないため､ 学期についてはわかりませんでした｡
‫わかりました｡
‫このように､ これは非常に拡張性が高く､ XMLファイルを非常に簡単に拡張することができます｡
‫ここに別のタグを追加して､ 情報を追加すればいいんです｡
‫それを開いたままにしておけば､ プログラムの中で使う必要がないこともあります｡
‫では､ もう1種類の情報があったとしましょう｡
‫追加する必要はありません｡
‫だから､ 学期と年齢を使わないのであれば､ それはそれで問題ないのです｡
‫ですから､ ここにあるすべてのタグをオブジェクトの中で使う必要はありませんが､ 使うことができるので､ かなり強力です｡
‫よし､ いいぞ｡
‫さて､ これでXMLを使ったリンクの使い方はお分かりいただけたと思いますので､ 学校に行く準備をしましょう｡
‫ですから､ より拡張され､ より強力な方法は､ 自分でデータベースを操作することです｡
‫では､ 次の動画でやってみましょう｡
‫現地でお会いしましょう｡