[Loạt bài viết] Bài 4: XML Schema là gì?

Bài viết này giúp cho những bạn hiểu được XML Schema và những đặc thù của nó như cấu trúc Schema, những thành phần của Schema và những kiểu tài liệu của Schema
>> [ Loạt bài viết ] Bài 3 : Document Type Definition ( DTDs ) là gì ?

I.Schema là gì:

Như đã giới thiệu trong bài Document Type Definitions (DTDs), chúng ta có thể kiểm tra cấu trúc file XML, tính đúng đắn của dữ liệu trong XML bằng DTDs. Tuy nhiên phương pháp này có nhiều hạn chế như: không có nhiều dạng kiểu dữ liệu, không qui định được khoảng giá trị…. Chính vì thế Schema được tạo ra để khắc phục tất cả các nhược điểm của DTDs. Như vậy về mặc cơ bản mục tiêu của Schema hoàn toàn giống như DTDs:
– Định nghĩa cấu trúc các thành phần có trong XML
– Định nghĩa các thuộc tính có trong Schema
– Định nghĩa các thành phần con và thứ tự xuất hiện của chúng trong thành phần cha
– Định nghĩa một thành phần là rỗng hay có chứa text
– Định nghĩa kiểu dữ liệu cho các thành phần và thuộc tính
– Định nghĩa giá trị mặc định cho thuộc tính

[Loạt bài viết] Bài 4: XML Schema là gì?

Bạn đang đọc: [Loạt bài viết] Bài 4: XML Schema là gì?

Tóm lại Schema được phát tirển trên nền tảng DTDs, tuy nhiên Schema có nhiều ưu điểm tiêu biểu vượt trội hơn như :

– Schema viết theo định dạng như XML nên người dùng quen thuộc hơn so với DTDs, người dùng không cần phải làm quen với cấu trúc mới
– Schema có thể mở rộng còn DTDs thì không: có thể sử dụng cho shema khác, người dùng có thể tự định nghĩa ra kiểu dữ liệu riêng từ các kiểu dữ liệu chuẩn, có thể dùng nhiều Schema cho 1 file XML cùng lúc
– Schema hỗ trợ Namespace
– Schema hỗ trợ nhiều dạng kiểu dữ liệu: dễ dàng kiểm tra tính đúng đắn của dữ liệu, dễ dàng khai báo định dạng, phạm vi của dữ liệu.

II.Các kiểu dữ liệu trong Schema:

Trong Schema, kiểu tài liệu được chia làm 2 loại : kiểu tài liệu có sẵn và kiểu tài liệu do người dùng tự định nghĩa

Schema-Data-type.jpg

Các kiểu dữ liệu có sẵn (Built-in datatypes) bao gồm các kiểu dữ liệu sau:

– string: dạng chuỗi
– boolean: dạng luận lý
– numeric: dạng số
– dateTime: dạng ngày tháng, thời gian
– binary: dạng nhị phân
– anyURI: các chuỗi URI
– integer: số nguyên
– decimal: số thập phân
– time: thời gian

Thẻ :

Thẻ là thẻ gốc cho tất cả các file schema, thẻ có một số thuộc tính như sau



...
...


...

[/PHP]

– xmlns:xsd=”http://www.w3.org/2001/XMLSchema” : chỉ ra rằng các kiểu element, kiểu dữ liệu dùng trong schema được khai báo trong namespace http://www.w3.org/2001/XMLSchema với tiền tố xsd
– xmlns=”http://www.w3schools.com”: namespace mặc định là http://www.w3school.com
– elementFormDefault=”qualified”: chỉ ra rằng tên các thành phần được sử dụng trong file XML có khai báo schema phải thỏa mãn các khai báo namespace

III.Các dạng khai báo Element trong Schema:

Có 2 dạng khai báo Element trong schema là simple element và complex element
– Simple Element : được dùng để khai báo cho những element chỉ chứa text không có khai báo những thẻ con hay thuộc tính
– Complex Element : complex element được dùng khai báo những khai báo Element có chứa element con, thuộc tính … có 4 dạng complex element :
– Element rỗng :

– Element chỉ chứa những thẻ con

 John Smith

– Element chỉ chứa text

Ice cream

– Element chứa thẻ con và text

It happened on 03.03.99 ....

IV.Complex Element:

– Cú pháp khai báo 1 complex element như sau :


Nội dung thẻ


1. Element rỗng:

– Ví dụ:

– Như khai báo trên tất cả chúng ta thấy thẻ product có 1 thuộc tính prodid chỉ nhận giá trị là số tất cả chúng ta khai báo như sau :

 
 
 
 

– Trong đó dùng để khai báo thuộc tính

2. Element chỉ chứa các thẻ con

– Ví dụ :

 
John 
Smith 

– Như khai báo XML chúng ta thấy thẻ có 2 thẻ con là firstName và lastName, và nội dung 2 thẻ này là dạng chuỗi

 
 
 
 
 
 
 

– Trong đó dùng để khai báo thứ tự các thẻ con trong complex element.

3. Element chỉ chứa text:

– Ví dụ

 35

– Trong thẻ trên chúng ta thấy có 1 thuộc tính country dạng chuỗi và nội dung của thẻ là dạng số, chúng ta viết schema như sau:

 
 
 
 
 
 
 
 

4. Element vừa có text vừa có element:

– Ví dụ :

 
Dear Mr.John Smith. 
Your order 1032 
will be shipped on 2001-07-13. 

– Trong thẻ trên chúng ta vừa có text vừa có các thẻ con, chúng ta khao báo schema như sau:

 
 
 
 
 
 
 
 

 V. Simple Element:

– Cú pháp:

– Ví dụ :

Refsnes
36
1970-03-27
– Schema:



– Khai báo Attribute : Simple Element không hề có Attribute, khi 1 thẻ có Attribute, thẻ đó phải được khai báo ở dạng Complex Element, tuy nhiên 1 Attribute tất cả chúng ta hoàn toàn có thể khai báo dưới dạng Simple Element theo cú pháp sau :

– Ví dụ :

Smith

– Schema :

VI.Schema Indicator:

– Chúng ta hoàn toàn có thể trấn áp những thẻ được sử dụng như thế nào trong XML bằng những Indicator. Có 5 dạng Indicator :

1. Thứ tự các thẻ con:

các thẻ con có thể xuất hiện với thứ tự bất kỳ và các thẻ con phải xuất hiện 1 lần duy nhất. Ví dụ


  
    
      
      
    
  

2. Lựa chọn các thẻ con:

chỉ 1 thẻ con trong các thẻ được phép xuất hiện.

Ví dụ :


  
    
      
      
    
  

3. Thứ tự xuất hiện các thẻ con:

: qui định thứ tự của các thẻ con.

Ví dụ :


  
    
      
      
    
  

4. Số lần xuất hiện tối đa và tối thiểu:

: số lần xuất hiện tối đa, số lần xuất hiện tối thiểu.

Ví dụ :

  
    
      
      
    
  

Rate this post
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments