1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Web cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ - 5 docx

18 205 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 500,95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nếu thuộc tính này không được xác định, WFS sẽ cố gắng thông báo vị trí của biệt lệ tương ứng với lỗi trong request của Transaction dựa trên số dòng hoặc một cơ chế nào khác.. Giả sử WF

Trang 1

</xsd:sequence>

<xsd:attribute name="handle" type="xsd:string"

use="optional"/>

<xsd:attribute name="typeName" type="xsd:QName"

use="required"/> </xsd:complexType>

<xsd:element name="Property" type="wfs:PropertyType"/>

<xsd:complexType name="PropertyType">

<xsd:sequence>

<xsd:element name="Name" type="xsd:QName"/>

<xsd:element name="Value"/>

</xsd:sequence>

</xsd:complexType>

3.7.2.2 Mô tả các thuộc tính

Thuộc tính hadle dùng để gán một tên dễ nhớ cho thành phần tương ứng với nó

Ngoài ra nó còn giúp cho việc báo lỗi đến ứng dụng client được dễ hiểu hơn Khi lỗi

xảy ra, WFS sẽ dùng thuộc tính handle để định vị lỗi nhằm phát sinh ra biệt lệ một

cách chính xác Nếu thuộc tính này không được xác định, WFS sẽ cố gắng thông

báo vị trí của biệt lệ tương ứng với lỗi trong request của Transaction dựa trên số

dòng hoặc một cơ chế nào khác

Giả sử WFS có hỗ trợ operation LockFeature và/hoặc operation

GetFeatureWithLock, thì thuộc tính releaseAction được dùng để điều khiển việc

giải phóng các feature đã khóa khi request của Transaction hoàn thành Nếu thuộc tính này có giá trị ALL thì chỉ ra rằng tất cả các khóa của các feature bị khóa với định danh khóa <LockID> sẽ được giải phóng khi giao tác chấm dứt, bất chấp

trong số các feature đang bị khóa vẫn còn có feature đang được truy cập Nếu thuộc

tính này có giá trị SOME thì chỉ ra rằng chỉ những khóa của các feature có trong request của Transaction sẽ được giải phóng, và khi đó, thuộc tính releaseAction của thành phần <LockFeature> hoặc <GetFeatureWithLock> sẽ được trả về giá trị “0” sau khi kết thúc giao tác Giá trị mặc định của releaseAction là ALL

Trang 2

3.7.2.3 Thành phần <Transaction>

Thành phần <Transaction> có thể không chứa hoặc chứa nhiều các thành phần

<Insert>, <Update>, <Delete>, chúng mô tả các thao tác thêm, cập nhật, xóa các

thể hiện của feature Một thành phần <Transaction> trống vẫn hợp lệ song sẽ

không có ích

Thành phần tùy chọn <LockID> chỉ ra rằng giao tác sẽ thực hiện trên các thể

hiện feature đã được khóa nào Nếu WFS không hỗ trợ khả năng khóa feature thì

thành phần <LockID> sẽ bị bỏ qua Nếu WFS có hỗ trợ khóa và có một định danh

khóa không hợp lệ thì WFS sẽ gửi ra một biệt lệ và giao tác sẽ chấm dứt

Thành phần <Native> đã được định nghĩa ở mục “Các thành phần mở rộng”

3.7.2.4 Thành phần <Insert>

Thành phần <Insert> được dùng để thêm mới các thể hiện của feature Trong một operation Transaction có thể có nhiều thành phần <Insert> và với mỗi thành phần <Insert> có thể được dùng để tạo mới nhiều thể hiện của feature

Trong response trả về cho giao tác <Insert>, WFS sẽ trả về một danh sách các

định danh feature mới được gán cho các thể hiện của feature được thêm mới Các định danh feature được hiển thị theo đúng trình tự được thực hiện trong thành phần

<Insert> của giao tác

Ví dụ: Giao tác sau sẽ tạo mới hai thể hiện của kiểu feature INWATERA_1M

<?xml version="1.0"?>

<wfs:Transaction

version="1.0.0"

service="WFS"

xmlns="http://www.someserver.com/myns"

