You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Sc...@lotus.com on 2001/08/21 04:29:31 UTC

Re: Is this a Xalan issue? (was Fwd: [C2 patch] Incorrect serialization to XML)

Yes, it is a general Xalan issue, for both serializers and for input SAX
events for the source tree.

There has been some discussion about reworking the namespace handling in
the serializers (see
http://marc.theaimsgroup.com/?t=99741117600001&w=2&r=1).  And note the long
outstanding bug in bugzilla
(http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2877), which I am not
sure is the same bug as Joerg reported (I think that bug has to do with the
TransformerHandler, though he doesn't say... however it's a general issue).
I think if the qname is not empty, we should be able to rely on it being
correct.  I can't tell if Joerg wants us to just ignore the qname argument
even if it is not empty.

In any case, having to do prefix lookup in the serializer will come at some
expense, though maybe less expense on our side of the fence than on yours,
if it has to be done.  On the other hand, it may mean that we have to fully
track namespaces in the serializer which may be redundent to what also has
to be done in our ResultTreeHandler (see
http://marc.theaimsgroup.com/?l=xalan-dev&m=99741600419951&w=2, but I have
to research this issue more...).

>From the standpoint of the SAX spec:

     * <p>Any or all of these may be provided, depending on the
     * values of the <var>http://xml.org/sax/features/namespaces</var>
     * and the <var>http://xml.org/sax/features/namespace-prefixes</var>
     * properties:</p>
     *
     * <ul>
     * <li>the Namespace URI and local name are required when
     * the namespaces property is <var>true</var> (the default), and are
     * optional when the namespaces property is <var>false</var> (if one is
     * specified, both must be);</li>
     * <li>the qualified name is required when the namespace-prefixes
property
     * is <var>true</var>, and is optional when the namespace-prefixes
property
     * is <var>false</var> (the default).</li>
     * </ul>
     *
    .....
     *
     * @param uri The Namespace URI, or the empty string if the
     *        element has no Namespace URI or if Namespace
     *        processing is not being performed.
     * @param localName The local name (without prefix), or the
     *        empty string if Namespace processing is not being
     *        performed.
     * @param qName The qualified name (with prefix), or the
     *        empty string if qualified names are not available.

As I read it, the qname parameter should be correct if it is not null.  I
could be wrong about this, and Joerg should point me to a reference for his
quote that "the way I read the SAX specification, the qName (or raw name)
of elements that is passed to the callback methods is of purely informal
character and does not necessarily contain the full (raw) element name."

Note that one should assume that the namespaces property is always true for
Xalan.  I see we have a bug in that, if you get Xalan as a XMLFilter via
SAXTransformerFactory#newXMLFilter(...), we should return true for
filter.getProperty (  "http://xml.org/sax/features/namespaces" );.

Anyway, I suspect it will be three or four more weeks until we resolve this
in the code, so you may want to incorporate Joerg's patch as a temporary
work-around.  I think Gary Peskin is planning to do the work on this...
Gary, if not you should let me know.

-scott






---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org