ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÀI TẬP LỚN
Môn Công nghệ XML và ứng dụng
ĐỀ TÀI: Xây Dựng Trang Quản Lý Sinh Viên
Thành Viên:
Mục Lục
Mục Lục 1
Chương 1 Giới thiệu XML Và PHP 2
1.1 Tổng quan về XML 2
1.1.1 Giới thiệu 2
1.1.2 Mục tiêu ra đời và lợi ích khi sử dụng 3
1.1.3 Ngôn ngữ định dạng(Markup languages) 3
1.1.4 Những thành phần của một tài liệu XML 4
1.1.4 Một tài liệu XML hợp khuôn dạng 5
1.1.5 Một tài liệu XML hợp lệ 5
1.1.6 Các kiểu dữ liệu trong XML 7
1.2 Giới thiệu PHP 11
CHƯƠNG 2 Sử Dụng XML Và PHP Xây Dựng Trang Quản Lý Sinh Viên 13
2.1 Phân tích thiết kế hệ thống 13
2.1.1 Biểu đồ Use tổng quát 14
2.1.2 Biểu đồ tuần tự “đăng nhập” 14
2.1.3 Biểu đồ trình tự cập nhật thông tin của Admin 15
2.2 Thiết kế cơ sở dữ liệu dùng XML 16
2.2.1 Lược đồ Schema XML 16
2.2.2 Tài liệu XML 17
2.3 Trang Quản Lý Sinh Viên 18
Chương 1 Giới thiệu XML Và PHP
1.1 Tổng quan về XML
1.1.1 Giới thiệu
XML(Extensible Markup Language) ra đời tháng 2/1998, là ngôn ngữ có
làm được rất nhiều thứ, cho nên tuy tổng quát nhưng khó học và thực thế thì
SGML ít được dùng. Trong khi đó XML là tập con của SGML nhưng lại dễ
dùng, dễ sử dụng ở mức tổng quát.
Ngôn ngữ HTML không đủ để biểu diễn các thông tin cho mục đích riêng.
Ví dụ, chúng ta muốn xây dựng một mô hình xe máy và chúng ta muốn trao
đổi những đặc tả về chiếc tàu với các đồng nghiệp? HTML không hề chứa thẻ
định nghĩa với các tên như <SINHVIEN>, <COLOR>, hay những thẻ mà
muốn mô tả về xe máy. Chúng ta cần thêm các thẻ để mô tả thông tin về xe
máy.
1.1.4 Những thành phần của một tài liệu XML
Khai báo: mỗi tài liệu XML có một chỉ thị khai báo:
<? xml version =”1.0” ?>
Chú thích: <! chú thích >
Phần tử (Elments): một tài liệu XML được cấu thành từ những phần tử.
Mỗi phần tử có thẻ mơ và thẻ đóng. Giữa thẻ mở và thẻ đóng là nội
dung của phần tử đó. Phần tử có thể chứa dữ liệu hoặc có thể lồng vào
một phần tử khác.
Phần tử gốc (root): trong tài liệu XML, chỉ có một phần tử gốc, và phần
tử này sẽ chứa tất cả những phần tử của tài liệu XML do chúng ta tạo
ra.
Thuộc tính ( attributes ): một phần tử có thể chứa nhiều dữ liệu hoặc
phần tử khác hoặc cả hai. Bên cạnh đó, phần tử có thể rỗng, khi đó nó
có thể chứa thuộc tính. Một thuộc tính chỉ là sự lựa chọn để gắn dữ
liệu đến phần tử. Một thuộc tính đặt trong thẻ mở của phần tử và chỉ
ra giá trị của nó bằng cách sử dụng cặp “name= value”.
<?xml version=“1.0” encoding=“UTF-8”?>
<DOCUMENT>
<GREETING>Hello from XML</GREETING>
<MESSAGES>Well come to XML</MESSAGES>
</DOCUMENT>
<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:annotation>
<xsd:documentation>Book browing Transaction
schema</xsd:documentation>
</xsd:annotation>
<xsd:element name="Transaction" type="TransactionType"/>
<xsd:complexType name="TransactionType">
<xsd:element name="Lender" type="address"/>
<xsd:element name="Brower" type="address"/>
<xsd:element ref="note" minOccurs="0"/>
<xsd:element name="books" type="books"/>
<xsd:attribute name="borrowDate" type="xsd:date"/>
</xsd:complexType>
<xsd:element name="note" type="xsd:string"/>
<xsd:complexType name="address">
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
<xsd:attribute name="phone" type="xsd:string"
use="optional"/>
</xsd:complexType>
<xsd:complexType name="books">
<xsd:element name="book" minOccurs="0" maxOccurs="10">
<xsd:complexType>
<xsd:element name="booktitle" type="xsd:string"/>
<xsd:element name="pubdate" type="xsd:string"
monOccurs="0"/>
<xsd:element name="maxDaysout">
<xsd:simpleType base="xsd:integer">
Float NMTOKEN Pattem
Double NMTOKENS Enumeration
dateTime NCName Maxlnclusive
Time ID MaxExclusive
Date IDREF MinExclusive
Baset64Binary Negativelnteger
gYearMonth IDREFS Minlnusive
gMhontDay ENTITY TotalDigits
Gmonth Integer
Gday ENTITY totalDigits
Long
Int
2.1.7 Sử dụng mô hình Dom
Một cây được tạo thành từ nhiều nút. Và một nút cũng là một cây chứa
những nút khác. Nút lá thì không có nút con, vì thế nút này dung để hiển thị dữ
liệu văn bản.
Lớp XmlDataDocument kế thừa từ lớp XmlDocument, vì thế nó cũng có
một số phương thức như XmlDocument. Điều thú vị nhất của
XmlDataDocument là nó cung cấp hai cách nhìn trên cũng một dữ liệu đó là
XML view và relational view.
XmlDataDocument có một thuộc tính tên là DataSet, thong qua DataSet,
XmlDataDocument trình bày dữ liệu như một hoặc nhiều bảng (DataTable) có
quan hệ hoặc không có quan hệ. Khi chúng ta có thể xem nó như một cây hoặc
như một bảng (hoặc nhiều bảng).
Sau đây là đoạn code sử dụng Dom:
<?php
//Creates XML string and XML document using the DOM
$dom = new DomDocument('1.0');
//add root - <books>
$books = $dom->appendChild($dom->createElement('books'));
dữ liệu XML. Chi tiết về cú pháp của XPath sẽ không đi sâu trong bài viết này
vì nó thiên về lĩnh vực khác. Tuy nhiên chúng ta cũng minh họa vài cách sử
dụng biểu thức XPath.
Nhận xét
Như vậy chúng ta đã biết được XML là như thế nào và cách sử dụng nó ra
sao. Và bây giờ câu hỏi đặt ra là tại sao không tổ chức dữ liệu chỉ trên tập tin
XML thôi mà lại dung tập tin XML như là một cách lưu trữ hỗ trợ them cho việc
lưu trữ trên SQL Server.
1.2 Giới thiệu PHP
Bộ tiền xử lý siêu văn bản (PHP- Hypertext Preprocessor) là ngôn ngữ kịch
bản lệnh nhiều nền tảng dùng để biên soạn các trang Web động và phần mềm
ứng dụng phía máy chủ. Nó đã bắt đầu như là Trình thông dịch trang chủ cá
nhân / biểu mẫu (PHP/FI - Personal Home Page/Form Interpreter), và đã bắt đầu
một cuộc đời mới dưới bàn tay của Suraski và Gutmans, những người đã khởi
phóng PHP3 vào tháng 6/1998. Công ty của họ, Zend Technologies, vẫn đang
quản lý sự phát triển của PHP.
PHP5 phát hành vào tháng 7/2004, được Zend Engine II hỗ trợ và gồm nhiều
tính năng mới như:
Hỗ trợ mới cho việc lập trình hướng đối tượng
Hỗ trợ tốt hơn cho MySQL
Hỗ trợ tốt hơn cho XML, điều mà bạn đang quan tâm đến
• PHP5 và XML
Mặc dù PHP cung cấp hỗ trợ XML từ các phiên bản đầu tiên, hỗ trợ đó đã cải
thiện theo cấp số nhân với việc đưa ra PHP5. Do hỗ trợ của PHP4 cho XML hơi
bị hạn chế, chẳng hạn như chỉ đưa ra một bộ phân tích dựa trên SAX được kích
hoạt theo mặc định và DOM của PHP4 không thực hiện tiêu chuẩn W3C, các
nhà phát triển PHP XML đã phát minh lại cái bánh xe, có thể nói như vậy, với
PHP5 và đã theo đúng các tiêu chuẩn thông dụng.
• Những cái mới dành cho XML trong PHP5
PHP5 bao gồm các mở rộng được viết lại và mới hoàn toàn, gồm bộ phân tích
là khả năng nhập khẩu định dạng SimpleXML và xuất ra XML định dạng DOM,
hoặc ngược lại, để sử dụng như một chuỗi ký tự hoặc tệp tin XML.
• SimpleXML
Phần mở rộng về SimpleXML là công cụ đáng lựa chọn để phân tích một tài
liệu XML. Phần mở rộng SimpleXML đòi hỏi phải có PHP5 và gồm cả tính liên
tác với DOM để viết ra các tệp tin XML và hỗ trợ XPath dựng sẵn. SimpleXML
làm việc tốt nhất với dữ liệu không phức tạp, giống như bản ghi, chẳng hạn như
XML được chuyển giao như một tài liệu hay chuỗi ký tự từ một bộ phận nội bộ
khác của cùng ứng dụng đó. Miễn là tài liệu XML không quá phức tạp, quá sâu,
và nội dung không hỗn tạp, SimpleXML dễ mã hoá hơn DOM, như tên của nó
hàm ý. Nó cũng tin cậy hơn nếu bạn làm việc với một cấu trúc tài liệu đã biết từ
trước.
CHƯƠNG 2 Sử Dụng XML Và PHP Xây Dựng Trang Quản Lý Sinh Viên
2.1 Phân tích thiết kế hệ thống
2.1.1 Biểu đồ Use tổng quát
Hình 1: Biểu đồ Use tổng quát
- Tác Nhân : Admin .
Admin đăng nhập vào hệ thống, có thể thêm sửa xóa tìm kiếm sinh viên.
2.1.2 Biểu đồ tuần tự “đăng nhập”
Hình 2: Biểu đồ tuần tự “đăng nhập”
Mục đích: mô tả trình tự thao tác đăng nhập. Khi Admin đăng nhập với id
và passwod được kiểm tra tại form điều khiển đăng nhập. Nếu đúng thì giao
diện của trang quản lý sẽ hiện ra, nếu sai thì thông báo lỗi.
2.1.3 Biểu đồ trình tự cập nhật thông tin của Admin
Hình 3: Biểu đồ trình tự cập nhật
Mục đích: Sau khi đăng nhập hệ thống, người quản trị có thể thực hiện chức
năng thêm , sửa , xóa , tìm kiếm sinh viên.
Mô tả khái quát: khi người quản trị chọn chức năng quản lý thông tin. Giao
diện quản lý thông tin sẽ hiện ra, có thể chọn một trong các chức năng thêm ,
sửa , xóa , tìm kiếm sinh viên.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SINHVIEN>
<MASV>dtc</MASV>
<HOTEN>daothi</HOTEN>
<LOP>cnpmk</LOP>
<DIACHI>aaa</DIACHI>
<SDT>44444444</SDT>
</SINHVIEN>
<SINHVIEN>
<MASV>dtc3</MASV>
<HOTEN>daothien3</HOTEN>
<LOP>cnpmk9a3</LOP>
<DIACHI>aaa3</DIACHI>
<SDT>4444444444443</SDT>
</SINHVIEN>
<SINHVIEN>
<MASV>dtc</MASV>
<HOTEN>daothien</HOTEN>
<LOP>cnpmk9a</LOP>
<DIACHI>aaa</DIACHI>
<SDT>44444666666</SDT>
</SINHVIEN>
<SINHVIEN>
<MASV>3</MASV>
<HOTEN>daothien</HOTEN>
<LOP>cnpmk9a</LOP>
<DIACHI>aaa</DIACHI>
<SDT>444444444444</SDT>
</SINHVIEN>
</QLSV>