CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN CỦA XML I. XML là gì: XML là viết tắt của Extensible Markup Language, XML được sử dụng để mô tả các tài liệu và dữ liệu dưới một dạng chuẩn tức là dựa trên một định dạng của văn bản để cho phép dễ dàng truyền tải dữ liệu thông qua các giao thức chuẩn của mạng. XML là ngôn ngữ định dạng mở rộng và ngôn ngữ tổng quát dùng để định nghĩa dữ liệu thông qua các thẻ. XML được đưa ra với mục tiêu là tăng cường các kiểu dữ liệu nhưng loại bỏ tối đa tính phức tạp.
XML không thực sự là một ngôn ngữ mà là một chuẩn để tạo ra các ngôn ngữ thỏa mãn các quy chuẩn XML.[1] Hiện nay, để xử lý dữ liệu trên Web và phát triển ứng dụng mạng, số thẻ sẽ làm việc tiếp tục tăng lên ngày càng nhiều hơn và XML thực sự là một giải pháp cho sự tăng lên thường xuyên của các thẻ. Do: - Thứ nhất, ngôn ngữ XML trong sáng, đơn giản, dễ đọc, bởi được biểu diễn ở dạng thuần văn bản. - Thứ hai, ngôn ngữ XML cho phép tự định nghĩa thẻ nên mỗi người có thể tự đưa ra một tập thẻ của mình. Tuỳ vào mục đích sử dụng cụ thể mà các tập thẻ đó có thể là quy ước trao đổi dữ liệu trong một lĩnh vực nào đó như ngân hàng.
8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. 1 – XML là hoàn toàn độc lập cho các ứng dụng XML là ngôn ngữ định dạng thiên về mô tả cấu trúc dữ liệu và định nghĩa ngôn ngữ. Để thực hiện xử lý trích rút và hiển thị dữ liệu của tài liệu XML có thể thực hiện một trong các cách: - Sử dụng các mô hình tài liệu như DOM, SAX, DSO để trích rút dữ liệu XML. - Sử dụng bảng định kiểu CSS (Cascading Style Sheet) để định kiểu hiển thị cho dữ liệu XML.
- Sử dụng ngôn ngữ định kiểu mở rộng XSL(Extension Style Language). Hiện nay, XML là một chuẩn ngày càng được dùng rộng rãi trong công nghiệp phát triển phần mềm. Và thực tế hàng trăm ngôn ngữ định dạng chuyên dụng được định nghĩa trên XML đã ra đời như XHTML, (Extension HTML), WML(Wireless Markup Language), VoiceXML, UIML(User Interface Markup Language), CML(Chemical Markup Language), MathML, XUL(XML User Interface Language)… XML tiến hành mô tả bất kỳ công việc nào dưới dạng văn bản và việc định dạng của dữ liệu đó là hoàn toàn mở. Điều này có nghĩa rằng bất cứ dữ 9 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com liệu nào được mô tả dưới dạng như văn bản và nội dung của văn bản có thể thu nhỏ lại thành các thẻ XML thì đều được coi như là tài liệu XML.
Sự mở rộng để trở thành ngôn ngữ không chỉ dựa vào cú pháp cơ bản của XML mà còn dựa vào xem người phát triển có thể làm được gì. Cấu trúc của tài liệu XML: Mặc dù các thành phần, thuộc tính và văn bản là một phần rất quan trọng cho việc thiết kế tài liệu XML. Tuy nhiên để cho làm việc có hiệu quả thì các tài liệu XML phải tuân thủ theo một cấu trúc nhất định.0” encoding=”UTF-8”? standalone=”yes”> <thanh_phan_goc> <thanh_phan_con_thu_nhat vi_tri=”1”> <muc_1 con_thu=”0”>Day la muc 1 cua thanh phan</muc_1> </thanh_phan_con_thu_nhat > <thanh_phan_con_thu_hai vi_tri=”2”> <muc_1 con_thu=”1”> <muc_2>Day la muc 2 cua thanh phan</muc_2> </muc_1> </ thanh_phan_con_thu_hai > </ thanh_phan_goc > - Mọi tài liệu XML đều được bắt đầu bằng thẻ bắt đầu với <?xml và kết thúc bằng ký tự ?> ở phía trên cùng của tài liệu. Thẻ này được coi là thẻ mô tả tài liệu XML.
- Trong cặp thẻ <?xml ?> còn có các thuộc tính đi kèm để mô tả, như: + Thuộc tính version để xác định phiên bản của chuẩn W3C XML. Bộ phân tích XML sẽ sử dụng thuộc tính version để xác định được các quy luật cho phép trong việc thực hiện phân tích tài liệu XML. + Thuộc tính encoding để xác định bộ mã hóa chuẩn được sử dụng trong tài liệu XML. 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com + Thuộc tính standalone nhận hai giá trị logic “True” và “False” để xác định tài liệu XML đang định nghĩa có sử dụng thêm tài nguyên từ các tệp khác nữa không.
Cấu trúc các thành phần và thuộc tính: Theo như mô tả của XML thì mọi tài liệu XML đều có chứa duy nhất một thành phần gốc của tài liệu. Sau khi đã có thành phần gốc thì bắt đầu đi mô tả các thành phần con bên trong của tài liệu. Cú pháp tài liệu XML: XML mô tả dữ liệu và nội dung nó chứa dưới dạng các thẻ, dữ liệu được mô tả với cấu trúc chính xác và tuân theo những quy luật sẵn có để định dạng. Đồng thời XML cũng có những quy tắc về mặt cú pháp khi tiến hành mô tả dữ liệu.
Các quy tắc về mặt cú pháp khi xây dựng tài liệu XML gồm: - Tên thành phần XML phải giống nhau trong thẻ bắt đầu và thẻ kết thúc (có phân biệt chữ hoa chữ thường). - Thẻ kết thúc phải thêm ký hiệu „/‟ so với thẻ kết thúc. - Giá trị của các thuộc tính phải được đặt giữa cặp dấu nháy kép “”. - Nội dung chú thích được đặt giữa cặp thẻ <!- - và - ->.
- Mọi thẻ mô tả thành phần phải luôn luôn được đóng. Không gian tên: Do bản chất XML rất rộng, cho phép mọi cá nhân hay công ty đều có thể tự tạo ra các kiểu tư liệu XML mô tả cho đặc thù riêng. Vì thế có những trường hợp khi định nghĩa các tài liệu XML có các thẻ cùng tên nhưng mang ý nghĩa khác nhau và được sử dụng với các mục đích khác nhau tùy từng cá nhân hay công ty. 11 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Cách tốt nhất để giải quyết vấn đề này là làm sao cho từng thành phần có tên hoàn toàn riêng biệt không bị trùng đối với bất kỳ cá nhân hay cơ quan nào.
Từ đó hình thành khái niệm “Không gian tên”. Không gian tên là phương thức cho phép phân biệt và xác định những tên thành phần trùng nhau trong cùng một tài liệu XML. Không gian tên có thể được sử dụng để mô tả các kiểu dữ liệu hay thông tin khác hoặc được dùng để định nghĩa ra các tên viết tắt. Trong XML không gian tên được xây dựng bằng cách sử dụng tiền tố trước phần khai báo của từng thành phần.
Khi đó tất cả các thành phần có cùng tiền tố đều thuộc về cùng một “phạm vi” với nhau.0” encoding=”UTF-8”?> <person> <name> <title> Sir </title> <ho> Pham </ho> <ten> Khanh </ten> </name> <lylich> <html> <head><title> Lý lich cua Khanh</title></head> <body> <h1> Pham Khanh </h1> <p> Khanh la giam doc cong ty phan mem</p> </body> </html> </lylich> </person> Nhận thấy, có cả hai thành phần <title> trong cả thành phần <name> và thành phần <lý lich>, vì thế để phân biệt chính xác khi sử dụng thì sử dụng không gian tên. 12 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.0” encoding=”UTF-8”?> <per:person> < per:name> < per:title> Sir </ per:title> < per:ho> Pham </ per:ho> < per:ten> Khanh </ per:ten> </ per:name> < per:lylich> <xhml::html> <xhml::head> <xhml::title>Lý lich cua Khanh</xhml::title> </xhml::head> < xhml::body> < xhml::h1> Pham Khanh </ xhml::h1> < xhml::p> Khanh la giam doc phan mem</ xhml::p> </ xhml::body> </ xhml::html> </per:lylich> </per:person> I. Tài liệu XML hợp lệ: Khi xây dựng tài liệu XML có một số quy luật chặt chẽ cho việc xây dựng các cấu trúc cơ bản cũng như các quy tắc về mặt cú pháp để có được các tài liệu XML hợp khuôn dạng. Đồng thời cũng có một số định dạng để xác định khung cho việc xây dựng tài liệu XML hợp lệ.
Tính hợp lệ hay đúng đắn của tài liệu XML được xác định thông qua định nghĩa kiểu tài liệu(DTD – Document Type Definition) và sơ đồ XML. Các tài liệu XML được so sánh với các quy luật đã xác định dựa vào DTD hoặc dựa vào sơ đồ. Tài liệu XML hợp khuôn dạng được xây dựng dựa vào hầu hết các yêu cầu đặt ra của một hay nhiều đặc trưng xác định sẽ được coi là tài liệu XML đúng đắn. 13 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Thông thường thì sẽ không cần có cả DTD và sơ đồ trong một tài liệu XML vì cả hai đều cho phép xác định cùng một cấu trúc của tài liệu.
Tuy nhiên, để có được kết quả tốt nhất thì nên kết hợp cả sơ đồ và DTD trong một tài liệu XML. Và tài liệu XML được tạo ra từ nhiều nguồn tài liệu khác nhau thì hay kết hợp cả DTD và sơ đồ. Cả DTD và sơ đồ cho phép tham chiếu trực tiếp đến các đặc trưng chính của cấu trúc tài kiệu từ đó cho phép hiển thị tài liệu một cách tổng quát. Định nghĩa kiểu tài liệu – DTD: a.
Định nghĩa kiểu tư liệu DTD là gì? Một tài liệu XML được xem là hợp lệ và có giá trị khi toàn bộ các phần tử trong tài liệu đều được định nghĩa kiểu mà nó sẽ chứa. Việc định nghĩa kiểu dữ liệu cho các phần tử thẻ còn gọi là định nghĩa kiểu tư liệu.0” standalone=”yes”?> <!DOCTYPE DOCUMENT[ <!ELEMENT DOCUMENT(EMPLOYEE)*> <!ELEMENT EMPLOYEE(ID,NAME,SALARY> <!ELEMENT ID(#PCDATA)> <!ELEMENT NAME(#PCDATA)> <!ELEMENT SALARY(#PCDATA)>]> b. Tạo khai báo và định nghĩa kiểu dữ liệu DTD: Để cho phép định nghĩa kiểu tư liệu cho các phần tử XML dùng thẻ <!DOCTYPE> ở ngay vị trí đầu của tệp XML. Tiếp đến định nghĩa các kiểu tư liệu các phần tử bên trong cặp dấu ngoặc vuông [].
Sau đó mỗi phần tử được bắt đầu định nghĩa bằng thẻ khai báo <!ELEMENT>. Cú pháp: <!ELEMENT NAME CONTENT_MODE> Trong đó: * NAME là tên của phần tử muốn định nghĩa. 14 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com * CONTENT_MODE là xác định chế độ tạo ra phần tử. Có thể nhận giá trị EMPTY, ANY hoặc trộn lẫn cả hai nội dung (bao gồm dữ liệu có thể dùng phân tích hoặc các phần tử con khác).
Danh sách các phần tử con: Để mô tả các phần tử DTD có thể chứa những phần tử con khác thì các phần tử con được định tên và liệt kê trong cặp dấu ngoặc đơn.0” standalone=”yes”?> <!DOCTYPE DOCUMENT[ <!ELEMENT DOCUMENT(EMPLOYEE)*> … ]> Chú ý: dấu * để xác định số phần tử có khả năng lưu trữ trong tài liệu d. Trình tự đặt phần tử DTD: Khi khai báo một phần tử có nhiều phần tử con thì thực hiện định nghĩa lồng nhau các phần tử DTD theo một trình tự mà các phần tử xuất hiện. Tạo lập phần tử con Để định nghĩa một tập các DTD con của một thành phần sử dụng các ký hiệu quy ước để định nghĩa, như: *, +,… Ví dụ: <!