I found a solution that works using:
org.geotools.xml.Configuration conf2 = new
org.geotools.filter.v1_1.OGCConfiguration();
org.geotools.xml.Encoder encoder = new
org.geotools.xml.Encoder(configuration);
FilterFactory filterFactory = CommonFactoryFinder.getFilterFactory(null);
BBOX bb = filterFactory.bbox("the_geom", 0, 0, 10, 10, "4326");
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( bb, org.geotools.filter.v1_1.OGC.Filter, System.out );bye Milan A. 2010/9/1 Milan Antonovic <[email protected]> > Hi everybody, > Could please someone explain me somthing about that strange behavion > found during Filter converision? > > I convert an xml (ogc:filter) in a Filter object > (org.opengis.filter.Filter) and then > when I try to convert in back to xml it is completely different. > > Could please someone explain me where is the point? > Because if I pass that filter to GeoServer it returns me > an exception because it is not respecting the OpenGis Filter Schema: > > <ows:ExceptionText> > java.lang.RuntimeException: Parsing failed for BBOX: > java.lang.NullPointerException Parsing failed for BBOX: > java.lang.NullPointerException null > </ows:ExceptionText> > > rgds > > Milan A. > > -- > > *Here the test code:* > > > import java.io.ByteArrayInputStream; > import java.io.IOException; > import java.util.logging.Level; > import java.util.logging.Logger; > import javax.xml.parsers.ParserConfigurationException; > import javax.xml.transform.TransformerException; > import org.opengis.filter.*; > import org.xml.sax.SAXException; > > public class TestFilter2 { > > public static void main(String[] args) { > > org.geotools.xml.Configuration configuration = > new org.geotools.filter.v1_1.OGCConfiguration(); > org.geotools.xml.Parser parser = > new org.geotools.xml.Parser(configuration); > > String xml = > "<Filter > xmlns:gml=\"http://www.opengis.net/gml\<http://www.opengis.net/gml%5C> > ">" > + "<BBOX>" > + "<PropertyName>Geometry</PropertyName>" > + "<gml:Envelope>" > + "<gml:lowerCorner>0 0</gml:lowerCorner>" > + "<gml:upperCorner>10 10</gml:upperCorner>" > + "</gml:Envelope>" > + "</BBOX>" > + "</Filter>"; > Filter f; > try { > f = (Filter) parser.parse(new ByteArrayInputStream( > xml.getBytes())); > System.out.println(f); > > org.geotools.filter.FilterTransformer ft = new > org.geotools.filter.FilterTransformer(); > ft.setOmitXMLDeclaration(true); > ft.setNamespaceDeclarationEnabled(true); > ft.setIndentation(0); > try { > ft.setIndentation(2); > System.out.println(ft.transform(f)); > } catch (TransformerException ex) { > System.err.println("TransformerException: " + > ex.getMessageAndLocation()); > } > > } catch (IOException ex) { > Logger.getLogger(TestFilter2.class.getName()).log(Level.SEVERE, > null, ex); > } catch (SAXException ex) { > Logger.getLogger(TestFilter2.class.getName()).log(Level.SEVERE, > null, ex); > } catch (ParserConfigurationException ex) { > Logger.getLogger(TestFilter2.class.getName()).log(Level.SEVERE, > null, ex); > } > } > } > *** > > Output: > > [ Geometry bbox POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0)) ] > <ogc:Filter xmlns="http://www.opengis.net/ogc" xmlns:ogc=" > http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> > <ogc:BBOX> > <ogc:PropertyName>Geometry</ogc:PropertyName> > <gml:Polygon> > <gml:outerBoundaryIs> > <gml:LinearRing> > <gml:coordinates xmlns:gml="http://www.opengis.net/gml" > decimal="." cs="," ts=" ">0,0 0,10 10,10 10,0 0,0</gml:coordinates> > </gml:LinearRing> > </gml:outerBoundaryIs> > </gml:Polygon> > </ogc:BBOX> > </ogc:Filter> > > > Why?? [?] >
<<361.gif>>
------------------------------------------------------------------------------ This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
