source: mauRepo/newmoon/src/test/resources/resources/dependency/spreadsheet-converter.xq @ 7815

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/newmoon/src/test/resources/resources/dependency/spreadsheet-converter.xq@7816
Revision 7815, 2.4 KB checked in by mnagni, 10 years ago (diff)

First release for the Newmoon

Line 
1xquery version "1.0";
2(:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 Query to convert Microsoft Office XML Spreadsheet representation of the
4 ISO 19136 Table D.2 into the fullmoon xmi processing mapping format.
5~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:)
6
7declare namespace default="urn:schemas-microsoft-com:office:spreadsheet";
8
9<mapping xmlns="urn:tbd:xmlns:TBD:FullMoon:type-mapping:1.0"
10        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
11        xsi:schemaLocation="urn:tbd:xmlns:TBD:FullMoon:type-mapping:1.0 type-mapping.xsd"
12        xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
13        id="ISO19136_V3.2_Table_D.2">
14        <description>Provides a mapping of the Table D.2 found in Annex D of the Internation Standard
15                ISO 19136 (GML Version 3.2), 2007.</description>
16        {
17        for $row in /default:Workbook/default:Worksheet/default:Table/default:Row[position() gt 1 and position() lt 128]
18        return
19                <entry>
20                   {
21                   (: Handle the UML Class column :)
22                   let $value := string($row/default:Cell[1]/default:Data[1])
23                   return
24                              if ($value = ("-", ""))
25                      then
26                      <umlClass xsi:nil="true"/>
27                      else
28                      <umlClass>{$value}</umlClass>
29                   }
30                   {
31                   (: Handle the GML Object element column :)
32                   let $value := string($row/default:Cell[2]/default:Data[1])
33                   return
34                              if ($value = ("-", ""))
35                      then
36                      <gmlObjectElement xsi:nil="true"/>
37                      else
38                      <gmlObjectElement>{$value}</gmlObjectElement>
39                   }
40                   {
41                   (: Handle the GML Type column :)
42                   let $value := string($row/default:Cell[2]/default:Data[1])
43                   return
44                              if ($value = ("-", ""))
45                      then
46                      <gmlType xsi:nil="true"/>
47                      else
48                      <gmlType>{$value}</gmlType>
49                   }
50                   {
51                   (: Handle the property type column :)
52                   let $value := string($row/default:Cell[4]/default:Data[1])
53                   return
54                      if ("anonymous property type" = $value)
55                      then
56                      <gmlPropertyType anonymous="true" xsi:nil="true"/>
57                      else
58                              if ($value = ("-", ""))
59                              then
60                              <gmlPropertyType xsi:nil="true"/>
61                              else
62                                      if (contains($value, " (group)"))
63                                      then
64                                      <gmlPropertyType group="true">{substring-before($value, " (group)")}</gmlPropertyType>
65                                      else
66                                      <gmlPropertyType>{$value}</gmlPropertyType>
67                   }
68                </entry>
69        }
70</mapping>
Note: See TracBrowser for help on using the repository browser.