Tài liệu Java nâng cao: Java và XML pdf

9 577 3
Tài liệu Java nâng cao: Java và XML pdf

Đang tải... (xem toàn văn)

Thông tin tài liệu

Java nâng cao Java XML (phần 1) 16:51:55 20-06-2005 XML được thiết kế để mô tả dữ liệu xác định dữ liệu là gì. Tại sao lại là XML? * XML viết tắt của eXtensible Markup Language * XML là một ngôn ngữ đánh dấu như HTML * XML được thiết kế để mô tả dữ liệu * Các thẻ XML không được định nghĩa lại. Bạn phải định nghĩa các thẻ của riêng bạn * XML sử dụng môt Đặc tả Kiểu Dữ liệu (Data Type Definition - DTD) hoặc một schema để mô tả dữ liệu * XML với một DTD hoặc một Schema được thiết kế để mô tả bản thân * XML là chuẩn của W3C XML trong tương lai của việc phát triển Web. XML sẽ ở khắp mọi nơi. Chúng ta sẽ thấy ngạc nhiên khi thấy được chuẩn XML được phát triển nhanh chóng như thế nào va số lượng các nhà cung cấp phần mềm tuân theo chuẩn này lớn thế nào. Chúng ta tin tưởng rằng XML sẽ trở nên quan trọng trong tương lai của Web XML sẽ trở thành công cụ chuẩn cho tất cả việc thực thi dữ liệu trao đổi dữ liệu 01/ Mở đầu về XML Phần cuối cùng về lập trình Web là ta học về XML. Dưới đây là một file document.xml cơ bản nhất <?xml version="1.0" encoding="UTF-8"?> <document> <greeting> Hello </greeting> <message> Welcome </message> </document> * Internal DTD (đặc tả dữ liệu nội) file này muốn sử dụng cần có phần đặc tả dữ liệu (Data Type Definition-DTD) nội <?xml version="1.0" standalone="yes" encoding="UTF-8"?> <!DOCTYPE document [ <!ELEMENT document (greeting,message)> <!ELEMENT greeting (#PCDATA)> <!ELEMENT message (#PCDATA)> ]> <document> <greeting> Hello </greeting> <message> Welcome </message> </document> * External DTD (đặc tả dữ liệu ngoại) Mặc định của standalone đã là yes rồi. Nếu muốn sử dụng tập tin .dtd ngoại thì khai báo <?xml version="1.0" standalone="no"?> <!DOCTYPE document SYSTEM "mydtd.dtd"> <document> <greeting> Hello </greeting> <message> Welcome </message> </document> Nội dung của file mydtd.dtd <!ELEMENT document (greeting,message)> <!ELEMENT greeting (#PCDATA)> <!ELEMENT message (#PCDATA)> * Định nghĩa thẻ rỗng (không mang dữ liệu) <?xml version="1.0"?> <!DOCTYPE document [ <!ELEMENT document (greeting)> <!ELEMENT greeting EMPTY> ]> <document> <greeting/> </document> * Các tham chiếu thực thể được định nghĩa trước < > ' " & &lt &gt &apos &quot &amp <?xml version="1.0"?> <document> <greeting>This text is inside the &lt;greeting&gt;</greeting> </document> 02/ Qui tắc về kí tự đại diện a* đại diện cho nhiều a hoặc không có a nào a+ đại diện cho nhiều a hoặc ít nhất một a nào a|b chỉ được chứa a hay b nhưng không được chứa cả 2 Ví dụ bạn khai báo <!ELEMENT person(name)*> thì khi đó tài liệu xml của bạn được phép có nhiều cặp thẻ name hoặc không có cặp nào cũng được Nhưng nếu bạn khai báo <!ELEMENT person(name)+> thì khi đó tài liệu xml của bạn được phép có nhiều cặp thẻ name nhưng ít nhất phải có một cặp thẻ 03/ Hiển thị XML trên trình duyệt dùng CSS <?xml version="1.0" standalone="yes"?> <?xml-stylesheet type="text/css" href="hocsinh.css"?> <!DOCTYPE hocsinh [ <!ELEMENT hocsinh (name,class)*> <!ELEMENT name (#PCDATA)> <!ELEMENT class (#PCDATA)> ]> <hocsinh> <name>Bill Gates</name> <class>First</class> </hocsinh> Nội dung file hocsinh.css của bạn name { color: red; font-style: italic; } class { font-weight: bold; font-size: 24; } Sau đó hãy dùng trình duyệt để hiển thị file hocsinh.xml của bạn. Trình duyệt sẽ không hiển thị mã nữa mà hiển thị nội dung đã được định dạng bằng hocsinh.css Bạn cũng có thể khai báo luôn nội dung CSS trong trang XML như sau <?xml version="1.0" standalone="yes"?> <?xml-stylesheet name { color: red; font-style: italic; } class { font-weight: bold; font-size: 24; } ?> <!DOCTYPE hocsinh [ <!ELEMENT hocsinh (name,class)*> <!ELEMENT name (#PCDATA)> <!ELEMENT class (#PCDATA)> ]> <hocsinh> <name>Bill Gates</name> <class>First</class> </hocsinh> 04/ Khai báo thực thể ENTITY <?xml version="1.0"?> <!DOCTYPE document [ <!ELEMENT document (master,date)> <!ELEMENT master (#PCDATA)> <!ELEMENT date (#PCDATA)> <!ENTITY today "January 21,2004"> ]> <document> <master> Mr.John </master> <date> &today; </date> </document> Khi đó date có giá trị là "January 21,2004" 05/ Danh sách thuộc tính ATTLIST Cũng giống như HTML, thẻ trong XML có thuộc tính, ví dụ <student name="Peter"> <?xml version="1.0"?> <!DOCTYPE hocsinh [ <!ELEMENT hocsinh (item)*> <!ELEMENT item (#PCDATA)> <!ATTLIST item hsid CDATA #REQUIRED hsname CDATA #REQUIRED hsage CDATA "18" > ]> <hocsinh> <item hsid="001" hsname="Tracy"></item> </hocsinh> Hoàn toàn tương đương với dữ liệu sau <?xml version="1.0"?> <!DOCTYPE hocsinh [ <!ELEMENT hocsinh (item)*> <!ELEMENT item (hsid,hsname,hsage)> <!ELEMENT hsid (#PCDATA)> <!ELEMENT hsname (#PCDATA)> <!ELEMENT hsage (#PCDATA)> ]> <hocsinh> <item> <hsid>"001"</hsid> <hsname>"Tracy"</hsname> <hsage>"18"</hsage> </item> </hocsinh> * Định nghĩa tổng quát <!ATTLIST item hsid CDATA DEFAULT_VALUE hsname CDATA DEFAULT_VALUE hsage CDATA DEFAULT_VALUE > trong đó CDATA là dữ liệu văn bản đơn giản không có phần định dạng còn DEFAULT_VALUE bao gồm - giá trị mặc định của thuộc tính - #REQUIRED:không có giá trị mặc định nhưng thuộc tính này bắt buộc phải có giá trị - #IMPLIED:không có giá trị mặc định nhưng thuộc tính này không nhất thiết phải có giá trị * Ngoài CDATA còn có các kiểu sau đây - Kiểu danh sách các giá trị mà thuộc tính được phép mang <!ATTLIST item sex (male|female) "male" > Trong khai báo vừa rồi thì thuộc tính sex chỉ được mang 1 trong 2 giá trị male hay female mặc định là "male" - Kiểu ENTITY <?xml version="1.0"?> <!DOCTYPE hocsinh [ <!ELEMENT hocsinh (item)*> <!ELEMENT item (#PCDATA)> <!ATTLIST item birthday ENTITY #IMPLIED > <!ENTITY today "January 21,2004"> ]> <hocsinh> <item birthday="today"></item> </hocsinh> Đưa dữ liệu non-XML vào tài liệu XML Có rất nhiều loại dữ liệu non-XML mà ta cần đưa vào như hình ảnh, âm thanh, file thực thi dùng cú pháp sau <!ENTITY tên SYSTEM giá_trị NDATA loại> với loại chẳng qua là ta tự đặt để dễ nhớ <!ENTITY snapshot SYSTEM "image.gif" NDATA GIF> <!ENTITY runnable SYSTEM "setup.exe" NDATA EXE> Java nâng cao Java XML (phần 2) 16:22:50 21-06-2005 06/ Hiển thị XML trong một trang HTML * XML nằm trong HTML Ta dùng thẻ xml để báo cho IE biết là nội dung là mã XML <xml id=xmldso> <!DOCTYPE hocsinh [ <!ELEMENT hocsinh (name,class)*> <!ELEMENT name (#PCDATA)> <!ELEMENT class (#PCDATA)> ]> <hocsinh> <name>Bill Gates</name> <class>First</class> </hocsinh> </xml> // mã HTML như bình thường * XML nằm ngoài HTML Bạn muốn dùng hocsinh.html để hiển thị hocsinh.xml dùng table để hiển thị dữ liệu. Bạn viết trang hocsinh.html như sau <xml id=xmldso src=hocsinh.xml></xml> <table id=table1 dataSrc=#xmldso border=1 width=100%> <tr> <td width=50%> <p align=center> <span dataFld=name></span> </p> </td> <td width=50%> <p align=center> <span dataFld=class></span> </p> </td> </tr> </table> 07/ XML Object Model - Nạp tài liệu XML <xml id=xmldso src=person.xml></xml> <script> xmldoc=document.all.xmldso - Lấy nút gốc của XML rootNode=xmldoc.documentElement - Lấy nút con đầu tiên firstNode=rootNode.firstChild - Lấy nút con cuối cùng lastNode=rootNode.lastChild - Lấy nút cùng cấp tiếp theo nextNode=firstNode.nextSibling - Lấy nút cùng cấp trước đó previousNode=lastNode.previousSibling - Lấy giá trị text của một nút firstNode.text - Lấy tên của một nút firstNode.nodeName * Dưới đây là tài liệu person.xml <?xml version="1.0"?> <!DOCTYPE person [ <!ELEMENT person (item)*> <!ELEMENT item (name, sur, age)*> <!ELEMENT name (#PCDATA)> <!ELEMENT sur (#PCDATA)> <!ELEMENT age (#PCDATA)> ]> <person> <item> <name>James</name> <sur>Surlivan</sur> <age>26</age> </item> <item> <name>Henry</name> <sur>Heartrow</sur> <age>32</age> </item> </person> * Ta sẽ lấy ra tên người thứ 2 <xml id=xmldso <script> xmldoc=document.all.xmldso rootNode=xmldoc.documentElement lastNode=rootNode.lastChild document.write(lastNode.firstChild.text) </script> Nó sẽ ra "Henry" . Java nâng cao Java và XML (phần 1) 16:51:55 20-06-2005 XML được thiết kế để mô tả dữ liệu và xác định dữ liệu là gì. Tại sao lại là XML? * XML viết. XML Object Model - Nạp tài liệu XML < ;xml id=xmldso src=person .xml& gt;< /xml& gt; <script> xmldoc=document.all.xmldso - Lấy nút gốc của XML

Ngày đăng: 19/01/2014, 22:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan