You are on page 1of 32

HƯỚNG DẪN BÀI TẬP MÔN XML

Phần 1: XML với NetBeans


Bước 1: Tạo một project

Bước 2: Thêm một file.xml

Bước 3- Chọn loại file: XML Document

Bước 4- Chọn loại tài liệu


Bước 5- Kích Finish
Bước 6- Sửa nội dung theo yêu cầu

Bước 7- Xem XML với trình duyệt:- Kích phải vào editor, chọn View
Kiểm tra Well-form cho XML- Chọn Check XML

Kiểm tra Validation cho XML- Chọn Validate XML


Nhờ NetBeans sinh DTD- Chọn Generate DTD
(1) Đặt tên cho file.dtd

(2) Kết qủa được sinh ra:


Sau khi có DTD, nên sửa lại file XML để chỉ định DTD

Nếu bây giờ kiểm tra Validation (chọn Validate XML) thì kết qủa sẽ không còn lỗi.

Phần 2: Hướng dẫn Assignments


XML-Assignment- Module 1: Introduction to XML
Tạo file.XML chứa một danh sách gồm 10 cuốn sách. Minh họa sau minh họa danh sách có 1 cuốn sách:

XML-Assignment- Module 2: Namespaces

Global Express ở Mỹ là nhà cung cấp hàng đầu về dịch vụ vận chuyển nhanh bằng đường hàng không và
bảo hiểm kho (hậu cần-logistics). Công ty này sở hữu một mạng lưới rộng khắp 20 địa điểm. Mỗi văn
phòng của công ty duy trì một bộ lưu trữ các thư vận chuyển trên cơ sở từng ngày. Các thư này là các bản
viết trên giấy (hard copy) nên có khả năng (prone) bị mất mát. Để giải quyết vấn đề này, công ty quyết
định lưu trữ thông tin vào máy tính để dữ liệu có thể truyền đi theo dạng XML.
Hãy tạo tập tin Order.xml theo cấu trúc gồm các thẻ và các thuộc tính trong đề.
Khi xem xét 5 văn phòng và 5 tập dữ liệu, dữ liệu trùng lắp là rất lớn, chẳng hạn như tên khách hàng ở
New York có thể trùng tên khách hàng ở Chicago. Do vậy, các namespaces phải được dùng để khai báo
các thẻ nhờ đó phân biệt các dữ liệu trùng lắp này. Hãy dùng các khai báo entity khi cần thiết trong tài liệu
XML.

Nhận xét

 Ở chương 2, chúng ta chưa học về DTD do vậy chúng ta không biết cách khai báo entity.
 Chúng ta sẽ ấn định các namespace tùy ý để phân biệt dữ liệu.
 Namespace mặc định không có prefix.
 Namespace không mặc định phải có prefix.
 Thay thế (override) namespace mặc định cho 1 thẻ bằng cách chỉ định xmlns ngay trong thẻ đó.
 Trong bài tập này, chỉ cần kiểm tra well-formed, không kiểm tra validation.
 Một dạng mẫu có thể như hình dưới đây, trong đó có sử dụng namespace mặc định, namespace
không mặc định, override namespace mặc định cho thẻ và cho thuộc tính:
 Namespace là các chuỗi ký tự nên theo dạng http://... và không được dùng kiểm tra valiadation.
Bạn tự thêm 3 invoice nữa và sử dụng các namespace tùy ý.

XML-Assignment- Module 3: DTDs


Dịch vụ chuyển bưu phẩm
XYZ có các văn phòng trên
toàn quốc. Mỗi văn phòng có
các chi nhánh riêng. Các bưu
phẩm từ các chi nhánh được
thu gom, sắp xếp tại văn
phòng.

Mỗi văn phòng duy trì một hồ


sơ về các bưu phẩm đã nhận
và gửi đi.

Các văn phòng không muốn


lưu trữ trên giấy (hard copy)
các hồ sơ này nữa mà muốn
lưu trữ trong máy tính sử dụng
XML.

Bây giờ, vấn đề về khả năng


mất nhất quán dữ liệu đã được
dự báo nên một bộ các thẻ cần
được chuẩn hóa.

Bạn hãy viết một DTD cho bài


toán trên rồi test DTD bằng
một tài liệu XML với các dữ
liệu không hợp lệ (fake).

Bạn phải bảo đảm rằng các thẻ


