public void exportAsXML(XMLStreamWriter xmlWriter) throws IOException, XMLStreamException { if (xmlWriter == null) { String message = Logging.getMessage("Export.UnsupportedOutputObject"); Logging.logger().warning(message); throw new IllegalArgumentException(message); } xmlWriter.writeStartElement("Record"); xmlWriter.writeAttribute("id", Integer.toString(this.getRecordNumber())); xmlWriter.writeAttribute( "shape", this.getShapeType().substring(this.getShapeType().lastIndexOf("Shape") + 5)); xmlWriter.writeAttribute("parts", Integer.toString(this.getNumberOfParts())); xmlWriter.writeAttribute("points", Integer.toString(this.getNumberOfPoints())); xmlWriter.writeCharacters("\n"); for (Map.Entry<String, Object> a : this.getAttributes().getEntries()) { xmlWriter.writeStartElement("Attribute"); xmlWriter.writeAttribute("name", a.getKey() != null ? a.getKey().toString() : ""); xmlWriter.writeAttribute("value", a.getValue() != null ? a.getValue().toString() : ""); xmlWriter.writeEndElement(); // Attribute xmlWriter.writeCharacters("\n"); } if (this.getNumberOfParts() > 0) { VecBuffer vb = this.getPointBuffer(0); for (LatLon ll : vb.getLocations()) { xmlWriter.writeStartElement("Point"); xmlWriter.writeAttribute("x", Double.toString(ll.getLatitude().degrees)); xmlWriter.writeAttribute("y", Double.toString(ll.getLongitude().degrees)); xmlWriter.writeEndElement(); // Point xmlWriter.writeCharacters("\n"); } } // TODO: export record-type specific fields xmlWriter.writeEndElement(); // Record }
@Override public int writeData(OutputStream out, DbData data) throws Exception { XMLStreamWriter sw = _staxOutFactory.createXMLStreamWriter(out, "UTF-8"); sw.writeStartDocument(); sw.writeStartElement(FIELD_TABLE); Iterator<DbRow> it = data.rows(); while (it.hasNext()) { DbRow row = it.next(); sw.writeStartElement(FIELD_ROW); // <row> sw.writeStartElement(DbRow.Field.id.name()); sw.writeCharacters(String.valueOf(row.getId())); sw.writeEndElement(); sw.writeStartElement(DbRow.Field.firstname.name()); sw.writeCharacters(row.getFirstname()); sw.writeEndElement(); sw.writeStartElement(DbRow.Field.lastname.name()); sw.writeCharacters(row.getLastname()); sw.writeEndElement(); sw.writeStartElement(DbRow.Field.zip.name()); sw.writeCharacters(String.valueOf(row.getZip())); sw.writeEndElement(); sw.writeStartElement(DbRow.Field.street.name()); sw.writeCharacters(row.getStreet()); sw.writeEndElement(); sw.writeStartElement(DbRow.Field.city.name()); sw.writeCharacters(row.getCity()); sw.writeEndElement(); sw.writeStartElement(DbRow.Field.state.name()); sw.writeCharacters(row.getState()); sw.writeEndElement(); sw.writeEndElement(); // </row> } sw.writeEndElement(); sw.writeEndDocument(); sw.close(); return -1; }