xmlns:gml="http://www.opengis.net/gml"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:wfs="http://www.opengis.net/wfs"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.someserver.com/myns

Trang 3

http://www.someserver.com/wfs/cwwfs.cgi?

request=describefeaturetype&amp;typename=INWATERA_1M.xsd

http://www.opengis.net/wfs /wfs/1.0.0/WFS-transaction.xsd">

<wfs:Insert>

<INWATERA_1M>

<WKB_GEOM>

<gml:Polygon gid="1"

srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">

<gml:outerBoundaryIs>

<gml:LinearRing>

<gml:coordinates>-98.54,24.26 </gml:coordinates>

</gml:LinearRing>

</gml:outerBoundaryIs>

</gml:Polygon>

</WKB_GEOM>

<ID>150</ID>

<F_CODE>ABCDE</F_CODE>

<HYC>152</HYC>

<TILE_ID>250</TILE_ID>

<FAC_ID>111</FAC_ID>

</INWATERA_1M>

<INWATERA_1M>

<WKB_GEOM>

<gml:Polygon gid="1"

srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">

<gml:outerBoundaryIs>

<gml:LinearRing>

<gml:coordinates>-99.99,22.22 </gml:coordinates>

gml:outerBoundaryIs>

</gml:Polygon>

</WKB_GEOM>

<ID>111</ID>

Trang 4

<F_CODE>FGHIJ</F_CODE>

<HYC>222</HYC>

<TILE_ID>333</TILE_ID>

<FAC_ID>444</FAC_ID>

</INWATERA_1M>

</wfs:Insert>

</wfs:Transaction>

3.7.2.5 Thành phần <Update>

Thành phần <Update> được dùng để cập nhật các thể hiện của feature Trong một operation Transaction có thể có nhiều thành phần <Update> và với mỗi thành phần <Update> có thể được dùng để cập nhật nhiều thể hiện của feature

Thành phần <Update> chứa một hoặc nhiều thành phần <Property> cho biết

tên và giá trị cập nhật của thuộc tính của kiểu feature được định danh bằng thuộc

tính typeName Thành phần <Name> trong thành phần <Property> chỉ ra tên thuộc tính cần cập nhật Thành phần tùy chọn <Value> chỉ ra giá trị cập nhật cho

thuộc tính đó Nếu thành phần này không được định nghĩa thì giá trị NULL sẽ được gán cho thuộc tính này Nếu thuộc tính này không được phép có giá trị NULL thì WFS sẽ đưa ra môt biệt lệ

Phạm vi của thành phần <Update> được ràng buộc bởi thành phần <Filter> Nó

được dùng để giới hạn phạm vi của giao tác cập nhật

Ví dụ: Ví dụ sau cho thấy giao tác cập nhật thuộc tính POPULATION của định danh feature BUILTUPA_1M.1013

<?xml version="1.0" ?>

<wfs:Transaction

version="1.0.0"

service="WFS"

xmlns="http://www.someserver.com/myns"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:wfs="http://www.opengis.net/wfs"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Trang 5

xsi:schemaLocation="http://www.opengis.net/wfs

/wfs/1.0.0/WFS-transaction.xsd">

<wfs:Update typeName="BUILTUPA_1M">

<wfs:Property>

<wfs:Name>POPULATION</wfs:Name>

<wfs:Value>4070000</wfs:Value>

</wfs:Property>

<ogc:Filter>

<ogc:FeatureId fid="BUILTUPA_1M.10131"/>

</ogc:Filter>

</wfs:Update>

</wfs:Transaction>

Cập nhật thuộc tính POPULATION_TYPE của danh sách các feature sau với giá trị mới là “CITY” Các feature cần cập nhật có các định danh feature sau: BUILTUPA_1M.1013, BUILTUPA_1M.34, BUILTUPA_1M.24256

<?xml version="1.0" ?>

<wfs:Transaction

version="1.0.0"

service="WFS"

xmlns="http://www.someserver.com/myns"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:wfs="http://www.opengis.net/wfs"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.opengis.net/wfs

/wfs/1.0.0/WFS-transaction.xsd">

<wfs:Update typeName="BUILTUPA_1M">

<wfs:Property>

