Итак, у меня есть база данных XML, заполненная данными о разных островах и озерах мира, и я хочу выбрать все озера, в которых есть хотя бы один остров. Проблема в том, что у меня есть только соответствующие данные о долготе, широте и общей площади.
Пример XML на острове:
<island id="island-Svalbard" country="SVAX" sea="sea-ArcticOcean sea-Greenlandsea sea-NorwegianSea sea-BarentsSea">
<name>Svalbard</name>
<islands>Svalbard</islands>
<area>39044</area>
<latitude>78.9</latitude>
<longitude>18.2</longitude>
<elevation>1713</elevation>
</island>
Пример озера XML:
<lake id="lake-LagunaCarbon" country="RA" type="saline">
<name>Laguna del Carbón</name>
<located country="RA" province="prov-Argentina-20"/>
<area>9</area>
<latitude>-49.58</latitude>
<longitude>-68.35</longitude>
<elevation>-105</elevation>
<depth>0</depth>
</lake>
Итак, как мне проверить, находится ли остров в пределах озера, используя только эту информацию? Это вообще возможно?
Текущий (незаконченный) Xquery:
let $doc := doc("mondial.xml")/mondial
let $lakes := $doc/lake
let $islands := $doc/island
let $lakesWithIslands := (
for $l in $lakes
let $lLong := $l/data(longitude)
let $lLat := $l/data(latitude)
let $lArea := $l/data(area)
for $i in $islands
let $iLong := $i/data(longitude)
let $iLat := $i/data(latitude)
let $iArea := $i/data(area)
where (something)
return $l
)
return $lakesWithIslands
Любая помощь приветствуется.
Спасибо!