về địa chỉ phải hợp lý đủ để
giúp phân biệt nhà biệt thự,
nhà building, chung cư,…
giúp xác định đúng địa chỉ.

Gợi ý: Đọc nội dung ở hình


bên trái

Bước 1: Tạo file DTD


New File/ Category: XML, File type: DTD Entity
Viết khai báo cấu trúc DTD. Chẳng hạn như:
Sau đó tạo tập tin XML
Sau khi chỉ định DTD, môi trường NetBeans sẽ hỗ trợ tự động các thẻ con thành phần mỗi khi chúng ta gõ ký tự
‘<’.
Check validation cho tài liệu: Kết qủa: (ENTITY không được phân tích)
Bạn có thể tạo 1 courier khác và thử viết sai các dữ liệu hay thiếu thẻ con, thiếu thuộc tính để xem kết qủa khi
check validation..

XML-Assignment- Module 4: XML Schema

Một file xml được dùng để biểu


diễn dữ liệu được gom từ một
web site bán hàng gồm những
thông tin sau:
Item-name: mang trị “paper”, ...
Item-inventory-id: có trị là 1 ký
chữ + 5 ký số như “F12333”, …
Item-unit-price: trị số thực >1.0
Count-in-stock: số >=0
Stock-bin: mã kho bắt đầu bằng
‘B’ theo sau 3 ký số

1- Tạo một schema file trong đó


định nghĩa các thẻ , kiểu dữ liệu
và hiện thực các giới hạn về trị.
2- Tạo xml file chứa một số dữ
liệu mẫu theo schema này và bảo
đảm tài liệu là well-formed.
3- Bảo đảm schema file làm việc
tốt với xml file.

Bước 1: add file/ XML/XML Schema/ Đặt tên Items.xsd


Bước 2: Nhập nội dung cho file Item.xsd
Bước 3: add file/XML/ XML document/ Đặt tên Items.xml
Document type: XML Schema-Constrained Document, chỉ định Schema URI: Items.xsd
Root name: Items
Kết qủa
Bạn có thể đưa vào các trị không hợp lệ như:
<Item-inventory-id> F123 </Item-inventory-id> hay là
<Stock-bin> B12345678 </Stock-bin> sau đó check validation để xem kết qủa.

XML-Assignment- Module 5: StyleSheet

Một đại học muốn hiển thị kết qủa thi của sinh viên trong tất cả các học kỳ dùng XML và CSS theo như hình vẽ.
Ở đỉnh màn hình, tên trường được trình bầy chữ trắng trên nền đen và có đường viền. Sau đó là địa chỉ của trường
cũng trình bầy tương tự nhưng không cần làm nổi như vậy.
Các kết qủa được hiển thị theo cách sau:
- Số học kỳ: nền đen chữ trắng
- Tên sinh viên: nền xám chữ trắng
- Sau đó là khối các môn học và điểm của môn học này (nền trắng chữ đen)
Dùng XML và CSS để thực hiện điều này.

( Bài mẫu này cố tình định dạng mầu sắc khác với đề bài)
Bước 1: tạo file.xml
<?xml version="1.0" encoding="UTF-8"?>

<university>
<u-name>University XYZ </u-name>
<adress>123 St. Paul </adress>
<semester>
<semester-name>Semester 1</semester-name>
<subject>
<subject-name>Computer Fundamentals</subject-name>
<student> <name>Ton</name> <score>4</score> </student>
<student> <name>Ngo</name> <score>7</score> </student>
<student> <name>Khong</name> <score>6</score> </student>
</subject>
<subject>
<subject-name> Programming with C</subject-name>
<student> <name>Tru</name> <score>4</score> </student>
<student> <name>Bat</name> <score>7</score> </student>
<student> <name>Gioi</name> <score>2</score> </student>
</subject>
<subject>
<subject-name>SQL Basics</subject-name>
<student> <name>Duong</name> <score>4</score> </student>
<student> <name>Tam</name> <score>7</score> </student>
<student> <name>Tang</name> <score>9</score> </student>
</subject>
</semester>
<semester>
<semester-name>Semester 2</semester-name>
<subject>
<subject-name>XML</subject-name>
<student> <name>Tran</name> <score>8</score> </student>
<student> <name>Hoang</name> <score>5</score> </student>
<student> <name>Hon</name> <score>3</score> </student>
</subject>
<subject>
<subject-name>Java Distributed</subject-name>
<student> <name>Truong</name> <score>7</score> </student>
<student> <name>Khoa</name> <score>8</score> </student>
<student> <name>Bang</name> <score>5</score> </student>
</subject>
</semester>
</university>

