Bradley,
If you look at a "normal" GetFeature response like this:
----------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:tiger="http://www.census.gov"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.census.gov
http://localhost:8080/geoserver/wfs/DescribeFeatureType?typeName=tiger:poi
http://www.opengis.net/wfs
http://localhost:8080/geoserver/data/capabilities/wfs/1.0.0/WFS-basic.xsd">
<gml:boundedBy>
<gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates decimal="." cs="," ts=" ">
-74.01183158,40.70852996 -74.01183158,40.70852996
</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<tiger:poi fid="poi.5">
<tiger:the_geom>
<gml:Point
srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates decimal="." cs="," ts=" ">
-74.01183158,40.70852996
</gml:coordinates>
</gml:Point>
</tiger:the_geom>
<tiger:NAME>church</tiger:NAME>
<tiger:THUMBNAIL>pics/22037839-Ti.jpg</tiger:THUMBNAIL>
<tiger:MAINPAGE>pics/22037839-L.jpg</tiger:MAINPAGE>
</tiger:poi>
</gml:featureMember>
</wfs:FeatureCollection>
----------------------------------------------------------
Notice the "<gml:boundedBy>" tag at the top.
Since Geoserver streams features (so you dont waste memory), it has to
first calculate the bounds so it can start writing the response
immediatly. Thats what you're seeing in your logs.
You can solve this by either:
1. not stream; buffer the output and once you're read all the features
just "stick in" the boundedBy tag. You can buffer either the features
as they are read from the DB or the actual GML as its produced.
2. XML (and GML) allows you to put a "place holder" instead of the
actual boundedBy tag. Basically it says "the boundedBy element isnt
actually here -- look for it at the bottom of the file".
This works well, but (1) some XML/GML parsers will not like this (2)
you might make it difficult for the XML/GML parser to properly stream.
Both should be relatively easy to implement.
dave
ps.
NOTE: boundedBy is a GML-required element. If you really wanted to not
calculate it, you could replace it with ("unavailable"), from the spec:
If a bounding shape is not provided for a feature collection,
explain why. Allowable values are:
innapplicable - the features do not have geometry
unknown - the boundingBox cannot be computed
unavailable - there may be a boundingBox but it is not divulged
missing - there are no features
But you will probably really upset people who are reading your GML
documents and expect to see an actual bounding box there.
----------------------------------------------------------
This mail sent through IMP: https://webmail.limegroup.com/