XML、XML Schema和XSL
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
王有禮教授編著
透視-第13章
3
XML的完整性(well-formed)
文件的第一行必須是XML的版本宣告,如<?xml version="1.0"?>。 文件中只能有一個標籤是樹狀結構的根,如圖13.1中的"<修課資料>"。 起始標籤和結束標籤要成對出現。 空標籤要以"/>"結尾,所謂空標籤為沒有夾住任何資料的標籤,像HTML中的<br>, 在XML中要寫成<br/>。 標籤可以成巢狀排列,但不可交錯,如<A><B>…</B></A>可以,而 <A><B>…</A></B>則不可。 英文字母大小寫是有區別的。 Attribute的設定值一定要以雙引號或以單引號框住。 特殊字元,如<、>、雙引號、單引號等,要以其他符號代替,見表13.1。
浮點數。
格式DD,如06。 格式MM,如09。 格式MM-DD,如09-06。 格式YYYY,如2002。 格式YYYY-MM,如2002-09。 十進位數字。 字串。 時間。
uri
超連結網址。
表13.3 XML Schema常用的資料型態
王有禮教授編著 透視-第13章 11
ElementType
特殊字元 & < > " 代替符號 & < > " 另外,如要註解可用註解標籤“<!--”和“-->”夾住註解。 要了解詳細的XML規格,可以參考下列網址: /xml/reference/standards.html
'
'
表13.1 特殊字元代替符號
王有禮教授編著
透視-第13章
4
XML例子(1/2)
1. 2.
3.
4. 5. 6. 7.
8.
9. 10. 11. 12.
13.
14. 15. 16. 17.
18.
<?xml version="1.0"?> <修課資料> <學生> <姓名>李景維</姓名> <學號>M9903</學號> <課程 選或必修="必"> <名稱>資訊管理</名稱> <代號>IM01</代號> <學分>4</學分> <成績>90</成績> </課程> <課程 選或必修="必"> <名稱>管理數學</名稱> <代號>IM02</代號> <學分>3</學分> <成績>85</成績> </課程> </學生>
資料型態
boolean char date dateTime enumeration true或false。 字元。 日期。 日期和時間。 列舉式的資料,各資料間以空格隔開。
說明
float
gDay gMonth gMonthDay gYear gYearMonth number string time
所有XML Schema的第1行都是<?xml version="1.0"?>。 所有XML Schema樹狀結構的根標籤都是<Schema>。 所有XML文件中每一個標籤內的attributes都要定義。 所有XML文件中的每一個標籤都要定義。 XML Schema文件本身的副檔名是".xdr"。
王有禮教授編著 透視-第13章 13
ElementType之Attributes(2/2)
第11行到第17行是用第二種語法來寫:
<ElementType name="課程" content="mixed" > <attribute type="選或必修" required="yes" /> <element type="名稱" /> <element type="代號" /> <element type="學分" /> <element type=“成績” /> </ElementType>
王有禮教授編著
透視-第13章
9
Attribute Type(1/2)
定義標籤中的attributes是用AttributeType來定義, AttributeType的語法如下:
<AttributeType name="attribute名稱" required="yes"或"no" dt:type="資料型態" dt:value="可選擇的值" default="預設值"/>
name dt:type content
model order
例如圖13.4的第8行:
<ElementType name="成績" content="textOnly" dt:type="number" />
其中name=“成績”表示標籤名稱為“成績”, content=“textOnly”表示標籤所夾的資料為text,dt:type=“number” 表示標籤所夾的資料為十進位數字。
1. <學生> 2. <姓名>吳致賢</姓名> 3. <學號>B9901</學號> 4. <課程 選或必修="必"> 5. <名稱>資訊管理</名稱> 6. <代號>BM01</代號> 7. <學分>4</學分> 8. <成績>88</成績> 9. </課程> 10. <課程 選或必修="選"> 11. <名稱>管理數學</名稱> 12. <代號>BM02</代號> 13. <學分>2</學分> 14. <成績>83</成績> 15. </課程> 16. </學生> 17. </修課資料>
第十三章 XML、XML Schema和XSL
講授大綱: XML簡介 XML Schema XML文件的驗證 XSL簡介 以程式處理XSL程式
王有禮教授編著
透視-第13章
1
XML 簡介
XML的全名是Extensible Markup Language,是用來描 述文件的一種標準語言,為網際網路聯盟(World Wide Web Consortium, 簡稱W3C)於1998年2月所通過的標準, 由於具有許多優點,所以被廣泛的使用在電子商務中。 許多電腦廠商,如Adobe、IBM、Microsoft、Netscape、 Oracle、Sun等等都採用了XML技術,影響所及各行各業 也都有XML相關的應用,如:XQL(XML Query Language)、VoxML(Voice Markup Language)、 MathML(Mathematical Markup Language)、 WML(wireless Markup Language)、SOAP(Simple Object Access Protocol)、… 等等。 XML和HTML一樣都是使用標籤來定義文件,所不同的地 方是,所有HTML的標籤都有特殊的意義,而所有XML的 標籤都是使用者自行定義的。
xml簡介xmlschemaxml文件的驗證xsl簡介以aspnet程式處理xsl程式透視aspnet第13章2王有禮教授編著xml簡介xml的全名是extensiblemarkuplanguage是用來描述文件的一種標準語言為網際網路聯盟worldwidewebconsortium簡稱w3c于1998年2月所通過的標準由于具有許多優點所以被廣泛的使用在電子商務中
王有禮教授編著
透視-第13章
2
XML例子
1. 2. 3. 4.
5.
6. 7. 8. 9.
10.
11. 12. 13. 14.
15.
16. 17. 18.
<修課資料> <學生> <姓名>李景維</姓名> <學號>M9903</學號> <課程 選或必修="必"> <名稱>資訊管理</名稱> <代號>IM01</代號> <學分>4</學分> <成績>90</成績> </課程> <課程 選或必修="必"> <名稱>管理數學</名稱> <代號>IM02</代號> <學分>3</學分> <成績>85</成績> </課程> </學生> </修課資料> 圖13.1 以XML描述修課資料
若required="yes",則表示此attribute一定要在所屬標籤 中描述。若 required ="no",則表示此attribute在所屬標籤 中不描述也可以。 例如圖13.1中,只有課程標籤中有1個attribute"選或必修", 所以這個attribute在圖13.4中要定義,如下:
王有禮教授編著
透視-第13章
14
<element>標籤
<element type="內含標籤名稱" minOccurs="0"或"1" maxOccurs="1"或"*" /> 其中"*"表是可出現多次。由此語法可看出 <element>在定義內含標籤出現的次數。
12
王有禮教授編著
透視-第13章
ElementType之Attributes(1/2)
Attribute名稱 說明 標籤名稱。 資料型態。 textOnly:只包含text資料,無內含標籤。 eltOnly:只包含內含標籤,無text資料。 mixed:包含內含標籤,也包含text資料。 empty:空標籤,不含任何text資料及標籤。 可否動態增加標籤或attribute。 closed:不可,open:可(預設值)。 內含標籤出現的次數及順序。 one:只可一次;seq:依序出現; many:不限次數及任意順序。
王有禮教授編著
透視-第13章
8
根標籤
根標籤的寫法:
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
在根標籤中用到的兩個attributes:xmlns及xmlns:dt,此 二attributes是用來描述XML Schema文件用到的 namespace。
王有禮教授編著 透視-第13章 10
Attribute Type(2/2)
<AttributeType name= "選或必修" dt:type="enumeration" dt:value="選 必" /> 其中name=“選或必修”表 示“選或必修”是一個 attribute。 dt:type=“enumeration” 表示此attribute的值須從定義 的列舉值中擇一。 dt:value=“選 必”表示列舉 的值有“選”和“必”,亦 即課程不是選修就是必修。
王有禮教授編著 透視-第13章 6
XML Schema
以往常用來描述XML文件的結構的語言是 DTD(Document Type Definition),由於限制較多,使用 時較不方便,近來已被XML Schema所取代。 XML Schema已於2001年5月2日經W3C通過成為一種標 準。下面我們將對XML Schema做一個簡單的介紹,至 於XML Schema詳細的內容,請見 /xml/reference/standards.html XML Schema主要的工作包含下列五點:
圖13.2 WebPage1301.xml
王有禮教授編著 透視-第13章 5
XML例子(2/2)
文件的副檔名是".xml"。 ".xml"的文件可以透過IE瀏 覽器(internet expቤተ መጻሕፍቲ ባይዱorer)加 以瀏覽, WebPage1301.xml瀏覽後 的畫面如圖13.3。
圖13.3 瀏覽WebPage1301.xml
所有XML文件中的每一個標籤都要定義,在XML Schema中是 用ElementType來定義標籤(見圖13.4中的第5~11、18、23行), ElementType的語法有兩種如下:
<ElementType name="標籤名稱" content= "textOnly"或"eltOnly"或"mixed"或"empty" dt:type="資料型態" model="open"或"closed" order="one"或"seq"或"many"/> <ElementType name="標籤名稱" … > <attribute … /> … <element … /> … </ElementType>
王有禮教授編著
透視-第13章
7
XML Schema中常用的標籤
標籤名稱
Schema AttributeType ElementType attribute element group description
說明
XML Schema樹狀結構的根標籤。 描述XML文件中標籤的attribute。 描述XML文件中的標籤。 列舉XML文件中標籤所含的attribute。 列舉XML文件中標籤所含的標籤。 設定標籤的集合。 註解標籤。