Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 3: Thao tác dữ liệu XML pdf
MIỄN PHÍ
Số trang
102
Kích thước
365.9 KB
Định dạng
PDF
Lượt xem
1032

Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 3: Thao tác dữ liệu XML pdf

Nội dung xem thử

Mô tả chi tiết

Chuẩn bị cho kỳ thi 733 về Phát triển ứng dụng DB2 9, Phần 3: Thao tác dữ

liệu XML

Lưu trữ và lấy ra dữ liệu XML thông qua ứng dụng của bạn

Donald E. Payne, Chuyên gia tư vấn IT, IBM

Tóm tắt: Tìm hiểu DB2® của IBM® phân tích cú pháp XML, xử lý khoảng

trống và tuần tự hóa XML như thế nào và xem xét cách mã hóa tài liệu và kiểu dữ

liệu phía khách ảnh hưởng đến việc phân tích cú pháp và tuần tự hóa ra sao. Cũng

tìm hiểu cách DB2 xác nhận hợp lệ tài liệu XML dựa vào một lược đồ XML như

thế nào cũng như làm thế nào để sử dụng các hàm SQL/XML để "băm nhỏ" XML

thành dữ liệu quan hệ, lắp ráp ngược lại dữ liệu quan hệ thành XML và xuất bản

dữ liệu XML như là dữ liệu quan hệ.

Trước khi bạn bắt đầu

Về loạt hướng dẫn này

Chứng chỉ Nhà phát triển ứng dụng được IBM công nhận xác nhận với những

người khác rằng bạn là một nhà phát triển ứng dụng mức trung cấp hoặc cao cấp

về IBM DB2® dành cho Linux®, UNIX® và Windows® và chỉ ra rằng bạn có

các kỹ năng giỏi trong tất cả các nhiệm vụ lập trình chung cũng như lập trình SQL

nhúng, lập trình ODBC/CLI, lập trình .NET hoặc lập trình Java ™.

Loạt bài viết gồm chín hướng dẫn miễn phí này được thiết kế để trợ giúp cho bạn

chuẩn bị cho kỳ thi lấy chứng chỉ Nhà phát triển ứng dụng DB2 9 dành cho Linux,

UNIX và Windows (kỳ thi 733). Mỗi hướng dẫn bao gồm một liên kết đến một

bản tải về dùng thử miễn phí DB2 9 cho Linux, UNIX và Windows. Các hướng

dẫn này cung cấp một cơ sở chắc chắn cho mỗi phần của kỳ thi. Tuy nhiên, bạn

không nên chỉ dựa vào các hướng dẫn này như là sự chuẩn bị duy nhất cho kỳ thi

của bạn.

Hướng dẫn này nói về cái gì?

Hướng dẫn này dạy cho bạn về cách DB2 và ứng dụng khách DB2 thao tác dữ liệu

XML như thế nào. Bạn sẽ tìm hiểu:

 DB2 xử lý khoảng trống ở đầu vào như thế nào.

 DB2 xác định bảng mã của một tài liệu XML ở đầu vào và đầu ra như thế

nào.

 DB2 có thể xác nhận tính hợp lệ XML ở đầu vào như thế nào.

 Làm thế nào để thi hành một truy vấn XQuery hay XPath và nhận biết các

kết quả của nó.

 Làm thế nào để phân rã hoặc băm nhỏ, đầu vào XML thành các hàng trong

bảng quan hệ.

 Làm thế nào để xuất bản các dữ liệu quan hệ dưới dạng XML.

 Làm thế nào để xuất bản các dữ liệu XML như là các dữ liệu quan hệ.

Đây là bài thứ ba trong một loạt bài viết gồm chín hướng dẫn được thiết kế để

giúp bạn chuẩn bị cho kỳ thi lấy chứng chỉ Nhà phát triển ứng dụng DB2 9 (kỳ thi

733). Tài liệu hướng dẫn này trình bày các mục tiêu trong Phần 3 của kỳ thi, mang

