Xml schema được sử dụng để giải quyết liên quan đến xác nhận (validate) như: qui định phần tử root, qui định trình tự xuất hiện, qui định số lần xuất hiện và qui định kiểu dữ liệu (chỉ chứa chuỗi hoặc chứa phần tử khác).
Hình bên dưới là một ví dụ.
Đang xem: Learn about xsd schema in xml schema là gì, learn about xsd schema in xml
Như chúng ta đã biết, những vấn đề trên có thể giải quyết với DTD trong XML. Tuy nhiên, một tài liệu XML ngoài những ràng buộc như trên, cần phải qui định về: Kiểu dữ liệu (Data Type); Số ký tự trong một chuỗi (Length): Giới hạn phạm vi giá trị (Range (age >=1))…
Trong trường hợp này, chúng ta phải sử dụng XML Schema
Xml schema – Định nghĩa một phần tử đơn (Defining a Simple Element)
Cú pháp
Trong đó: x là tên phần tử; y là kiểu dữ liệu.
Xem thêm: Bật mí cách chơi bầu cua online tại cổng game đổi thưởng Win79
Kiểu dữ liệu | Miêu tả |
xsd:string | Ký tự |
xsd:decimal | Số thực |
xsd:integer | Số nguyên |
xsd:boolean | Luận lý (true hoặc false) |
xsd:date | Ngày |
xsd:time | Thời gian |
Ví dụ các phần tử trong tài liệu XML như sau
Xml schema –Qui định giá trị mặc định và giá trị cố định cho phần tử đơn
Phần tử đơn là phần tử chỉ chứa giá trị. Một phần tử đơn có thể có một giá trị mặc định hoặc một giá trị cố định.
Xem thêm: Chú Rể Bị Bắt Ngay Tại Lễ Tuyên Hôn Là Gì ? Chú Rể Bị Bắt Ngay Tại Lễ Tuyên Hôn
Ví dụ qui định giá trị mặc định là “red” cho phần tử color
Ví dụ qui định giá trị cố định là “red” cho phần tử color
Xml schema – Định nghĩa thuộc tính cho một phần tử
Cú pháp
Ví dụ trong tài liệu XML, phần tử lastname có một thuộc tính lang
SmithĐịnh nghĩa thuộc tính
Thiết lậpgiá trị mặc định cho thuộc tính.Ví dụ giá trị mặc định cho thuộc tính lang là “EN”
Thiết lậpgiá trị cố định cho thuộc tính.Ví dụ giá trị cốđịnh cho thuộc tính lang là “EN”
Ví dụ thiết lập bắt buộc phải nhập giá trị cho thuộc tính lang
Xml schema – Ràng buộc giá trị
Ví dụ sau sẽ định nghĩa một phần tử “age” với ràng buộc là: tuổi lớnhơn 0 và nhỏ hơn 120
Xml schema – Ràng buộc với một tập các giá trị
Ví dụ định nghĩa phần tử “car” với ràng buộc là: chỉ chấp nhận một trong các giá trị nhưAudi, Golf, BMW
Cách 1: Thiết lập ràng buộc trong khi định nghĩa phần tử
Cách 2: Thiết lập ràng buộc bằng cách tạo ra một kiểu dữ liệu mới
Xml schema – Ràng buộc trên một loạt các giá trị (Restrictions on a Series of Values)
Ví dụ định nghĩa một phần tử “letter” với ràng buộc là: chỉ chấp nhận giá trị là một ký tự thường từ a đến z: (Ví dụ 1)
Ví dụ định nghĩa một phần tử “initials” với ràng buộc là: chỉ chấp nhận giá trị là baký tự in hoatừ a đến z: (Ví dụ 2)
Ví dụ định nghĩa một phần tử “initials” với ràng buộc là: chỉ chấp nhận giá trị là baký tự viết thường hoặc in hoatừ a đến z: (Ví dụ 3)
Ví dụ định nghĩa một phần tử “choice” với ràng buộc là: chỉ chấp nhận giá trị là mộtký tự x, y hoặc z: (Ví dụ 4)
Ví dụ định nghĩa một phần tử “prodid” với ràng buộc là: chỉ chấp nhận giá trị là nămchữ số và mỗi chữ số phải thuộc phạm vi từ 0 đến 9: (Ví dụ 5)
Ví dụ định nghĩa một phần tử “gender” với ràng buộc là: chỉ chấp nhận giá trị là male hoặc female: (Ví dụ 6)
Ví dụ định nghĩa một phần tử “password” với ràng buộc là: phải đủ 8 ký tự và mỗi ký tự phải là chữ thường hoặc chữ in hoa từ a đến z, hoặc chữ số từ 0 đến 9: (Ví dụ 7)
Ràng buộc phạm vi về số ký tự của chuỗi
Xml schema – Ví dụ mẫu
Tập tin SampleXSD.xml
John z 12345 abc12345 12 Tập tin SampleXSD.xsd
Sử dụng phần mềm XMLwriter để validate
Tập tin XML hợp lệ
Xml schema – Bài tập thực hành
Cho tập tin XML dùng để đóng gói dữ liệu bán hàng online bao gồm các thông tin sau:
Name – ví dụ như paper, clips, rubber bands, pens, …Inventory ID – ví dụ như “F12333”, “Z55557”, … Thiết lập ràng buộc với yêu cầu là Inventory ID phải bắt đầu là một ký tự in hoa, theo sau là 5 chữ số từ 1 đến 9.Unit Price – ví dụ như 4.55, 22.33, … Yêu cầu không được nhỏ hơn 1.00Stock Bin – ví dụ như “B789”, “B123”, … Thiết lập ràng buộc với yêu cầu phải bắt đầu là “B” và theo sau là 3 chữ số từ 0 đến 9.
Yêu cầu
Tạo tập tin schema định nghĩa các phần tử, kiểu dữ liệu và thiết lập ràng buộc.Tạo tập tin xml và chắc chắn rằng nó Well-FormedKiểm tra xem tập tin schema có validate đúng hay không