protected Node parseNode() throws XMLStreamException { NodeData nd = new NodeData(); nd.setCoor( new LatLon( Double.parseDouble(parser.getAttributeValue(null, "lat")), Double.parseDouble(parser.getAttributeValue(null, "lon")))); readCommon(nd); Node n = new Node(nd.getId(), nd.getVersion()); n.setVisible(nd.isVisible()); n.load(nd); externalIdMap.put(nd.getPrimitiveId(), n); while (true) { int event = parser.next(); if (event == XMLStreamConstants.START_ELEMENT) { if (parser.getLocalName().equals("tag")) { parseTag(n); } else { parseUnknown(); } } else if (event == XMLStreamConstants.END_ELEMENT) return n; } }