Saya akan mencoba untuk memigrasi dokumentasi geotool ke teknologi yang berbeda (selain wiki) sehingga contoh kode tidak ketinggalan zaman.
Perbarui ini sekarang dilakukan (saya mengumpulkan semuanya sehingga semua contoh geometri bersama-sama):
Ini adalah contoh lengkap dari halaman itu:
SimpleFeatureType TYPE = DataUtilities.createType("location", "geom:Point,name:String");
File locationFile = new File("location.xsd");
locationFile = locationFile.getCanonicalFile();
locationFile.createNewFile();
URL locationURL = locationFile.toURI().toURL();
URL baseURL = locationFile.getParentFile().toURI().toURL();
FileOutputStream xsd = new FileOutputStream(locationFile);
GML encode = new GML(Version.GML2);
encode.setBaseURL(baseURL);
encode.setNamespace("location", locationURL.toExternalForm());
encode.encode(xsd, TYPE);
xsd.close();
SimpleFeatureCollection collection = FeatureCollections.newCollection("internal");
WKTReader2 wkt = new WKTReader2();
collection.add(SimpleFeatureBuilder.build(TYPE, new Object[] { wkt.read("POINT (1 2)"),"name1" }, null));
collection.add(SimpleFeatureBuilder.build(TYPE, new Object[] { wkt.read("POINT (4 4)"),"name2" }, null));
ByteArrayOutputStream xml = new ByteArrayOutputStream();
GML encode2 = new GML(Version.GML2);
encode2.setBaseURL(baseURL);
encode2.setNamespace("location", "location.xsd");
encode2.encode(out2, collection);
xml.close();
String gml = xml.toString();
Contoh tambahan tentang cara menggunakan 4 teknologi parsing GML yang berbeda adalah kasus uji yang disertakan dengan kode sumber.
- SAKSOFON
- DOM
- GTXML versi 1.x (digunakan untuk GML2 di WFSDataStore VERSION = 1.0)
- GTXML versi 4.x (digunakan untuk yang lainnya sekarang)
Kedua teknologi GTXML pada dasarnya merupakan kombinasi bagian terbaik dari SAX parser dengan kemampuan untuk mencari tahu fragmen kode mana (yang disebut binding) untuk digunakan untuk mengurai setiap elemen saat masuk (berdasarkan melihat elemen di dalam skema).