Java java xml
This presentation is the property of its rightful owner.
Sponsored Links
1 / 39

応用 Java(Java/XML) PowerPoint PPT Presentation


  • 233 Views
  • Uploaded on
  • Presentation posted in: General

応用 Java(Java/XML). 第1回 2006 年4月 14 日. 講義内容 (4/14). なぜ Java が重要なのか? なぜ XML が重要なのか? Java と XML の関係 パーサの概念 XML 関連のパッケージについて ファクトリのデザインパターン. Java とはどんな技術か?. プログラミング言語としての Java インターネット時代の新しい言語 優れた開発効率 実行環境としての Java 携帯電話からスパコンまで あらゆる装置をネットワーク化. Java は誰が作っているのか ?.

Download Presentation

応用 Java(Java/XML)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Java java xml

応用Java(Java/XML)

第1回

2006年4月14日


Java java xml

講義内容(4/14)

  • なぜJavaが重要なのか?

  • なぜXMLが重要なのか?

  • JavaとXMLの関係

  • パーサの概念

  • XML関連のパッケージについて

  • ファクトリのデザインパターン


Java java xml

Javaとはどんな技術か?

  • プログラミング言語としてのJava

    インターネット時代の新しい言語

    優れた開発効率

  • 実行環境としてのJava

    携帯電話からスパコンまで

    あらゆる装置をネットワーク化


Java java xml

Javaは誰が作っているのか?

  • Sun Microsystems 社の製品

    http://java.sun.com/

  • 開発環境は無償で提供(対MS戦略)

  • 「オープンソース」的な成果も採用


Java java xml

言語としてのJavaの特徴

  • オブジェクト指向(Object Oriented)

  • 仮想マシン(JVM)による実行

  • スレッドによる並列処理

  • 簡潔な言語仕様

  • 豊富なクラスライブラリ

  • 開発環境は無償、ソース公開


Java java xml

現在のJavaの存在

  • インターネット上の標準言語

    (特にサーバサイド)

  • 異なるシステム間に共通の実行環境

  • ソースコード共有の新たな運動

    apache.org, eclipse.org


Java java xml

Javaの登場と発展の背景

  • Java誕生以前 (1969-1994)

  • 最初のJava (1995)

  • 実用的開発言語へ (1996)

  • 拡大する応用範囲 (1997~ 99)

  • B2BとWebサービス(2000~)


Java java xml

Javaの歴史

  • 1995 α版、β版、HotJava

  • 1996 JDK1.0

  • 1997 JDK1.1

  • 1998 Java2, 3つのJava

  • 1999 J2SDK 1.3

  • 2001 i503にJava搭載

  • 2002 J2SDK 1.4

  • 2004 J2SE 5.0 (Tiger)

  • 2005 Java 10周年

  • 2006 J2SE 6.0(Mustang)?


Java java xml

Javaの祖先?

  • C (1970) 手続き指向、アルゴリズムの構造化(関数、ループと条件分岐)、データ型の導入(原始型と構造体)

  • C++ (1980~) オブジェクト指向、クラス、クラスの継承、アクセス制御、抽象クラス、演算子の多重定義、多重継承、例外処理・・・(次々と機能拡張)


Java java xml

Java登場の背景

  • C++の機能の肥大化の弊害

  • 開発者の負担軽減

  • 教育コストの軽減

  • シンプルでかつ多様な環境に対応できるオブジェクト指向言語


Java java xml

「オープン」な性格のルーツ

  • Sun Microsystemsの戦略の要

  • 仕様の公開、開発環境の無償配布

  • 背景に UNIX文化、オープンソース運動の影響

  • インターネットの普及 (異機種・異OSのネットワーク)


Java java xml

XMLの登場と発展

  • XML以前

  • XMLの多様な用途

  • データ交換の標準に


Xml 1998

XML(1998~)以前

  • アプリケーション独自のデータ形式

  • Tex, PostScript

  • SGML (1986) 非常に柔軟な機能、完全な対応は高価、DTDによる記述

  • HTML (1992~) タグの拡張と統一、HTML 4.0(1997)

  • シンプルかつ拡張可能なMLの必要性


Java java xml

XMLの多様な用途

  • 電子文書(官公庁、企業)

  • 出版物(DOM)

  • Webページ(XHTML、XSLT)

  • 数式(MathML)

  • グラフィックス(SVG, X3D)

  • マルチメディアの操作と連携(SMIL)

  • ソフトウェアのビルトツール(Ant)


Java java xml

データ交換の標準に

  • W3Cによる標準化

    http://www.w3c.org/

  • XML Schema

    SGML(DTD)から自立,自己記述性

  • B2B, P2Pアプリケーションの普及

  • XMLデータの動的生成、パイプライン処理(XSLT, Axis)


Java xml

JavaとXMLに共通するもの

  • 先行する技術の蓄積の上に出現した「成熟した技術」

  • シンプルかつ高機能

  • 「規格公開」と「標準化」へのこだわり

  • 活用範囲の爆発的な拡大(進行中)


Java xml1

JavaとXMLの融合

  • JavaとXMLは「相性」がいい?

  • アプリケーション(Java)とデータ(XML)

  • XMLの階層構造を扱うJavaのクラス

  • XML処理用のパッケージの役割


Java java xml

アプリケーションとデータ

  • Javaのクラス <-> 要素の定義

  • Javaのインスタンス <-> 個々の要素

  • Javaのクラスのフィールド <-> 個々の要素の属性の定義

  • Javaのインスタンスのフィールド値 <-> 個々の要素の属性値


X3d java d

例:X3D と Java3Dの比較

  • X3D(VRMLの後継 2002~) http://www.web3d.org/

<Box size="1.0 1.0 1.0" />

<Appearance>

<Material diffuseColor="0.0 0.0 1.0" />

</Appearance>

Box box = new Box(1.0f,1.0f,1.0f);

Appearance ap= new Appearance();

Material mt = new Material();

mt.setDifuseColor( new Color3f(1.0f,1.0f,1.0f) );


Java java xml

XML文書の階層構造の反映

  • 文書の階層構造->ツリー構造を表すクラスのインスタンス

  • DOM (Document Object Model)

  • org.w3c.dom.Nodeインターフェイス

  • 視覚化 javax.swing.JTreeクラス


Java java xml

XML処理用パッケージの役割

  • JAXPパッケージ(J2SDK 1.4よりcore)

  • SAX(Simple API for XML) と DOM

  • DTD、XML Schema:妥当性の検証

  • 名前空間、XPath, XSLTの処理

  • J2SE 5.0 より一段と機能が強化


Apache org java xml

Apache.org の Java,XML

  • Apache Software Foundation(http://www.apache.org/)

  • Apache -- Webサーバの標準に

  • Java,XML関連のオープンなソフトウェア開発の中心に

  • Java関連 (Jakartaプロジェクト他)

  • XML関連 (XMLプロジェクト他)


Java java xml

Java関連

  • Apache JakartaProject ( http://jakarta.apache.org/ )

  • 20数個のサブプロジェクト

  • Tomcat (自身がJavaで記述されたWebサーバ、JSP,Servletエンジンを提供)

  • Struts(Webアプリケーションのフレームワークを提供)

  • Alexandria(Javaのソースの分散管理)


Java java xml

XML関連

  • Apache XML Project( http://xml.apache.org/ )

  • 10数個のサブプロジェクト

  • Xerces (XML Parser)

  • Xalan (XSLT Processer)

  • Cocoon(Webページの動的生成)

  • Xindice(XMLデータベース)

  • Apache SOAP, Apache Axis(Webサービスへ)


Java xml2

Java + XML

  • Apache Ant Project ( http://ant.apache.org/ )

  • Jakartaから独立してトッププロジェクトに

  • Ant (ビルドツール makeの機能を代替)

  • Ant自身はJavaで記述

  • ビルドファイルはXML


Java xml3

JavaでXMLを処理するには?

  • XMLはテキストファイル

    =>独自に文字単位で処理は可能

  • XMLは独自の文法を持つ

    要素(タグ)と属性(名前と値のペア)

    < > </> =

  • XML文書は設計に基づく構造を持つ

    *自前で処理は煩雑、誰がやっても同じ

    =>専用のパッケージ(API)があれば・・・


Java java xml

XML文書の処理

  • XMLパーサ(parser)の概念

  • パーサの規格(SAX,DOM、他)

  • Javaによるパーサの実現

    Sunによる参照実装

    Apacheプロジェクト

    ( http://xml.apache.org/ )


Java xml4

JavaでXMLというのなら・・・

  • どちらも「標準」、「オープン」が特徴

  • APIもなるべく「中立」に

    システム非依存(当然?Java,XMLなら)

    言語非依存(パーサの設計、動作の側から見て)

    ライブラリ非依存(複数の実装が共存できる仕組み)

  • そのために、多少回りくどくはなるが・・・


Xml api

XML関連のAPI

  • J2SE 1.4からコアに

  • ApacheのXML関連のプロジェクト

    Xerces

    Xarlan

    Ant

    Xindice

  • JDOM ( http://www.jdom.org/ )


Java java xml

JAXPの発想

  • 多数のパーサの実装を統合する枠組み

  • JAXP自体は構文解析を行うわけではない

  • パーサはJAXPとは独立できる

  • パーサの実装に非依存なアプリケーション

  • 実現のために抽象化されたクラス群を定義


J2se 1 4 api

J2SE 1.4以降のAPI

  • javax.xml.parsers

  • org.xml.sax

  • org.w3c.dom

  • javax.xml.transform


Javax xml parsers

javax.xml.parsers

  • 最も抽象化されたレベル(JAXP)

  • パーサを「取り出す」ための仕組みを提供

  • SAXParser,

    SAXParserFactory

    DocumentBuilder,

    DocumentBuilderFactory

  • 唯一の手段ではないが、「標準」を提供

  • パーサの実装に制限は課さない


Java java xml

パーサを取得するパターン

SAXParserFactory spf =

SAXParserFactory.newInstance();

SAXParser parser =

spf.newSAXParser();

  • ファクトリのデザインパターン


Java java xml

なぜファクトリパターンか?

  • 直接インスタンスの生成はしない

    (実装クラスに依存しない記述)

    × SAXParser parser =

    new SAXParser();

  • パーサ取得の条件をFactoryクラスに設定


Org xml sax

org.xml.sax

  • SAX(Simple API for XML)

  • サブパッケージ

    org.xml.sax.ext

    org.xml.sax.helpers


Org w3c dom

org.w3c.dom

  • Document

  • Node

  • Element

    :


Javax xml transform

javax.xml.transform

  • XSLT(XML Stilesheet Transfer) の枠組み

    Source

    Result

    Transformer

  • サブパッケージ

    javax.xml.transform.sax

    javax.xml.transform.dom

    javax.xml.transform.stream


J2se 5 0

J2SE 5.0 の追加パッケージ

  • javax.xml

  • javax.xml.datatype

  • javax.xml.namespace

  • javax.xml.validation

  • javax.xml.xpath


Java java xml

XMLパーサのいろいろ

  • Sun の実装参照

  • Apache の Crimson (J2SE 1.4)

  • Apahce の Xerces (J2SE 5.0 )


  • Login