Bước 2: tạo file Cascading Style Sheet


Nên sử dụng Dreamweaver để có trợ giúp về CSS tốt.
Nội dung Scores.css (Định dạng mầu sắc khác với đề bài)

Mỗi student là 1 khối, định dạng này sẽ được thửa kết xuống 2 thẻ
con <name> và <score>
text-indent: 20%; thụt chữ vào 20%

Kết qủa:
XML-Assignment- Module 6: XSL ans XSLT

Tình huống: Công ty quản lý bất động sản


Công ty Navigator duy trì
dữ liệu về vị trí và tài chánh
của các phòng trưng bầy
bao gồm: số chi nhánh, số
tiền thuê nhà (rent), số tiền
vay (loan), số nhân viên
làm việc tại chi nhánh.
Thống tin về một chi
nhánh:
- Nhân viên được chia
thành từng đợt tuển
dụng(batch)
- Số tiền phải trả cho chủ
nhà (landlord)
- Tiền trợ cấp hằng ngày
dựa trên thâm niên của
nhân viên (seniority).
Hãy tạo file XML về nhân
sự. Sử dụng XSL để chuyển
tài liệu XML thành HTML
giúp tách biệt từng đoạn
giúp người đọc (auditor) dễ
hiểu.
Nhận xét: Nhân viên cùng
đợt tuyển dụng có cùng
tiền trợ cấp  allowance
là thuộc tính của batch

Bước 1: Với NetBeans, tạo file xml có dạng như sau:


Bước 2: Thêm file: loại XSL Stylesheet
Kết qủa
XML-Assignment- Module 7: More on XSLT

Alveira Technologies, là một doanh nghiệp (firm) xuất mã nguồn đóng tại San Jose, lưu trữ thông tin về nhân viên
theo dạng XML. Đột nhiên, người quản lý quyết định chuyển (di trú- migrate) dữ liệu này sang dạng HTML. Một
ứng dụng được cần đến để thực hiện yêu cầu này. Hãy dùng XPATH và XSLT để đạt được kết qủa mong muốn.

Gợi ý:
Tạo file.xml với:
Thẻ gốc: <departments> mô tả cho danh sách phòng ban chứa nhiều thẻ con <department>
Thẻ <department> chứa các thẻ con
<dept-name>: tên phòng ban
và một số thẻ <employee> cho nhân viên thuộc phòng này.
Thẻ <employee> có các thẻ con: <name> <birth-year> <hired-date> <level> <year-income>
Tạo file.xsl xử lý file.xml tương tự bài trên.
Danh sách nhân viên nên được trình bầy theo dạng:

Tên phòng ban


name birth year hired date level year income

 Giống Assignment 6 ở trên

XML-Assignment- Module 8: DOM and SAX

Tạo file xml chứa


danh sách 10 tài
khoản ngân hàng với
các thông tin (xem
bảng trong đề bài)
cùng với DTD giúp
kiểm tra validation
cho tài liệu xml này.
Dùng ngôn ngữ
Javascript trong
file.html truy xuất tập
tin xml này rồi trình
bầy theo dạng bảng
như đề bài.

Bài này nên làm với


môi trường
Dreamweaver vì môi
trường NetBeans
không xem ngay
file.htm với trình
duyệt.

Bước 1: Tạo Accounts.dtd

Bước 2: Tạo Accounts.xml


Nhân đây minh họa việc xuất cấu trúc cây XML này

Bước 3: Tạo PrintNodes.htm để xuất cấu trúc cây XML


Kết qủa:

Dựa trên dữ liệu đã được xuất, bạn có thể


vẽ ra cấu trúc cây của tài liệu XML này.

Bước 4: Tạo Accounts.htm


Kết qủa
XML-Assignment- Module 9: XML DOM and SAX Objects

Sử dụng SAX Parser để tạo ra một file.html từ file movie.xml

Dùng môi trường NetBeans

Bước 1 – Tạo DTD

Bước 2 – Tạo XML


Bước 3 – Tạo java class giúp chuyển dịch XML  HTML

xuất ra màn hình để xem


Kết quả dịch
Khi kích đôi vào movies.html

You might also like