Brief history of Web Applications
● Initially: static HTML files only with HTML forms for input
● Common Gateway Interface (CGI)
○ Certain URLs map to executable programs that generate web page
○ Program exits after Web page complete
○ Introduced the notion of stateless servers: each request independent, no state
carried over from previous requests. (Made scale-out architectures easier)
○ Perl typically used for writing CGI programsCS142 Lecture Notes - FrontEnd
First-generation web app frameworks
Examples: (PHP, ASP.net, Java servlets)
● Incorporate language runtime system directly into Web server
● Templates: mix code and HTML
● Web-specific library packages:
○ URL handling
○ HTML generation
○ Sessions
○ Interfacing to databasesCS142 Lecture Notes - FrontEnd
Second-generation frameworks
Examples: (Ruby on Rails, Django):
● Model-view-controller: stylized decomposition of applications
● Object-relational mapping (ORM): simplify the use of databases (make
database tables and rows appear as classes and objects)
○ Easier fetching of dynamic data
323 trang |
Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 358 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Web Technologies and e-Services, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tả nội dung với XMLSchema
2
06/05/2021
2
1. Giới thiệu và cú pháp XML
1. Giới thiệu XML
2. Đặc điểm XML
3. Ứng dụng XML
4. Cú pháp XML
§ Định chuẩn của XML
§ Thẻ khai báo tham số
§ Thẻ chỉ thị xử lý
§ Thẻ ghi chú
§ Thẻ CDATA và PCDATA
5. Cấu trúc, đặc tả cấu trúc và nội dung của XML
6. Sử dụng thẻ thực thể, tên thẻ
7. Namespace
3
Giới thiệu XML
XML: eXtensible Markup Language - là một ngôn ngữ đánh dấu được sử dụng để
tạo ra thẻ riêng, tạo nên các văn bản với dữ liệu tự mô tả.
Được tạo nên bởi Liên minh mạng toàn cầu W3Schools nhằm khắc phục những
hạn chế của HTML - ngôn ngữ đánh dấu siêu văn bản. Giống như HTML, XML
cũng được dựa trên SGML – Standard Generalized Markup Language.
Là cơ sở của nền công nghệ thương mại điện tử, các công ty đang sử dụng
XML để giải quyết những vấn đề kinh doanh.
4
4
06/05/2021
3
Giới thiệu XML
XML là ngôn ngữ đánh dấu mở rộng với mục đích chung do W3C đề nghị, để
tạo ra các ngôn ngữ đánh dấu khác.
Là một tập con của SGML, có khả năng mô tả nhiều loại dữ liệu khác nhau.
Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ
thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet.
5
5
Giới thiệu XML
6
HTML XML
HTML được thiết kế cho mục đích trình
bày dữ liệu
XML được thiết kế cho mục đích lưu
trữ và truyền tải dữ liệu giữa các hệ
thống khác nhau
HTML dùng để hiển thị dữ liệu và chú
trọng vào việc dữ liệu được hiển thị
như thế nào
XML dùng để mô tả dữ liệu và chú
trọng vào nội dung của dữ liệu
HTML hiển thị thông tin XML mô tả thông tin
6
06/05/2021
4
Giới thiệu XML
Văn bản có cấu trúc XML cho phép biểu diễn thông tin về các đối tượng trong thực tế
XML dùng để phục vụ cho việc mô tả dữ liệu (thông tin lưu trữ bao gồm những gì, lưu trữ
ra sao) để các hệ thống khác nhau có thể đọc và sử dụng những thông tin này một
cách thuận tiện
Các thẻ (tag) của XML thường không được định nghĩa trước mà chúng được tạo ra theo
quyước của người, (hoặc Chương trình) tạo ra XML theo những quyước riêng.
XML sử dụng các khai báo kiểu dữ liệu DTD (Document Type Definition) hay lược đồ
Schema đểmô tả dữ liệu.
7
7
Ưu điểm XML
Dữ liệu độc lập là ưu điểm chính của XML. Do XML chỉ dùng để mô tả dữ liệu bằng
dạng text nên tất cả các chương trình đều có thể đọc được XML.
Dễ dàng đọc và phân tích dữ liệu, nhờ ưu điểm này mà XML thường được dùng để
trao đổi dữ liệu giữa các hệ thống khác nhau.
Dễ dàng tạo 1 file XML.
Lưu trữ cấu hình cho web site
Sử dụng cho phương thức Remote Procedure Calls (RPC) phục vụ web service
8
8
06/05/2021
5
Đặc điểm của XML
XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và áp
dụng một cấu trúc kiểu cây cho thông tin đó.
Tại mức căn bản, mọi thông tin đều thể hiện dưới dạng text, chen giữa là các
thẻ đánh dấu (markup) với nhiệm vụ ký hiệu sự phân chia thông tin thành một
cấu trúc có thứ bậc, các phần tử (element) dùng để chứa dữ liệu và các thuộc
tính của các phần tử đó.
9
9
Đặc điểm của XML
XML sử dụng bộ kí tự toàn cầu Universal Character Set làm cơ sở, kết hợp
các chuỗi kí tự với nhau tạo nên một tài liệu XML.
XML dùng để mô tả thông tin nhưng không biết về ngữ nghĩa của dữ liệu.
Vậy nên được dùng cho nhiều loại dữ liệu đa phương tiện.
10
10
06/05/2021
6
Đặc điểm của XML
Rất nhiều các phần mềm soạn thảo hỗ trợ soạn thảo và bảo trì XML.
Dữ liệu có tên, cấu trúc thứ bậc và các thuộc tính.
XML có cú pháp chung cho các tài liệu để các phần mềm XML Parser có thể đọc
và phân tích, hiểu bố cục tương đối của thông tin trong tài liệu.
XML không hạn chế về việc được sử dụng như thế nào, có rất nhiều các phần
mềm với chức năng trừu tượng hóa dữ liệu thành các định dạng khác giàu
thông tin hơn.
11
11
Ứng dụng của XML
Mô ta ̉ câ ́u hi ̀nh cu ̉a 1 Website, ứng du ̣ng. Ví dụ trong ASP.NET là tâ ̣p tin
web.config; khi xây dựng web application bằng JSP là faces-config.xml va ̀
web.xml.
Cung câ ́p tin, dữ liê ̣u cho ca ́c hê ̣ thô ́ng kha ́c nhau để co ́ thể khai tha ́c, sử
du ̣ng. Ví dụ sử du ̣ng ti ́nh năng cung câ ́p RSS cu ̉a ca ́c web site co ́ cung câ ́p
ti ́nh năng da ̣ng na ̀y như : www.vnExpress.net, www.tuoitre.vn, để lâ ́y tin
tự đô ̣ng như gia ́ va ̀ng, tin thể thao, thời sự, tin thời tiê ́t
Xây dựng các hệ thống thu thập dữ liệu XML theo thời gian từ các hệ thống
con.
12
12
06/05/2021
7
Ứng dụng của XML
13
Ví dụ tệp web.xml:
13
Cú pháp XML
Văn bản có cấu trúc XML cho phép biểu diễn thông tin về các đối tượng trong
thực tế.
Đối tượng x thuộc loại X trong thực tế được biểu diễn bởi thẻ X trong tài liệu
XML bao gồm cả các thuộc tính a của x.
Ví dụ:
Phân số 4/5 trong thực tế có thẻ:
14
14
06/05/2021
8
Cú pháp XML
Ví dụ (tiếp):
Dãy các số nguyên a bao gồm các số nguyên 1,4,5,-3 sẽ được biểu diễn bởi thẻ
15
15
Định chuẩn XML
Hệ thống các thẻ đánh dấu:
Các thẻ đánh dấu trong ngôn ngữ theo định chuẩn XML bao gồm 2 loại: Thẻ
có nội dung và thẻ rỗng.
§ Các thẻ có nội dung có dạng:
Nội dung
§ Các thẻ rỗng có dạng:
Các thẻ có thể có hoặc không có các thuộc tính (trong cùng thẻ ). Thuộc tính
trong một thẻ có dạng:
Ten_thuoc_tinh=”Gia_tri”
16
16
06/05/2021
9
Định chuẩn XML
Ví dụ : Tài liệu XML
17
17
Định chuẩn XML
Quan hệ lồng nhau giữa các thẻ có nội dung:
§ Nội dung bên trong thẻ có nội dung có thể là các thẻ khác. Khi thẻ A có
nội dung là thẻ B ta gọi: Thẻ A là thẻ cha của B , thẻ A chứa thẻ B.
§ Qui định yêu cầu các thẻ với quan hệ lồng nhau hoàn toàn. Khi thẻ A là
thẻ cha của thẻ B, A phải chứa phần bắt đầu và cả phần kết thúc của
thẻ B.
18
18
06/05/2021
10
Định chuẩn XML
Ví dụ:
Thẻ A là thẻ cha của B với dạng lồng nhau hoàn toàn (hợp lệ):
.
Thẻ A là thẻ cha của B với dạng lồng nhau không hoàn hoàn toàn (không hợp
lệ):
19
19
Định chuẩn XML
Một tài liệu XML phải có duy nhất một và chỉ một thẻ chứa tất cả các thẻ còn lại,
gọi là thẻ gốc – Root element (Document element):
Ví dụ:
Let me know what you think
Yin Yang
20
20
06/05/2021
11
Định chuẩn XML
Các kiểu tài liệu XML:
§ Well-formed Document: tài liệu XML đúng cú pháp.
§ DTD - Constrained Document: Tạo XML có khai báo DTD
(Document type definition) để mô tả cấu trúc dữ liệu trong
XML.
§ XML-Schema - Constrained Document: Tạo XML có sử
dụng “lược đồ” Schema để kiểm tra ti ́nh hợp lệ của XML.
21
21
Định chuẩn XML
Well-formed XML Document (đúng cú pháp) :
§ Co ́ duy nhâ ́t co ́ mô ̣t phâ ̀n tử thuô ̣c câ ́p cao nhâ ́t trong ta ̀i liê ̣u, co ̀n go ̣i la ̀ nu ́t gô ́c (root
element).
§ Mô ̃i mô ̣t the ̉ mở đê ̀u pha ̉i co ́ the ̉ đo ́ng và tên the ̉ la ̀ phân biê ̣t hoa thường.
§ Ca ́c the ̉ khi đo ́ng pha ̉i theo đu ́ng trình tự (mở sau đo ́ng trước)
§ Tên the ̉ không nên co ́ khoa ̉ng trắng, không nên bắt đâ ̀u bằng “xml”.
§ Ca ́c thuô ̣c tính (atributes) cu ̉a mô ̣t the ̉ luôn luôn tô ̀n ta ̣i theo cặp theo quy ước: =
“”; không nên đặt tên thuô ̣c tính tru ̀ng nhau, và gia ́ trị cu ̉a thuô ̣c tính pha ̉i đặt
trong cặp dâ ́u nha ́y ke ́p hay nha ́y đơn. Tên cu ̉a thuô ̣c tính (atribute) se ̃ theo qui luâ ̣t đặt
tên giô ́ng như đô ́i với tên the ̉.
§ Ca ́c the ̉ (tag) trong XML co ́ thê ̉ lô ̀ng nhau (The ̉ na ̀y co ́ thê ̉ chứa nhiê ̀u the ̉ kha ́c ở bên
trong).22
22
06/05/2021
12
Nội dung tài liệu XML
Nội dung của tài liệu XML bao gồm 2 phần:
§ Nội dung chính: Hệ thống các thẻ đánh dấu (có hoặc không có nội dung)
tương ứng với các thông tin cần biểu diễn.
§ Nội dung phụ: Hệ thống các thẻ khác có ý nghĩa bổ sung, tăng cường
một số thông tin về tài liệu XML. Các thẻ này có tác dụng giúp cho việc
sử dụng, xử lý trên tài liệu XML tốt hơn trong một số trường hợp nhất
định.
23
23
Nội dung tài liệu XML
Các thẻ bên trong nội dung phụ bao gồm:
§ Thẻ khai báo tham số
§ Thẻ chỉ thị xử lý
§ Thẻ ghi chú
§ Thẻ CDATA
§ Thẻ khai báo cấu trúc (đặc tả cấu trúc với DTD)
§ Thẻ khai báo thực thể (Kĩ thuật đặc tả nội dung tài liệu XML)
24
24
06/05/2021
13
Thẻ khai báo tham số
Thẻ khai báo tham số: mô tả thêm một số thông tin chung (tham số) về tài liệu
XML ngoài các thông tin biểu diễn trong nội dung chính.
Cú pháp:
Ten_1, Ten_2, : các tên các tham số và Gia_tri_1, Gia_tri_2, là các giá trị
tương ứng. Có 3 tham số được dùng là version, encoding, và standalone.
25
25
Thẻ khai báo tham số
Tham số version : Khai báo về phiên bản của định chuẩn XML được sử dụng.
Ví dụ :
Tài liệu XML thuộc định chuẩn 1.0
26
26
06/05/2021
14
Thẻ khai báo tham số
Tham số encoding : Khai báo về cách mã hóa các ký tự trong tài liệu.
Ví dụ: Tài liệu XML sử dụng cách mã hóa Unicode ký hiệu utf-8:
Tài liệu XML sử dụng cách mã hóa Unicode ký hiệu utf-16:
27
27
Thẻ khai báo tham số
Tham số standalone : Khai báo về liên kết của tài liệu XML và các tài liệu khác.
Tham số này chỉ có 2 giá trị hợp lệ là “yes” , “no”. Giá trị định sẵn là “no”.
Ví dụ: Tài liệu XML có liên kết với các tài liệu khác:
Tài liệu XML không có liên kết với các tài liệu khác:
28
28
06/05/2021
15
Thẻ chỉ thị xử lý
Thẻ chỉ thị xử lý: cho phép mô tả thêm một số thông tin (liên quan xử lý) về tài
liệu XML có ý nghĩa riêng với một công cụ xử lý nào đó.
Dạng khai báo chung:
Bo_xu_ly là ký hiệu của bộ xử lý sẽ tiến hành một số xử lý nào đó trên tài
liệu XML . Du_lieu là thông tin được gởi đến Bo_xu_ly.
29
29
Thẻ chỉ thị xử lý
Ví dụ:
§ Là thẻ chỉ thị cần xử lý định dạng thể hiện tài liệu XML với “chương
trình định dạng ” theo ngôn ngữ css được lưu trữ bên trong tập tin
Dinh_dang.css.
30
30
06/05/2021
16
Thẻ ghi chú
Thẻ ghi chú: cho phép bổ sung các thông tin ghi chú có ý nghĩa đối với con người
và hoàn toàn không có ý nghĩa với các hệ thống xử lý tài liệu XML.
Cú pháp:
Chú ý:
§ Trong nô ̣i dung cu ̉a ghi chú không co ́ ky ́ tự “-“.
§ Không nên đặt ghi chú trong 1 the ̉ (Thuô ̣c giới ha ̣n mở the ̉ đo ́ng the ̉).
§ Không nên đặt ghi chú trước do ̀ng khai ba ́o .
31
31
Thẻ CDATA
Thẻ CDATA: yêu cầu các bộ phân tích tài liệu XML Parser bỏ qua và không phân
tích vào nội dung bên trong của thẻ này.
Tác dụng của thẻ là cho phép sử dụng trực tiếp bên trong thẻ một số ký hiệu
không được phép nếu sử dụng bên ngoài ( ví dụ các ký tự “” , ).
Dạng khai báo chung:
32
32
06/05/2021
17
Thẻ PCDATA
PCDATA (Parsed character data): la ̀ dữ liê ̣u se ̃ được đo ̣c va ̀ phân ti ́ch bởi
chương tri ̀nh phân ti ́ch XML.
Trong PCDATA không được phe ́p du ̀ng ca ́c ky ́ tự đặc biê ̣t co ́ liên quan đê ́n viê ̣c
xa ́c đi ̣nh ca ́c tha ̀nh tố cu ̉a XML như ,&,
33
33
Cấu trúc tài liệu XML
Khái niệm về cấu trúc tài liệu XML:
§ Tươngứng với cấu trúc của nội dung chính
§ Cách thức tổ chức, sắp xếp của các thẻ (có hay không có nội dung) trong nội dung chính.
Ngôn ngữ đặc tả cấu trúc: Có rất nhiều ngôn ngữ đặc tả để mô tả cấu trúc tài
liệu Xml như: DTD, XML Schema, XMl- Data, Schematron , RELAX NG, v,v..
.Trong số đó có 2 ngôn ngữ thông dụng là DTD, XML Schema.
34
34
06/05/2021
18
Cấu trúc tài liệu XML
Đặc điểm của DTD:
§ Ra đời rất sớm
§ Cho phép mô tả văn bản có cấu trúc bất kỳ
§ Đơn giản, dễ học và sử dụng
§ Chỉ cho phép đặc tả một số “kiểu dữ liệu đơn giản” trong nội dung chính
của tài liệu XML
Đặc điểm của XML Schema:
§ Được đề xuất bởi W3C
§ Chỉ áp dụng cho tài liệu XML
§ Khó học và sử dụng so với DTD
§ Cho phép đặc tả chi tiết về các “kiểu dữ liệu” được sử dụng trong nội
dung chính của tài liệu XML
35
35
Cấu trúc tài liệu XML
Ví dụ : Với tài liệu Xml:
4
3
36
36
06/05/2021
19
Cấu trúc tài liệu XML
Đặc tả với DTD:
<!DOCTYPE PHAN_SO [
0 -->
0 -->
]>
37
37
Cấu trúc tài liệu XML
Đặc tả với Xml Schema:
<xs:schemaid="PHAN_SO" targetNamespace=""
xmlns:xs="">
38
38
06/05/2021
20
Sử dụng đặc tả cấu trúc
Ý nghĩa của đặc tả cấu trúc: Có 2 trường hợp chính cần thiết sử dụng các tài
liệu đặc tả cấu trúc:
§ Trường hợp 1 : Sử dụng cho việc trao đổi thông tin người – người.
§ Trường hợp 2 : Sử dụng cho việc trao đổi thông tin người – hệ thống xử lý.
39
39
Sử dụng đặc tả cấu trúc
Trường hợp 1: với trường hợp này tài liệu đặc tả cấu trúc được sử dụng như
phương tiện giao tiếp giữa các chuyên viên tin học có liên quan đến tài liệu
XML tương ứng.
Có thể được lưu trữ theo bất kỳ định dạng nào thích hợp cho việc sử dụng (
trình bày, xem báo cáo , v.v..).
40
40
06/05/2021
21
Sử dụng đặc tả cấu trúc
Ví dụ: Có thể sử dụng các tài liệu đặc tả cấu trúc (DTD/ XML Schema trên ) trong:
§ Hồ sơ thiết kế phần mềm hay giáo trình này ( theo dạng tập tin của Microsoft Word)
§ Tài liệu mô tả cách thức trao đổi thông tin giữa các chuyên viên tin cùng xây dựng các phần
mềm bài tập phân số.
Có thể có một số qui ước riêng mang tính cục bộ trong một nhóm, có thể mở
rộng các ngôn ngữ đặc tả cấu trúc hiện có để bổ sung thêm các từ vựng, cú
pháp và ngữ nghĩa riêng.
41
41
Sử dụng đặc tả cấu trúc
Trường hợp 2: chỉ được sử dụng khi Có hệ thống xử lý (phần mềm, hàm , đối
tượng thư viện ) “hiểu” và thực hiện các xử lý tương ứng nào đó với tài liệu
đặc tả cấu trúc.
Xử lý thông dụng nhất là kiểm tra một tài liệu XML có theo đúng cấu trúc được
mô tả trong tài liệu đặc tả cấu trúc hay không.
42
42
06/05/2021
22
Namespace
Namespace giu ́p cho viê ̣c truy xuâ ́t đê ́n ca ́c tha ̀nh phâ ̀n (Element) mô ̣t ca ́ch tường
minh.
Namespace la ̀ tâ ̣p hợp ca ́c tên du ̀ng để cho phe ́p kê ́t hợp với ca ́c tha ̀nh phâ ̀n va ̀
thuô ̣c ti ́nh bên trong mô ̣t ta ̀i liê ̣u XML nhằm gia ̉i quyê ́t nguy cơ xung đô ̣t vê ̀ tên
cu ̉a ca ́c phâ ̀n tử khi thông tin được tô ̉ng hợp từ nhiê ̀u nguô ̀n kha ́c nhau.
Thông qua Namespace, tri ̀nh duyê ̣t co ́ thể kê ́t hợp ca ́c file XML từ nhiê ̀u nguô ̀n
kha ́c nhau, co ́ thê ̉ truy xuâ ́t đê ́n DTD đê ̉ kiê ̉m tra câ ́u tru ́c cu ̉a XML nhâ ̣n được
co ́ thực sự thi ́ch hợp, từ đo ́ xa ́c đi ̣nh được ti ́nh hợp lê ̣ cu ̉a XML tương ứng.
62
62
Namespace
Giải quyết xung đột:
Italian coffee style
training oval wood
Orange
Strawberry
63
63
06/05/2021
23
Namespace
Cú pháp khai báo namespace và thuộc tính xmlns:
nameSpacePrefix: phâ ̀n viê ́t tắt đa ̣i diê ̣n cho nameSpace được sử du ̣ng như la ̀
tiê ̀n tố (prefix) cho ca ́c tag trong cu ̀ng nho ́m.
xmlns: la ̀ thuô ̣c ti ́nh được sử du ̣ng để khai ba ́o va ̀ chi ̉ ra nameSpace câ ̀n thiê ́t
se ̃ a ́p du ̣ng trong câ ́u tru ́c XML.
URI (Uniform Resource Identifier): chuô ̃i ky ́ tự mô ta ̉ cho 1 nguô ̀n ta ̀i nguyên
na ̀o đo ́ duy nhất trên Internet.
64
64
Namespace
<dataCombination xmlns:p=””
xmlns:s=””
Italian coffee style
training oval wood
Orange
Strawberry
65
65
06/05/2021
24
Namespace
Ví dụ khai ba ́o NameSpace co ́ sử du ̣ng prefix kê ́t hợp với URL:
66
66
Namespace
Khai ba ́o Default Namespaces ma ̀ không sử du ̣ng prefix:
67
67
06/05/2021
25
2. DTD
1. Đặc tả cấu trúc tài liệu XML với DTD
2. Đặc tả cấu trúc nội dung thẻ
3. Đặc tả thuộc tính của thẻ
68
DTD
Đặc tả cấu trúc tài liệu XML với DTD
Có nhiều dạng khác nhau cho phép khai báo (đặc tả) cấu trúc của tài liệu XML:
Dạng 1: Khai báo cấu trúc tài liệu XML được lưu trữ ngay bên trong chính tài liệu
XML đó:
<!DOCTYPE Ten_the_goc [
đặc tả cấu trúc nội dung các thẻ
đặc tả thuộc tính các thẻ
]>
69
69
06/05/2021
26
DTD
Dạng 2: Khai báo cấu trúc tài liệu XML được lưu trữ bên ngoài dưới dạng một
tập tin chứa đặc tả cấu trúc nội dung các thẻ, đặc tả thuộc tính các thẻ. Cú
pháp:
Ví dụ :
70
70
Đặc tả cấu trúc nội dung thẻ
Cú pháp chung đặc tả cấu trúc nội dung của một thẻ:
Bieu_thuc có thể chỉ là một từ khoá
Bieu_thuc cũng có thể bao gồm nhiều từ khóa khác mô tả cách bố trí, sắp
xếp các thành phần con bên trong thẻ
Với A, B là 2 thẻ con của thẻ X:
A, B A, B sắp xếp theo thứ tự tuần tự A đến B
A* A có thể lặp lại ít nhất 0 lần (>=0)
B+ B có thể lặp lại ít nhất 1 lần(>=1)
A? A có thể xuất hiện 0 hoặc 1 lần (0 or1)
A|B Có thể chọn sử dụng A hay B
72
72
06/05/2021
27
Đặc tả cấu trúc nội dung thẻ DTD
Đặc tả cách 1:
Từ khóa ANY : Thẻ có nội dung bất kì theo định chuẩn XML. Ví dụ :
§ X có thể chứa nội dung bất kỳ, khai báo này chỉ để mô tả sự tồn tại của
bên trong X một hoặc nhiều thẻ khác.
Từ khóa EMPTY : Thẻ không có nội dung. Ví dụ :
§ PHAN_SO không thể có nội dung mà chỉ có thể có các thuộc tính.
73
73
Đặc tả cấu trúc nội dung thẻ DTD
Từ khóa #PCDATA : Thẻ với nội dung là chuỗi văn bản. Ví dụ :
§ Ho_ten có nội dung là chuỗi và không thể chứa các thẻ khác
Với DTD muốn mô tả chi tiết hơn, dùng thẻ ghi chú. Ví dụ :
74
74
06/05/2021
28
Đặc tả cấu trúc nội dung thẻ DTD
Đặc tả cách 2:
Dạng tuần tự: Các thẻ con chỉ có thể xuất hiện 1 lần duy nhất và phải theo
đúng thứ tự xuất hiện trong biểu thức
Cú pháp :
Ý nghĩa : The_1, The_2, ..., The_k phải xuất hiện một lần duy nhất theo đúng
thứ tự trên. Ví dụ:
Thẻ DON_THUC phải bao hàm bên trong 2 thẻ con He_so,So_mu theo
đúng thứ tự trên
75
75
Đặc tả cấu trúc nội dung thẻ DTD
Ghi chú: Các thẻ bên trong có thể có tên trùng nhau. Ví dụ :
Có thể sử dụng từ khóa #PCDATA trong biểu thức tuần tự ( và các loại biểu
thức khác ). Ví dụ :
§ Thẻ X phải bao gồm 3 thành phần :
§ Thành phần thứ 1 là chuỗi văn bản, thành phần thức 2 là thẻ có tên A,
thành phần thứ 3 là chuỗi văn bản
76
76
06/05/2021
29
Đặc tả cấu trúc nội dung thẻ DTD
Dạng tùy chọn: Thẻ con có thể được sử dụng hay không sử dụng. Cú pháp (
dạng đơn giản) :
§ Thẻ đang xét có thẻ chứa 1 hay 0 lần xuất hiện của thẻ có tên là
Ten_the_con
Ví dụ :
Thẻ DON_THUC có thể chứa hay không thẻ Ten
77
77
Đặc tả cấu trúc nội dung thẻ DTD
Có thể kết hợp với biểu thức tuần tự:
Có thể cho phép tùy chọn một tập hợp các thẻ:
§ X có thể chứa bên trong các thẻ A,B,C ( theo thứ tự trên ) hay cũng có
thẻ không chứa bất kỳ thẻ nào
Dạng chọn : Bắt buộc chọn một thẻ con để sử dụng trong tập hợp thẻ cho
trước. Cú pháp:
78
78
06/05/2021
30
Đặc tả cấu trúc nội dung thẻ DTD
Có thể kết hợp với biểu thức tuần tự:
§ Thành phần đầu tiên của thẻ X là thẻ A, kế đến là thẻ B hay thẻ C và thành phần cuối cùng
phải là D
Có thể cho phép chọn một tập hợp các thẻ
§ X có thể bao hàm bên trong cặp thẻ A,B ( theo thứ tự trên ) hay cặp thẻ C,D ( theo thứ tự
trên )
79
79
Đặc tả cấu trúc nội dung thẻ DTD
Dạng lặp:
Dạng lặp ít nhất 0 lần : Các thẻ con có thể lặp lại nhiều lần hay có thẻ
không có lần nào. Cú pháp :
Ý nghĩa: Thẻ đang xét có thể bao hàm bên trong nhiều thẻ có tên là
Ten_the_con hay cũng có thể là thẻ rỗng ( không có nội dung )
Ví dụ :
§ Thẻ LOP có thẻ chứa nhiều thẻ HOC_SINH hay không có thẻ
HOC_SINH nào
80
80
06/05/2021
31
Đặc tả cấu trúc nội dung thẻ DTD
Có thể mô tả lặp đồng thời nhiều thẻ con
§ Các thẻ A,B,C theo thứ tự trên có thẻ lặp lại ít nhất 0 lần trong thẻ X
Có thể kết hợp với biểu thức tuần tự. Ví dụ :
§ Thẻ X có thành phần đầu tiên là thẻ A, kế đến có thể có nhiều hay 0 lần lặp của thẻ B và
cuối cùng là thẻ C
81
81
Đặc tả cấu trúc nội dung thẻ DTD
Có thể kết hợp với biểu thức tùy chọn. Ví dụ :
82
82
06/05/2021
32
Đặc tả cấu trúc nội dung thẻ DTD
Dạng lặp ít nhất 1 lần : Các thẻ con có thể lặp lại nhiều lần và ít nhất là một lần.
Cú pháp :
Ý nghĩa : Thẻ đang xét có thể bao hàm bên trong ít nhất một thẻ có tên là
Ten_the_con. Ví dụ :
§ Thẻ DATHUC phải bao hàm bên trong ít nhất một thẻ DON_THUC
83
83
Đặc tả cấu trúc nội dung thẻ DTD
Có thể mô tả lặp đồng thời nhiều thẻ con
§ Các thẻ CT_HOA_DON phải bao hàm ít nhất 1 lần 3 thẻMat_hang,So_luong,Don_gia
Có thể kết hợp với biểu thức tuần tự. Ví dụ
<!ELEMENT DA_GIAC
(DIEM,DIEM,DIEM+) >
§ Các thẻ DA_GIAC phải bao hàm ít nhất 3 thẻ DIEM
84
84
06/05/2021
33
Đặc tả thuộc tính của thẻ DTD
Cú pháp khai báo đặc tả thuộc tính chung:
<!ATTLIST Ten_the
Ten_thuoc_tinh_1 Kieu_1 Tham_so_1
Ten_thuoc_tinh_2 Kieu_2 Tham_so_2
...
Ten_thuoc_tinh_k Kieu_k Tham_so_k
>
85
85
Đặc tả thuộc tính của thẻ DTD
Ý nghĩa :
Ten_the : tên thẻ cần khai báo các thuộc tính
Ten_thuoc_tinh_1,Ten_thuoc_tinh_2, ...Ten_thuoc_tinh_k : Tên các thuộc tính của
thẻ
Kieu_1,Kieu_2, ..., Kieu_k : Mô tả tập hợp các giá trị mà thuộc tính có thể nhận
Tham_so_1,Tham_so_2,.., Tham_so_k: Mô tả một số tính chất trên thuộc tính
tương ứng
86
86
06/05/2021
34
Đặc tả thuộc tính của thẻ DTD
Ví dụ: Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về biểu thức phân số:
P = 4/5 + 6/7*1/3 - 10/3 +11/2*2/3
87
87
Đặc tả thuộc tính của thẻ DTD
<!DOCTYPE BIEU_THUC [
<ATTLIST BIEU_THUC Ten CDATA #IMPLIED
>
<ATTLIST PHAN_SO
Tu_so CDATA #REQUIRED
Mau_so CDATA #REQUIRED
0 -->
>
]>
88
88
06/05/2021
35
Đặc tả thuộc tính của thẻ DTD
Kiểu thuộc tính : Mô tả tập hợp các giá trị của thuộc tính. Một số cách
thông dụng mô tả:
Cách 1 : Dùng từ khoá CDATA
Cú pháp :
<!ATTLIST Ten_the
...
Ten_thuoc_tinh CDATA
...
>
Tập hợp các giá trị của thuộc tính với khai báo CDATA chính là tập hợp
các chuỗi
89
89
Đặc tả thuộc tính của thẻ DTD
Ví dụ : Đặc tả cấu trúc tài liệu XML biểu diễn phương trình đường thẳng trong
mặt phẳng
<!DOCTYPE DUONG_THANG [
90
90
06/05/2021
36
Đặc tả thuộc tính của thẻ DTD
<ATTLIST DUONG_THANG
Ten CDATA #IMPLIED
a CDATA #REQUIRED
b CDATA #REQUIRED
c CDATA #REQUIRED
>
]>91
91
Đặc tả thuộc tính của thẻ DTD
Cách 2: dùng biểu thức liệt kê. Cú pháp :
<!ATTLIST Ten_the
...
Ten_thuoc_tinh ( Gia_tri_1,Gia_tri_2,...._gia_tri_k) ...
>
Ý nghĩa : Tập hợp các giá trị có thể có của thuộc tính đang xét chính là tập hợp
các giá trị được liệt kê
Gia_tri_1,Gia_tri_2, ....,Gia_tri_k: Các giá trị này là các chuỗi ký tự
92
92
06/05/2021
37
Đặc tả thuộc tính của thẻ DTD
Ví dụ: Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về phiếu điểm của một học
sinh:
<!DOCTYPE PHIEU_DIEM [
93
93
Đặc tả thuộc tính của thẻ DTD
<ATTLIST HOC_SINH
Ho_ten CDATA #REQUIRED
Ngay_sinh CDATA #REQUIRED
Xep_loai(“Giỏi”, “Khá”, Trung bình”, Yếu”)#IMPLIED
>
<ATTLIST DIEM
Ten_mon CDATA #REQUIRED
Gia_tri CDATA #REQUIRED
>
]>
94
94
06/05/2021
38
Đặc tả thuộc tính của thẻ
Tham số của thuộc tính: mô tả tính chất của thuộc tính, một số cách mô tả:
Cách 1: Dùng từ khóa #REQUIRED. Cú pháp :
<!ATTLIST Ten_the
...
Ten_thuoc_tinh Kieu #REQUIRED
...
>
Ý nghĩa : Thuộc tính đang xét là thuộc tính bắt buộc phải có. Đây là cách
sử dụng phổ biến nhất
95
95
Đặc tả thuộc tính của thẻ DTD
Ví dụ : Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về các đơn thức với tên bắt
buộc phải có
<!DOCTYPE DON_THUC [
<ATTLIST DON_THUC
Ten CDATA #REQUIRED
Bien_so CDATA #REQUIRED
>
=0 -->
]>
96
96
06/05/2021
39
Đặc tả thuộc tính của thẻ DTD
Cách 2 : Dùng từ khóa #IMPLIED. Cú pháp :
<!ATTLIST Ten_the
...
Ten_thuoc_tinh Kieu #IMPLIED
...
>
Ý nghĩa : Thuộc tính đang xét là tùy chọn và không bắt buộc phải có.
97
97
Đặc tả thuộc tính của thẻ DTD
Ví dụ : Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về tam thức P(x) =2x2 -4x +6.
<!DOCTYPE TAM_THUC [
<ATTLIST TAM_THUC
Ten CDATA #IMPLIED
<!-- Ten : A_String
>
98
98
06/05/2021
40
Đặc tả thuộc tính của thẻ DTD
<ATTLIST DON_THUC
He_so CDATA #REQUIRED
So_mu (0,1,2) #REQUIRED
>
]>
99
99
Đặc tả thuộc tính của thẻ DTD
Cách 3: Dùng từ khóa #FIXED. Cú pháp :
<!ATTLIST Ten_the
...
Ten_thuoc_tinh Kieu #FIXED Gia_tri
...
>
Ý nghĩa : Thuộc tính đang xét phải có giá trị cố định là Gia_tri. Trường hợp này ít
được sử dụng
100
100
06/05/2021
41
Đặc tả thuộc tính của thẻ DTD
Ví dụ :Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về các đơn thức chỉ với
biến số x:
<!DOCTYPE DON_THUC [
<ATTLIST DON_THUC
Ten CDATA #REQUIRED
Bien_so CDATA #FIXED “x”
>
101
101
Đặc tả thuộc tính của thẻ DTD
=0 -->
]>
102
102
06/05/2021
42
XML Schema
XML Schema: khai báo XML Schema là tạo lập tài liệu XML mà nội dung
chính là các thẻ đánh dấu, các thẻ này mô tả cho cấu trúc các thẻ của
một tài liệu XML khác. Cú pháp:
<xs:schema
xmlns:xs="">
Đặc tả các thẻ
Đặc tả các kiểu
103
103
XML Schema
Thông tin về một thẻ được mô tả tập trung qua một phương cách duy nhất là
kiểu.
Mỗi thẻ sẽ có tương ứng một kiểu, đặc tả kiểu mô tả kiểu của thẻ cùng với một
số thông tin khác chính là cách sắp xếp các thành phần bên trong của thẻ và
hệ thống các thuộc tính của thẻ.
104
104
06/05/2021
43
XML Schema
<xs:schema
xmlns:xs="">
105
105
XML Schema
Tài liệu XML có thẻ gốc là DA_THUC thẻ này có kiểu là kiểu phức hợp
tên là K_DA_THUC ( có thể dùng cùng tên là DA_THUC).
Kiểu phức hợp K_DA_THUC bao gồm bên trong:
§ Thẻ DON_THUC có kiểu là kiểu phức hợp và thẻ DON_THUC
phải xuất hiện ít nhất 1 lần
§ 2 thuộc tính :
Ten với kiểu là kiểu cơ sở dạng chuỗi
Bien_so với kiểu là kiểu cơ sở dạng chuỗi
106
106
06/05/2021
44
XML Schema
107
107
XML Schema
Kiểu phức hợp K_DON_THUC không có nội dung và chỉ bao gồm các thuộc tính:
§ He_so có kiểu là kiểu cơ sở loại số thực
§ So_mu có kiểu là kiểu đơn giản với tên SO_TU_NHIEN
Kiểu đơn giản SO_TU_NHIEN chính là kiểu cơ sở số nguyên với hạn chế: giá trị
phải lớn hơn hay bằng 0
108
108
06/05/2021
45
XML Schema Đặc tả kiểu
XML Schema có 3 loại kiểu chính :
§ Loại 1 : Kiểu định nghĩa sẵn (BultinType)
§ Loại 2 : Kiểu đơn giản (simpleType)
§ Loại 3 : Kiểu phức hợp (complexType).
109
109
XML Schema kiểu định nghĩa sẵn
110
110
06/05/2021
46
XML Schema kiểu định nghĩa sẵn
Kiểu định nghĩa sẵn – thư viện
Ý nghĩa sử dụng :
§ Được sử dụng đểmô tả trực tiếp kiểu của các thuộc tính hay của thẻ thỏa 2 điều kiện :
Điều kiện 1 : thẻ không có thuộc tính
Điều kiện 2 : thẻ không chứa thẻ khác (nội dung là chuỗi văn bản) và có miền giá trị (tập
hợp giá trị có thể có) thích hợp với kiểu
111
111
XML Schema kiểu định nghĩa sẵn
Cú pháp :
§ Khi dùng với thẻ:
§ Khi dùng với thuộc tính:
Ví dụ:
112
112
06/05/2021
47
XML Schema kiểu đơn giản
Kiểu đơn giản (simpleType): Là các kiểu do người dùng định nghĩa dựa trên các
kiểu cơ sở có sẵn.
Ý nghĩa sử dụng: để mô tả trực tiếp kiểu của các thuộc tính hay các thẻ thỏa
mãn:
§ Điều kiện 1 : Không có thuộc tính
§ Điều kiện 2 : Không chứa thẻ khác ( nội dung là chuỗi văn bản) và có miền giá trị ( tập hợp
giá trị có thể có ) là tập con của miền giá trị một kiểu cơ sở nào đó
113
113
XML Schema kiểu đơn giản
Cú pháp:
Giới hạn ( ràng buộc ) trên miền giá trị
114
114
06/05/2021
48
XML Schema kiểu đơn giản
Khai báo cận dưới: Sử dụng từ khoá minInclusive ( cận dưới cho phép sử dụng
biên ), minExclusive ( cận dưới không cho phép sử dụng biên)
Khai báo cận trên: Sử dụng từ khoá maxInclusive ( cận trên cho phép sử dụng
biên), maxExclusive ( cận trên không cho phép sử dụng biên)
115
115
XML Schema kiểu đơn giản
116
116
06/05/2021
49
XML Schema kiểu đơn giản
Giới hạn loại liệt kê trên kiểu cơ sở: Cho phép xác định miền giá trị của kiểu
đơn giản bằng cách liệt kê các giá trị. Cú pháp:
...
117
117
XML Schema kiểu đơn giản
Ví dụ:
118
118
06/05/2021
50
XML Schema kiểu phức hợp
Kiểu phức hợp complexType: Là các kiểu do người dùng tự định nghĩa cho phép
mô tả nội dung và các thuộc tính của các thẻ được khai báo thuộc về kiểu
đang xét.
Ý nghĩa sử dụng :
§ Được sử dụng đểmô tả kiểu của các thẻ thỏa một trong 2 điều kiện :
Điều kiện 1 : Có thuộc tính
Điều kiện 2 : Có chứa thẻ khác
119
119
XML Schema kiểu phức hợp
Cú pháp chung:
Dac_ta_cau_truc_noi_dung
Dac_ta_thuoc_tinh
120
120
06/05/2021
51
XML Schema kiểu phức hợp
Dac_ta_cau_truc_noi_dung : Mô tả cách thức tổ chức, sắp xếp các thẻ con
bên trong. Tương tự như DTD, XML Shema cho phép nhiều dạng tổ
chức sắp xếp ( tuần tự, chọn, lặp ) các thẻ con.Ngoài ra cho phép khai
báo chi tiết hơn về số lần lặp của một thành phần.
Dac_ta_thuoc_tinh: Mô tả hệ thống các thuộc tính của thẻ. Việc mô tả các
thuộc tính trong XML Shema cũng tương tự nhưmô tả thuộc tính trong
DTD nhưng cho phép định nghĩa và sử dụng các kiểu đơn giản đểmô
tả chi tiết vềmiền giá trị của một thuộc tính.
121
121
XML Schema kiểu phức hợp
Đặc tả cấu trúc nội dung dạng tuần tự:
Dạng tuần tự : Sử dụng thẻ/từ khóa sequence. Cú pháp :
Thanh_phan_1
Thanh_phan_2
Thanh_phan_k
....
122
122
06/05/2021
52
XML Schema kiểu phức hợp
Ví dụ:
123
123
XML Schema kiểu phức hợp
Đặc tả cấu trúc nội dung dạng tùy chọn:
Dạng tùy chọn : Sử dụng thẻ/từ khóa choice
Cú pháp :
Thanh_phan_1
Thanh_phan_2
Thanh_phan_k
....
124
124
06/05/2021
53
XML Schema kiểu phức hợp
Ví dụ :
125
125
XML Schema kiểu phức hợp
Đặc tả cấu trúc nội dung dạng lặp:
Dạng lặp : Sử dụng thuộc tính/từ khóa minOccurs , maxOcuurs. Cú pháp:
...
<xs:element name="Ten_the_con” type="Kieu_the_con"
minOccurs=”So_lan_lap_toi_thieu” maxOccurs=”So_lan_lap_toi_da” />
...
....
126
126
06/05/2021
54
XML Schema kiểu phức hợp
Ví dụ:
<xs:element name="DON_THUC”
type="DON_THUC" minOccurs=”1” />
...
127
127
XML Schema kiểu phức hợp
<xs:element name="DIEM” type="DIEM"
minOccurs=”3”
maxOccurs=”3” />
...
128
128
06/05/2021
55
XML Schema kiểu phức hợp
Đặc tả thuộc tính: cho phép mô tả hệ thống các thuộc tính của một thẻ
Cú pháp :
Đặc tả cấu trúc nội dung
....
<xs:attribute name="Ten_thuoc_tinh" type="Kieu_thuoc_tinh"
Tinh_chat_thuoc_tinh />
....
129
129
XML Schema kiểu phức hợp
Tinh_chat_thuoc_tinh : Mô tả một số tính chất của thuộc tính, mỗi tính chất
tương ứng với một từ khóa riêng.
<xs:attribute name="Ten_thuoc_tinh" type="Kieu_thuoc_tinh"
Tu_khoa_1=”Gia_tri_1”
Tu_khoa_2=”Gia_tri_2”
Tu_khoa_k=”Gia_tri_k” />
Một số tính chất thông dụng:
§ Giá trị định sẵn : từ khóa default
§ Giá trị cố định: từ khóa fixed
§ Tùy chọn (có hay không có) sử dụng : từ khóa use
130
130
06/05/2021
56
XML Schema kiểu phức hợp
Đặc tả thẻ: các thông tin cần mô tả khi đặc tả một thẻ trong XML bao gồm:
§ Tên thẻ
§ Kiểu của thẻ
§ Một số tính chất khác của thẻ
Cú pháp khai báo:
131
131
XML Schema kiểu phức hợp
Tên của kiểu: mô tả thông tin về thẻ, tên kiểu và tên thẻ được đặt trùng nhau.
Thuộc tính của thẻ: mô tả các tính chất của thẻ, thông dụng nhất là minOccurs,
maxOccurs .
Khi đặc tả các thẻ vấn đề quan trong nhất là xác định loại kiểu sẽ dùng trong thẻ.
132
132
06/05/2021
57
XML Schema kiểu phức hợp
Phân loại thẻ: 2 nhóm chính:
§ Nhóm 1 : Nhóm các thẻ có thuộc tính
§ Nhóm 2 : Nhóm các thẻ không có thuộc tính
Với các thẻ có thuộc tính, nhất thiết phải sử dụng kiểu phức hợp
§ = > Khai báo kiểu phức hợp Y (có thể dùng tên thẻ đang xét )
§ => Sử dụng Y là kiểu của thẻ đang xét
133
133
XML Schema kiểu phức hợp
Các thẻ không có thuộc tính bao gồm 2 nhóm:
§ Nhóm 2.1 : Nhóm các thẻ không có thuộc tính và có chứa các thẻ con bên trong => phải sử
dụng kiểu phức hợp
§ Nhóm 2.2 : Nhóm các thẻ không có thuộc tính và không chứa các thẻ con bên trong ( nội
dung là chuỗi văn bản)
Có thể chọn sử dụng kiểu cơ sở hay kiểu đơn giản phụ thuộc vào miền giá trị của chuỗi
văn bản bên trong thẻ
134
134
06/05/2021
58
XML Schema kiểu phức hợp
Thuật giải đặc tả thẻ: Xét loại kiểu của A:
A là kiểu phức hợp,đặc tả kiểu phức hợp A bao gồm:
Đặc tả hệ thống các thẻ con của thẻ gốc X
§ Đặc tả thẻ X1 với thông tin về kiểu (giả sử là A1)
§ Đặc tả thẻ X2 với thông tin về kiểu (giả sử là A2)
§ ...
§ Đặc tả thẻ XK với thông tin về kiểu (giả sử là Ak)
Đặc tả hệ thống các thuộc tính của thẻ gốc X
§ Đặc tả thuộc tính T1 với thông tin về kiểu (giả sử là B1)
§ Đặc tả thuộc tính T2 với thông tin về kiểu (giả sử là B2) ...
§ Đặc tả thuộc tính Tk với thông tin về kiểu (giả sử là Bk)
135
135
XML Schema kiểu phức hợp
A là kiểu đơn giản: Đặc tả kiểu đơn giản A bao gồm
§ Đặc tả kiểu cơ sở của A
§ Đặc tả các hạn chế trên kiểu cơ sở của A
136
136
06/05/2021
59
XML Schema kiểu phức hợp
A là kiểu cơ sở :
Không cần Đặc tả thêm
Xét loại kiểu của A1
Xét loại kiểu của A2
...
Xét loại kiểu của Ak
Xét loại kiểu của B1
Xét loại kiểu của B2
...
Xét loại kiểu của Bk
Xét loại kiểu của T1
Xét loại kiểu của T2
...
Xét loại kiểu của Tk
.....
Xét loại kiểu của các kiểu phát sinh thêm khi ñặc tả các kiểu phía trên
.....
137
137
Tài liệu tham khảo
www.w3schools.com/xml
– XML là gì
Sách: Công nghệ XML và ứng dụng – Tác giả: Nguyễn Tiến Huy
Charles F. Goldfarb and Paul Prescod. XML Handbook™, Fifth Edition. Prentice Hall,
December, 2003
138
138
06/05/2021
60
139
139
Bài tập trên lớp 1 – Chuyển đổi
Nguyen Kim Anh
Nguyen ly cac he co so du lieu
Cong Nghe Thong Tin
32.000
Dai Hoc Quoc Gia Ha Noi
2004
120
140
140
06/05/2021
61
Bài tập trên lớp 2 – Sửa các lỗi
The Quest
Tom Smith
2007
Summer
1998
Susie Black
Paul White
Hello World
141
141
CS142 Lecture Notes - FrontEnd
Front End Programming
Mendel Rosenblum
CS142 Lecture Notes - FrontEnd
Brief history of Web Applications
● Initially: static HTML files only with HTML forms for input
● Common Gateway Interface (CGI)
○ Certain URLs map to executable programs that generate web page
○ Program exits after Web page complete
○ Introduced the notion of stateless servers: each request independent, no state
carried over from previous requests. (Made scale-out architectures easier)
○ Perl typically used for writing CGI programs
CS142 Lecture Notes - FrontEnd
First-generation web app frameworks
Examples: (PHP, ASP.net, Java servlets)
● Incorporate language runtime system directly into Web server
● Templates: mix code and HTML
● Web-specific library packages:
○ URL handling
○ HTML generation
○ Sessions
○ Interfacing to databases
CS142 Lecture Notes - FrontEnd
Second-generation frameworks
Examples: (Ruby on Rails, Django):
● Model-view-controller: stylized decomposition of applications
● Object-relational mapping (ORM): simplify the use of databases (make
database tables and rows appear as classes and objects)
○ Easier fetching of dynamic data
CS142 Lecture Notes - FrontEnd
Third-generation frameworks
Example: AngularJS
● JavaScript frameworks running in browser - More app-like web apps
○ Interactive, responsive applications
● Frameworks not dependent on particular server-side capabilities
○ Node.js - Server side JavaScript
○ No-SQL database (e.g. MongoDB)
● Many of the concepts of previous generations carry forward
○ Model-view-controllers
○ Templates
CS142 Lecture Notes - FrontEnd
Model-View-Controller (MVC) Pattern
● Model: manages the application's data
○ JavaScript objects. Photo App: User names, pictures, comments, etc.
● View: what the web page looks like
○ HTML/CSS. Photo App: View Users, View photo with comments
● Controller: fetch models and control view, handle user interactions,
○ JavaScript code. Photo App: DOM event handlers, web server communication
MVC pattern been around since the late 1970's
○ Originally conceived in the Smalltalk project at Xerox PARC
CS142 Lecture Notes - FrontEnd
View Generation
● Web App: Ultimately need to generate HTML and CSS
● Templates are commonly used technique. Basic ideas:
○ Write HTML document containing parts of the page that are always the same.
○ Add bits of code that generate the parts that are computed for each page.
○ The template is expanded by executing code snippets, substituting the results into the
document.
● Benefits of templates (Compare with direct JavaScript to DOM programming)
○ Easy to visualize HTML structure
○ Easy to see how dynamic data fits in
○ Can do either on server or browser
CS142 Lecture Notes - FrontEnd
AngularJS view template (HTML/CSS)
...
Hello {{models.user.firstName}},
You have {{models.photos.count}} photos to review.
Angular has rich templating language (loops, conditions, subroutines, etc.). Later...
CS142 Lecture Notes - FrontEnd
Controllers
● Third-generation: JavaScript running in browser
Responsibilities:
● Connect models and views
○ Server communication: Fetch models, push updates
● Control view templates
○ Manage the view templates being shown
● Handle user interactions
○ Buttons, menus, and other interactive widgets
CS142 Lecture Notes - FrontEnd
AngularJS controller (JavaScript function)
function userGreetingView ($scope, $modelService) {
$scope.models = {};
$scope.models.users = $modelService.fetch("users");
$scope.models.photos = $modelService.fetch("photos");
$scope.okPushed = function okPushed() {
// Code for ok button pushing
}
}
Angular creates $scope and calls controller function called when view is
instantiated
CS142 Lecture Notes - FrontEnd
Model Data
● All non-static information needed by the view templates or controllers
● Traditionally tied to application's database schema
○ Object Relational Mapping (ORM) - A model is a table row
● Web application's model data needs are specified by the view designers
But need to be persisted by the database
● Conflict: Database Schemas don't like changing frequently but web
application model data might (e.g. user will like this view better if we add
and lose ...)
CS142 Lecture Notes - FrontEnd
Angular doesn't specify model data (JavaScript objs)
● Angular provides support for fetching data from a web server
○ REST APIs
○ JSON frequently used
On Server:
● Mongoose's Object Definition Language (ODL) has "models"
var userSchema = new Schema({
firstName: String,
lastName: String,
});
var User = mongoose.model('User', userSchema);
CS142 Lecture Notes - FrontEnd
Fourth-generation frameworks
Examples: React.js, Vue.js, Angular(v2)
● Many of the concepts of previous generations carry forward
○ JavaScript in browser
○ Model-view-controllers
○ Templates
● Focus on JavaScript components rather than pages/HTML
○ Views apps as assembled reusable components rather than pages.
○ Software engineering focus: modular design, reusable components, testability, etc.
● Virtual DOM
○ Render view into DOM-like data structure (not real DOM)
○ Benefits: Performance, Server-side rendering, Native apps
5/13/21
1
Instructor: Dr. Thanh-Chung Dao
Slides by Dr. Binh Minh Nguyen
Department of Information Systems
School of Information and Communication Technology
Hanoi University of Science and Technology
IT4409: Web Technologies and e-Services
2020-2
Service-Oriented Architecture (SOA)
1
TOPICS
Introduction to SOA
§ Service
§ Service Oriented Architecture
Web services
Web services programming
§ SOAP Web services
§ REST Web services
2
5/13/21
2
History of creating application
Programming with
§ 0 and 1
§ Assembly
§ Procedural programming language
§ OOP programming
§Service-Oriented Architecture
3
What is a service?
Restaurant provides food: a service
After the order is taken, food is produced, served,
: service may consist of other services
The menu indicates the service provided: a
service description
The order is written down, or yelled at, the cook:
services communicate through messages
4
5/13/21
3
What is a service in IT?
An entity that provides some capability to its clients by exchanging
messages (request - response)
Request Response
5
Service characteristics
§ Services can (must) be
discovered
§ Services can be composed to
form larger services
§ Services adhere to a service
description/contract
§ Services are loosely coupled
§ Services are stateless
n Services are autonomous
n Services hide their logic
n Services are reusable
n Services use open standards
6
5/13/21
4
Loosely coupled, stateless, autonomous & hide logic
§ Loosely coupled: system is one in which each of its components has, or makes
use of, little or no knowledge of the definitions of other separate components
§ Stateless: Rental agencies come and go, the agencies cannot retain information:
it doesn’t know if and when it will be invoked again, and by whom
§ Autonomous: Its logic does not depend on the tenants
§ Hide logic: Rental agency has its own rules on how to structure its process
9
What is SOA?
SOA is a software architecture model in which business functionality are logically
grouped and encapsulated into self contained, distinct and reusable units called
services
represent a high level business concept
can be distributed over a network
can be reused to create new business applications
contain contract with specification of the purpose, functionality, interfaces, usage
10
5/13/21
5
SOA from different views
Business
A set of business services
composed to capture the business
design that an enterprise wants to
expose to its customers and clients
Architecture
An architectural style that requires
a service provider, requester and a
service description
Programming
A programming model complete
with standards, tools, methods and
technologies such as Web services
11
Application centric
Application
Application
Finance
DistributionManufacturing
Supply
Narrow Consumers
Limited Business Processes
Overlapped resources
Overlapped providers
Business scope
Application
Integration
Architecture
Business functionality is
duplicated in each application that
requires it.
Redundancy
12
5/13/21
6
Service centric
Service Architecture
Service
Service
Service
Service
Finance
DistributionManufacturing
Supply
Service virtualizes how that capability is performed,
and where and by whom the resources are provided,
enabling multiple providers and consumers to
participate together in shared business activities.
Multiple Service Consumers
Multiple Business Processes
Multiple Discrete Resources
Multiple Service Providers
Business scope
SOA structures the business and its systems as a set of
capabilities that are offered
as Services, organized into a Service Architecture
Shared
Services
13
Application centric vs Service centric
14
5/13/21
7
Why SOA?
Enabling a virtual federation of
participants to collaborate in an
end-to-end business process
Enabling alternative
implementations
Enabling reuse of
Services
Enabling virtualization of business resources Enabling aggregation from multiple
providers
Identification
Ticket Sales
Ticket Collection
Inventory
Logistics
Manufacturing
Availability
Service
Service
Service
Service Service
Service
Service
Service Service
Service
Ordering
15
SOA is an evolutionary step
16
5/13/21
8
SOA layered architecture
Reasons for Layering
1. Flexible composition.
2. Reuse.
3. Functional standardization in lower levels
4. Customization in higher layers
5. Separation of Concerns.
6. Policies may vary by Layer
Example Layers
Presentation
& workflow
Composed Services
Basic Services
Underlying
API
19
TOPICS
Introduction to SOA
§ Service
§ Service Oriented Architecture
Web services
Web services programming
§ SOAP Web services
§ REST Web services
21
5/13/21
9
Web services & SOA
Web services is chosen for SOA because:
§ Loose coupling
Service requesters depend only the interface described in WSDL and not
on the implementation of the service provide
§ Interoperability
Service interactions are based on the exchange of XML-based SOAP
messages over standards based transport protocols
§ Wide industry support
Wide industry support for adoption of Web services standards promotes
interoperability of various vendor platforms that support Web services
22
What is web service?
Implementation means to realize services
Based on open standards:
§ XML
§ SOAP: Simple Object Access Protocol
§ WSDL: Web Services Description Language
§ UDDI: Universal Description, Discovery and Integration
§ BPEL4WS: Business Process Execution Language for Web Services
Main standardization bodies: OASIS, W3C
23
5/13/21
10
One for all
Browser
Web
Server
HTTP GET/POST
DB
JDBC
Web
Server
DB
JDBC
Browser
Web
Server
SOAP
GUI
Client
SOAP
WSDL
WSDL
W
S
D
LW
S
D
L
24
OSI and Web service
Application
Presentation
Session
Transport
Datalink
Network
Physical
OSI Model
Device Driver
&
Hardware
Ipv4, IPv6
OthersTCP UDP
Application
Internet Protocol
Suite
Device Driver
&
Hardware
Ipv4, IPv6
TCP
Web Services
Application
Web Services
Model
25
5/13/21
11
Example
Web Services
Client
Application
Web Services Based Travel Web Site
Airlines -- Delta
Hotels -- Marriot
Automobiles -- Hertz
Travel Services -- Sabre
RDMS
Travel
Customers
Web Browser
Web Browser
Web Browser
26
Open standard technologies for web service
XML – tagging data such that it can be exchanged between applications and
platforms
SOAP – messaging protocol for transporting information and instructions between
applications (uses XML)
WSDL – a standard method of describing web services and their specific capabilities
(XML)
UDDI – defines XML-based rules for building directories in which companies
advertise themselves and their web services
27
5/13/21
12
XML
Developed from Standard Generalized Markup Method (SGML)
XML widely supported by W3C
Essential characteristic is the separation of content from presentation
XML describes only data
Any application that understands XML can exchange data
28
XML
XML parser checks syntax
If syntax is good the document is well-formed
XML document can optionally reference a Document Type Definition (DTD), also
called a Schema
If an XML document adheres to the structure of the schema it is valid
29
5/13/21
13
SOAP
SOAP enables between distributed systems
SOAP message has three parts
§ envelope – wraps entire message and contains header and body
§ header – optional element with additional info such as security or routing
§ body – application-specific data being commuicated
30
TOPICS
Introduction to SOA
§ Service
§ Service Oriented Architecture
Web services
Web services programming
§ SOAP Web services
§ REST Web services
34
5/13/21
14
Three Most Common Styles of Use
RPC (Remote Procedure Calls)
§ A distributed function call interface
SOAP (Simple Object Access Protocol)
§ The basic unit of communication is a message, rather than an operation
REST (Representational State Transfer)
§ Standard operations in HTTP: GET, POST, PUT, DELETE
§ Interacting with stateful resources, rather than messages or operations
35
RPC Web Services
Basic unit: WSDL operation
Widely deployed and supported, but not loosely coupled
Other approaches: CORBA, DCE/RPC, Java RMI
36
5/13/21
15
SOAP Web Services
Basic unit: message
Supported by most major vendors, loose
coupling
Envelope
Body
Message
Payload
Header
37
Representational State Transfer (REST)
Interacting with stateful resources, rather than messages or operations
Using HTTP standard operations such as GET, POST, PUT, DELETE
WSDL 2.0 offers support for binding to all HTTP request methods
§ WSDL 1.1 only GET and POST
38
5/13/21
16
SOAP web service
§ HTTP-XML-based protocol
§ Enables application to communicate over Internet
§ Uses XML documents called messages
§ SOAP message contains an envelope
§ Describes message’s content and intended recipient
§ Ability to make a Remote Procedure Call (RPC)
§ Request to another machine to run a task
39
SOAP
Using Web Services and SOAP, the request would look something like
this:
<soap:Envelope
xmlns:soap=""
soap:encodingStyle="">
12345
40
5/13/21
17
Pros & cons
Advantages
§ Human readable XML
§ Easy to debug
§ SOAP runs over HTTP
§ Firewalls not affected
§ Services can be written in any
language, platform or operating
system
n Disadvantages
n S-L-O..-W
n XML produces a lot of overhead for
small messages
n Web Services speed relies on Internet
traffic conditions
n Not strictly-typed XML
41
SOAP web service by Java
Web Service Server
RDBS
Framework
•Java
•.Net
Java
RDBMS
Application
WS Endpoint
Interface
WS Endpoint
Publisher
WSDL wsimport
Web Service
Client
Application
JSE 6 .jar
javax.jws
javax.xml.ws
javax.xml.rpc
javax.xml.soap
javax.xml.bind
WS Attribute
Classes
Java Enterprise
Environment Internet
Java Client
Environment
• Java Web Services Development Environment
• Fully Integrated Framework and Utilities
• End to End Enterprise/Client Communications
42
5/13/21
18
Android Web Services Development Environment
Web Service
RDBS
Framework
•Java
•.Net
Java
RDBMS
Application
WS Endpoint
Interface
WS Endpoint
Publisher
WSDL wsimport Proc beansxml Abst
Java .jars
javax.jws
javax.xml
othes...
Android
Java WS
Client
kSOAP2
Missing Tool
Components
Missing Library
Components
43
SOAP vs REST
SOAP REST
Meaning Simple Object Access Protocol Representational State Transfer
Design Standardized protocol with pre-defined rules
to follow.
Architectural style with loose guidelines and
recommendations.
Approach Function-driven (data available as services, e.g.:
“getUser”)
Data-driven (data available as resources, e.g.
“user”).
Statefulness Stateless by default, but it’s possible to make
a SOAP API stateful.
Stateless (no server-side sessions).
Caching API calls cannot be cached. API calls can be cached.
Security WS-Security with SSL support. Built-in ACID
compliance.
Supports HTTPS and SSL.
Performance Requires more bandwidth and computing power. Requires fewer resources.
Message format Only XML. Plain text, HTML, XML, JSON, YAML, and
others.
Transfer protocol(s) HTTP, SMTP, UDP, and others. Only HTTP
Recommended for Enterprise apps, high-security apps,
distributed environment, financial services,
payment gateways, telecommunication
services.
Public APIs for web services, mobile services,
social networks.
Advantages High security, standardized, extensibility. Scalability, better performance, browser-
friendliness, flexibility.
Disadvantages Poorer performance, more complexity, less
flexibility.
Less security, not suitable for distributed
environments.
44
5/13/21
19
Q&A
email: chungdt@soict.hust.edu.vn
45