tên "Thao tác dữ liệu XML".

Các mục tiêu

Sau khi hoàn thành hướng dẫn này, bạn sẽ có khả năng viết các ứng dụng để lưu

trữ và lấy ra dữ liệu XML.

Các điều kiện cần trước

Hướng dẫn này được viết cho các nhà phát triển DB2, những người đã quen thuộc

với các khái niệm sau:

 XML, bao gồm:

o Các phần tử.

o Các thuộc tính.

o Các tài liệu.

o Các tài liệu đúng ngữ pháp và cú pháp.

o Các khai báo XML.

o Các vùng tên.

 XPath, bao gồm mô hình dữ liệu XML (XDM - XML Data Model):

o Các nút.

o Các giá trị nguyên tử.

o Các mục.

o Các chuỗi.

o Trục: Cha mẹ, con cái, cháu chắt và v.v.

o Các bước.

o Các ký tự đại diện.

o Các vị từ

 XQuery:

o Các hàm db2-fn xmlcolumn(), sqlquery().

o Biểu thức FLWOR: for, let, where, order by, return.

o Đoạn mào đầu.

 Lược đồ XML, xác nhận hợp lệ và các vùng tên.

 Các khái niệm về mã hóa ký tự và mã Unicode.

Đối với các ví dụ mã, bạn cần quen với

 Ngôn ngữ lập trình.

 Bất cứ giao diện hay các thư viện nào được sử dụng, ví dụ như CLI và

JDBC.

 Các kiểu dữ liệu mà ngôn ngữ lập trình đó hỗ trợ và chúng ánh xạ tương

ứng tới các kiểu.

Xem phần Tài nguyên để tìm các đường liên kết đến những thông tin này.

Các yêu cầu hệ thống

Để hoàn thành hướng dẫn này, bạn cần những điều sau đây:

 Một máy tính chạy Linux, UNIX hoặc Windows, đã cài đặt FixPack 1 DB2

9.

 Một trình soạn thảo, ví dụ như Rational Application Developer (Nhà phát

triển ứng dụng Rational), Windows Notepad hoặc vi (xem Tài nguyên về hướng

dẫn này để biết thêm thông tin).

 Một trình biên dịch để chạy các ví dụ mã. Trang Trung tâm thông tin DB2

về các ngôn ngữ lập trình và các trình biên dịch được hỗ trợ để phát triển ứng dụng

cơ sở dữ liệu liên kết tới các trang liệt kê các trình biên dịch được hỗ trợ trong tất

cả các ngôn ngữ được hỗ trợ:

o Các trình biên dịch C được hỗ trợ: Xem phần Tài nguyên, mục

"Nhận sản phẩm và các công nghệ".

o Đối với ngôn ngữ Java, DB2 trên Windows đi kèm với một SDK

Java 2, phiên bản 5, bao gồm trình biên dịch javac và môi trường thời gian chạy