<wfs:Name>POPULATION_TYPE</wfs:Name>

<wfs:Value>CITY</wfs:Value>

</wfs:Property>

<ogc:Filter>

Trang 6

<ogc:FeatureId fid="BUILTUPA_1M.1013"/>

<ogc:FeatureId fid="BUILTUPA_1M.34"/>

<ogc:FeatureId fid="BUILTUPA_1M.24256"/>

</ogc:Filter>

</wfs:Update>

</wfs:Transaction>

3.7.2.6 Thành phần <Delete>

Thành phần <Delete> dùng để chỉ ra rằng một hoặc nhiều thể hiện feature sẽ bị xóa đi Phạm vi của giao tác xóa được giới hạn bởi thành phần <Filter>

Ví dụ: Xóa một feature đơn

<?xml version="1.0" ?>

<wfs:Transaction

version="1.0.0"

service="WFS"

xmlns="http://www.someserver.com/myns"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:wfs="http://www.opengis.net/wfs"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.opengis.net/wfs

/wfs/1.0.0/WFS-transaction.xsd">

<wfs:Delete typeName="INWATERA_1M">

<ogc:Filter>

<ogc:FeatureId fid="INWATERA_1M.1013"/>

</ogc:Filter>

</wfs:Delete>

</wfs:Transaction>

Trang 7

Xóa một tập các thể hiện feature

<?xml version="1.0" ?>

<wfs:Transaction

version="1.0.0"

service="WFS"

xmlns:myns="http://www.someserver.com/myns"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:wfs="http://www.opengis.net/wfs"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.opengis.net/wfs

/wfs/1.0.0/WFS-transaction.xsd">

<wfs:Delete typeName="myns:INWATERA_1M">

<ogc:Filter>

<ogc:FeatureId fid="INWATERA_1M.1013"/>

<ogc:FeatureId fid="INWATERA_1M.10"/>

<ogc:FeatureId fid="INWATERA_1M.13"/>

<ogc:FeatureId fid="INWATERA_1M.140"/>

<ogc:FeatureId fid="INWATERA_1M.5001"/>

<ogc:FeatureId fid="INWATERA_1M.2001"/>

</ogc:Filter>

</wfs:Delete>

</wfs:Transaction>

Xóa một tập các thể hiện của feature INWATERA_1M nằm trong miền đa giác được chỉ định Thành phấn <Filter> được dùng để ràng buộc phạm vi của giao tác

va đa giác được biểu diễn bằng GML

<?xml version="1.0" ?>

<wfs:Transaction

version="1.0.0"

service="WFS"

xmlns="http://www.someserver.com/myns"

xmlns:wfs="http://www.opengis.net/wfs"

Trang 8

xmlns:gml="http://www.opengis.net/gml"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.opengis.net/wfs

/wfs/1.0.0/WFS-transaction.xsd">

<wfs:Delete typeName="INWATERA_1M">

<ogc:Filter>

<ogc:Within>

<ogc:PropertyName>WKB_GEOM</ogc:PropertyName>

<gml:Polygon gid="pp9"

srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">

<gml:outerBoundaryIs>

<gml:LinearRing>

<gml:coordinates>-95.7,38.1 -97.8,38.2 </gml:coordinates>

</gml:LinearRing>

</gml:outerBoundaryIs>

</gml:Polygon>

</ogc:Within>

</ogc:Filter>

</wfs:Delete>

</wfs:Transaction>

3.7.3 Response

Trong response trả về cho request của Transaction, WFS trả về một tài liệu

XML mô tả trạng thái kết thúc của giao tác

Tài liệu XML mã hóa cho response được mô tả bằng đoạn lược đồ XML sau

<xsd:element name="WFS_TransactionResponse"

type="wfs:WFS_TransactionResponseType"/>

<xsd:complexType name="WFS_TransactionResponseType">

<xsd:sequence>

<xsd:element name="InsertResult"

type="wfs:InsertResultType"

Trang 9

minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="TransactionResult"

type="wfs:TransactionResultType"/>

</xsd:sequence>

<xsd:attribute name="version"

type="xsd:string" use="required" fixed="1.0.0"/>

</xsd:complexType>

<xsd:complexType name="TransactionResultType">

