xml introduction practice

60
1 XML INTRODUCTION 講講 : 講講講

Upload: queenskimo

Post on 13-Apr-2017

1.146 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Xml Introduction Practice

1

XMLINTRODUCTION

講師 : 張振亞

Page 2: Xml Introduction Practice

2

案例解釋• 自動轉換系統• EDI• 模組

Page 3: Xml Introduction Practice

3

軟體資料表現及系統角色 ( 一 )

• 由程式寫作看資料表現架構

<FORM, 畫面 , 報表… >

系統程式介面< 元件

/ 中介程式… >

< 資料庫 / 檔案… >

@#$$%^&*()_ @#$$%^&*()_

@#$$%^&*()_

………

Page 4: Xml Introduction Practice

4

軟體資料表現及系統角色 ( 二 )

<FORM, 畫面 , 報表… >

@#$$%^&*()_ @#$$%^&*()_

@#$$%^&*()_

NETWORKOR

INTERNET

<DATA ,DBServer>

• 由系統運作看資料表現架構

Page 5: Xml Introduction Practice

5

軟體資料表現及系統角色 ( 三 )• 由商業運作看資料表現架構

NETWORKOR

INTERNET公司 / 個體 A

公司 / 個體 B

公司 / 個體 C

Page 6: Xml Introduction Practice

6

QUESTION

• 公司 A 的 A 小姐欲取得 B 或 C 公司的資料 ,您覺得路徑 X 或路徑 Y 的模式較佳 ? 各有何優缺點 ?• 就你目前學習的程式技能是否能有效達成不同公司間的資料取得• 可以 !HOW! XML 有幫助嗎 ?

Page 7: Xml Introduction Practice

7

XML 簡介• 「 XML 」 (Extensible Markup Language) 可擴展標示語言也屬於一種標籤語言, XML 1.0 版規格是在 1998 年 2月正式推出,目前 XML 的相關技術仍然持續在發展和制定中,這只是一個開始,並不是結束。• XML 的目的並不是編排內容,而是用來描述資料,它並沒有如同 HTML 語言的預設標籤,事實上,使用者需要自己定義描述資料所需的各種標籤• XML 文件的基本架構十分簡單,除了標籤名稱是使用者自行定義外,其寫法和 HTML 標籤並沒有什麼不同, XM

L 文件擁有兩個特點需要注意,如下所示:– 良好格式 (Well-Formed)– XML 文件需要驗證 (Validity)

Page 8: Xml Introduction Practice

8

