XML(extensible markup language) ( インターネット時代の ) 拡張可能なタグによる汎用的データ記述言語データを, アプリケーションに依存しない形式で, 内容や意味を表すタグをつけて, テキスト形式で保存する ソフトウェアが意味を理解し情報処理することを目指す semantic Web( コンテンツの意味がコンピュータに理解可能な web, 情報 web から知識 web へ ) 実現のためのキーテクノロジー 業種や業務毎に, 適した文書構造を定義し,XML で記述された受発注書や業務依頼を企業間でやりとりする (wikipedia http://ja.wikipedia.org/wiki/extensible_markup_language) One Source, Multi Use データ交換フォーマット : データは交換できなければ価値が無い 共通フォーマット化すれば, 相互利用が容易になり, 再利用性が高まり, 転用も容易になる XML で記述されたデータはインターネット上の分散データベースとして, 容易に! 精密な! 検索が可能となる self-describing: タグで意味を付与する HTML はブラウザでの表示には十分事足りるが, 意味 内容の情報が不足しているのでソフトウェア処理には不十分である 可読性 : ソフトにも人にも machine-readable ( computer-readable, software-readable) XML データは, 管理 検索 保存が容易 テキスト vs. バイナリ : 汎用データとしてテキストの優位性 ( 近代プログラミングの主眼はテキスト処理 by まつもとゆきひろ ruby) Web 上の分散したアプリケーションを連携させる技術ユーザー旅行会社の Web ページ新幹線料金の問い合わせと予約 XML JR のサーバ宿泊の問い合わせ XML 楽天トラベルのサーバ XML XML Schema ------------------------------- -------------- ------------------------------------------- HTML XSLT(eXtensible Stylesheet Language Transformations) 文書構造の変換やスタイルを定義 スキーマ : 要素名, データ型, 要素の親子関係などのデータ構造を定義 DTD(Document Type Definition: 文書型定義 ), XML Schema 整形式 XML 文書 :Well-formed XML document XML に要求される文法に従った XML 文書 スキーマが存在しなくても構わない すべての開始タグと終了タグが対になっている ルートとなるタグが他のタグの入れ子になっていない 入れ子になっているタグの終了タグが親タグの終了タグより後に来ない などが well-formed な XML 文書に要求される 妥当な XML 文書 :Valid XML document スキーマに従った XML 文書
XML 技術マップ :http://www.infoteria.com/jp/xmlnote/ MSXML (Microsoft XML Core Services) XML 文書を解析 / 処理するのが XML パーサ : 解析エンジン MSXML は IE6 以降で標準提供されている XML パーサである また XSLT を処理するための XSLT プロセッサ も兼ね備えた統合的な XML 処理用サービスである JAXP (Java APIs for XML Processing) XML の実用化 自治体クラウドのデータ, 気象庁防災情報 ロジスティクス:CALS(Computer Aided Logistic Support) 物を受け渡す際に, 物の意味と履歴を XML で記述したデータを受け渡すことにより, 物流 生産の最適化を目指す SCM(Supply Chain Management) RosettaNet RSS (Rich Site Summary, Really Simple Syndication ) RSS とは,XML で記述されたヘッドライン情報 ( タイトルや概要など ) を提供するためのフォーマットの 1 つで, サイトの更新情報の通知に利用される また,RSS のフォーマットで記述された文書ファイルまたはその内容のことを RSS フィード (RSS feed) とも言う SMIL(Synchronized Multimedia Integration Language) 動画 静止画 音声 音楽 文字など様々な形式のデータの再生を制御して同期させる言語 XML で記述されている 1998 年 4 月に W3C 標準として勧告された どの位置に どのタイミングで どのくらいの時間表示するのか といったことが制御できる これを実装した製品としては RealNetworks 社の RealSystem G2 がある http://www.multimedia4everyone.com/
MathML(Mathematical Markup Language) 数式 CML(Chemical Markup Language) 分子式, 化学式 Firefox, Safari が対応 非対応のブラウザでも MathJax で表示可能 MathJax:A JavaScript display engine for mathematics BML(Broadcast Markup Language) http://e-words.jp/w/bml.html ARIB( 社団法人電波産業会 ) によって策定された,XML ベースのデータ放送向けのページ記述言語 従来の動画と音声による放送に, 双方向性やインターネットとのリンクを提供するための技術で,BS デジタル放送などでの利用が予定されている BS デジタル対応のテレビには,BML で記述されたコンテンツを再生する BML ブラウザ というソフトウェアが内蔵されている BML を使うと, 画面のどこに何をいつ表示するかという空間 / 時間的提示の制御, 関連する番組やインターネットの URL を示すリンク, タイトルや本文などを示す構造の表現, 操作ボタンなどのユーザインターフェースなどを規定することができる データ放送を制御する性質上,Web ページの記述言語の HTML を XML 対応にした XHTML をベースに, 動画 音声の制御を中心とする拡張が図られている また, 情報の自動更新機能についての規定などもあり, プッシュ配信型サービスに特化した言語となっている JavaScript の標準規格である ECMAScript に対応し, スクリプトを埋め込んで動的なコンテンツを記述することもできる 将来的には Java 言語によるプログラムの実行環境などの導入も予定されている NewsML:XML をベースにしたニュース配信フォーマットテキスト, 写真, 音声, 動画などのマルチメディア素材を配信するのに適している また, 属性情報を決められた形で付けることにより, ニュースの分類, 権利処理などが容易になる ロイターが中心となって普及活動をはじめ, 国内でも共同通信をはじめ, 採用が相次いでいる 標準化組織は, 国際新聞通信委員会 (IPTC) と日本新聞協会 山梨県のホームページは, 県内ニュース や お知らせ ご案内 といった記事を NewsML で管理することで, 記事管理の効率化や検索性の向上を実現した
例 1:XML データ,XML Schema,eXtensible Stylesheet Language Transformations books.xml :XML データ books.xsl :extensible Stylesheet Language Transformations: 文書の変換指定 <?xml version="1.0" encoding="utf-8?> <?xml-stylesheet type="text/xsl" href="books.xsl"?> <books xmlns:xsi= http://www.w3.org/2001/ <?xml version="1.0" encoding=" UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl = "http://www.w3.org/1999/xsl/transform"> <xsl:output method="html" encoding="shift_jis" /> XMLSchema-instance xsi:nonamespaceschemalocation= books.xsd > <book id="0001"> <author> 山田祥寛 </author> <title>xml 辞典 </title> <publisher> 翔泳社 </publisher> <xsl:template match="/"> <html><body><table border="1"> <xsl:apply-templates select="books/book" /> </table></body></html> </xsl:template> <price>2520</price> <publishdate>2004/9/17</publishdate> <ISBN-13>978-4798107226</ISBN-13> </book> ~</books> </xsl:stylesheet> <xsl:template match="book"> <tr><td> <xsl:value-of select="author" /> </td><td> <xsl:value-of select="title" /> </td><td> <xsl:value-of select=" publishdate " /> </td></tr> </xsl:template>
books.xsd XML Schema: データ構造の定義 (XML データの妥当性を検証する際に必要 ) <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="books"> <xsd:complextype> <xsd:sequence> <xsd:element name="book" type="book_type" minoccurs="0" maxoccurs="unbounded" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:string"/> </xsd:complextype> </xsd:element> <xsd:complextype name="book_type"> <xsd:sequence> <xsd:element name="author" type="xsd:string" /> <xsd:element name="title" type="xsd:string" /> <xsd:element name="price" type="xsd:positiveinteger" /> <xsd:element name="publishdate" type="xsd:date" /> <xsd:element name=" ISBN-13" type="xsd:string " /> </xsd:sequence> </xsd:complextype> </xsd:schema> SOAP(Simple Object Access Protocol) SOAP メッセージ :Web サービスのメッセージフォーマット <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <getproductdetails xmlns="http://warehouse.example.com/ws"> <productid>827635</productid> </getproductdetails> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
例 2:Android 画面デザイン :main_activity.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height=wrap_content android:text="button" android:layout_weight="1"/> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button" android:layout_weight="2"/> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button" android:layout_weight="1"/> </LinearLayout>