1. Trang chủ
  2. » Công Nghệ Thông Tin

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

9 577 3
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài liệu Java nâng cao: Java và XML PDF
Năm xuất bản 2005
Định dạng
Số trang 9
Dung lượng 55 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

* 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

Trang 1

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 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 và XML sẽ trở thành công cụ chuẩn cho tất cả việc thực thi dữ liệu và 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)>

Trang 2

<!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>

Trang 3

* 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

Trang 4

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)>

Trang 5

<!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>

Trang 6

</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 và 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>

Trang 7

Đư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 và 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>

Trang 8

<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

Trang 9

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 src=person.xml></xml> <script>

xmldoc=document.all.xmldso

rootNode=xmldoc.documentElement lastNode=rootNode.lastChild

document.write(lastNode.firstChild.text) </script>

Nó sẽ ra "Henry"

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

TỪ KHÓA LIÊN QUAN

w