EX:1• <?xml version="1.0" encoding="Big5"?>• <!DOCTYPE first [• <!ELEMENT first (#PCDATA)>• ]>• <first>• This is the first XML document in• "Teach Yourself XML."• <name>c.y.chang</name>• <age>18</age>• </first>

Page 9: Xml Introduction Practice

9

EX-2• <?xml version="1.0" encoding="Big5"?>• <!DOCTYPE first [• <!ELEMENT first (#PCDATA)>• ]>• <first>• This is the first XML document in• "Teach Yourself XML."• < 姓名 >c.y.chang</ 姓名 >• < 年齡 >18</ 年齡 >• </first>

Page 10: Xml Introduction Practice

10

EX-3-ERROR• <?xml version="1.0"?>• <!DOCTYPE MEMO [• <!ELEMENT MEMO (TO, FROM, SUBJECT, BODY)>• <!ELEMENT TO (#PCDATA)• <!ELEMENT FROM (#PCDATA)• <!ELEMENT SUBJECT (#PCDATA)• <!ELEMENT BODY (#PCDATA)• ]>• <TO>Charles Smith</TO>• <FROM>Tess Curtis</FROM>• <SUBJECT>Christmas Party</SUBJECT>• <BODY>

Page 11: Xml Introduction Practice

11

EX-4• <?xml version="1.0"?>• <!DOCTYPE MEMO [• <!ELEMENT MEMO (TO, FROM, SUBJECT, BODY)>• <!ELEMENT TO (#PCDATA)>• <!ELEMENT FROM (#PCDATA)>• <!ELEMENT SUBJECT (#PCDATA)>• <!ELEMENT BODY (#PCDATA)>• ]>• <MEMO>• <TO>Charles Smith</TO>• <FROM>Tess Curtis</FROM>• <SUBJECT>Christmas Party</SUBJECT>• <body></body>• </MEMO>

Page 12: Xml Introduction Practice

12

EX-5-ERROR

• <?xml version="1.0"?>• <title>A Well-Formed Document</title>• <first>• This is a simple • <bold>well-formed</bold>• document.• </first>

Page 13: Xml Introduction Practice

13

EX-6• <?xml version="1.0"?>• <TO>Charles Smith</TO>• <FROM>Tess Curtis</FROM>• <SUBJECT>Christmas Party</SUBJECT>• <BODY>• The • <italics>first</italics>• planning session for the Christmas party• will take place on Friday at • <boldface>2 PM.</boldface>• See you there.• </BODY>

Page 14: Xml Introduction Practice

14

EX-7• <?xml version="1.0"?>• <DOCEXAMPLE>• <TO>Charles Smith</TO>• <FROM>Tess Curtis</FROM>• <SUBJECT>Christmas Party</SUBJECT>• <BODY>• The • <italics>first</italics>• planning session for the Christmas party• will take place on Friday at • <boldface>2 PM.</boldface>• See you there.• </BODY>• </DOCEXAMPLE>

Page 15: Xml Introduction Practice

15

EX-8• encoding="ISO-8859-1“• <?xml version="1.0“ encoding=“Big5“?>• <DOCEXAMPLE>• <TO>Charles Smith</TO>• <FROM>Tess Curtis</FROM>• <SUBJECT>Christmas Party</SUBJECT>• <BODY>• The • <italics>first</italics>• planning session for the Christmas party• will take place on Friday at • <boldface>2 PM.</boldface>• See you there.• </BODY>• </DOCEXAMPLE>

Page 16: Xml Introduction Practice

16

Ex-9

• <?xml version="1.0"?>• <!DOCTYPE welcome [• <!ELEMENT welcome (#PCDATA)>• ]>• <welcome>• Welcome Earthling!• </welcome>

Page 17: Xml Introduction Practice

17

Ex-10

• <?xml version="1.0"?>• <!DOCTYPE EXAMPLE [• <!ELEMENT EXAMPLE (#PCDATA)>• <!ENTITY Commentary "This is an example of• a short XML document with an internal DTD.">• ]>• <EXAMPLE>Insert the commentary here:• &Commentary;</EXAMPLE>

Page 18: Xml Introduction Practice

18

Ex-11(DTD:Document Type Definition)

• <?xml version="1.0" standalone="no"?>• <!DOCTYPE REPORT SYSTEM "report.dtd">

• <REPORT>• <TITLE>A Sample Report</TITLE>• <DEPT>Human Relations</DEPT>• <AUTHOR>• <LNAME>Nimm</LNAME>• <FNAME>Sue</FNAME></AUTHOR>• <ABSTRACT>• This is a test of our report DTD.• </ABSTRACT>• <BODY>testdoc;</BODY>• </REPORT>

Page 19: Xml Introduction Practice

19

EX-12-SCHEMA• <?xml version="1.0" encoding="ISO-8859-1"?>• <catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://pcstd.pcc.gov.t

w/2003/eTender" • xsi:schemaLocation="http://pcstd.pcc.gov.tw/2003/eTender cdcatalog.xsd">• <cd>• <title>Empire Burlesque</title>• <artist>Bob Dylan</artist>• <country>USA</country>• <company>Columbia</company>• <price>10.90</price>• <year value="1994"/>• </cd>• <cd>• <title>Hide your heart</title>• <artist>Bonnie Tyler</artist>• <country>UK</country>• <company>CBS Records</company>• <price>9.90</price>• <year value="1995"/>• </cd>• </catalog>

Page 20: Xml Introduction Practice

20

Xml 基本使用 - 簡單 DEBUG 過程

Page 21: Xml Introduction Practice

21

Xml 基本使用 - 簡單 DEBUG 過程( 續 )

Page 22: Xml Introduction Practice

22

XML 基本文件設計• 資料表達• 資料庫結合與差異• 欄位與標籤

Page 23: Xml Introduction Practice

23

資料表示的思考

Page 24: Xml Introduction Practice

24

設計基礎應用• 用一個 XML FILE 表示一個資料表• HOW TO BEGIN• TOOL IS NEEDED?

Page 25: Xml Introduction Practice

25

展示 - 例

Page 26: Xml Introduction Practice

26

Nodes of Tree view

Page 27: Xml Introduction Practice

27

Msxml (Microsoft)

Page 28: Xml Introduction Practice

28

MSXML 6.0

Page 29: Xml Introduction Practice

29

INSTALLATION MSXML

Page 30: Xml Introduction Practice

30

Page 31: Xml Introduction Practice

31

INSTALLATION( 續 )• MSXML 直接安裝• IEXMLTLS 下載完之後安裝

1. 雙擊 iexmlts.exe , 然後讓預設值 run 完2. 到 C:\IEXMLTLS 下 找 msxmlval.inf 和 msxmlvw.inf 這二個檔案 , 在該二檔案上按各滑鼠右鍵彈出快顯視窗選擇安裝就完成了安裝程序安裝完了之後 , 你就用 IE 打開任何一個 xml 檔案 , 在ie 工作區內按滑鼠右鍵 , 你可看到多了 validate xml選項

Page 32: Xml Introduction Practice

32

安裝選項

Page 33: Xml Introduction Practice

33

IEXMLTLS (Microsoft)

Page 34: Xml Introduction Practice

34

OTHERS

Page 35: Xml Introduction Practice

35

DOM: Document Object Model

• Abstract Tree Produced by XML Parser

Page 36: Xml Introduction Practice

36

解讀 VALID-Email 的文件結構Email

Body

ToSubjectCC

From

根元素

Email 的子元素

DATEQ:資料設計 :DATE?

Page 37: Xml Introduction Practice

37

Page 38: Xml Introduction Practice

38

Xml Notepad

• EXAMPLE FOR EMPLOYEE

Page 39: Xml Introduction Practice

39

Page 40: Xml Introduction Practice

40

練習• 將上次上課的二個檔案合併成一個檔• 方式

– 觀查– 製作

Page 41: Xml Introduction Practice

41

Xml Notepad( 續 )

Page 42: Xml Introduction Practice

42

DATA Operation

Page 43: Xml Introduction Practice

43

DATA Operation

Page 44: Xml Introduction Practice

44

DTD 的使用<?xml version=“1.0”?><!DOCTYPE EMAIL [

<!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)><!ELEMENT TO (#PCDATA)><!ELEMENT FROM (#PCDATA)><!ELEMENT CC (#PCDATA)><!ELEMENT SUBJECT (#PCDATA)><!ELEMENT BODY (#PCDATA)>

]><EMAIL>

<TO>[email protected]</TO><FROM>[email protected]</FROM><CC>[email protected]</CC><SUBJECT>Hello XML</SUBJECT><BODY>blah, blah</BODY>

</EMAIL>

重點 :文件是需要檢查的

Page 45: Xml Introduction Practice

45

DTD & VALID WITH IE

Page 46: Xml Introduction Practice

46

WELLFORM & VALID 例• <?xml version="1.0"?>• <!DOCTYPE EMAIL [• <!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)>• <!ELEMENT TO (#PCDATA)>• <!ELEMENT FROM (#PCDATA)>• <!ELEMENT CC (#PCDATA)>• <!ELEMENT SUBJECT (#PCDATA)>• <!ELEMENT BODY (#PCDATA)>• ]>• <EMAIL>•• <FROM>[email protected]</FROM>• <CC>[email protected]</CC>• <SUBJECT>Hello XML</SUBJECT>• <BODY>blah, blah</BODY>• </EMAIL>

Page 47: Xml Introduction Practice

47

解讀 VALID-Email 的文件結構Email

Body

ToSubjectCC

From

根元素

Email 的子元素

DATEQ:資料設計 :DATE?

Page 48: Xml Introduction Practice

48

XML 與 XML DTD 的關係XML

書畫DTD 器物DTD ….

器物甲 器物乙 器物丙 ….

印刷版本 Web Page版本虛擬實境版本 ….

文獻 DTD

Page 49: Xml Introduction Practice

49

VALID 結果

Page 50: Xml Introduction Practice

50

如何取得 DTD

• 使用某單位或某人已開發的 DTD.(<!DOCTYPE Email PUBLIC “-//OPEN DTD//DTD Emai

l//EN” “http://opendtd.org/dtd/email.dtd”>

• 自行開發 DTD.<!DOCTYPE Email SYSTEM “email.dtd”>

Page 51: Xml Introduction Practice

51

相關規則•在上面的例子中 ,XML parser 會用 DTD來驗證文件的有效性 (valid)•直接將 elements 定義在 doctype方括弧 [] 內部•內部 DTD 會被優先處理•若文件包含外部 DTD 及內部 DTD, 會覆蓋 (override) 先前外部 DTD 的定義

Page 52: Xml Introduction Practice

52

相關規則 - 外部 DTD 例<!DOCTYPE EMAIL (SYSTEM|PUCLIB) “email.dtd”>

•外部實體– SYSTEM 緊接在 URI 之後 ,用來告訴處理器哪裡可以找到宣告中被參照的物件–對廣大的使用者而言 ,一些 DTD 已經被確立為標準是有效的 ,這時就使用 PUCLIB 關鍵字 ,後面應接一個有效的標準函式庫

•可把文件對實體的宣告寫在另一個外部檔案 ,使用時直接參照外部實體

Page 53: Xml Introduction Practice

53

相關規則 - 外部 DTD 例 (續 )•使用外部 DTD 的例子• REPORT_DTD_XML.XML• <?xml version="1.0" standalone="no"?>• <!DOCTYPE REPORT SYSTEM "reportX.dtd">• <REPORT>• <TITLE>A Sample Report</TITLE>• <DEPT>Human Relations</DEPT>• <AUTHOR>• <LNAME>Nimm</LNAME>• <FNAME>Sue</FNAME></AUTHOR>• <ABSTRACT>• This is a test of our report DTD.• </ABSTRACT>• <BODY>testdoc;</BODY>• </REPORT>

Page 54: Xml Introduction Practice

54

相關規則 - 外部 DTD 例 (續 )• <!ELEMENT REPORT (TITLE,(SECTION|SHORTSECT)+)>• <!ELEMENT SECTION (TITLE,BODY,SUBSECTION*)>• <!ELEMENT SUBSECTION (TITLE,BODY,SUBSECTION*)>• <!ELEMENT SHORTSECT (TITLE,BODY)>• <!ELEMENT TITLE (#PCDATA)>• <!ELEMENT PARA (#PCDATA)>• <!ELEMENT LIST (ITEM)+>• <!ELEMENT ITEM (BLOCK)>• <!ELEMENT CODE (#PCDATA)>• <!ELEMENT KEYWORD (#PCDATA)>• <!ELEMENT EXAMPLE (TITLE?,BLOCK)>• <!ELEMENT GRAPHIC EMPTY>

• <!ATTLIST REPORT security (high | medium | low ) "low">• <!ATTLIST CODE type CDATA #IMPLIED>• <!ATTLIST GRAPHIC file ENTITY #REQUIRED>

• <!ENTITY xml "Extensible Markup Language">• <!ENTITY sgml "Standard Generalized Markup Language">• <!ENTITY pxa "Professional XML Authoring">• <!ENTITY TEXT "(#PCDATA|CODE|KEYWORD|QUOTATION)*">• <!ENTITY BLOCK "(PARA|LIST)+">• <!ENTITY BODY "(BLOCK|EXAMPLE|NOTE)+">

• <!NOTATION GIF SYSTEM "">

Page 55: Xml Introduction Practice

55

IE 讀取未 VALID

Page 56: Xml Introduction Practice

56

IE WITH VALID & 外部 DTD 例

Page 57: Xml Introduction Practice

57

IE WITH VALID & 外部 DTD 例修訂練習

Page 58: Xml Introduction Practice

58

IE WITH VALID & 外部 DTD 例修訂練習

Page 59: Xml Introduction Practice

59

IE WITH VALID & 外部 DTD 例修訂練習

Page 60: Xml Introduction Practice

60

XML DTD / 註解 (Comments)

範例:<!--3 ELEMENT 版本名稱 (#PCDATA) --> <!ELEMENT editionName (#PCDATA) >

<!--ATTLIST 版本名稱 使用代碼 FIXED "npm-doc-editionName"-->

<!ATTLIST editionName scheme FIXED "npm-doc-editionName">