2



Similar documents
PowerPoint プレゼンテーション

XMLテクノロジを使いやすくする

: : : TSTank 2

Web 1990,HTTP, HTML, URL XML HTML XHTML XML Web XMLSOAPWSDL ( ) Web2.0 Web XML+WebAPI

XML形式の電子報告書作成に当たっての留意事項

XISによる効率良いシステム開発のポイント

Microsoft Word - tutorial7-language.docx

1

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

目次 : 1. はじめに 簡単なHTTP 経由でのXML 出力 XMLを出力するクラスの作成 XMLを出力する XMLのインポート エクスポート CachéクラスインスタンスをXMLにエクスポート... 9

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

DN6(R04).vin

Web Servlet/JSP JSP

工事記録写真チェックシステム 操作説明書

0序文‐1章.indd

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

1. 2 DITA UModel UModel Altova [1] UModel UModel UML(Unified Modeling Language) Java C# VB.NET UML UModel UML XML XML [7] chksp

●70974_100_AC009160_KAPヘ<3099>ーシス自動車約款(11.10).indb

java_servlet2_見本

改訂版 :基本的な文字化の原則(Basic Transcription System for Japanese: BTSJ)

01_07_01 データのインポート_エクスポート_1

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

html_text

の と す る (1) 防 犯 カ メ ラ を 購 入 し 設 置 ( 新 設 又 は 増 設 に 限 る ) す る こ と (2) 設 置 す る 防 犯 カ メ ラ は 新 設 又 は 既 設 の 録 画 機 と 接 続 す る こ と た だ し 録 画 機 能 付 防 犯 カ メ ラ は

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第2版  

JTCCM製品認証審査要綱

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

モール管理者マニュアル Ver.1.0

<4D F736F F D208DE3905F8D8291AC8B5A8CA48A948EAE89EF8ED0208BC696B18BA492CA8E64976C8F BD90AC E378C8E89FC92F994C5816A>

2008 e-learning T050050

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

TeleOffice 3.0 Lync 2 TO

シラバスの作成と管理用Webシステムの開発

サーバサイドスクリプトPHPを実感しよう

(Microsoft Word - \203A \225\345\217W\227v\227\314 .doc)

WEBメールシステム 操作手順書

購買ポータルサイトyOASIS簡易説明書 b

<4D F736F F D B67E05682E682E C8E313193FA834B F EF8ED FC90B382CC A548163>

CAC

Servlet JSP JSP Servlet/JSP における 日 本 語 の 処 理 - 1

Enterprise Architect日本語版 モデリング操作ガイド (データベースモデリング編)

Transcription:

1

2

3

XML 4

XML XML XML ( ) XML ( ) XML DB- API (CORBA, ) 5

XML 6

XML 7

XML 操 作 :DOM パーサ XML 文 書 <?xml version= 1.0?> <book> <section> <title>タイトル</title> <p> 本 文 1</p> <p> 本 文 2 </p> </section> </book> DOM 表 現 Document book section title p p タイトル 本 文 1 本 文 2 Elementオブジェクト Textオブジェクト 8

パーサの 準 備 とXMLのパース DocumentBuilderFactory docbuilderfactory = DocumentBuilderFactory.newInstace(); DocumentBuilder documentbuilder = docbuilderfactory.newdocumentbuilder(); Document document = documentbuilder.parse( 商 品.xml ); 商 品.xml factory Document Builder Document 9

DOMへのアクセス DOM API Node#getChildNodes() Node#getParentNode() Document#getDocumentElement() Document#getElementsByTagName(String 要 素 名 ) Element#getElementsByTagName(String 要 素 名 ) Element#getTagName() Element#getAttribute(String 属 性 名 ) Node#getNodeValue() 10

DOM DOM API Node#appendChild(Node 子 ノード) Node#insertBefore(Node 追 加 ノード,Node 対 象 ノード) Node#removeChild(Node 子 ノード) Element#setAttribute(String 属 性 名,String 値 ) Element#removeAttribute(String 属 性 名 ) Node#setValueNode(String 値 ) 11

DOMアクセス 例 NodeList nl = document.getelementsbytagname( p ); for (int i = 0; i < nl.getlength(); i++){ Element elem = (Element)nl.item(i); NodeList textlist = elem.getchildnodes(); Node text = textlist.item(0); String s = text.getnodevalue(); text.setnodevalue(s+. ); } Document book section title p p タイトル 本 文 1 本 文 2 12

