У меня есть набор небольших XML документов - AIXM, чтобы указать c - которые содержат глубоко внутри себя элементы GML. Например:
<hasMember>
<Airspace xmlns="http://www.aixm.aero/schema/5.0" gml:id="Airspace1">
<identifier xmlns="http://www.opengis.net/gml/3.2" codeSpace="http://www.faa.gov/nasr">d1c1e508-4a4d-4d52-8c11-c851c6dd7600</identifier>
<timeSlice>
<AirspaceTimeSlice gml:id="Airspace1_TS1">
[...]
<designator>P51</designator>
<name>P-51 BANGOR, WA</name>
<geometryComponent>
<AirspaceGeometryComponent>
<operation>BASE</operation>
<operationSequence>1</operationSequence>
<theAirspaceVolume>
<AirspaceVolume>
<upperLimit uom="FT">02499</upperLimit>
<upperLimitReference>MSL</upperLimitReference>
<lowerLimit uom="FT">GND</lowerLimit>
<lowerLimitReference>SFC</lowerLimitReference>
<horizontalProjection>
<Surface gml:id="Surface1" srsDimension="2" srsName="URN:OGC:DEF:CRS:OGC:1.3:CRS84">
<patches xmlns="http://www.opengis.net/gml/3.2">
<PolygonPatch xmlns:ns="http://www.opengis.net/gml/3.2">
[...]
и так далее.
Мое текущее приложение загрузило документ с помощью анализатора DOM и извлекло нужные мне данные из документа XML. Теперь мне нужно вытащить элемент GML из выбранного узла DOM, hasMember / Airspace / timeSlice / AirspaceTimeSlice / geometryComponent / AirspaceGeometryComponent /. 1006 *
Могу ли я выполнить sh это с помощью Geotools? DOMParser настаивает на запуске с узла root Document. Единственная альтернатива, которую я могу найти, - это SurfaceTypeBinding.parse (), которая принимает узел ... но я не могу понять, как его назвать.