Coördinates after XML to dataset

Lexus

Newcomer
Joined
Apr 1, 2008
Messages
2
In my sample XML the object is "ZB". That "ZB" has two points, "AAD" and "AAG". Both points have coördinates, devided by the "|" character. This is a fixed format, I have to deal with it.

Because in our software, we use the data in a dataset. So we convert the XML tot a dataset with the command:
Code:
Dim myDS As DataSet
Dim fsReadXml As New System.IO.FileStream(myXMLFile, System.IO.FileMode.Open)
myDS.ReadXml(fsReadXml)

After that, I have 4 tables in my dataset:
  • ZB
  • AAE
  • AAG
  • point

Automaticly there are relations and hidden id's added. After that, I connect 2 datagrids with this code. One datagrid with all objects and the second grid shows me the coördinates of the selected object in datagrid 1:
Code:
            Dim myBS As New BindingSource
            myBS.DataSource = myDS

            DataGridView1.DataSource = myBS
            DataGridView1.DataMember = "ZB"

            DataGridView2.DataSource = myBS
            DataGridView2.DataMember = "ZB.ZB_AAE.AAE_point"

So far so good, everything works fine!

I can databind labels or other textboxes to the point, after clicking a "ZB" object. Its with this code:
Code:
            TextBox1.DataBindings.Clear()
            TextBox1.DataBindings.Add(New Binding("text", myBS, "ZB.ZB_AAG.AAG_point.pos"))

What do I want?
I want the objects and coördinates in one datagrid. So I want to create a view, adding a custom column, and see the results back in a datagrid.

I tried the following. All commented lines I tried. I can't find the proper way to build a expression so the coördinates were shown:
Code:
Dim Test As DataColumn = myDS.Tables("ZB").Columns.Add("test", GetType(String))
Test.Expression = "ZB.ZB_AAE.AAE_point"
        'Test.Expression = "Child(ZB.ZB_AAE).point"
        'Test.Expression = "Child(ZB_AAE).point"
        'Test.Expression = "Child(point)"
        'Test.Expression = "Child(pos)"
        'Test.Expression = "ZB_AAE.point"
        'Test.Expression = "ZB.ZB_AAE.point.pos"
        'Test.Expression = "point"
        'Test.Expression = "point.pos"
        'Test.Expression = "Parent.ZB_AAE.AAE_point.pos"
        'Test.Expression = "Parent(ZB_AAE).AAE_point"
        'Test.Expression = "Parent.ZB"
        'Test.Expression = "ZB_AAE.AAE_point.pos"
        'Test.Expression = "Child.ZB_AAE.point.pos"

You can use this XML to test:
Code:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!-- File Header -->
<DATA xmlns:nl= "http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="file:EN13508.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:gml="http://www.opengis.net/gml">
<ZB>
<AAA>AAA</AAA>
<AAD>1</AAD>
<AAE>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>123|456</gml:pos>
</gml:point>
</AAE>
<AAF>2</AAF>
<AAG>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>234|567</gml:pos>
</gml:point>
</AAG>
</ZB>
<ZB>
<AAA>AAA</AAA>
<AAD>3</AAD>
<AAE>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>345|678</gml:pos>
</gml:point>
</AAE>
<AAF>4</AAF>
<AAG>
<gml:point srsName="Netherlands-RD" srsDimension="2">
<gml:pos>456|789</gml:pos>
</gml:point>
</AAG>
</ZB>
</DATA>
 
Last edited:
Back
Top