DOM 生 成 例 Document doc = documentbuilder.newdocument(); Element product = doc.createelement( 商 品 ); doc.appendchild(product ); Element name = doc.createelement( 製 品 名 ); product.appendchild( name); Text txt = doc.createtext( PC ); name.appendchild( txt); Document 商 品 製 品 名 PC 13

XML 解 析 :SAX ハンドラインタフェースを 実 装 したクラス(ハンドラ)を 作 りパーサにセット. XMLをパースするとハンドラのメソッドが 呼 び 出 される. ハンドラ( 派 生 クラス) XML ファイル ハンドラ( 基 本 クラス) 要 文 文 素 字 書 を 列 の 発 発 終 見 見 了 パーサ 14

SAXによるパージング parse( Book.xml ) パ ー ス Book.xml <?xml version= 1.0?> <book> <title> タイトル </title>. 呼 び 出 される 関 数 startdocument(); startelement( book ); startelement( title ); characters( タイトル ); endelement( title ); 15

SAXパーサのAPI SAX API XMLReaderFactory#createXMLReader() SAXパーサ(XMLReaderインスタンス)の 生 成 XMLReader#setContentHandler(Handler ハンドラ) SAXイベントを 受 け 取 るハンドラを 設 定 XMLReader#parse(InputSource xml) XMLのパースを 実 行 16

SAXイベント(ハンドラメソッド) 17

SAX // パーサを 生 成 XMLReader reader = XMLReaderFactory.createXMLReader ("org.apache.xerces.parsers.saxparser"); //ハンドラを 設 定 reader.setcontenthandler(new MyContentHandler()); //XML 文 書 をパース reader.parse("book.xml"); parse( Book.xml ) パ ー ス パーサ 18

SAX (1/2) /** title */ public class MyContentHandler extends DefaultHandler { /** title */ private StringBuffer title = null; /** */ public void startelement(string namespaceuri, String localname, String qname, Attributes atts) { <?xml version="1.0"?> <book> <title> </title> <chapter> <title></title> </chapter>... </book> if (localname.equals("title")) { title = new StringBuffer(); } else if (localname.equals(...)) {... } } パーサ Title: Title: 19

SAX (2/2) /** */ public void characters(char[] ch, int start, int length) { if (title!= null) { title.append(ch, start, length); } } /** */ public void endelement(string namespaceuri, String localname, String qname) { if (localname.equals("title")) { System.out.println("Title: " + title.tostring()); title = null; } } } <?xml version="1.0"?> <book> <title> </title> <chapter> <title></title> </chapter>... </book> パーサ Title: Title: 20

1 <?xml version="1.0"?> <book> <title> <sub>xx </sub></title> <chapter> <title><sup><b>1</b></sup></title> </chapter>... </book> Title: Title: 21

<?xml version="1.0"?> <book> <title> </title> <chapter/> </book> DOM ( : JAXB) Element nodename="book" book Element nodename="title" Element nodename="chapter" title chapter Text nodevalue=" " java.lang.string value=" " 22

バインディン グ 定 義 XML Schema スキーマコンパイラ JAXB Obj Javaソース API Call ユーザアプリ Javaソース javac XML Read/Write/ Update/ 新 規 作 成 JAXB Obj Javaクラス API Call ユーザアプリ Javaクラス 23

XML XSLT 入 力 XML <schedules> <name> 山 本 </name> <schedule> <date>3/15</date> <action> 会 議 </action> </schedule> <schedule> </schedule> </schedules> スタイル シート XSLTプロ セッサ 構 造 を 変 換 せよ 出 力 XML <html> <u> 山 本 </u><br/> <table> <tr> <th> 日 付 </th><th> 予 定 </th> </tr> <tr> <td>3/15</td><td> 会 議 </td> </tr> <tr>...</tr> </table> </html> 24

XML XSLT 入 力 XML <schedules> <name> 山 本 </name> <schedule> <date>3/15</date> <action> 会 議 </action> </schedule> <schedule> </schedule> </schedules> スタイル シート XSLTプロ セッサ 出 力 XML <html> <u> 山 本 </u><br/> <table> <tr> <th> 日 付 </th><th> 予 定 </th> </tr> <tr> <td>3/15</td><td> 会 議 </td> </tr> <tr>...</tr> </table> </html> 25

