xml introduction practice
Post on 13-Apr-2017
1.146 Views
Preview:
TRANSCRIPT
1
XMLINTRODUCTION
講師 : 張振亞
2
案例解釋• 自動轉換系統• EDI• 模組
3
軟體資料表現及系統角色 ( 一 )
• 由程式寫作看資料表現架構
<FORM, 畫面 , 報表… >
系統程式介面< 元件
/ 中介程式… >
< 資料庫 / 檔案… >
@#$$%^&*()_ @#$$%^&*()_
@#$$%^&*()_
………
4
軟體資料表現及系統角色 ( 二 )
<FORM, 畫面 , 報表… >
@#$$%^&*()_ @#$$%^&*()_
@#$$%^&*()_
NETWORKOR
INTERNET
<DATA ,DBServer>
• 由系統運作看資料表現架構
5
軟體資料表現及系統角色 ( 三 )• 由商業運作看資料表現架構
NETWORKOR
INTERNET公司 / 個體 A
公司 / 個體 B
公司 / 個體 C
6
QUESTION
• 公司 A 的 A 小姐欲取得 B 或 C 公司的資料 ,您覺得路徑 X 或路徑 Y 的模式較佳 ? 各有何優缺點 ?• 就你目前學習的程式技能是否能有效達成不同公司間的資料取得• 可以 !HOW! XML 有幫助嗎 ?
7
XML 簡介• 「 XML 」 (Extensible Markup Language) 可擴展標示語言也屬於一種標籤語言, XML 1.0 版規格是在 1998 年 2月正式推出,目前 XML 的相關技術仍然持續在發展和制定中,這只是一個開始,並不是結束。• XML 的目的並不是編排內容,而是用來描述資料,它並沒有如同 HTML 語言的預設標籤,事實上,使用者需要自己定義描述資料所需的各種標籤• XML 文件的基本架構十分簡單,除了標籤名稱是使用者自行定義外,其寫法和 HTML 標籤並沒有什麼不同, XM
L 文件擁有兩個特點需要注意,如下所示:– 良好格式 (Well-Formed)– XML 文件需要驗證 (Validity)
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>
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>
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>
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>
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>
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>
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>
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>
16
Ex-9
• <?xml version="1.0"?>• <!DOCTYPE welcome [• <!ELEMENT welcome (#PCDATA)>• ]>• <welcome>• Welcome Earthling!• </welcome>
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>
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>
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>
20
Xml 基本使用 - 簡單 DEBUG 過程
21
Xml 基本使用 - 簡單 DEBUG 過程( 續 )
22
XML 基本文件設計• 資料表達• 資料庫結合與差異• 欄位與標籤
23
資料表示的思考
24
設計基礎應用• 用一個 XML FILE 表示一個資料表• HOW TO BEGIN• TOOL IS NEEDED?
25
展示 - 例
26
Nodes of Tree view
27
Msxml (Microsoft)
28
MSXML 6.0
29
INSTALLATION MSXML
30
31
INSTALLATION( 續 )• MSXML 直接安裝• IEXMLTLS 下載完之後安裝
1. 雙擊 iexmlts.exe , 然後讓預設值 run 完2. 到 C:\IEXMLTLS 下 找 msxmlval.inf 和 msxmlvw.inf 這二個檔案 , 在該二檔案上按各滑鼠右鍵彈出快顯視窗選擇安裝就完成了安裝程序安裝完了之後 , 你就用 IE 打開任何一個 xml 檔案 , 在ie 工作區內按滑鼠右鍵 , 你可看到多了 validate xml選項
32
安裝選項
33
IEXMLTLS (Microsoft)
34
OTHERS
35
DOM: Document Object Model
• Abstract Tree Produced by XML Parser
36
解讀 VALID-Email 的文件結構Email
Body
ToSubjectCC
From
根元素
Email 的子元素
DATEQ:資料設計 :DATE?
37
38
Xml Notepad
• EXAMPLE FOR EMPLOYEE
39
40
練習• 將上次上課的二個檔案合併成一個檔• 方式
– 觀查– 製作
41
Xml Notepad( 續 )
42
DATA Operation
43
DATA Operation
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>chenhsiu@gens.dhs.org</TO><FROM>b87506017@csie.ntu.edu.tw</FROM><CC>emacs@ms38.url.com.tw</CC><SUBJECT>Hello XML</SUBJECT><BODY>blah, blah</BODY>
</EMAIL>
重點 :文件是需要檢查的
45
DTD & VALID WITH IE
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>b87506017@csie.ntu.edu.tw</FROM>• <CC>emacs@ms38.url.com.tw</CC>• <SUBJECT>Hello XML</SUBJECT>• <BODY>blah, blah</BODY>• </EMAIL>
47
解讀 VALID-Email 的文件結構Email
Body
ToSubjectCC
From
根元素
Email 的子元素
DATEQ:資料設計 :DATE?
48
XML 與 XML DTD 的關係XML
書畫DTD 器物DTD ….
器物甲 器物乙 器物丙 ….
印刷版本 Web Page版本虛擬實境版本 ….
文獻 DTD
49
VALID 結果
50
如何取得 DTD
• 使用某單位或某人已開發的 DTD.(<!DOCTYPE Email PUBLIC “-//OPEN DTD//DTD Emai
l//EN” “http://opendtd.org/dtd/email.dtd”>
• 自行開發 DTD.<!DOCTYPE Email SYSTEM “email.dtd”>
51
相關規則•在上面的例子中 ,XML parser 會用 DTD來驗證文件的有效性 (valid)•直接將 elements 定義在 doctype方括弧 [] 內部•內部 DTD 會被優先處理•若文件包含外部 DTD 及內部 DTD, 會覆蓋 (override) 先前外部 DTD 的定義
52
相關規則 - 外部 DTD 例<!DOCTYPE EMAIL (SYSTEM|PUCLIB) “email.dtd”>
•外部實體– SYSTEM 緊接在 URI 之後 ,用來告訴處理器哪裡可以找到宣告中被參照的物件–對廣大的使用者而言 ,一些 DTD 已經被確立為標準是有效的 ,這時就使用 PUCLIB 關鍵字 ,後面應接一個有效的標準函式庫
•可把文件對實體的宣告寫在另一個外部檔案 ,使用時直接參照外部實體
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>
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 "">
55
IE 讀取未 VALID
56
IE WITH VALID & 外部 DTD 例
57
IE WITH VALID & 外部 DTD 例修訂練習
58
IE WITH VALID & 外部 DTD 例修訂練習
59
IE WITH VALID & 外部 DTD 例修訂練習
60
XML DTD / 註解 (Comments)
範例:<!--3 ELEMENT 版本名稱 (#PCDATA) --> <!ELEMENT editionName (#PCDATA) >
<!--ATTLIST 版本名稱 使用代碼 FIXED "npm-doc-editionName"-->
<!ATTLIST editionName scheme FIXED "npm-doc-editionName">
top related