(JRE), dưới thư mục SQLLIB\java\jdk. (Trên hầu hết các nền tảng, DB2 9 hỗ trợ

Java 2 SDK, phiên bản 1.4.2 đến 5. Xem thông tin trực tuyến DB2, "Supported

Java application development software," để biết thêm chi tiết). Các JDK bao gồm

JRE trong thư mục SQLLIB\java\jdk\jre. Biến môi trường PATH của bạn cần phải

bao gồm các thư mục bin trong thư mục jdk; CLASSPATH cần phải bao gồm một

số các tệp tin JAR và ZIP dưới thư mục SQLLIB\java.

 Cần một trình duyệt Web để tiện xem một tệp tin XML, kiểm tra xem nó có

đúng khuôn dạng không và tìm ra các lỗi.

Chạy các ví dụ

Nếu bạn chạy các ví dụ SQL từ hướng dẫn này trong trình xử lý dòng lệnh (CLP)

DB2 db2, hãy xem phần có tên "DB2 Command Line Processor (CLP) behavior

and options".

Xử lý khoảng trống trong việc phân tích cú pháp và xác nhận hợp lệ XML

XML thay đổi theo việc phân tích cú pháp (đầu vào)

Khi DB2 hoặc một trình xử lý XML khác phân tích cú pháp XML đầu vào -- có

nghĩa là, chuyển đổi nó từ các ký tự thành một cấu trúc nội tại -- nó tạo ra một số

thay đổi với XML trong quá trình xử lý, như tiêu chuẩn XML đã định rõ. Một số

thay đổi này là quan trọng nếu bạn quan tâm đến các yêu cầu lưu trữ hoặc các yêu

cầu về bộ nhớ của XML trong DB2 hoặc trong ứng dụng khách. Nó cũng có thể

quan trọng nếu bạn quan tâm đến các nút văn bản chỉ chứa khoảng trống, vẻ ngoài

của XML khi lấy ra và tuần tự hóa trở lại thành các ký tự hoặc các chữ ký số.

Trình phân tích cú pháp (parser) xử lý đầu vào XML như sau:

1. Trình phân tích cú pháp sẽ xác định bảng mã. Nếu bảng mã của mã nguồn

không tương đương với bảng mã bên trong DB2 là UTF-8, thì các ký tự mã nguồn

được chuyển mã, hoặc được chuyển đổi từ bảng mã nguồn thành bảng mã của

DB2. Xem phần "Mã hóa XML", mục "Bảng mã nào?" để biết thêm thông tin.

2. Các ký tự hết dòng là carriage return (CR, hex code 0xD) và sang dòng line

feed (LF, hex code 0xA). Các hệ điều hành khác nhau (DOS/Windows,

UNIX/Linux, Mac OS hay OS X) tuân theo các quy ước khác nhau để kết thúc các

dòng. Các ký tự này được tiêu chuẩn hóa, hay là chuyển đổi thành chỉ một dạng,

LF hoặc 0xA.

3. Trình phân tích cú pháp kiểm tra một tài liệu đúng ngữ pháp và cú pháp.

4. Các thực thể XML bao gồm các thực thể đã định nghĩa sẵn như & và

" và các thực thể được định nghĩa trong một DTD. Các tham chiếu thực thể

trong tài liệu được khai triển hoặc được chuyển đổi thành giá trị của thực thể. (Các

mã ký tự đã khai triển của các thực thể đã định nghĩa sẵn là nhỏ hơn thực thể hay

tham chiếu ban đầu). Bất kỳ DTD nội tại nào sẽ được loại bỏ.

5. Khoảng trống là một thuật ngữ tóm bắt mọi (catch-all) ký tự không được in

ra, thường là:

o dấu cách (mã hex là 0x20).

o dấu tab (mã hex 0x9).

o Các ký tự hết dòng (như nói trên).

Khoảng trống ranh giới có thể được loại bỏ dựa trên các quy tắc mà bạn sẽ đọc

trong phần "Phân tích cú pháp và khoảng trống ranh giới" dưới đây.

6. Các tham chiếu ký tự XML chẳng hạn như € (€, biểu tượng đồng

euro) được khai triển hoặc chuyển đổi thành mã ký tự thực tế trong UTF-8. Giống

như với các tham chiếu thực thể đã định nghĩa sẵn, các mã ký tự đã khai triển

thường nhỏ hơn các tham chiếu ban đầu.

7. Khi xác nhận hợp lệ, khoảng trống có thể bỏ qua sẽ được loại bỏ. Xem

phần "Xác nhận hợp lệ và khoảng trống có thể bỏ qua" dưới đây để biết thêm

thông tin.

Các chú thích XML (<!-- comment -->) không được loại bỏ.

Xem phần Tải về để tìm các mã mẫu giải thích việc phân tích cú pháp và xác nhận

hợp lệ thay đổi khoảng trống như thế nào.

Lời khuyên: Các tùy chọn -n và -q của CLP DB2 có thể ảnh hưởng đến khoảng

trống trong chuỗi ký tự bằng chữ trước khi chúng đi tới DB2. Xem phần "DB2

Command Line Processor (CLP) behavior and options" (Hành vi và các tùy chọn

của trình xử lý dòng lệnh DB2) để biết thêm thông tin.

