GMLUtil { public static ReferencedEnvelope determineCollectionEnvelope(File file) throws IOException { CoordinateReferenceSystem crs = determineCollectionCRS(file); return determineCollectionEnvelope(file, crs); }  static ReferencedEnvelope determineCollectionEnvelope(File file); static ReferencedEnvelope determineCollectionEnvelope(File file, CoordinateReferenceSystem crs); static ReferencedEnvelope determineCollectionEnvelope(InputStream inputStream, CoordinateReferenceSystem crs); static CoordinateReferenceSystem determineCollectionCRS(File file); static CoordinateReferenceSystem determineCollectionCRS(InputStream inputStream); static QName extractFeatureTypeSchema(File file); static QName extractFeatureTypeSchema(InputStream inputStream); static Configuration generateGMLConfiguration(File file); static Configuration generateGMLConfiguration(InputStream inputStream);  }
@Test public void testDetermineEnvelopeFromBoundedByNodeFromArcGISExampleFile() throws IOException { System.out.println("testDetermineEnvelopeFromBoundedByNodeFromArcGISExampleFile"); File file = arcGis; ReferencedEnvelope result = GMLUtil.determineCollectionEnvelope(file); assertNotNull(result); assertEquals(2, result.getCoordinateReferenceSystem().getCoordinateSystem().getDimension()); assertEquals("World between 85°S and 85°N.", result.getCoordinateReferenceSystem().getDomainOfValidity().getDescription().toString()); assertEquals("EPSG:3857", result.getCoordinateReferenceSystem().getIdentifiers().toArray()[0].toString()); assertEquals(-7187336.4004999995, result.getMaxX(), 1E-1); assertEquals(6498778.364500001, result.getMaxY(), 1E-1); assertEquals(-1.78385662145E7, result.getMinX(), 1E-1); assertEquals(1999393.0584000014, result.getMinY(), 1E-1); }