
Chương 6. Cài đặt chương trình OpenGISServer
116
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="duong">
<wfs:Property>
<wfs:Name>NAME</wfs:Name>
<wfs:Value>Ngô Gia Tự</wfs:Value>
</wfs:Property>
<ogc:Filter>
<ogc:FeatureId fid="duong.3"/>
</ogc:Filter>
</wfs:Update>
<wfs:Delete typeName=”quan”>
<ogc:Filter>
<ogc:FeatureId fid="quan.1"/>
</ogc:Filter>
</wfs:Delete>
</wfs:Transaction>
Mỗi XmlNode sẽ tương ứng với 1 tag trong chuỗi Xml, chẳng hạn tag
<wfs:Transaction> là 1 XmlNode.
Mỗi XmlNode có chứa nhiều XmlNode con, và có thể chứa các Attributes
của node đó.
Chẳng hạn, trong ví dụ trên thì node <wfs:Transaction> có 2 node con là
<wfs:Update> và <wfs:Delete>. Node <wfs:Update> này chứa 2 node con
là <wfs:Property> và <ogc:Filter>.
Node <wfs:Update> và node <wfs:Delete> có 1 attribute là “typeName”.

Chương 6. Cài đặt chương trình OpenGISServer
117
Đọc dữ liệu từ chuỗi Xml này.
Trước hết, cần phải tạo 1 XmlDocument tương ứng với chuỗi này:
XmlDocument requestDocument = new XmlDocument();
requestDocument.LoadXml(sRequestXml);
Lấy node đầu tiên <wfs:Transaction>:
XmlNode first = requestDocument.FirstNode;
Lấy 2 node con <wfs:Update> và <wfs:Delete>:
XmlNodeList childs = first.ChildNodes;
XmlNode updateNode = childs[0];
XmlNode deleteNode = childs[1];
Lấy attribute “typeName” của node <wfs:Update>
string sUpdateTypeName = updateNode.Attributes[“typeName”];
Nếu như node không chứa attribute này thì hàm này trả về null.
Lấy giá trị của Node <wfs:Name>, sử dụng thuộc tính InnerXml của lớp
XmlNode
string Name = updateNode.FirstChild.FirstChild.InnerXml;
Lấy tên của Node <wfs:Update>, có cả phần NameSpace phía trước tên
node
string sNodeName = updateNode.Name;
Khi đó sNodeName = “wfs:Update”, trong đó “wfs” là NameSpace của Update”.
Lấy tên của Node <wfs:Update>, không lấy phần NameSpace phía trước
tên node
string sLocalNodeName = updateNode.LocalName;
Khi đó sLocalNodeName = “Update”.

Chương 6. Cài đặt chương trình OpenGISServer
118
Để lấy chuỗi Xml tương ứng với Node <wfs:Update>:
string xmlUpdate = updateNode.OuterXml;
Khi đó, chuỗi xmlUpdate sẽ có giá trị là:
<wfs:Update typeName="duong">
<wfs:Property>
<wfs:Name>NAME</wfs:Name>
<wfs:Value>Ngô Gia Tự</wfs:Value>
</wfs:Property>
<ogc:Filter>
<ogc:FeatureId fid="duong.3"/>
</ogc:Filter>
</wfs:Update>
6.5. Các lớp trong chương trình
Tên lớp Mô tả
Others/ExceptionBuilder Xây dựng chuỗi XML dùng để báo
các lỗi về cho client khi có lỗi trong
request
Other/OtherTasks Chứa tên các FeatureType trong
chương trình
Chức các thuộc tính của các
FeatureType
Chứa các hàm thực hiện những tác vụ
phụ trong chương trình
WFS/CheckBasicParameterClasses/Abstra
ctHTTPClass
Lớp trừu tượng, có tác dụng lấy các
tham số mà client gửi lên trong
request.

Chương 6. Cài đặt chương trình OpenGISServer
119
WFS/CheckBasicParameterClasses/HTTP
GetClass
Kế thừa từ lớp
CheckBasicParameterClasses/Abstrac
tHTTPClass, có tác dụng lấy các tham
số mà client gửi lên trong 1 HTTP
GET request
WFS/CheckBasicParameterClasses/HTTP
PostClass
Kế thừa từ lớp
CheckBasicParameterClasses/Abstrac
tHTTPClass, có tác dụng lấy các tham
số mà client gửi lên trong 1 HTTP
POST request
WFS/FeatureClass/AbstractFeature Là 1 lớp abstract, gồm các hàm dùng
để thực hiện các tác vụ liên quan đến
các FeatureType trên Server, chẳng
hạn như:
Đọc từ cơ sở dữ liệu để lấy về các
Feature thỏa 1 số điều kiện nào đó
Tạo ra chuỗi Xml mô tả các Feature
để trả về cho client (chức năng này
được cài đặt cụ thể ở các lớp con của
nó).
Lấy các thuộc tính của Feature
……

Chương 6. Cài đặt chương trình OpenGISServer
120
WFS/FeatureClass/DistrictFeature Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên loại Feature “Quan”:
Lấy các thuộc tính của loại Feature
“Quan”.
Tạo chuỗi Xml mô tả với các Feature
“Quan” lấy được từ cơ sở dữ liệu để
trả về cho client
WFS/FeatureClass/PlaceFeature Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên các Feature thuộc loại Feature
“nơi chốn”
Lấy các thuộc tính của loại Feature
“noi chon”.
Tạo chuỗi Xml mô tả với các Feature
“noi chon” lấy được từ cơ sở dữ liệu
để trả về cho client
WFS/FeatureClass/RiverFeature Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên các Feature thuộc loại Feature
“Song”
Lấy các thuộc tính của loại Feature
“Song”.
Tạo chuỗi Xml mô tả với các Feature
“Song” lấy từ csdl trả về cho client.