I had the same Exception when I added elements that I had received before from 
xindice. When Itried to query that elements I had this exception. I'm not a 
java expert, I just used a workaround that removes the "src" and the "xindice" 
namespace from an element before adding it to a collection - after that I could 
query my elements. 
I don't know if this works for you, anyway I think that you have the namespace 
already defined in your elements, so maybe your problem is where you add the 
elements to xindice.
- stefan
-----Ursprüngliche Nachricht-----
Von: Miguel Angel Urrutia Soler [mailto:[EMAIL PROTECTED] 
Gesendet: Donnerstag, 30. Oktober 2003 09:05
An: xindice-users@xml.apache.org
Betreff: Error with simple xpath query


Hello:

I have a problem, when I do the xpath query "/DataSource" at a collection that 
contains documents with this structure:
<DataSource ID="00ffa7c06e3979dd000000f59437d713" Name="DC2 Reverso" 
Description="">
    <Fields>
        <Field key="0cffa7c0411731c6000000f39dac0383" 
col="/db/com/ESH_Systems/ContingenSys/configurations/elements/XCompany">
            <Fields>
                <Field key="0cffa7c0411731c6000000f39b6900b8" 
col="/db/com/ESH_Systems/ContingenSys/configurations/elements/XCompany">
                    <Values>
                        <Value Source="6" Type="0" Pattern="" 
Name="COLUMN1_ESTABLECIMIENTOS_EN_QUE_RIGE_EL_PLAN" Aux="1"/>
                        <Value Source="6" Type="0" Pattern="" 
Name="COLUMN2_ESTABLECIMIENTOS_EN_QUE_RIGE_EL_PLAN" Aux="2"/>
                        <Value Source="6" Type="0" Pattern="" 
Name="COLUMN3_ESTABLECIMIENTOS_EN_QUE_RIGE_EL_PLAN" Aux="3"/>
                    </Values>
                </Field>
                <Field key="0cffa7c0411731c6000000f392645365" 
col="/db/com/ESH_Systems/ContingenSys/configurations/elements/XCompany">
                    <Values>
                        <Value Source="0" Type="0" Pattern="" Name="VALUE_DEL"/>
                    </Values>
                </Field>
            </Fields>
        </Field>
    </Fields>
</DataSource>

I receive the follow exception:
[Fatal Error] :2:17753: Attribute "http://xml.apache.org/xindice/Query"; bound 
to namespace "http://xml.apache.org/xindice/Query"; was already specified for 
element "DataSource".
org.xml.sax.SAXParseException: Attribute "http://xml.apache.org/xindice/Query"; 
bound to namespace "http://xml.apache.org/xindice/Query"; was already specified 
for element "DataSource".
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at 
org.apache.xindice.client.xmldb.xmlrpc.CollectionImpl.query(CollectionImpl.java:572)
    at 
org.apache.xindice.client.xmldb.XindiceCollection.query(XindiceCollection.java:292)
    at 
org.apache.xindice.client.xmldb.services.QueryService.query(QueryService.java:131)
    at 
com.ESHSystems.ContingenSys.Data.CollectionsDBManager.getXPathQuerySAX(CollectionsDBManager.java:236)...

but just when I use the tomcat version... when use the embedded version that 
works fine...
the code is something like this:

            //get the query service
            XPathQueryService queryservice = (XPathQueryService)
            col.getService(DBConstants.XINDICE_XPATHQUERYSERVICE_NAME,
                    DBConstants.XINDICE_XPATHQUERYSERVICE_VERSION);

            //Execute query
            queryservice.clearNamespaces();
            ResourceSet resultset = queryservice.query(xpath);

            if (resultset.getSize() > 0) {
            objs = new Object[(int) resultset.getSize()];
            XMLResource resource = null;

            for (int i = 0; i < resultset.getSize(); i++) {
                resource = (XMLResource) resultset.getResource(i);
                if (resource != null) {
                  
resource.setSAXFeature(SAXEventGenerator.SAX_NAMESPACE_PREFIXES_FEATURE, false);
                  
resource.setSAXFeature(SAXEventGenerator.SAX_NAMESPACES_FEATURE, false);
                  resource.getContentAsSAX(handler);
                  objs[i] = handler.getUserObject();
                }
            }

            return objs;
            }

Plz If anybody knows what I missing help me.

any suggestions? 

Reply via email to