Ứng dụng công nghệ XML trong quản lý bán vé máy bay
LỜI MỞ ĐẦU
Thế kỷ 21 - thế kỷ của sự bùng nổ công nghệ thông tin, các công nghệ tiên tiến
phát triển như vũ bão, mang một luồng gió mới thổi vào nhận thức của mỗi người.
Song song đó, thế giới đang trong xu thế toàn cầu hóa, tất cả đều mang ý nghĩa
hội nhập. Lúc này, các doanh nghiệp và chính phủ không chỉ cạnh tranh với các
doanh nghiệp trong một quốc gia mà còn cạnh tranh với các doanh nghiệp, chính
phủ ở khắp thế giới.
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.
Chúng em xin chân thành cảm ơn!
Page | 1
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
Bài toán quản lý bán vé máy bay
Một hãng hàng không cần quản lý toàn diện việc bán vé máy bay bằng máy vi
tính. Sau khi khảo sát hiện trang, phân tích viên nắm được những thông tin sau:
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.
Quy trình bán vé của hãng như sau:
Page | 2
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
Khách hàng cần mua vé có thể đến trực tiếp phòng vé hay đặt hàng qua mạng
hoặc qua điện thoại. Khi khách hàng được cung cấp đầy đủ thông tin về lịch bay
sẽ lựa chọn chuyến bay mà mình muốn đi. Nếu chuyến bay đó còn chỗ thì khách
hàng có thể chọn loại vé và mua ngay hoặc đặt trước chỗ. Khi chuyến bay đã hết
chỗ khách hàng có thể đăng ký chờ để mua vé chuyến này nếu có khách hàng nào
đó đã mua vé hoặc đặt chỗ nhưng cuối cùng đã trả vé hay hủy chỗ.
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.
Page | 3
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
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.
Page | 4
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
• 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:
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ở <… />
2. Những thành phần của một tài liệu XML.
Khai báo: Mỗi một tài liệu XMl có một chỉ thị khai báo:
Định nghĩa tài liệu XML tuân theo chuẩn của W3C và đây là phiên bản “1.0”;
<root>
<child>
<subchild>….</subchild>
……………
< /child >
…….
</root>
<? xml version = ”1.0” ?>
Page | 5
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
Chú thích: được khao báo như sau:
Phần tử(Elements): Một tài liệu XML được cấu thành từ những phần tử. Một
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ộ 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ử gốc
này sẽ chứa tất cả những phần tử của tài liệu XML do chúng tạo ra.
Thuộc tính(Attributes): Như đã trình bày ở trên, một phần tử có thể chứa dữ
liệu hoặc chứa cá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à một 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 các
giá trị của nó bằng các sử dụng cặp “name=value”.
< ! chú thích >
<?xml version="1.0"?>
<Catalog>
<Product Type="SpinningReel"SupplierId="5">
<ProductID>F10</ProductID>
<ProductName>Shimano Calcutta </ProductName>
<ListPrice>47.76</ListPrice>
</Product>
<Product Type ="Baitcasting Reel" SupplierId="3">
<ProductID>F20</ProductID>
<ProductName>Bantam Lexica</ProductName>
<ListPrice>49.99</ListPrice>
</Product>
</Catalog>
Page | 6
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
3. Một tài liệu hợp lệ.
Như chúng ta đã đề cập ở trên, một tài liệu XML hợp khuôn dạng là yếu tố
đầu tiên khi tạo lập tài liệu. Hợp khuôn dạng có nghĩa là mỗi tài liệu chỉ
có một nút gốc, mỗi phần tử phải có thẻ mở và thẻ đóng, và phải lồng nhau
chính xác, và cuối cùng là tên thuộc tính chỉ xuất hiện một lần trong thẻ mở.
Nhưng một tài liệu XML hợp khuôn dạng không có nghĩa là nó hợp lệ.
Muốn kiểm tra sự hợp lệ của một tài liệu XML ta phải dựa vào DTD
(Document Type Definition) hoặc Schema XML.
4. DTD (Document Type Definition)
DTD và Schema là hai cách khác nhau để qui định những luật về nội dung
của một tài liệu XML. Tuy nhiên DTD có một vài hạn chế. Đầu tiên, tài
liệu DTD không sử dụng định dạng XML, nghĩa là bản thân DTD không
phải là một tài liệu XML. Điều thứ hai là kiểu dữ liệu có sẵn dùng để định
nghĩa nội dung của một thuộc
tính
hoặ
c một phần tử thì rất giới hạn trong
DTD. Điều thứ ba là DTD không có khả năng mở rộng và
không
hỗ
trợ
namespace. Cuối cùng là do không viết theo định dạng XML nên DTD khó
viết và khó hiểu. Vì vậy, việc sử dụng DTD để kiểm tra sự hợp lệ của một
tài liệu XML là không khả thi. Chúng ta cần có một
sự
l
ự
a chọn khác khả
thi hơn để kiếm tra sự hợp lệ của tài liệu XML. Đó là chúng ta sử dụng
lược đồ XML - Schema XML Definition (XSD).
5. Lược đồ XML (Schema XML)
Page | 7
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
5.1 Định nghĩa lược đồ XML
Một lược đồ đơn giản chỉ là một tập những luật được định nghĩa lại để
mô tả nội dung dữ liệu c
ủ
a
mộ
t tài liệu XML. Nó tương tự như một định
nghĩa cấu trúc bảng trong cơ sở dữ liệu quan hệ. Trong lược đồ XML, chúng
ta định nghĩa một tài liệu XML, những phần tử của nó, những kiểu dữ liệu
của phần tử và những thuộc tính liên quan, và điều quan trọng nhất là mối
quan hệ “cha-con” giữa những phần t
ử.
Chúng
ta có thể tạo lược đồ trong
nhiều cách khác nhau. Cách đơn giản nhất là sử dụng Notepad. Sau đây là
một ví dụ một
lược đồ XML:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="QLbanvemaybay"
targetNamespace=" /> elementFormDefault="qualified"
xmlns=" /> xmlns:mstns=" /> xmlns:xs=" /> <! Kieu ma >
<xs:simpleType name="kieuma">
<xs:restriction base="xs:ID">
<xs:maxLength value="5"/>
</xs:restriction>
</xs:simpleType>
<! Kiểu xâu >
<xs:simpleType name="kieuxau">
<xs:restriction base="xs:string">
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<! Dinh nghia bang SAN BAY >
<xs:complexType name="kieu_sanbay">
<xs:sequence>
<xs:element name="ten_sanbay" type="kieuxau"/>
<xs:element name="so_duong_bang" type="kieuxau"/>
<xs:element name="loai_duongbang" type="kieuxau"/>
<xs:element name="chieudaiduongbang" type="kieuxau"/>
Page | 8
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
5.2 Các kiểu dữ liệu trong lược đồ XML
Khi tập tin XML hoạt động như một cơ sở dữ liệu, và XSL, XPath được sử
dụng để truy vấn trên tập tin XML giống như một số ngôn ngữ truy vấn trong
SQL, thì lúc này chúng ta cần biết được vị trí của từng phần tử trong tập tin
XML được khai báo ở đâu và với kiểu dữ liệu như thế nào. Vì trong bất kỳ cơ sở
dữ
li
ệu
quan hệ nào, ví dụ như SQL Server hoặc Oracle, tất cả những cột đều
được định nghĩa kiểu dữ li
ệu,
và
vì vậy thật sự cần thiết phải có kiểu dữ liệu
trong lược đồ XML.
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
Page | 9
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
String
normalizedString
length
Boolean
Token
minLength
Decimal
Language
maxLength
Float
NMTOKEN
pattern
Double
NMTOKENS
enumeration
dateTime
NCName
maxInclusive
Time
ID
maxExclusive
Date
IDREF
minExclusive
base64Binary
negativeInteger
gYearMonth
IDREFS
minInclusive
gMonthDay
ENTITY
totalDigits
GMonth
Integer
GDay
ENTITIES
fractionDigits
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
Page | 10
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
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ữ liệu trên web. Tập đoàn W3C
3
đã 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
Page | 11
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
đượ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.
III. Sử dụng tài liệu XML.
Dưới đấy là một số kỹ thuật được sử dụng trong môi trường Visual
Studio.NET để làm việc với tập tin XML.
1. Đọc và phân tích tài liệu XML
1.1 Đọc và ghi một file XML
//Địa chỉ file
public string file = "";
private static string strFilename = "E:\\QLbanveMB.xml";
void tenfile()
{
if (file != "")
strFilename = file;
}
//Đọc file XML
public XmlDocument DocTaiLieu()
{
tenfile();
XmlDocument xmldoc = new XmlDocument();
try
{
xmldoc.Load(strFilename);
}
catch
{
return null;
}
Page | 12
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
return xmldoc;
}
//Ghi file XML
public void GhiTaiLieu(XmlDocument document)
{
tenfile();
try
{
document.Save(strFilename);
}
catch
{
}
}
1.2. Tạo kết nối và truy vấn lên cơ sở dữ liệu:
//Tạo kết nối đến CSDL
public SqlConnection taoketnoi()
{
return new SqlConnection("Data Source=.;Initial
Catalog=BanVeMayBay;Integrated Security=True");
}
//Trả về bảng dữ liệu
public DataTable getTable(string sql)
{
SqlConnection sqlcon = taoketnoi();
Page | 13
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
sqlcon.Open();
SqlDataAdapter ada = new SqlDataAdapter(sql, sqlcon);
sqlcon.Close();
DataSet ds1 = new DataSet();
ada.Fill(ds1);
return ds1.Tables[0];
}
//Truy vấn đến CSDL
public void truyvan(string sql)
{
SqlConnection con = taoketnoi();
SqlCommand cmd = new SqlCommand(sql, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
cmd.Dispose();
}
1.3Xử lý dữ liệu trên file XML(bảng MAYBAY)
//Tự động tăng mã
public string tangma()
{
return fct.tangmatudong(".//maybay[@*]/@ma_maybay", "MB");
}
//Thêm 1 node mới vào tài liệu sử dụng hàm InsertAfter
public void luumaybay(string ma, string ten)
Page | 14
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
{
XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
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;
Page | 15
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
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);
Page | 16
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
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");
foreach (XmlNode node in mb)
{
XmlNode mamb = node.SelectSingleNode("@ma_maybay");
XmlNode tenmb = node.SelectSingleNode("ten_maybay");
string them = "insert into MAYBAY values(N'" + tenmb.InnerText +
"','" + mamb.InnerText + "')";
string sua = "update MAYBAY set ten_maybay=N'" + tenmb.InnerText
+ "'where ma_maybay='" + mamb.InnerText + "'";
try
{
acsql.truyvan(them);
i++;
}
catch
{
Page | 17
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
acsql.truyvan(sua);
j++;
}
}
}
//Lưu bảng MAYBAY ra file Xml nếu thỏa mãn điều kiện
public void luurafileXML()
{
DataTable table = dsma_MayBay();
//int i = 0, sodong = table.Rows.Count-1;
string mamb = "", tenmb = "";
//while (i != sodong)
//{
for (int i = 0; i < table.Rows.Count; i++)
{
mamb = table.Rows[i][1].ToString(); tenmb = table.Rows[i]
[0].ToString();
if (fct.kiemtrama(".//maybay[@*]/@ma_maybay", mamb) == false)
{
luumaybay(mamb, tenmb);
Page | 18
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
}
else suamaybay(mamb, tenmb);
}
2. File XML đầy đủ
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="banvemaybayXSLT.xslt"?>
<QLbanvemaybay>
<! Bảng 0_Danh sách Phân quyền >
<phanquyen ma_nhom="PQ001">
<tennhom>Admin</tennhom>
</phanquyen>
<phanquyen ma_nhom="PQ002">
<tennhom>Quản trị viên</tennhom>
</phanquyen>
<phanquyen ma_nhom="PQ003">
<tennhom>Nhân viên</tennhom>
</phanquyen>
<! Bảng 1_Danh sách Sân Bay >
<sanbay masanbay="SB001">
<ten_sanbay>Sân bay Nội Bài</ten_sanbay>
<so_duong_bang>2</so_duong_bang>
<loai_duongbang>bê tông</loai_duongbang>
<chieudaiduongbang>3200m/3800m</chieudaiduongbang>
<bay_dem>Có</bay_dem>
Page | 19
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
<thanhpho>Hà Nội</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<sanbay masanbay="SB002">
<ten_sanbay>Sân bay Côn Đảo</ten_sanbay>
<so_duong_bang>1</so_duong_bang>
<loai_duongbang>nhựa đường</loai_duongbang>
<chieudaiduongbang>1830m</chieudaiduongbang>
<bay_dem>Không</bay_dem>
<thanhpho>Bà Rịa-Vũng Tàu</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<sanbay masanbay="SB003">
<ten_sanbay>Sân bay quốc tế Đà Nẵng</ten_sanbay>
<so_duong_bang>2</so_duong_bang>
<loai_duongbang>bê tông</loai_duongbang>
<chieudaiduongbang>3000m/3000m</chieudaiduongbang>
<bay_dem>Có</bay_dem>
<thanhpho>Đà Nẵng</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<sanbay masanbay="SB004">
<ten_sanbay>Sân bay Cà Mau</ten_sanbay>
<so_duong_bang>1</so_duong_bang>
<loai_duongbang>nhựa đường</loai_duongbang>
<chieudaiduongbang>1500m</chieudaiduongbang>
<bay_dem>Không</bay_dem>
Page | 20
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
<thanhpho>Hà Nội</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<! Bảng 2_Danh sách máy bay >
<maybay ma_maybay ="MB001">
<ten_maybay>Boeing 777</ten_maybay>
</maybay>
<maybay ma_maybay ="MB002">
<ten_maybay>Boeing 737</ten_maybay>
</maybay>
<maybay ma_maybay ="MB003">
<ten_maybay>Boeing 787</ten_maybay>
</maybay>
<maybay ma_maybay ="MB004">
<ten_maybay>Airbus</ten_maybay>
</maybay>
<! Bảng 3_Danh sách nhân viên >
<nhanvien ma_nhanvien="NV001" ma_nhom="PQ003">
<hodem_nhanvien>Nguyễn Hoàng</hodem_nhanvien>
<ten_nhanvien>Lưu</ten_nhanvien>
<gioitinh>Nam</gioitinh>
<ngaysinh>1987-10-10</ngaysinh>
<trinhdohocvan>Cao Đẳng</trinhdohocvan>
<quequan>Hà Nội</quequan>
<dienthoai>0987687498</dienthoai>
Page | 21
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
<pass>123456</pass>
</nhanvien>
<nhanvien ma_nhanvien="NV002" ma_nhom="PQ003">
<hodem_nhanvien>Trần Minh</hodem_nhanvien>
<ten_nhanvien>Đức</ten_nhanvien>
<gioitinh>Nam</gioitinh>
<ngaysinh>1987-11-16</ngaysinh>
<trinhdohocvan>Cao Đẳng</trinhdohocvan>
<quequan>Hải Dương</quequan>
<dienthoai>0978687359</dienthoai>
<pass>123456</pass>
</nhanvien>
<nhanvien ma_nhanvien="NV003" ma_nhom="PQ003">
<hodem_nhanvien>Trần Đình</hodem_nhanvien>
<ten_nhanvien>Hiếu</ten_nhanvien>
<gioitinh>Nam</gioitinh>
<ngaysinh>1986-10-20</ngaysinh>
<trinhdohocvan>Đại Học</trinhdohocvan>
<quequan>Hưng Yên</quequan>
<dienthoai>01668248679</dienthoai>
<pass>123456</pass>
</nhanvien>
<! Bảng 4_Danh sách khách hàng >
<khachhang ma_khachhang="KH001">
<HoDem>Nguyễn Văn</HoDem>
Page | 22
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
<ten>Lượng</ten>
<gioitinh>Nam</gioitinh>
<CMND_hochieu>125698987</CMND_hochieu>
<ngaysinh>2012-02-05</ngaysinh>
<diachi>Bắc Ninh</diachi>
<email></email>
<dienthoai>0986589745</dienthoai>
<quoctich>Việt Nam</quoctich>
</khachhang>
<! Bảng 5_Danh sách loại vé >
<loaive ma_loaive="LV001">
<tenloaive>Vé loại 1</tenloaive>
<dongia>3000000</dongia>
</loaive>
<loaive ma_loaive="LV002">
<tenloaive>Vé loại 2</tenloaive>
<dongia>2500000</dongia>
</loaive>
<loaive ma_loaive="LV003">
<tenloaive>Vé loại 3</tenloaive>
<dongia>2300000</dongia>
</loaive>
<loaive ma_loaive="LV004">
<tenloaive>Vé giảm giá</tenloaive>
<dongia>2000000</dongia>
</loaive>
Page | 23
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
<! Bảng 6_Danh sách các tuyến bay >
<tuyenbay ma_tuyenbay="TB001" masanbay_di="SB001" masanbay_den
="SB003">
<ten_tuyenbay>Nội Bài đi Đà Nẵng</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB002" masanbay_di="SB001" masanbay_den
="SB002">
<ten_tuyenbay>Nội Bài đi Côn Đảo</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB003" masanbay_di="SB002" masanbay_den
="SB004">
<ten_tuyenbay>Côn Đảo đi Cà Mau</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB004" masanbay_di="SB001" masanbay_den
="SB006">
<ten_tuyenbay>Hà Nội đi Khánh Hòa</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB005" masanbay_di="SB001" masanbay_den
="SB005">
<ten_tuyenbay>Hà Nội đi Hồ Chí Minh</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB006" masanbay_di="SB004" masanbay_den
="SB002">
<ten_tuyenbay>Cà Mau đi Côn Đảo</ten_tuyenbay>
</tuyenbay>
<! Bảng 7_Danh sách chuyến bay >
Page | 24
Ứng dụng công nghệ XML trong quản lý bán vé máy bay
<chuyenbay ma_chuyenbay="CB001" ma_tuyenbay ="TB001"
ma_maybay="MB001">
<ten_chuyenbay>Nội Bài đi Đà Nẵng</ten_chuyenbay>
<ngaybay>2012-05-19</ngaybay>
<giokhoihanh>09:00:00</giokhoihanh>
<thoigianbay>2 giờ</thoigianbay>
<tinhtrang>Chưa bay</tinhtrang>
</chuyenbay>
<! Bảng 8_Danh sách Vé >
<ve ma_ve="VE001" ma_chuyenbay="CB001" ma_loaive ="LV001">
<tinhtrang>Đã được đặt</tinhtrang>
</ve>
<! Bảng 9_Danh sách đặt vé >
<datve ma_datve="DV001" ma_khachhang="KH001" ma_ve="VE001">
<ngaydat>2012-05-10</ngaydat>
<soghedat>1</soghedat>
</datve>
<! Bảng 10_Danh sách hóa đơn >
<hoadon ma_hoadon="HD001" ma_datve="DV001" ma_nhanvien="NV001">
<ngaylap>2012-05-13</ngaylap>
</hoadon>
</QLbanvemaybay>
3. File xslt cho thông tin lên trình duyệt.
Page | 25