[School] Bài tập đặc tả cấu trúc DTD, Schema trong XML
Bài viết này giải bài tập về đặc tả cấu trúc với DTD và XMLSchema trong phạm vi “Bài tập” của mình, các bạn có thể tham khảo.
Đề bài: Cho phiếu điểm của 1 sinh viên gồm: Họ và tên, lớp, địa chỉ, giới tính, ngày sinh và một bảng điểm, mỗi bản ghi của bảng gồm: STT, Tên môn, điểm học kỳ 1, điểm học kỳ 2, điểm TB cả năm. Hãy đặc cả nội dung và cấu trúc (theo DTD hoặc XMLSchema) của tài liệu XML tương ứng với phiếu điểm này.
Giải:
* Đặc tả nội dung: Chính là viết tài liệu XML chứa nội dung của phiếu điểm trên. Trong đó có thể sử dụng tham chiếu đặc tả cấu trúc theo DTD hoặc XMLSchema.
Với các thông tin trên phiếu điểm chúng ta có thể chia ra làm 2 phần chính trong phiếu điểm là thông tin sinh viên (chứa tên, lớp,…) và bảng điểm (chứa điểm các môn học).
Lưu ý: Do đề bài nói “theo DTD hoặc XMLSchema” nên trong bài thì các bạn làm theo 1 trong 2 cái là DTD hoặc XMLSchema thôi nhé, mình làm cả 2, các bạn thích chọn cái nào thì chọn.
<?xml version = "1.0" ?> <!-- if you use dtd--> <!DOCTYPE PhieuDiem SYSTEM "phieudiemhocsinh.dtd"> <!-- end use dtd--> <!-- if you use schema--> <PhieuDiem xmlns = "http://www.w3school.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "phieudiemhocsinh.xsd"> <!-- end use chema--> <PhieuDiem> <SinhVien> <HoTen>Nguyen Van Quan</HoTen> <Lop>KTPMK10B</Lop> <DiaChi>Bac Ninh</DiaChi> <GioiTinh>Nam</GioiTinh> <NgaySinh>31/12/1992</NgaySinh> </SinhVien> <BangDiem> <MonHoc> <STT>1</STT> <TenMon>XML</TenMon> <DienKy1>10</DienKy1> <DienKy2>10</DienKy2> <DienTB>10</DienTB> </MonHoc> <MonHoc> <STT>2</STT> <TenMon>Java</TenMon> <DienKy1>10</DienKy1> <DienKy2>10</DienKy2> <DienTB>10</DienTB> </MonHoc> </BangDiem> </PhieuDiem>
* Đặc tả cấu trúc DTD tương ứng
<?xml version="1.0"?> <!DOCTYPE PhieuDiem[ <!ELEMENT PhieuDiem(SinhVien, BangDiem)> <!ELEMENT SinhVien(HoTen, Lop, DiaChi, GioiTinh, NgaySinh)> <!ELEMENT BangDiem(MonHoc+)> <!ELEMENT HoTen(#PCDATA)> <!ELEMENT Lop(#PCDATA)> <!ELEMENT DiaChi(#PCDATA)> <!ELEMENT GioiTinh(#PCDATA)> <!ELEMENT NgaySinh(#PCDATA)> <!ELEMENT MonHoc(STT, TenMon, DiemKy1, DiemKy2, DiemTB)> <!ELEMENT STT(#PCDATA)> <!ELEMENT TenMon(#PCDATA)> <!ELEMENT DiemKy1(#PCDATA)> <!ELEMENT DiemKy2(#PCDATA)> <!ELEMENT DiemTB(#PCDATA)> ]>
* Đặc tả cấu trúc XMLSchema tương ứng
<?xml version = "1.0"?> <xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema"> <xs:element name = "PhieuDiem" type="KPhieuDiem"/> <xs:complexType name = "KPhieuDiem"> <xs:sequence> <xs:element name = "SinhVien" type = "KSinhVien"/> <xs:element name = "BangDiem" type = "KBangDiem"/> </xs:sequence> </xs:complexType> <xs:complexType name = "KieuSinhVien"> <xs:sequense> <xs:element name = "HoTen" type = "xs:string"/> <xs:element name = "Lop" type = "xs:string"/> <xs:element name = "DiaChi" type = "xs:string"/> <xs:element name = "GioiTinh"> <xs:simpleType> <xs:restriction base = "xs:string"/> <xs:pattern value = "Nam|Nu"/> </xs:simpleType> </xs:element> <xs:element name = "NgaySinh" type = "xs:date"/> </xs:sequense> </xs:complexType> <xs:complexType name = "KBangDiem"> <xs:element name = "MonHoc" type = "KMonHoc"/> </xs:complexType> <xs:complexType name = "KMonHoc"> <xs:sequense> <xs:element name = "STT" type = "xs:integer"/> <xs:element name = "TenMon" type = "xs:string"/> <xs:element name = "DiemKy1" type = "KDiem"/> <xs:element name = "DiemKy2" type = "KDiem"/> <xs:element name = "DiemTB" type = "KDiem"/> </xs:sequense> </xs:complexType> <xs:simpleType name = "KDiem"> <xs:restriction base = "xs:double"/> <xs:minExclusive value = "0.0"/> <xs:maxExclusive value = "10.0"/> </xs:simpleType> </xs:schema>
cái này chỉ trích được dữ liệu của một phần tử trong file xml thui
Làm được nhiều bản ghi mà bạn. :3
bài viết kém chất lượng, lỗi tùm lum. mong ad sửa lại để những ng khác mới học có thể hiểu được.
Cảm ơn bạn đã quan tâm và góp ý với bài viết của mình. Tuy nhiên bạn có thể chỉ cho mình và mọi người thấy được bài viết “lỗi tùm lum” ở chỗ nào không, và cần sửa thế nào cho đúng? Cảm ơn bạn!
bài tập quá đơn giản bạn ak. Bạn phải cho cái gì đó khác biệt, stt có cần bỏ trong XML không ?
nếu thẻ không chứa nội dung
Thì bạn đặc tả cấu trúc ra sao ?
Cảm ơn bạn. Nhưng trong chương trình học mình chỉ cần đơn giản thế này thôi 🙂
a ơi cái này nếu mà họ yêu cầu số đấy phải là kiểu số và là số dương thì làm ntn ạ?
Mấy năm rồi giờ a cũng không nhớ cách làm nữa 😉
huhu =))cho em ngân hàng đề của trường thì tốt rồi haha
#ictu
sao chạy báo lỗi vậy ad?