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

trong lớp được yêu cầu. Cùng một SRS sẽ được áp dụng cho tất cả các lớp

đượ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 tài liệu Capabilities XML. Toàn bộ chuỗi kiểu MIME

trong element được dùng làm giá trị cho tham số FORMAT.

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 bên trong 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)

được sử dụng làm giá trị cho tham số EXCEPTIONS. Định dạng đầu tiên

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 Bắt buộc GetMap.

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.

không phải là môt cặp tên/ giá trị như các tham số khác.

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

bên trong element của tài liệu Capabilities XML của

WMS. Toàn bộ chuỗi kiểu MIME trong element được dùng làm giá trị

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

request

document

request

document

request

document

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