XSLの 命 令 要 素 schedule のための テンプレート ( 変 換 ルール) 要 素 name のための テンプレート ( 変 換 ルール) <xsl:template match="schedules"> <html> <xsl:apply-templates/> </html> </xsl:tempalte> <xsl:template match="name"> <u> <xsl:value-of select="."/> </u> </xsl:template> 対 象 要 素 名 を 指 定 html タグを 生 成 対 象 要 素 名 を 指 定 u タグを 生 成 26

JAXP XML API 変 換 TransformerFactory#newTransformer(Source スタイルシート) 指 定 されたスタイルシートで 変 換 するTransformerを 作 る. Transformer#transform(Source 入 力 XML, Result 出 力 XML) 入 力 XMLを 変 換 して 出 力 する. Transformer#setOutputProperty(String 名 前, String 値 ) 出 力 プロパティを 設 定 する. 例 : setoutputproperty(outputkeys.encoding, "Shift_JIS") シフトJISで 出 力 する. 入 力 出 力 (DOM, SAX, Stream が 指 定 可 能 ) StreamSource#StreamSource(String ファイル 名 ) 入 力 ( 指 定 されたファイルから 読 み 込 むタイプ)を 作 る. StreamSource#StreamSource(InputStream 入 力 ストリーム) 入 力 (ストリームから 読 み 込 むタイプ)を 作 る. StreamResult#StreamResult(OutputStream 出 力 ストリーム) 出 力 (ストリームへ 書 き 出 すタイプ)を 作 る. 27

XML 28

XML XMLを 用 いることで 開 発 の 効 率 化 が 図 れる 疎 結 合 なシステムの 連 携 には 大 変 適 している 一 方 でXMLはあくまでデータ 次 のような 場 合 XMLではないほうがよいことも 密 結 合 なシステム 間 で 処 理 速 度 が 求 められる 場 合 データとしてではなく, 業 務 知 識 について 責 任 を 持 つクラスとして 扱 っ たほうがよい 場 合 なお,JAXBなどで 出 来 るクラスは 単 なるデータ 型 で 一 人 前 のク ラス ではない 29

XML DB 30

RDB XML 文 書 <?xml version= 1.0?> <order> <item id="1"> <name> 鉛 筆 </name> <count>12</count> </item> <item id="2"> <name>ペン</name> <count>25</count> </item> </order> RDB RDB XML 31

RDB XML 文 書 RDB <?xml version= 1.0?> <application> <date>20021028</date> <type> 新 規 </type> <person> <name> 山 本 </name> <tel>03-4567-8910</tel> <gender>m</gender> <addr> 目 黒 区 大 岡 山 2-12-1</addr> </person> </application> XML 32

: RDB ( ) 33

XMLDB 34

(1) 35

(2) 36

XML 37

38

XML <?xml version= 1.0?> <application> <type> 新 規 </type> <date>20021028</date> <name> 山 本 </name> <contactinfo> <tel>03-4567-8910</tel> <addr> 目 黒 区 大 岡 山 2-12-1</addr> </contactinfo> </application> <?xml version= 1.0?> <application> <Signature> </Signature> <type> 新 規 </type> <date>20021028</date> <name> 山 本 </name> <EncryptedData> </EncryptedData> </application> 39

40

41

XML web 42

XML-Web Web Web HTTP Web Web サービス ( aggregator) SOAP Web Web B2C B2B 43

XML Web 44

SOAP on HTTP HTTP SOAP メッセージ 45

SOAP SOAP Web SOAP Servlet SOAP DB- API (CORBA, ) SOAP HTTP 46

/ SOAP SOAP SOAP HTTP SOAP SOAP SOAP SOAP HTTP 47

HTTP Web Web JSP/ Servlet SOAP SOAP SOAP Servlet SOAP SOAP SOAP HTTP 48

/ 49

(,,, ) WSDL / SOAP SOAP-RPC 50

51

2 52

Web 53

Web 54

Web 55

web 1 56

57

web 58

UDDI 59

3 60

UDDI 61

UDDI 62

UDDI 63

() 64

65

66

67