Professional Documents
Culture Documents
Tailieuxanh BTL XML 2989
Tailieuxanh BTL XML 2989
Lớp: ĐH KHMT3_K4
Trong bối cảnh phát triển mạnh mẽ của Internet nói chung, thương mại điện tử và
chính phủ điện tử nói riêng, việc ứng dụng công nghệ thông tin vào lĩnh vực dịch
vụ không là mới trên thế giới nhưng là mới ở Việt Nam. Nhiều vấn đề đặt ra là
làm thế nào đem đến cho khách hàng sự phục vụ tốt nhất, tiện lợi và hiệu quả
nhất. Chính vì vậy đề tài”” nhóm chúng em mong muốn sẽ xây dựng được một hệ
thống hỗ trợ các công ty và các trung tâm giao dịch giảm chi phí về nhân sự và
viễn thông, thời gian hỗ trợ ngắn hơn trong việc quản lý hệ thống bán vé máy bay,
thông tin hỗ trợ chính xác theo yêu cầu và không bỏ sót yêu cầu của khách hàng.
Do thời gian có hạn, kinh nghiệm phân tích, thiết kế, cài đặt còn hạn chế nên chắc
chắn không tránh khỏi một số sai sót nhất định. Rất mong nhận được sự đóng góp
ý kiến quý Cô và bạn bè để chúng em hoàn thiện đề tài này.
Mỗi khi khách hàng mua vé máy bay lần đầu tiên tùy theo quốc tịch của khách hành mà
phòng bán vé lưu lại những thông tin sau đây:
Nếu khách hàng là người Việt Nam thì lưu: Họ, tên, số chứng minh nhân dân hoặc số
khai sinh, giới tính, ngày sinh, nghề nghiệp, địa chỉ nhà riêng, số điện thoại. Nếu khách
hàng là người nước ngoài thì lưu: Họ, tên, quốc tịch, số hộ chiếu, lý do vào Việt Nam.
Nếu khách hàng là cán bộ của cơ quan doanh nghiệp thì quản lý thêm: Cơ quan công
tác, địa chỉ, điện thoại, số fax cơ quan, chức vụ tại cơ quan, số tài khoản ngân hàng của
cơ quan.
Địa chỉ nhà riêng của khách hàng hay của cơ quan được phân biệt làm hai loại: Nếu địa
chỉ thành thị thì quản lý: Số nhà, đường, huyện, tỉnh; Nếu địa chỉ nông thôn thì quản lý:
Xã, huyện, tỉnh.
Tại phòng bán vé, hãng có sẵn một lịch bay trên toàn thế giới trong một năm bao gồm
các thông tin: Sân bay đi, sân bay đến(sân bay thuộc thành phố nào, quốc gia nào), loại
máy bay, khoảng cách giữa hai sân bay, ngày bay, giờ bay, thời gian bay.
Vé máy bay của hãng gồm ba loại: Loại 1, loại 2, loại 3. Mỗi loại vé có giá khác nhau
cho từng loại máy bay. Giá vé có hai loại cho người Việt Nam và người nước ngoài. Có
loại máy bay không có vé loại 1 và 2.
Khách hàng đã đặt chỗ phải đến mua vé chậm nhất 48 giờ trước khi chuyến bay cất
cánh. Nếu trong thời gian ấy mà khách hàng không mua vé thì coi như đã hủy việc đặt
vé và phòng vé sẽ xóa tên trong danh sách đặt vé nếu cần.
Khách hàng đã mua vé cho một chuyến bay nào đó nhưng vì một lý do nào đó mà không
đi được thì có thể xác định lại chuyến bay ở bất kỳ chuyến bay cùng tuyến nào đó.
Trong trường hợp khách hàng không thể đi được thì có thể trả lại vé đã mua bất kỳ lúc
nào trong vòng một năm kể từ ngày mua.
Mỗi ngày bộ phận bán vé và đặt chỗ sẽ duyệt lại tình hình bán vé cho các chuyến bay
trong hai ngày tới. Nếu có trường hợp hủy vé đã đặt hoặc trả lại vé thì phải thông báo
cho khách hàng đăng ký chờ đến mua vé. Nếu những vé cờ không thể đáp ứng được thì
thông báo cho khách hàng để họ có thể lựa chọn chuyến sau.
Cuối mỗi ngày bộ phận kế toán in bảng tổng hợp tình hình bán vé trong ngày theo mẫu
đã định.
I. TỔNG QUAN VỀ XML
1. Giới thiệu.
XML (Extensible Markup Language) ra đời vào tháng 2/1998, là ngôn ngữ có kiến
trúc gần giống với HTML nhưng XML nhanh chóng trở thành một chuẩn phổ biến
trong việc chuyển đổi thông tin qua các trang web sử dụng giao thức HTTP. Trong
khi HTML chỉ là ngôn ngữ chủ yếu về hiển thị dữ liệu thì XML lại đang phát triển
mạnh về việc chuyển tải, trao đổi và thao tác dữ liệu bằng XML. XML đưa ra một
dạng chuẩn cho cấu trúc dữ liệu hoặc thông tin bằng việc tự định nghĩa định dạng của
dữ liệu. Bằng cách này dữ liệu được lưu trữ bằng XML sẽ độc lập với việc xử lý. Vì
vậy XML ra đời sẽ đáp ứng được yêu cầu ngày càng cao của các nhà lập trình trong
vấn đề trao đổi và xử lý thông tin.
2. Mục tiêu ra đời của XML.
Ngày nay, XML đang trở thành một chuẩn chung cho việc trao đổi dữ liệu cho các
ứng dụng chạy trên môi trường Internet. Vì XML cho phép người dùng có thể tự định
nghĩa các thẻ(tag)-những thẻ này làm cho tài liệu XML đa dạng hơn nhưng ngôn ngữ
thông thường như HTML. Như vậy mục tiêu đặt ra cho sự ra đời XML là gì? Đó là,
đầu tiên nó sẽ tương thích với SGML, và dễ dàng viết thành chương trình để sử lý
cho những tài liệu XML. Kế tiếp, những tài liệu XML rõ ràng, dễ đọc và dễ dàng tạo
lập. Và điều quan trọng là nó được hỗ trợ trong nhiều ứng dụng. Nói tóm lại, XML dễ
dàng chia sẻ thông tin qua những định dạng khác nhau thông qua môi trường web.
XML được thiết kế dành cho mọi người, được mọi người sử dụng.
3. Lợi ích khi sử dụng XML
Trong quá trình trưởng thành và phát triển, XML đã đối mặt và đương đầu với nhiều
thư thách trong việc thuyết phục các nhà lập trình rằng XML thực sự là lựa chọn hàng
đầu vì nó dễ dàng để hiểu, dễ dàng để đọc, và dễ dàng thực hiện. Sau đây là một số
lợi ich khi sử dụng XML.
XML có thể tách rời dữ liệu. Sử dụng XML, dữ liệu được chứa trong các tập tin
XML riêng biệt.
XML có thể mô tả thông tin của những đối tượng phức tạp mà cơ sở dữ liệu quan
hệ không thể giải quyết được.
XML có thể dùng chuyển đổi dữ liệu giữa các hệ thống không tương thích.
XML dùng để chia sẻ dữ liệu với những tập tin văn bản đơn giản dễ hiểu.
XML cũng được dùng để lưu trữ dữ liệu, có thể làm cho dữ liệu của chúng ta hữu
ích hơn.
II. Tìm hiểu về thành phần của XML
1. Tạo lập một tài liệu XML.
Chúng ta có thể sử dụng trình soạn thảo đơn giản nhất là Notepad để soạn thảo tài
liệu XML, nhưng phải tuân thủ theo quy tắc sau:
<root>
<child>
<subchild>….</subchild>
……………..
< /child >
…….
</root>
Theo định dạng trên, chúng ta thấy tuy tài liệu XML rất đơn giản nhưng qui định cũng
rất nghiêm ngặt, có nghĩa là các tài liệu XML đều xuất phát từ nút gốc(root), và mỗi
phần tử phải có thể đóng và thẻ mở <…../>
<?xml version="1.0"?>
<Catalog>
<Product Type="SpinningReel"SupplierId="5">
<ProductID>F10</ProductID>
<ListPrice>47.76</ListPrice>
</Product>
<ProductID>F20</ProductID>
<ProductName>Bantam Lexica</ProductName>
<ListPrice>49.99</ListPrice>
</Product>
</Catalog>
Có hai loại kiểu dữ liệu trong lược đồ XML đó là kiểu dữ liệu cơ bản và kiểu
dữ liệu mở rộng. Kiểu dữ liệu cơ bản là kiểu dữ liệu không bắt nguồn từ kiểu dữ
liệu nào ví dụ như kiểu dữ liệu float. Kiểu dữ liệu mở rộng dựa trên những kiểu dữ
liệu khác ví dụ như kiểu integer dựa trên kiểu decimal.
Kiểu dữ liệu cơ bản được định nghĩa cho mục đích của lược đồ XML thì
không nhất thiết phải giống với một số cơ sở dữ liệu khác. Sau đây là danh
sách các kiểu dữ liệu của lược đồ XML.
Các kiểu dữ liệu cơ bản Kiểu dữ liệu mở rộng Kiểu ràng buộc
Time ID maxExclusive
base64Binary negativeInteger
GMonth Integer
long
int
short
byte
6. Xpath
Qua phần trình bày trên, chúng ta biết được cấu trúc và cú pháp của XML tương
đối đơn giản. Bước tiếp theo là tìm hiểu cách nào để xử lý một tài liệu XML.
Như vậy để xử lý một tài liệu XML, chương trình ứng dụng phải có cách di
chuyển bên trong tài liệu để lấy ra giá trị của các phần tử (Elements) hay thuộc
tính (Attributes). Do đó ngôn ngữ XML Path được ra đời, mà chúng ta gọi tắt là
XPath. XPath đóng một vai trò quan trọng trong việc truy vấn dữ liệu cho các
chương trình ứng dụng vì nó cho phép ta lựa chọn hay sàng lọc ra những phần tử nào
mình muốn để trao đổi hay hiển thị.
Nếu khi làm việc với cơ sở dữ liệu ta dùng các phát biểu SQL như
SELECT .. FROM table_name WHERE ... để trích ra một số mẩu tin từ một bảng,
thì khi làm việc với tập tin XML, XPath cho ta những biểu thức (expressions)
về điều kiện (criteria) giống như mệnh đề WHERE trong SQL.
XPath là một ngôn ngữ dùng để xử lý truy vấn trên tài liệu XML, cũng giống
như SQL là một chuẩn để làm việc với cơ sở dữ liệu. Một biểu thức XPath có
thể chỉ ra vị trí và mẫu nào để kết hợp. Chúng ta có thể áp dụng toán tử boolean,
hàm string, và toán tử số học trong biếu thức XPath để xây dựng câu truy vấn phức
tạp trên tài liệu XML. XPath cũng cung cấp một số hàm về số như tính tổng, hàm
làm tròn (round), v.v….
7. Nhận xét về XML
XML được xây dựng như là một chuẩn cho việc trình bày và trao đổi dữ
3
liệu trên web. Tập đoàn W3C đã xây dựng chuẩn XML và những công nghệ liên
quan bao gồm XML DOM, XPath, XSL, và XML Schema. Trong đó XML DOM
được sử dụng để tạo, thay đổi, và duyệt qua tài liệu XML. XPath là ngôn ngữ dùng
để truy vấn trên tài liệu XML. XSL dùng để chuyển đổi tài liệu XML từ dạng này
sang dạng khác. XML Schema định nghĩa cấu trúc và kiểu dữ liệu cho những nút
trong một tài liệu XML. Tất cả những công nghệ này đã tạo nên sức mạnh cho
XML. Vì thế, XML ngày nay đang được sử dụng rất phổ biến và tương lai sẽ là một
chuẩn duy nhất được dùng trên web.
void tenfile()
{
if (file != "")
strFilename = file;
}
XmlElement nutthem =
doc.CreateElement("maybay");
XmlAttribute thuoctinh =
doc.CreateAttribute("ma_maybay");
thuoctinh.InnerText = ma;
nutthem.SetAttributeNode(thuoctinh);
XmlNode ten_maybay =
doc.CreateElement("ten_maybay");
ten_maybay.InnerText = ten;
nutthem.AppendChild(ten_maybay);
XmlNode vitri =
goc.SelectSingleNode(".//maybay[last()]");
goc.InsertAfter(nutthem, vitri);
dgxml.GhiTaiLieu(doc);
//hienmaybay();
}
//Sửa thông tin máy bay và thay thế cho node cũ dùng hàm
ReplaceChild
public void suamaybay(string mamaybay,string tenmaybay)
{
XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
XmlNode cu =
doc.SelectSingleNode("//maybay[@ma_maybay='" + mamaybay +
"']");
XmlElement nutthem =
doc.CreateElement("maybay");
XmlAttribute thuoctinh =
doc.CreateAttribute("ma_maybay");
thuoctinh.InnerText = mamaybay;
nutthem.SetAttributeNode(thuoctinh);
XmlNode ten_maybay =
doc.CreateElement("ten_maybay");
ten_maybay.InnerText = tenmaybay;
nutthem.AppendChild(ten_maybay);
goc.ReplaceChild(nutthem, cu);
dgxml.GhiTaiLieu(doc);
//hienmaybay();
}
//Xóa một node trong tài liệu sử dụng hàm RemoveChild
public void xoamaybay(string mamaybay)
{
XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
XmlNode cu =
doc.SelectSingleNode(".//maybay[@ma_maybay='" + mamaybay +
"']"); ;
goc.RemoveChild(cu);
dgxml.GhiTaiLieu(doc);}
//Lưu những thay đổi trên tài liệu XMl vào CSDL
public int i = 0;
public int j = 0;
public void luu_CSDL()
{
XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
XmlNodeList mb = doc.SelectNodes(@"//maybay");
//Lưu bảng MAYBAY ra file Xml nếu thỏa mãn điều kiện
public void luurafileXML()
{
if
(fct.kiemtrama(".//maybay[@*]/@ma_maybay", mamb) == false)
{
luumaybay(mamb, tenmb);
}
else suamaybay(mamb, tenmb);
}
}
td {
text-align: center;
padding: 2px;
border: 2px solid #C8DBDE;
background: #e3f0f7;
}
td {
background: #f7f7f7;
}
body {
overflow-y:scroll;
}
h2{
color: #EA151E;
}
</style>
$("#tabContaier ul li a").click(function(){
//Khai báo sự kiện khi click vào một tab nào đó
<body>
<div id="deadline">
<h1> Quản lý bán vé máy bay</h1>
</div>
<div id="tabContaier">
<ul>
<li>
<a class="active" href="#tab1">Sân bay</a>
</li>
<li>
<a href="#tab2">Máy bay</a>
</li>
<li>
<a href="#tab3">Tuyến bay</a>
</li>
<li>
<a href="#tab4">Chuyến bay</a>
</li>
<li>
<a href="#tab5">Loại vé</a>
</li>
<li>
<a href="#tab6">Vé</a>
</li>
<li>
<a href="#tab7">Phân quyền</a>
</li>
<li>
<a href="#tab8">Đặt vé</a>
</li>
<li>
<a href="#tab9">Hóa đơn</a>
</li>
<li>
<a href="#tab10">Khách hàng</a>
</li>
<li>
<a href="#tab11">Nhân viên</a>
</li>
</ul>
<center>
<div class="tabDetails">
</tr>
<xsl:apply-templates
select="QLbanvemaybay/sanbay"/>
</table>
</div>
</div>
<div id="tab6" class="tabContents">
<h2> Thông tin về vé</h2>
<table>
<tr>
<th align="center">STT</th>
<th align="center">Mã vé</th>
<th align="center">Mã loại vé</th>
<th align="center">Mã chuyến bay</th>
<th align="center">Tình trạng</th>
</tr>
<xsl:apply-templates
select="QLbanvemaybay/ve"/>
</table>
</div>
</div>
</center>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="sanbay">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@masanbay"/></td>
<td><xsl:value-of select="ten_sanbay"/></td>
<td><xsl:value-of select="so_duong_bang"/></td>
<td><xsl:value-of select="loai_duongbang"/></td>
<td><xsl:value-of select="chieudaiduongbang"/></td>
<td><xsl:value-of select="bay_dem"/></td>
<td><xsl:value-of select="thanhpho"/></td>
<td><xsl:value-of select="quocgia"/></td>
</tr>
</xsl:template>
<xsl:template match="maybay">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_maybay"/></td>
<td><xsl:value-of select="ten_maybay"/></td>
</tr>
</xsl:template>
<xsl:template match="tuyenbay">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_tuyenbay"/></td>
<td><xsl:value-of select="ten_tuyenbay"/></td>
<td><xsl:value-of select="@masanbay_di"/></td>
<td><xsl:value-of select="@masanbay_den"/></td>
</tr>
</xsl:template>
<xsl:template match="chuyenbay">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_chuyenbay"/></td>
<td><xsl:value-of select="ten_chuyenbay"/></td>
<td><xsl:value-of select="ngaybay"/></td>
<td><xsl:value-of select="giokhoihanh"/></td>
<td><xsl:value-of select="thoigianbay"/></td>
<td><xsl:value-of select="tinhtrang"/></td>
<td><xsl:value-of select="@ma_tuyenbay"/></td>
<td><xsl:value-of select="@ma_maybay"/></td>
</tr>
</xsl:template>
<xsl:template match="loaive">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_loaive"/></td>
<td><xsl:value-of select="tenloaive"/></td>
<td><xsl:value-of select="dongia"/></td>
</tr>
</xsl:template>
<xsl:template match="ve">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_ve"/></td>
<td><xsl:value-of select="@ma_loaive"/></td>
<td><xsl:value-of select="@ma_chuyenbay"/></td>
<td><xsl:value-of select="tinhtrang"/></td>
</tr>
</xsl:template>
<xsl:template match="phanquyen">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_nhom"/></td>
<td><xsl:value-of select="tennhom"/></td>
</tr>
</xsl:template>
<xsl:template match="datve">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_datve"/></td>
<td><xsl:value-of select="ngaydat"/></td>
<td><xsl:value-of select="soghedat"/></td>
<td><xsl:value-of select="@ma_datve"/></td>
<td><xsl:value-of select="@ma_khachhang"/></td>
</tr>
</xsl:template>
<xsl:template match="hoadon">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_hoadon"/></td>
<td><xsl:value-of select="ngaylap"/></td>
<td><xsl:value-of select="@ma_datve"/></td>
<td><xsl:value-of select="@ma_nhanvien"/></td>
</tr>
</xsl:template>
<xsl:template match="khachhang">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_khachhang"/></td>
<td><xsl:value-of select="HoDem"/></td>
<td><xsl:value-of select="ten"/></td>
<td><xsl:value-of select="gioitinh"/></td>
<td><xsl:value-of select="CMND_hochieu"/></td>
<td><xsl:value-of select="ngaysinh"/></td>
<td><xsl:value-of select="diachi"/></td>
<td><xsl:value-of select="email"/></td>
<td><xsl:value-of select="dienthoai"/></td>
<td><xsl:value-of select="quoctich"/></td>
</tr>
</xsl:template>
<xsl:template match="nhanvien">
<tr>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="@ma_nhanvien"/></td>
<td><xsl:value-of select="hodem_nhanvien"/></td>
<td><xsl:value-of select="ten_nhanvien"/></td>
<td><xsl:value-of select="gioitinh"/></td>
<td><xsl:value-of select="ngaysinh"/></td>
<td><xsl:value-of select="trinhdohocvan"/></td>
<td><xsl:value-of select="quequan"/></td>
<td><xsl:value-of select="dienthoai"/></td>
<td><xsl:value-of select="@ma_nhom"/></td>
<td><xsl:value-of select="pass"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
Hình demo chương trình:
IV. Tài liệu tham khảo.
1. Giáo trình Công Nghệ XML _Th.S Đỗ Thị Tâm
2. Website www.w3c.org
3. Website: congdongcviet.com