Phân tích cú pháp và khoảng trống ranh giới

Khi bạn tạo ra XML, nó thường bao gồm thêm khoảng trống ranh giới để làm cho

nó "đẹp" và dễ đọc hơn. Khoảng trống ranh giới trong một tài liệu XML là văn

bản chỉ chứa các khoảng trống tại ranh giới giữa hai thẻ XML, mà không có ký tự

không phải khoảng trống nào khác.

Liệt kê1. Tài liệu XML mẫu với việc xử lý khoảng trống

<customerinfo xmlns="http://posample.org" Cid=' 1018 ' >

<name> </name>

<addr country=" Canada

ca " xml:space="preserve">

<street> </street>

<city> </city>

<prov-state> </prov-state>

<pcode-zip> </pcode-zip>

</addr>

<phone type=" "> 416-555-1358 </phone>

</customerinfo>

Trong liệt kê 1, có khoảng trống ranh giới giữa mỗi thẻ và thẻ tiếp theo. Ví dụ, có

khoảng trống:

 Giữa thẻ bắt đầu <customerinfo Cid=' 1018 '> và thẻ bắt đầu <name>

 Giữa thẻ bắt đầu </name> và thẻ kết thúc </name>

 Giữa thẻ kết thúc </phone> và thẻ kết thúc </customerinfo>

Nếu việc phân tích cú pháp không bỏ đi khoảng trống này, một tài liệu "đẹp" đã

phân tích xong sẽ có nhiều phần tử có nội dung hỗn hợp -- một sự hỗn hợp của các

phần tử con và các nút văn bản -- và nhiều nút văn bản không có gì khác ngoài

những khoảng trống.

Một giá trị thuộc tính không phải là khoảng trống ranh giới, thậm chí nếu tất cả nó

chỉ là các khoảng trống, như được gõ vào. Trong Liệt kê 1, khoảng trống xung

quanh con số 1018, các từ "Canada ca" và số điện thoại "516-555-1358" có thể là

các dữ liệu không đúng dạng, nhưng nó không phải là khoảng trống ranh giới.

Dưới đây là các quy tắc để loại bỏ hoặc giữ lại khoảng trống ranh giới, theo thứ tự

ưu tiên giảm dần:

1. Nếu XML chứa một phần tử với thuộc tính xml:space="preserve", thì trình

phân tích cú pháp sẽ giữ lại các khoảng trống ranh giới trong phần tử đó và mọi

phần tử con.

2. Nếu bạn chèn XML với một hàm tường minh XMLPARSE() và chỉ rõ hoặc

tùy chọn PRESERVE WHITESPACE hoặc tùy chọn STRIP WHITESPACE, thì

trình phân tích cú pháp sẽ giữ lại hoặc loại bỏ khoảng trống ranh giới như được chỉ

thị.

3. Nếu bạn chèn XML với hàm tường minh XMLPARSE() và không chỉ rõ

hoặc tùy chọn PRESERVE WHITESPACE hoặc tùy chọn STRIP WHITESPACE,

thì khoảng trống ranh giới sẽ bị loại bỏ, vì đó là mặc định cho hàm XMLPARSE()

4. Việc phân tích cú pháp sẽ ngầm xảy ra khi bạn chèn XML như là một chuỗi

ký tự bằng chữ, biến chủ hoặc cái đánh dấu tham số (parameter marker) mà không

có hàm XMLPARSE() hoặc XMLVALIDATE(). (XMLVALIDATE() thực hiện

Tải ngay đi em, còn do dự, trời tối mất!