You can pass me the fixes Cole and I can test them for you.

Jesse

Cole Markham wrote:

I haven't been building Geotools from source, only using it from uDig. I can submit the patches, but I'm not really set up to test it.

Cole

On 9/20/05, *Chris Holmes* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    I think the way to go may be to just set both qname and localname
    to "fid"
    - it doesn't seem like that would hurt anyone, and seems like it
    would get
    things working on your implementation as well.  How about you try
    that
    out, and if it works submit a patch for the places where it just
    does one,
    and we can apply it.

    best regards,

    Chris

    On Fri, 16 Sep 2005, Cole Markham wrote:

    > I finally had a chnace to step through and see what is
    happening. Here's
    > what I can see.
    > This method is in FilterTransformer, lines 137-145 (Geotools
    2.1RC1):
    >
    > public void visit(org.geotools.filter.FidFilter filter) {
    > String[] fids = filter.getFids();
    >
    > for (int i = 0; i < fids.length; i++) {
    > AttributesImpl atts = new AttributesImpl();
    > atts.addAttribute("", "fid", "", "", fids[i]);
    > element("FeatureId",null,atts);
    > }
    > }
    >
    > The addAttribute method in AttributesImpl looks like this:
    >
    > public void addAttribute (String uri, String localName, String
    qName,
    > String type, String value)
    > {
    > ensureCapacity(length+1);
    > data[length*5] = uri;
    > data[length*5+1] = localName;
    > data[length*5+2] = qName;
    > data[length*5+3] = type;
    > data[length*5+4] = value;
    > length++;
    > }
    >
    > So, localName is set to "fid" and qName is set to "".
    >
    > Then, the next part looks to be dependent on my installation.
    >
    com.sun.org.apache.xml.internal.serializer.ToStream.processAttributes
    (
    > java.io.Writer writer, int nAttrs) is getting only the qName and
    writing
    > that to output.
    >
    > public void processAttributes(java.io.Writer writer, int nAttrs)
    throws
    > IOException, SAXException
    > {
    > /* real SAX attributes are not passed in, so process the
    > * attributes that were collected after the startElement call.
    > * _attribVector is a "cheap" list for Stream serializer output
    > * accumulated over a series of calls to attribute(name,value)
    > */
    >
    > String encoding = getEncoding();
    > for (int i = 0; i < nAttrs; i++)
    > {
    > // elementAt is JDK 1.1.8
    > final String name = m_attributes.getQName(i);
    > final String value = m_attributes.getValue(i);
    > writer.write(' ');
    > writer.write(name);
    > writer.write("=\"");
    > writeAttrString(writer, value, encoding);
    > writer.write('\"');
    > }
    > }
    >
    > So the problem seems to be that there is some miscommunication
    about which
    > name the XML writer should be using. This would explain why it
    might not
    > happen on other platforms with a different implementation of the
    XML writer.
    > I don't know if there is some setting somewhere that specifies
    whether to
    > use the local name or the qualified name for attributes. Is
    there something
    > that can be set to specify the correct behavior?
    >
    > I switched to using GeometryFilters, so the problem went away
    because it
    > doesn't use attributes, it uses content. In fact I am not sure whye
    > FidFilter uses attributes, because it seems to be one of the
    only ones that
    > does. The other one that I see in FilterTransformer that might
    have a
    > similar problem with attributes is LikeFilter. It also only
    specifies the
    > local name. FunctionExpression actually specifies the local name
    and qname
    > to be the same, so it should work.
    >
    > Thanks,
    >
    > Cole
    >
    >
    > On 9/9/05, Chris Holmes < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:
    > >
    > > Do you know what class is being used to generate the XML? Is it
    > > SLDTransformer and FilterTransformer? It seems really weird if
    that's
    > > not generating it right, since it's a SAX producer, which
    makes it hard
    > > to just not include the attribute name. Maybe it has to do
    with the
    > > SAX implementation you're using? Regardless, this is an odd
    problem.
    > > All the other attributes get generated correctly? I checked
    the code
    > > and all looks fine.
    > >
    > > Chris
    > >
    > > Quoting Cole Markham < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>:
    > >
    > > > I ran across a bug while trying to create FidFilters in
    uDig. The
    > > > Filter
    > > > gets created and applyed to the Style and everything works
    fine until
    > > > the
    > > > Style is recreated from XML.
    > > >
    > > > The FidFilter element doesn't get the attribute name (I
    assume fid)
    > > > written.
    > > > The following snippet from the generated xml document shows the
    > > > problem.
    > > >
    > > > <sld:Rule>
    > > > <sld:Name>name</sld:Name>
    > > > <sld:Abstract>Abstract</sld:Abstract>
    > > > <sld:Title>title</sld:Title>
    > > > <ogc:Filter>
    > > > <ogc:Or>
    > > > <ogc:FeatureId ="structure_existing_area.1551"/>
    > > > <ogc:FeatureId ="structure_existing_area.1254"/>
    > > > </ogc:Or>
    > > > </ogc:Filter>
    > > > ......
    > > > <sld:Rule>
    > > >
    > > > The remainder of the file appears to be ok. I tried to trace
    the
    > > > problem,
    > > > but I don't understand the xml encoder well enough.
    > > >
    > > > I switched to using GeometryFilters for now, and they are
    working
    > > > fine.
    > > > Hopefully this can get fixed for the next version.
    > > >
    > > > Thanks,
    > > > Cole Markham
    > > >
    > >
    > >
    > >
    > >
    > > ----------------------------------------------------------
    > > This mail sent through IMP: https://webmail.limegroup.com/
    > >
    >

    --






-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to