Chương 3. Web Feature Service (WFS)
62
</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 thuc tính
Thuc tính hadle dùng đển mt tên d nh cho thành phn tương ng vi nó.
Ngoài ra nó còn giúp cho vic báo li đến ng dng client được d hiu hơn. Khi li
xy ra, WFS s dùng thuc tính handle để định v li nhm phát sinh ra bit l mt
cách chính xác. Nếu thuc tính này không được xác định, WFS s c gng thông
báo v trí ca bit l tương ng vi li trong request ca Transaction da trên s
dòng hoc mt cơ chế nào khác.
Gi s WFS có h tr operation LockFeature và/hoc operation
GetFeatureWithLock, thì thuc tính releaseAction được dùng để điu khin vic
gii phóng các feature đã khóa khi request ca Transaction hoàn thành. Nếu thuc
tính này có giá tr ALL thì ch ra rng tt c các khóa ca các feature b khóa vi
định danh khóa <LockID> s được gii phóng khi giao tác chm dt, bt chp
trong s các feature đang b khóa vn còn có feature đang được truy cp. Nếu thuc
tính này có giá tr SOME thì ch ra rng ch nhng khóa ca các feature có trong
request ca Transaction s được gii phóng, và khi đó, thuc tính releaseAction
ca thành phn <LockFeature> hoc <GetFeatureWithLock> s được tr v giá
tr “0” sau khi kết thúc giao tác. Giá tr mc định ca releaseActionALL.
Chương 3. Web Feature Service (WFS)
63
3.7.2.3. Thành phn <Transaction>
Thành phn <Transaction> có th không cha hoc cha nhiu các thành phn
<Insert>, <Update>, <Delete>, chúng mô t các thao tác thêm, cp nht, xóa các
th hin ca feature. Mt thành phn <Transaction> trng vn hp l song s
không có ích.
Thành phn tùy chn <LockID> ch ra rng giao tác s thc hin trên các th
hin feature đã được khóa nào. Nếu WFS không h tr kh năng khóa feature thì
thành phn <LockID> s b b qua. Nếu WFS có h tr khóa và có mt định danh
khóa không hp l thì WFS s gi ra mt bit l và giao tác s chm dt.
Thành phn <Native> đã được định nghĩa mc “Các thành phn m rng”.
3.7.2.4. Thành phn <Insert>
Thành phn <Insert> được dùng để thêm mi các th hin ca feature. Trong
mt operation Transaction có th có nhiu thành phn <Insert> và vi mi thành
phn <Insert> có th đưc dùng để to mi nhiu th hin ca feature.
Trong response tr v cho giao tác <Insert>, WFS s tr v mt danh sách các
định danh feature mi được gán cho các th hin ca feature được thêm mi. Các
định danh feature được hin th theo đúng trình t đưc thc hin trong thành phn
<Insert> ca giao tác.
Ví d: Giao tác sau s to mi hai th hin ca kiu 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
Chương 3. Web Feature Service (WFS)
64
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>
Chương 3. Web Feature Service (WFS)
65
<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 phn <Update>
Thành phn <Update> được dùng để cp nht các th hin ca feature. Trong
mt operation Transaction có th có nhiu thành phn <Update> và vi mi thành
phn <Update> có th được dùng để cp nht nhiu th hin ca feature.
Thành phn <Update> cha mt hoc nhiu thành phn <Property> cho biết
tên và giá tr cp nht ca thuc tính ca kiu feature được định danh bng thuc
tính typeName. Thành phn <Name> trong thành phn <Property> ch ra tên
thuc tính cn cp nht. Thành phn tùy chn <Value> ch ra giá tr cp nht cho
thuc tính đó. Nếu thành phn này không được định nghĩa thì giá tr NULL s được
gán cho thuc tính này. Nếu thuc tính này không được phép có giá tr NULL t
WFS s đưa ra môt bit l.
Phm vi ca thành phn <Update> được ràng buc bi thành phn <Filter>.
được dùng để gii hn phm vi ca giao tác cp nht.
Ví d: Ví d sau cho thy giao tác cp nht thuc tính POPULATION ca đị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"
Chương 3. Web Feature Service (WFS)
66
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>
Cp nht thuc tính POPULATION_TYPE ca danh sách các feature sau vi
giá tr mi là “CITY”. Các feature cn cp nht 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>