Chương 2. Web Map Service (WMS)
Element Số lượng Kế thừa
Layer 0+ Không
Name 1 Không
Title 1 Không
Abstract 0/1 Không
KeywordList 0/1 Không
Style 0+ Thêm
SRS 1+ Thêm
LatLonBoundingBox 1 Thay thế
BoundingBox 0+ Thay thế
Dimension 0+ Thêm
Extent 0+ Thay thế
Attribution 0/1 Thay thế
AuthorityURL 0+ Thêm
Identifier 0+ Không
MetadataURL 0+ Không
DataURL 0/1 Không
FeatureListURL 0/1 Không
ScaleHint 0/1 Thay thế
Bảng 2.6.Qui định kế thừa các thuộc tính lớp
2.3.2. GetMap
2.3.2.1. Chức năng
Lấy ảnh bản đồ mà các tham số địa lý và chiều đã được định nghĩa hợp lệ. Khi
nhận được một request GetMap, Map Server hoặc là sẽ đáp ứng request này, hoặc là
26
sẽ tung ra một biệt lệ dịch vụ.
Chương 2. Web Map Service (WMS)
2.3.2.2. GetMap request
Bắt buộc/ Tham số request Mô tả Tùy chọn
Bắt buộc VERSION=version Phiên bản request .
Bắt buộc REQUEST=GetMap Tên request .
LAYERS=layer_list Bắt buộc Danh sách các lớp bản đồ
được phân cách bởi dấu phẩy.
STYLES=style_list Bắt buộc Danh sách kiểu của mỗi lớp
trong request .
SRS=namespace:identifier Bắt buộc Hệ quy chiếu không gian.
BBOX=minx,miny,maxx,maxy Bắt buộc Góc dưới trái và trên phải của
hình chữ nhật bao theo đơn vị
của SRS.
WIDTH=output_width Bắt buộc Chiều rộng của ảnh (pixel).
HEIGHT=output_height Bắt buộc Chiều cao của ảnh (pixel).
FORMAT=output_format Bắt buộc Định dạng trả về của bản đồ.
TRANSPARENT=TRUE|FALSE Tùy chọn Sự trong suốt của nền bản đồ
(default=FALSE).
BGCOLOR=color_value Tùy chọn Màu nền
(default=0xFFFFFF).
EXCEPTIONS=exception_format Tùy chọn Định dạng của biệt lệ trả về
của WMS
(default=SE_XML).
TIME=time Tùy chọn Giá trị thời gian của lớp.
ELEVATION=elevation Tùy chọn Giá trị độ cao của lớp.
Các chiều mẫu khác Tùy chọn Giá trị của các chiều.
Bảng 2.7.Các tham số trong GetMap request
27
Chương 2. Web Map Service (WMS)
2.3.2.2.1. VERSION
Tham số VERSION là một tham số tùy chọn, được sử dụng trong quá trình thỏa
thuận phiên bản.
2.3.2.2.2. REQUEST
Tham số REQUEST là một tham số bắt buộc. Để thực thi operation GetMap, giá
trị “GetMap” được sử dụng.
2.3.2.2.3. LAYERS
Tham số bắt buộc LAYERS liệt kê các lớp cần trả về cho request này. Các giá
trị của tham số LAYERS được phân cách bởi dấu phẩy “,”. WMS sẽ vẽ các lớp này
tuần tự từ trái sang phải, nghĩa là, lớp ngoài cùng bên trái sẽ được vẽ đầu tiên, do đó
lớp này sẽ nằm ở dưới cùng.
2.3.2.2.4. STYLES
Tham số bắt buộc STYLES liệt kê kiểu mà lớp đó sẽ vẽ. Các giá trị của tham số
STYLES được phân cách bởi dấu phẩy “,”. Có quan hệ tương ứng một-một giữa
một giá trị trong tham số LAYERS và một giá trị trong tham số STYLES. Mỗi bản
đồ trong sanh sách các lớp của tham số LAYERS sẽ được vẽ theo kiểu tương ứng
(cùng vị trí) của nó trong danh sách các kiểu của tham số STYLES. Nói một cách
khác, sẽ không có chuyện client yêu cầu vẽ một lớp theo kiểu của một lớp khác.
Server sẽ đưa ra biệt lệ có mã “StyleNotDefined” nếu một kiểu không hợp lệ được
yêu cầu.
Client có thể yêu cầu kiểu mặc định bằng cách để giá trị null (“STYLES=”).
Nếu yêu cầu vẽ các lớp trong đó lớp thì được yêu cầu vẽ theo kiểu mặc định, lớp thì
yêu cầu vẽ theo kiểu riêng thì tham số STYLES sẽ có giá trị null giữa hai dấu phẩy
“,” (“STYLES=style1,,style2,,”). Nếu tất cả các lớp đều được yêu cầu vẽ theo kiểu
mặc định thì có tể sử dụng dạng “STYLES=” hoặc dạng “STYLES=,,,,,” đều hợp
28
lệ.
Chương 2. Web Map Service (WMS)
2.3.2.2.5. SRS
Tham số bắt buộc SRS chỉ ra hệ quy chiếu không gian áp dụng cho các giá trị
của tham số BBOX. SRS đã được trình bày chi tiết ở mục “Các element cơ sở”. Giá
trị của tham số SRS có thể là một trong các giá trị được định nghĩa ở element
được yêu cầu trong GetMap.
Nếu server có định nghĩa SRS=NONE cho môt lớp nào đó thì lớp này sẽ không
có một hệ quy chiếu không gian nên sẽ không được vẽ ra cùng với các lớp khác.
Client nên chỉ ra rằng SRS=NONE trong request của GetMap nếu không, server sẽ
đưa ra biệt lệ dịch vụ.
2.3.2.2.6. BBOX
Tham số bắt buộc BBOX cho phép client yêu cầu một hình chữ nhật bao. Hình
chữ nhật bao đã được trình bày chi tiết ở mục “Các element cơ sở”. Giá trị của tham
số BBOX là request một dãy các số được phân cách bằng dấu phẩy “,” có dạng sau
“minx, miny, maxx, maxy”.
Nếu server tuyên bố rằng có một lớp nào đó không thể lấy ra tập con, thì client
nên chỉ ra giá trị của tham số BBOX trong request của GetMap đúng bằng giá trị
của BoungdingBox trong tài liệu Capabilities XML, nếu không server sẽ đưa ra biệt
lệ.
2.3.2.2.7. FORMAT
Tham số bắt buộc FORMAT chỉ ra định dạng cần trả về cho một operation. Các
giá trị định dạng hợp lệ cho một request GetMap của WMS được liệt kê trong
element
trong element
Với mỗi WMS, nó sẽ hỗ trợ các định dạng “ảnh” hoặc các định dạng “thành
phần đồ họa”. Định dạng ảnh bao gồm các định dạng ảnh thông dụng như GIF (kiểu
MIME là “image/gif”), PNG (kiểu MIME là “image/png”), JPEG (kiểu MIME là
29
“image/jpeg”) hầu hết đều có thể hiển thị trên trình duyệt web, tuy nhiên có một số
Chương 2. Web Map Service (WMS)
lại cần các trình ứng dụng khác để hiển thị. Định dạng thanh phần đồ họa bao gồm
các định dạng như SVG, WebCGM.
2.3.2.2.8. WIDTH, HEIGHT
Hai tham số bắt buộc WIDTH và HEIGHT chỉ ra kích thước tính theo số nguyên
các điểm ảnh của ảnh bản đồ sẽ trả về cho client. Có một ràng buộc là hai tham số
WIDTH và HEIGHT phải phù hợp với tham số BBOX, cụ thể là WIDTH ≤ maxx -
minx, và HEIGHT ≤ maxy – miny. Ảnh trả về, bất chấp định dạng là gì, nhưng sẽ
có đúng kích thước chiều rộng và chiều cao là WIDTH và HEIGHT tính theo pixel.
Trong trường hợp tỉ số của BBOX và tỉ số WIDTH / HEIGHT khác nhau thì WMS
sẽ căng ảnh trả về ra sao cho đúng tỉ lệ của BBOX.
Nếu request yêu cầu trả về định dạng thành phần đồ họa (ví dụ: SVG hoặc
WebCGM) thì sẽ không có chiều rộng và chiều cao. Khi đó hai tham số này sẽ
không được sử dụng.
Nếu server tuyên bố rằng lớp được yêu cầu không thay đổi được kích thước thì
client phải truyền vào chính xác giá trị của ảnh cho hai tham số WIDTH và
HEIGHT trong request, nếu không server sẽ đưa ra biệt lệ dịch vụ.
2.3.2.2.9. TRANSPARENT
Tham số tùy chọn TRANSPARENT chỉ ra nền của bản đồ có được làm trong
suốt hay không. Tham số TRANSPARENT có hai giá trị là TRUE hoặc FALSE.
Giá trị mặc định là FALSE nếu tham số không được đưa ra trong request.
Khả năng vẽ ảnh với những pixel trong suốt cho phép hiển thỉ kết quả với các
request GetMap khác nhau, các kết quả này sẽ chồng lên nhau tạo nên một bản đồ
tổng hợp. Cũng như vậy, khi request gồm nhiều lớp thì các lớp nằm phía trên cần
phải để tham số TRANSPARENT.
Định dạng ảnh GIF có khả năng hiển thị trong suốt trên trình duyệt web. Định
dạng ảnh PNG cho nhiều lựa chọn trong việc hiển thị ảnh trong suốt nhưng lại hiển
30
thị với chất lượng rất kém. Định dang ảnh JPEG không hỗ trợ ảnh trong suốt.
Chương 2. Web Map Service (WMS)
Khi tham số TRANSPARENT = TRUE và tham số FORMAT chứa định dạng
ảnh (vidụ: image/gif) WMS sẽ trả về kết quả mà trong đó tất cả các điểm ảnh không
biểu diễn cho các feature hoặc dữ liệu của lớp sẽ được làm trong suốt. Ví dụ, lớp
“Đường” sẽ hiển thị trong suốt ở những chỗ không có đường. Khi tham số
TRANSPARENT = FALSE thì những điểm ảnh đó sẽ có giá trị là giá trị của tham
số BGCOLOR.
Khi một lớp được tuyên bố là “đục” thì mọi phần hoặc thực thể trên bản đồ
không thể hiển thị trong suốt được.
Khi tham số FORMAT chứa định dạng thành phần đồ họa thì tham số
TRANSPARENT có thể đưa vào trong request GetMap nhưng sẽ khong được xét
đến ở WMS.
2.3.2.2.10. BGCOLOR
Tham số tùy chọn BGCOLOR chỉ ra màu được dùng làm màu nền của bản đồ.
Định dạng cho giá trị màu này là theo chuẩn màu RGB là một dãy sáu số hexa, cứ
mỗi cặp hai số lần lượt biểu diễn cho giá trị màu Đỏ, Xanh lá, Xanh dương. Dạng
của nó như sau OxRRGGBB. Giá trị mặc định là OxFFFFFF nếu tham số này
không có trong request .
Khi tham số FORMAT là một định dạng ảnh thì WMS sẽ vẽ bản đồ trên màu
nền là màu BGCOLOR. Còn nếu tham số FORMAT là một định dạng Thành phần
Đồ họa thì WMS sẽ không vẽ màu nền ra.
Khi một lớp được tuyên bố là “đục” thì mọi phần, mọi thực thể trên bản đồ sẽ
che lấp đi màu nền.
2.3.2.2.11. EXCEPTIONS
Tham số tùy chọn EXCEPTIONS chỉ ra cách mà lỗi được báo về cho client. Giá
trị mặc định là “application/vnd.ogc.se_xml” nếu không có tham số này trong
request. Một WMS hỗ trợ một hoặc nhiều định dạng biệt lệ bằng cách lần lượt liệt
kê các định dạng này trong các element
31
của tài liệu Capabilities XML của nó. Toàn bộ chuỗi kiểu MIME trong element
Chương 2. Web Map Service (WMS)
trong số các định dạng biệt lệ là bắt buộc đối với mọi WMS, những cái còn lại là
tùy chọn.
1) application/vnd.ogc.se_xml (bắt buộc)
2) application/vnd.ogc.se_inimage (tùy chọn)
3) application/vnd.ogc.se_blank (tùy chọn)
2.3.2.3. GetMap response
Kết quả trả về của một request hợp lệ sẽ là một bản đồ tương ứng với các lớp
thông tin địa lý được yêu cầu, theo kiểu xác định, kèm theo các thông tin về hệ quy
chiếu không gian, hình chữ nhật bao, kích thước, định dạng và độ trong suốt.
Khi một request không hợp lệ được gởi đến, server sẽ trả về một biệt lệ dịch vụ.
2.3.3. GetFeatureInfo
2.3.3.1. Chức năng
Đây là một operation tùy chọn. Nó chỉ hỗ trợ cho các lớp mà attribute
queryable=”1”. WMS sẽ gửi về biệt lệ dịch vụ nếu client gửi request
GetFeatureInfo đến lớp không hợp lệ.
GetFeatureInfo yêu cầu các thông tin của các feature trên bản đồ được trả về ở
request GetMap. Chẳng hạn như sau khi nhận được bản đồ, người dùng chọn vào
một điểm trên bản đồ để muốn biết thêm thông tin chi tiếp ở điểm đó. Operation này
chỉ ra cho client điểm ảnh nào cần truy vấn, và truy vấn trên các lớp bản đồ nào, và
định dạng của thông tin trả về là gì. Do giao thức WMS là giao thức không trạng
thái nên request GetFeatureInfo chỉ ra cho WMS thấy bản đồ nào mà người dùng
đang xem bằng cách thêm vào hầu hết các tham số trong request của GetMap (ngoại
trừ hai tham số VERSION và REQUEST). Trong tập các thông tin đó (BBOX,
SRS, WIDTH, HEIGTH), cùng với vị trí X, Y mà người dùng chọn, WMS sẽ trả về
32
các thông tin của điểm mà người dùng chọn.
Chương 2. Web Map Service (WMS)
GetFeatureInfo chỉ được thực hiện trên định dạng ảnh chứ không thực hiện được
trên định dạng thành phần đồ họa.
Thông tin trả về từ GetFeatureInfo là tùy thuộc vào nhà cung cấp dịch vụ.
2.3.3.2. GetFeatureInfo request
Các tham số của request GetFeatureInfo được liệt kê trong bảng sau.
Bắt buộc/ Tham số request Mô tả Tùy chọn
VERSION=version Bắt buộc Phiên bản request.
REQUEST=GetFeatureInfo Bắt buộc Tên request.
Phần copy lại các tham số của request
Danh sách các lớp cần truy vấn, được QUERY_LAYERS=layer_list Bắt buộc phân cách bởi dấu phẩy.
Định dạng thông tin của feature (kiểu INFO_FORMAT=output_format Tùy chọn MIME).
Số lượng feature cần lấy thông tin FEATURE_COUNT=number Tùy chọn (default = 1).
X=pixel_column Bắt buộc Hoành độ của điểm cần lấy thông tin.
Y=pixel_row Bắt buộc Tung độ của điểm cần lấy thông tin.
Định dạng của biệt lệ EXCEPTIONS=exception_format Tùy chọn (default=application/vnd.ogc.se_xml)
Vendor-specific parameters Tùy chọn
Bảng 2.8.Các tham số của request GetFeatureInfo
2.3.3.2.1. Tiền tố
Vai trò của tiền tố URL đã được đề cập trong mục “Các element cơ sở”. Tiền tố
33
cho GetCapabilities, GetMap and GetFeatureInfo là khác nhau.
Chương 2. Web Map Service (WMS)
2.3.3.2.2. VERSION
Ý nghĩa của tham số bắt buộc VERSION đã được đề cập trong mục “Các
element cơ sở”.
2.3.3.2.3. REQUEST
Ý nghĩa của tham số bắt buộc REQUEST đã được đề cập trong mục “Các
element cơ sở”. Đối với GetFeatureInfo, giá trị của tham số REQUEST là
“GetFeatureInfo”.
2.3.3.2.4.
Hầu hết các tham số trong request GetMap nay lại bị lặp lại trong GetFeatureInfo.
Ngoại trừ hai tham số VERSION và REQUEST thì GetFeatureInfo có giá trị của
riêng nó. Những tham số còn lại trong request GetMap sẽ được tiếp tục nhúng vào
trong request của GetFeatureInfo.
2.3.3.2.5. QUERY_LAYERS
Tham số bắt buộc QUERY_LAYERS chỉ ra các lớp bản đồ chứa các feature cần
lấy thông tin. Danh sách các lớp được phân cách bởi dấu phẩy “,”. Tham số này
chứa ít nhất tên của một lớp và ít hơn số lớp được yêu cầu trong request GetMap.
Nếu bất cứ lớp nào trong danh sách không có trong tài liệu Capabilities XML
của WMS thì server sẽ đưa ra biệt lệ dịch vụ.
2.3.3.2.6. INFO_FORMAT
Tham số tùy chọn INFO_FORMAT chỉ ra định dạng trả về cho thông tin của
feature. Các giá trị định dạng được dùng được liệt kê lần lượt trong elment
WMS. Toàn bộ chuỗi kiểu MIME trong element
của tham số INFO_FORMAT.
Ví dụ: INFO_FORMAT=application/vnd.ogc.gml yêu cầu thông tin feature gửi
34
theo định dạng GML.
Chương 2. Web Map Service (WMS)
2.3.3.2.7. FEATURE_COUNT
Tham số tùy chọn FEATURE_COUNT chỉ ra số feature tối đa được phép lấy
thông tin. Đây là một số nguyên lớn hơn 0. Giá trị mặc định là 1 nếu tham số này
không có trong request.
2.3.3.2.8. X,Y
Tham số bắt buộc X, Y chỉ ra một điểm cần lấy thông tin trên bản đồ. X và Y
phải nằm trong phạm vi bao quanh bởi tham số WIDTH và HEIGHT của request
GetMap. Tọa độ gốc (0,0) là tâm của điểm ảnh tại góc trên trái, X tăng qua bên
phải, Y tăng xuống dưới.
2.3.3.2.9. EXCEPTIONS
Tham số tùy chọn EXCEPTIONS chỉ ra cách mà lỗi được báo về cho client. Giá
trị mặc định là application/vnd.ogc.se_xml nếu như không có tham số này trong
request. Theo đặc tả này (version 1.1.1) thì không còn định dạng nào khác cho biệt
lệ của request GetFeatureInfo.
2.3.3.3. GetFeatureInfo response
WMS sẽ trả về một response theo tham số INFO_FORMAT trong request nếu
request này là hợp lệ, nếu không server sẽ đưa ra một biệt lệ dịch vụ. Response trả
về cho client là tùy thuộc vào nhà cung cấp WMS, nhưng nó phải gắn liền với
35
những feature gần điểm (X,Y).
Chương 3. Web Feature Service (WFS)
Chương 3. Web Feature Service (WFS)
3.1. Giới thiệu
WFS cung cấp các giao tác thông thường đến cơ sở dữ liệu GIS như là thêm,
xóa, sửa, truy vấn, khám phá các đối tượng thông tin địa lý. Nó sử dụng giao thức
HTTP như là một nền tính toán phân phối.
Đối tượng địa lý là một tập các thuộc tính, mà mỗi thuộc tính là một bộ ba giá trị
sau {tên, kiểu, giá trị}. Tên và kiểu của thuộc tính đối tượng được quy định bởi kiểu
đối tượng đó. Các đối tượng địa lý phải có ít nhất một thuộc tính có giá trị mô tả
thông tin địa lý. Nó có thể có các thuộc tính không nhằm mô tả thông tin địa lý.
Tiến trình yêu cầu dịch vụ WFS được tiến hành lần lượt theo trình tự sau:
1)Ứng dụng client gửi yêu cầu tài liệu mô tả khả năng của dịch vụ WFS. Đó là
tài liệu mô tả các giao tác mà WFS này hỗ trợ và liệt kê các kiểu feature mà nó hỗ
trợ.
2)Ứng dụng client có thể gửi yêu cầu lấy thông tin mô tả chi tiết của một hay
nhiều kiểu feature đến WFS.
3)Dựa trên thông tin mô tả chi tiết của các kiểu feature này, ứng dụng client sẽ
tạo ra một câu yêu cầu.
4)Yêu cầu này được gửi đến server.
5)WFS thực thi yêu cầu đó.
6)Sau khi đáp ứng xong yêu cầu,WFS sẽ gửi trả về trạng thái kết quả của việc
đáp ứng (thành công một giao tác, hay thất bại).
Để hỗ trợ cho các giao tác thêm, xóa, sửa và truy vấn trên dữ liệu, WFS hỗ trợ
các giao tác sau:
GetCapabilities: WFS bắt buộc phải mô tả khả năng của nó qua giao tác này.
Nó chỉ ra các kiểu feature mà nó hỗ trợ và các giao tác được hỗ trợ trên mỗi kiểu
36
feature.
Chương 3. Web Feature Service (WFS)
DescribeFeatureType: Khi có yêu cầu, WFS phải có khả năng mô tả cấu trúc
của bất kỳ kiểu feature nào mà nó hỗ trợ.
GetFeature: WFS phải có khả năng đáp ứng các yêu cầu lấy các thể hiện của
feature. Hơn nữa client có thể chỉ rõ ra các thuộc tính nào của feature mà nó muốn
lấy kèm theo các tạo ràng buộc trên chúng.
Transactinon: WFS có khả năng hỗ trợ các yêu cầu thêm, xóa, sửa các feature.
LockFeature: WFS có khả năng đáp ứng các yêu cầu khóa các thể hiện thuộc
tính trong khoảng thời gian thực hiện giao tác.
Tùy theo khả năng hỗ trợ các giao tác ở trên mà người ta phân ra làm hai loại
dịch vụ WFS. Một là “WFS cơ bản” (hay còn gọi là dịch vụ WFS chỉ đọc) chỉ hỗ
trợ các giao tác GetCapabilities, DescribeFeatureType và GetFeature. Hai là “WFS
Client
Server
Network
giao tác” thì hỗ trợ thêm giao tác Transaction, còn giao tác LockFeature là tùy chọn.
Hình 3.1. Lược đồ giao thức
37
Chương 3. Web Feature Service (WFS)
3.2. Các thành phần dịch vụ cơ sở
Các nội dung về đánh số và thỏa thuận phiên bản, các quy tắc về HTTP request,
HTTP response đã được trình bày trong phần các thành phần dịch vụ cơ sở của
WMS.
3.2.1. Mã hóa câu request
Có hai phương pháp mã hóa câu request của WFS. Phương pháp thứ nhất sử
dụng XML làm ngôn ngữ mã hóa. Phương pháp thứ hai sử dụng cặp TừKhóa-
GiáTrị để mã hóa các tham số trong câu request. Ví dụ cho phương pháp dùng cặp
từ khóa – giá trị:
"REQUEST=GetCapabilities"
Trong đó “REQUEST” là từ khóa, còn “GetCapabilities” là giá trị. Trong cả hai
phương pháp thì kết quả response hoặc biệt lệ trả về là giống nhau.
3.2.2. Không gian tên
Không gian tên được dùng để phân biệt các từ vựng XML với nhau. Đối với
WFS, có ba không gian tên sau:
1) http://www.opengis.net/wfs – các từ vựng về interface của WFS
2) http://www.opengis.net/gml – các từ vựng GML
3) http://www.opengis.net/ogc – các từ vựng cho OGC Filter
3.3. Các thành phần chung
3.3.1. Định danh của Feature (Feature identifier)
Mỗi Feature sẽ được định danh một cách duy nhất. Nghĩa là khi một server WFS
thông báo cho client biết định danh của một Feature thì định danh này sẽ được sử
dụng luôn cho Feature đó trong các lần tham chiếu đến nó (cho đến khi Feature đó
38
bị xóa). Đoạn lược đồ XML dùng để mô tả định danh này như sau:
Chương 3. Web Feature Service (WFS)
Mục đích của định danh này chính là để cho các tác vụ truy vấn cơ sở dữ liệu
trên server có thể thực hiện được.
3.3.2. Định danh duy nhất toàn cầu
Đối với riêng một Web Feature Service thì định danh cục bộ đã là đủ. Tuy
nhiên, đối với tất cả các Web Feature Service theo tổ chức OGC thì cần phải có một
định danh duy nhất cho mỗi đối tượng thuộc bất kì loại đối tượng nào. Theo cách
tiếp cận trước đây thì một đối tượng được tham chiếu đến dựa trên 2 thành phần là
phạm vi (scope) và định danh (FeatureId), phạm vi chính là URL của server chứa
loại Feature và FeatureId chính là định danh cục bộ của Feature bên trong server đó.
Cách tiếp cận này rất bất tiện khi vận chuyển và bất tiện trong một số trường hợp
khác nữa.
Mục đích của phần này là để chỉ ra rằng việc sử dụng một chuỗi định danh duy
nhất cho Feature sẽ thuận tiện hơn trong nhiều trường hợp. Chuỗi định danh duy
nhất này có thể được tạo ra bằng cách kết hợp giữa URL của Web Feature Service
với định danh cục bộ của Feature.
Chuỗi định danh này chỉ thật sự có ích khi mà nó là một chuỗi URL hoặc một
chuỗi URN mà có thể được dùng để truy xuất trực tiếp đến Feature mà nó chỉ đến.
Cấu trúc của chuỗi URL và URN này có thể được các Web Feature Service mô tả
một cách riêng biệt. Một điều cần lưu ý khi sử dụng URN là: không phải một Web
Feature Service nào cũng có thể lấy được các đối tượng dữ liệu. Do đó, nó chỉ có
ích khi được dùng để định danh duy nhất cho đối tượng.
Sử dụng URL và URN sẽ có ích cho các ứng dụng cần truy xuất đến các đối
tượng thô một cách đơn giản bởi vì các ứng dụng này không cần biết gì về chi tiết
của việc cài đặt. Cách định danh này cũng rất có ích khi mà nó được tích hợp với
các công nghệ XML cao cấp như là XSLT hoặc RDF, và cũng có ích cho việc
39
debug.
Chương 3. Web Feature Service (WFS)
3.3.3. Trạng thái của Feature (Feature State)
Định nghĩa của các Feature của một WFS được cung cấp bởi một lược đồ ứng
dụng GML (GML application schema). Ở phần sau sẽ mô tả cách mà client yêu cầu
một tài liệu XML có chứa định nghĩa của các đối tượng có trên server được cung
cấp bởi lược đồ ứng dụng GML này. Các định nghĩa lược đồ ứng dụng này cần phải
tuân thủ mô tả của ngôn ngữ đánh dấu địa lí của chuẩn OpenGIS (OpenGIS
Geography Markup Language- GML ), phiên bản 2.1.1.
Một ứng dụng client sử dụng định nghĩa lược đồ ứng dụng GML của một loại
Feature nào đó để chỉ đến tất cả các Feature thuộc loại Feature này và chỉ đến tên và
kiểu dữ liệu của các thuộc tính của các Feature này. Giá trị của các thuộc tính của
một Feature sẽ cấu thành trạng thái của Feature đó (Feature state). Một ứng dụng
client tham chiếu đến các Feature bằng cách chỉ ra tên của loại Feature đó và tên
của các thuộc tính của Feature. Một ứng dụng client có thể yêu cầu một transaction
WFS thực hiện cập nhật trạng thái của một Feature thông qua các operation insert,
update, delete.
3.3.4. Tên của các thuộc tính
Một Web Feature Service tham chiếu đến tên các thuộc tính của Feature được
định nghĩa trong lược đồ ứng dụng GML. Tuy nhiên, vì trạng thái của một Feature
được thể hiện bằng GML, nên tên các thuộc tính được Web Feature Service sử dụng
phải tuân thủ theo mô tả của một tài liệu XML. Thêm nữa, tên các thuộc tính có thể
chứa phần Namespace theo như mô tả của Namespace của XML. Định nghĩa dưới
NCName ::= (Letter | '_') (NCNameChar)*
NCNameChar ::=Letter|Digit|'.'|'-'|'_'|CombiningChar|Extender
QName ::= (Prefix ':')? LocalPart
Prefix ::= NCName
LocalPart ::= NCName
40
đây được trích ra từ mô tả của XML:
Chương 3. Web Feature Service (WFS)
Ví dụ:
Ví dụ của các tên thuộc tính hợp lệ là:
Age, Temperature, _KHz, myns:INWATERA_1M.WKB_GEOM
Ví dụ của các tên thuộc tính không hợp lệ:
+Domain, 123_SomeName
3.3.5. Tham chiếu đến thuộc tính
3.3.5.1. Giới thiệu
GML cho phép các Feature địa lý được phép chứa các thuộc tính phi địa lí phức
hợp. Vấn đề đặt ra là làm cách nào để có thể tham chiếu được đến các thuộc tình
này ở nhiều nơi khác nhau (chẳng hạn như trong câu truy vấn hoặc trong 1 chuỗi
Filter). WFS phải dùng đến cấu trúc XPath được mô tả dưới đây để tham chiếu đến
các thuộc tính và các thuộc tính con của Feature.
3.3.5.2. Biểu thức XPath (XPath expression)
Ngôn ngữ đường dẫn XML (XML Path Language) chính là ngôn ngữ dùng để
chỉ ra các phần của một tài liệu XML, còn ở đây nó được dùng để chỉ đển các thuộc
tính của Feature, các thuộc tính này được chỉ đến bởi các thành phần (element) hoặc
các thuộc tính của tài liệu XML.
Theo tài liệu này thì các WFS không cần phải hỗ trợ hoàn toàn ngôn ngữ XPath,
để giảm chi phí cài đặt thì các WFS chỉ phải hỗ trợ các phần sau đây của ngôn ngữ
XPath.
1)WFS phải hỗ trợ các đường dẫn đến các địa chỉ được viết tắt.
2)Đường dẫn đến các địa chỉ phải dùng kí tự “/” để ngăn cách giữa các cấp.
3)Bước đầu tiên của đường dẫn phải tương ứng với thành phần gốc của thuộc
tính của Feature đang được tham chiếu tới hoặc tương ứng với thành phần gốc của
loại Feature mà có bước kế tiếp tương ứng với thành phần gốc của thuộc tính của
41
Feature đang được tham chiếu tới.
Chương 3. Web Feature Service (WFS)
targetNamespace="http://www.someserver.com/myns" xmlns:myns="http://www.someserver.com/myns" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0"> schemaLocation="../gml/2.1/feature.xsd"/> substitutionGroup="gml:_Feature"/> 42 Ví dụ: Xét tài liệu XML sau đây mô tả về 1 đối tượng person. Chương 3. Web Feature Service (WFS) nillable="true"/> use="required" /> type="gml:PointPropertyType" nillable="true"/> nillable="true"/> minOccurs="0" maxOccurs="unbounded"/> use="required"/> 43