<xsd:sequence>

<xsd:element name="Status" type="wfs:StatusType"/>

<xsd:element name="Locator" type="xsd:string" minOccurs="0"/>

<xsd:element name="Message" type="xsd:string" minOccurs="0"/>

</xsd:sequence>

<xsd:attribute name="handle" type="xsd:string"

use="optional"/>

</xsd:complexType>

<xsd:complexType name="InsertResultType">

<xsd:sequence>

<xsd:element ref="ogc:FeatureId" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="handle" type="xsd:string"

use="optional"/>

</xsd:complexType>

<xsd:complexType name="StatusType">

<xsd:choice>

<xsd:element ref="wfs:SUCCESS"/>

<xsd:element ref="wfs:FAILED"/>

<xsd:element ref="wfs:PARTIAL"/>

</xsd:choice> </xsd:complexType>

<xsd:element name="SUCCESS" type="wfs:EmptyType"/>

<xsd:element name="FAILED" type="wfs:EmptyType"/>

<xsd:element name="PARTIAL" type="wfs:EmptyType"/>

Trang 10

Thành phần <WFS_TransactionResponse> có thể không chứa hoặc chứa nhiều thành phần <InsertResult> và chứa một thành phần <TransactionResult>

Thành phần <InsertResult> chứa một hoặc nhiều định danh feature mới được thêm vào Một thành phần <InsertResult> tương ứng với một thành phần <Result> trong câu request

Kết quả của toàn bộ giao tác được mô tả trong thành phần <TransactionResult> Thành phần này phải chứa một thành phần <Status> và có thể chứa thành phần

<Locator> và <Status> Trong đó, thành phần <Status> mô tả trạng thái hoàn thành của giao tác Còn thành phần <Locator> chỉ ra phần nào trong giao tác bị lỗi Ngoài

ra còn thành phần <Messeage> dùng để báo các thông điệp lỗi

Ví dụ: Giả sư có giao tác tạo mới các thể hiện của feature “STMT1”, “STMT2”,

“STMT3” Response cho giao tác này như sau:

<?xml version="1.0" ?>

<wfs:TransactionResponse

version="1.0.0"

xmlns:wfs="http://www.opengis.net/wfs"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.opengis.net/wfs

/wfs/1.0.0/WFS-transaction.xsd">

<wfs:InsertResult handle="STMT1">

<ogc:FeatureId fid="SOMEFEATURE.4567"/>

<ogc:FeatureId fid="SOMEFEATURE.4568"/>

<ogc:FeatureId fid="SOMEFEATURE.4569"/>

</wfs:InsertResult>

<wfs:InsertResult handle="STMT2">

<ogc:FeatureId fid="FEATURE1.4569"/>

</wfs:InsertResult>

<wfs:InsertResult handle="STMT3">

<ogc:FeatureId fid="FEATURE2.389345"/>

</wfs:InsertResult>

Trang 11

<wfs:TransactionResult handle="TX01">

<wfs:Status>

<wfs:SUCCESS/>

</wfs:Status>

</wfs:TransactionResult>

</wfs:TransactionResponse>

3.7.4 Biệt lệ

Khi xảy ra một lỗi trong request của operation Transaction thì WFS sẽ gửi ra

một biệt lệ

3.8 GetCapabilities

3.8.1 Giới thiệu

Một WFS phải mô tả được khả năng của nó Cụ thể là WFS phải tạo được một tài liệu Capabilities XML để mô tả khả năng của nó

3.8.2 Request

Thành phần <GetCapabilities> dùng để yêu cầu WFS gửi tài liệu Capabilities XML của nó Request này được định nghĩa bằng đoạn lược đồ XML sau:

<xsd:element name="GetCapabilities"

type="wfs:GetCapabilitiesType"/>

<xsd:complexType name="GetCapabilitiesType">

<xsd:attribute name="version"

type="xsd:string" use="optional"/>

<xsd:attribute name="service"

type="xsd:string" use="required" fixed="WFS"/>

</xsd:complexType>

Trong đó thuộc tính service đã được định nghĩa trong mục “Các thành phần chung”

Ngày đăng: 30/07/2014, 17:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w