You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by Mike Gratton <mi...@vee.net> on 2002/02/25 15:01:00 UTC
intent behind DocumentImpl.importNamespaces()?
Guys,
I'm trying to work out the intent behind DocumentImpl.importNamespaces()
because that method is causing some broken query output to be generated
at the moment. For an example:
<?xml version="1.0" encoding="ANSI_X3.4-1968"?>
<xapi:resourceSet
xapi:collectionURI="xmldb:xindice:///db/focus/data"
xmlns:xapi="http://www.xmldb.org/xapi/ResourceSet">
<xapi:resource xapi:documentID="metalprices-01_08_2000.xml">
<metalprices
xmlns:src="http://xml.apache.org/xindice/Query"
src:col="/db/focus/data" src:key="metalprices-01_08_2000.xml">
<exchange name="USD exchange rate"
xmlns:src="http://xml.apache.org/xindice/Query">
<high xmlns:src="http://xml.apache.org/xindice/Query">
<current xmlns:src="http://xml.apache.org/xindice/Query">0.5813</current>
[snip]
and so on. Note the redeclaration of the 'src' namespace prefix on all
descendants of the 'metalprices' element.
The culprit if obviously the recursive nature of the importNamespaces();
any NS declarations between the current element and the doument will be
duplicated on the current element, as is aparent in the fragment above.
The problem is, I can't work out why it's there at all, when all it is
doing is copying any NS declarations to the current element, which is
useless, as far as I can tell.
What it should be doing is checking the imported element to ensure that
if it or any of it's attributes have prefixes, then those prefixes
should map to a valid namespace. If they do not, then it should declare
the namespace if it knows what that namespace should be, and probably
error out if it does not.
Anyway, after commenting out the call to importNamespace() in
DocumentImpl.importNode(), the output from the query that produced the
above output is okay - it doesn't have the src prefix redeclared on
every element.
Does anyone have any suggestions as to why importNamespaces() should
stay as it is, before I attempt to fix it?
Mike.
--
Mike Gratton <mi...@vee.net>
"Every motive escalate."
Blatant self-promotion: <http://web.vee.net/>