У меня есть список австралийских туалетов, которые я хочу отобразить на GE, используя xQuery для преобразования в документ KML. Используемый им набор данных имеет пространство имен по умолчанию xmlns = "http://toiletmap.gov.au/".
Когда я выполняю передачу xQuery, я могу извлечь координаты / имя / описание по мере необходимости. Но этот документ не является допустимым документом KML, потому что я не использовал пространство имен по умолчанию kml xmlns = "http://earth.google.com/kml/2.1".
Как я должен объединить оба пространства имен? Если я опущу пространство имен, преобразование xQuery будет пустым и не сможет извлечь необходимые данные.
Я думал о добавлении префикса вроде xmlns: au = "http://toiletmap.gov.au/". Но это не помогло, даже когда я назвал элемент {data ($ x / Name)} как таковой.
Пожалуйста, дайте мне знать, что я делаю неправильно, я чувствую, что полностью не понял идею о том, как работают пространства имен.
Это xQuery:
<kml xmlns="http://toiletmap.gov.au/">
<Document>
<Folder>
{
let $doc := doc("ToiletmapExport_180801_090000.xml")
for $x in $doc/ToiletMapExport/ToiletDetails
where $x/@Latitude <= (-34.74526121+0.25)
and $x/@Latitude >= (-34.74526121-0.25)
and $x/@Longitude >= (146.5505775-0.25)
and $x/@Longitude <= (146.5505775+0.25)
return if (($x/AccessibilityDetails/AccessibleMale='true'
and $x/AccessibilityDetails/AccessibleFemale='true')
or $x/AccessibilityDetails/AccessibleUnisex='true')
then
<Placemark>
<name >{data($x/Name)}</name>
<description>FacilityType: {data($x/GeneralDetails/FacilityType)}<br></br>
Town: {data($x/Town)}<br></br>
Male: {data($x/AccessibilityDetails/AccessibleMale)} Female: {data($x/AccessibilityDetails/AccessibleFemale)}<br></br>
Unisex: {data($x/AccessibilityDetails/AccessibleUnisex)}
</description>
<Point>
<coordinates>{data($x/@Longitude)},{data($x/@Latitude)}</coordinates>
</Point>
</Placemark>
else ()
}
</Folder>
</Document>