intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:102

101
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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

Chủ đề:
Lưu

Nội dung Text: 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

  1. 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
  2. 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".
  3. 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:  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. o XPath, bao gồm mô hình dữ liệu XML (XDM - XML Data Model): 
  4. 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ừ o XQuery:  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. o 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.
  5. 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ợ: Các trình biên dịch C được hỗ trợ: Xem phần Tài nguyên, mục o "Nhận sản phẩm và các công nghệ". Đối với ngôn ngữ Java, DB2 trên Windows đi kèm với một SDK o 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
  6. 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:
  7. 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 1. 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. Các ký tự hết dòng là carriage return (CR, hex code 0xD) và sang dòng line 2. 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. 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. 3. Các thực thể XML bao gồm các thực thể đã định nghĩa sẵn như & và 4. " 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ỏ. Khoảng trống là một thuật ngữ tóm bắt mọi (catch-all) ký tự không được in 5. ra, thường là: 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). o 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.
  8. Các tham chiếu ký tự XML chẳng hạn như € (€, biểu tượng đồng 6. 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. Khi xác nhận hợp lệ, khoảng trống có thể bỏ qua sẽ được loại bỏ. Xem 7. 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 () 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
  9. 416-555-1358 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 và thẻ bắt đầu  Giữa thẻ bắt đầu và thẻ kết thúc 
  10. Giữa thẻ kết thúc và thẻ kết thúc  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: Nếu XML chứa một phần tử với thuộc tính xml:space="preserve", thì trình 1. 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. Nếu bạn chèn XML với một hàm tường minh XMLPARSE() và chỉ rõ hoặc 2. 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ị. Nếu bạn chèn XML với hàm tường minh XMLPARSE() và không chỉ rõ 3. 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() 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 4. 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
  11. việc phân tích cú pháp để xác nhận hợp lệ, là tường minh thực sự và bỏ qua quy tắc này). Trong việc phân tích cú pháp ngầm ẩn trong một ứng dụng CLI: Bạn có thể dùng lệnh SET CURRENT IMPLICIT XMLPARSE o OPTION = 'value' trong phiên làm việc của bạn, ở đây value sẽ nhận giá trị hoặc là PRESERVE WHITESPACE hoặc STRIP WHITESPACE. Nếu bạn làm thế, thì trình phân tích cú pháp sẽ giữ lại hay loại bỏ khoảng trống ranh giới tuân theo chỉ thị. Nếu không, khi bạn sửa đổi tệp tin db2cli.ini của bạn để bao gồm o thêm dòng. CurrentImplicitXMLParseOption="parse-option" o vào trong một [section] được đặt tên theo tên cơ sở dữ liệu của bạn ([database- name]), thì trình phân tích cú pháp sẽ giữ lại hay loại bỏ khoảng trống ranh giới cho cơ sở dữ liệu này tuân theo chỉ thị. Tham số parse-option sẽ hoặc là PRESERVE WHITESPACE hoặc STRIP WHITESPACE. Ví dụ: [sample] CurrentImplicitXMLParseOption="PRESERVE WHITESPACE" o Tệp tin db2cli.ini nằm trong %DBPATH%. Tên của section, tên của tham số và giá trị của nó không phân biệt chữ hoa, chữ thường. Bạn có thể thêm mục này hoặc bằng cách soạn thảo trực tiếp tệp tin, hoặc bằng câu lệnh DB2:
  12. UPDATE CLI CONFIGURATION FOR SECTION section-name USING CurrentImplicitXMLParseOption '" parse-option"'; o Trình phân tích cú pháp loại bỏ khoảng trống ranh giới. 5. Liệt kê 2. Ví dụ về Quy tắc 5: Chèn XML với phần tử rỗng, phân tích cú pháp ngầm ẩn, loại bỏ khoảng trống connect to sample insert into catalog values ('emptyelement', ' ') DB20000I The SQL command completed successfully. select catlog from catalog where name = 'emptyelement' Liệt kê 3. Ví dụ về Quy tắc 2: Chèn XML với phần tử rỗng, phân tích cú pháp tường minh, giữ lại khoảng trống ranh giới
  13. insert into catalog values ('preservespace', xmlparse(document ' ' preserve whitespace)) DB20000I The SQL command completed successfully. xquery db2-fn:sqlquery('select catlog from catalog where name = ''preservespace'' ')/a Xác nhận hợp lệ và khoảng trống có thể bỏ qua Khi bạn nhập vào XML bằng hàm XMLVALIDATE(), DB2 phân tích cú pháp tài liệu, sau đó xác nhận tính hợp lệ tài liệu đã phân tích dựa vào một Định nghĩa Lược đồ XML (XSD - XML Schema Definition). (Trong một số trường hợp, DB2 có thể phân tích cú pháp và xác nhận tính hợp lệ chỉ trong một bước với một trình phân tích cú pháp xác nhận hợp lệ thay cho trình phân tích cú pháp mặc định không xác nhận hợp lệ. Nhưng việc xử lý được mô tả trong "Phân tích cú pháp và khoảng trống ranh giới" vẫn xảy ra trước tiên). Việc xác nhận hợp lệ luôn luôn loại
  14. bỏ khoảng trống có thể bỏ đi được, đó là khoảng trống đáp ứng một trong các tiêu chuẩn sau đây: Một kiểu phức hợp chỉ gồm phần tử là một phần tử được định nghĩa trong  XSD chỉ có các phần tử con và không có các nút văn bản nào. Khoảng trống giữa các phần tử con trong một kiểu phức hợp chỉ gồm các phần tử là có thể bỏ đi được. Loại khoảng trống có thể bỏ đi được này cũng là khoảng trống ranh giới, nó có thể làm cho lẫn lộn hành vi thể hiện khi phân tích cú pháp và xác nhận hợp lệ. Nếu một phần tử đơn giản (chỉ có chứa một nút văn bản) hoặc một thuộc  tính được định nghĩa trong XSD như là một kiểu không phải chuỗi ký tự (ví dụ như xs:integer, thì khoảng trống trong phần tử này hoặc giá trị thuộc tính đó có thể bỏ qua được. Nếu việc xác nhận hợp lệ đã không bỏ qua khoảng trống này, một tài liệu "đẹp" sẽ gặp thất bại khi xác nhận hợp lệ vì nó có chứa các nút văn bản ở nơi không được phép và chứa các ký tự không phải là số trong các giá trị số. Khoảng trống là một phần của một nút văn bản đã định nghĩa trong một phần tử hoặc là một phần của giá trị của một thuộc tính có kiểu xs:string là không thể loại bỏ được và không bị loại bỏ. Ví dụ, hãy xem Liệt kê 1 ở trên. Theo XSD, các kiểu chuỗi ký tự duy nhất là: Các nút văn bản trong các phần tử name (tên), street (đường phố), city  (thành phố), prov-state (tỉnh-bang), pcode-zip (mã bưu điện) và phone (điện thoại). Các thuộc tính country (quốc gia) và type (kiểu).  Có khoảng trống có thể loại bỏ được ở các vị trí sau:
  15. Giữa một thẻ bắt đầu và một thẻ bắt đầu liền ngay sau đó -- ví dụ, giữa  và Giữa một thẻ kết thúc và một thẻ bắt đầu liền ngay sau đó -- ví dụ, giữa  và Giữa một thẻ kết thúc và một thẻ kết thúc liền ngay sau đó -- ví dụ, giữa  và ) XSD định nghĩa thuộc tính Cid là một số nguyên:   Vì vậy khoảng trống xung quanh "1000" là có thể loại bỏ được và sẽ được  loại bỏ. Khoảng trống trong các phần tử name, street, city, prov-state, pcode-zip và phone không thể loại bỏ được. Các lời khuyên: Một số các kịch bản lệnh mẫu mà bạn có thể tìm thấy tại  SQLLIB\samples\xml\db2sample_xml.db2 trong bản cài đặt DB2 của bạn chèn XML như thế này: XMLVALIDATE( XMLPARSE ( DOCUMENT '...' PRESERVE WHITESPACE ) ...)
  16.  Ví dụ:  INSERT INTO CUSTOMER ( Cid, Info ) VALUES ( 1000,XMLVALIDATE( XMLPARSE ( DOCUMENT '...' PRESERVE WHITESPACE ) ...)  Hàm XMLPARSE() giữ lại khoảng trống ranh giới; nhưng  XMLVALIDATE() loại bỏ khoảng trống có thể loại bỏ được. CLP DB2 có thể loại bỏ khoảng trống trong chuỗi ký tự bằng chữ, bao gồm  XML, trước khi gửi đến DB2. Xem một phần trong hướng dẫn này có tên "DB2 Command Line Processor (CLP) behavior and options " để biết thêm thông tin. CLP DB2 không phải là một ứng dụng CLI, do đó các tùy chọn CLI không  áp dụng cho nó. Sự tuần tự hóa XML XML thay đổi tại đầu ra
  17. Khi DB2 tuần tự hóa XML, hoặc chuyển đổi nó từ cấu trúc nội tại trở lại thành các ký tự, như khi phân tích cú pháp, chuẩn XML chỉ rõ một số các thay đổi đối với dữ liệu, do đó nó có thể trông khác với những gì ở đầu vào. Mục đích và hiệu quả của những sự thay đổi này là để tạo ra một chuỗi ký tự là tài liệu XML hợp lệ, mà sau đó có thể được phân tích lại. Nếu bảng mã đích không hoàn toàn giống như bảng mã bên trong DB2 là  UTF-8, thì các ký tự UTF-8 được chuyển mã theo dạng đích. Các ký tự là các tham chiếu ký tự tại đầu vào vẫn giữ nguyên là ký tự thực tế tại đầu ra, chúng không phải mã hóa lại như một tham chiếu. Các ký tự không có trong bộ ký tự đích sẽ bị mất, được thay thế bằng một ký tự như "?". Xem một phần trong hướng dẫn này mang tên "XML encoding" để biết thêm thông tin. Một khai báo XML được tạo ra nếu bất kỳ điều nào sau đây là đúng:  Bạn thực hiện tuần tự hóa tường minh với XMLSERIALIZE(XML- o expression INCLUDING XMLDECLARATION). Ứng dụng khách là một ứng dụng CLI hoặc ứng dụng SQL nhúng o (ESQL). Ứng dụng khách là một ứng dụng Java hoặc ứng dụng .NET, sử o dụng trình điều khiển DB2 cho JDBC và SQLJ, trình này lấy ra XML thành một đối tượng DB2Xml sử dụng lớp com.ibm.db2.jcc.DB2Xml. Một mã đánh dấu trình tự byte (BOM) được tạo ra nếu bảng mã đích là  UTF-16. Các ký hiệu và (&), nhỏ hơn () được thay thế bằng các thực  thể XML của chúng (tương ứng là (&, < và >).
  18. Trong các thuộc tính, hai dấu nháy kép (") được thay thế bằng thực thể  XML của chúng ("). Trong các giá trị thuộc tính, các ký tự khoảng trống nhất định -- chẳng hạn  như CR, LF, và tab -- còn chưa được tiêu chuẩn hóa với XML ở đầu vào được thay thế bằng tham chiếu số của chúng, &#n;, ở đây n là mã hex. Bởi vì các DTD nội tại được bỏ đi khi nhập đầu vào, các ký tự đã được khai  triển từ một thực thể được định nghĩa trong một DTD không được mã hóa trở lại như là một tham chiếu thực thể, mà giữ nguyên dạng đã khai triển của chúng. Một phần tử rỗng là một phần tử không có nội dung -- có nghĩa là, không  có văn bản hoặc các nút nào giữa các thẻ bắt đầu và kết thúc. Khi được tuần tự hóa ở đầu ra, nó sẽ xuất hiện chỉ như là một thẻ phần tử rỗng, . Lời khuyên: tùy chọn -i của CLP DB2 "in đẹp" kết quả đầu ra của một XQuery, bằng cách thêm các dấu ngắt dòng và thụt dầu dòng. Tùy chọn -d tạo ra một khai báo XML ở phần đầu của tài liệu. Xem một phần trong hướng dẫn này mang tên "DB2 Command Line Processor (CLP) behavior and options " để biết thêm thông tin. Mã hóa XML Bảng mã ký tự Trước đây, các thuật ngữ bộ ký tự, mã hóa ký tự (character set, character encoding) và trang mã (code page) tất cả đều có một ý nghĩa tương tự như nhau: một bộ các ký tự và một bộ các mã nhị phân, ở đó mỗi mã biểu diễn cho một ký
  19. tự. (Trang mã là một thuật ngữ của IBM dành cho một bộ ký tự dùng trên một máy tính lớn hoặc máy tính cá nhân IBM PC). Các tên chính thức của các bộ ký tự được duy trì bởi IANA (Internet Assigned Numbers Authority - một cơ quan thẩm quyền trông coi việc cấp phát địa chỉ IP, tên miền mức đỉnh và điểm mã giao thức Internet); xem phần Tài nguyên để biết thêm thông tin. Các bảng mã ký tự di sản thừa kế Một số các bộ ký tự di sản thừa kế phổ biến trong thế giới ph ương Tây là US- ASCII, EBCDIC, trang mã 437, trang mã 1252, 8859-1, 1208, và Latin-1. Tất cả chúng mã hoá một ký tự là một byte. Trang mã 437: Trong Microsoft Windows ở Hoa Kỳ, trang mã mặc định là  437; tên bảng mã chính thức IANA là ibm-437. Nó có một số ký tự không phải là tiếng Anh (ví dụ, chữ ghép dính "ae", các nguy ên âm chữ thường có dấu trọng âm, một số các chữ cái Hy Lạp, các dấu ngoặc kép Pháp ("") và 48 ký tự cho đồ họa để tô bóng và tạo các hộp (một di sản thừa kế từ hệ điều hành DOS và các chương trình dựa trên ký tự). Trang mã 1252: DB2 có hai mục trong nhóm trình đơn Start của nó dưới  các công cụ dòng lệnh (Command Line Tools:) Bộ xử lý dòng lệnh (Command Line Processor) và cửa số lệnh (Command Window). Cả hai bắt đầu bằng cách chạy một chương trình db2clpcp.exe, nó thay đổi trang mã từ trang 437 mặc định (một lần nữa, tại Hoa Kỳ) thành trang 1252. Trang mã 1252, mà Microsoft cũng gọi là "La-tinh-1", có chữ ghép dính "ae", các ký tự chữ hoa và chữ thường có dấu trọng âm và biểu tượng euro (mã hex 0x80), nhưng không có các chữ Hy Lạp. Trang mã 1208: Khi bạn dùng lệnh CREATE DATABASE USING  CODESET UTF-8 (Tạo cơ sở dữ liệu sử dụng bộ mã UTF-8), trang mã cơ sở dữ liệu tương ứng là 1208:
  20. db2 get db cfg for sample | grep "code" Database code page = 1208 Database code set = UTF-8 Database country/region code =1 Bộ ký tự iso-8859-1: Bộ ký tự này, cũng được gọi là Latin-1, là phổ biến  trong các trang Web tiếng Anh hoặc Tây Âu. Nó có chữ ghép dính "ae", các chữ cái Latinh chữ hoa và chữ thường có dấu trọng âm, không có chữ cái tiếng Hy Lạp và không có ký hiệu euro. Xem Tài nguyên với các đường các liên kết đến các định nghĩa của các bộ ký tự này và các định nghĩa khác. Unicode Bất kỳ một bảng mã di sản kế thừa đơn lẻ nào đều có các hạn chế do nó chỉ có thể biểu diễn văn bản trong một tập hợp nhỏ các ngôn ngữ. Việc quả n lý nhiều bảng mã là rất đau đầu vì nhiều lý do, không chỉ vì hầu hết các ứng dụng và cơ sở dữ liệu đã được thiết kế để xử lý chỉ một bảng mã. Unicode đã được phát minh để giải quyết vấn đề này. Nó là một bộ ký tự đơn lẻ, biểu diễn được tất cả các ký tự trong hầu như tất cả các ngôn ngữ đang sử dụng, và có dành chỗ để phát triển thêm
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
17=>2