F
Florian.Schmitt
Hi,
i'm stuck with a problem that leads to the error message cited in the
subject. After Googling i found that some other people had this problem
already in 2003 without getting response. I hope i've more luck three
years later...
I'm exploring the possibilities of accessing and XML database (exist db
1.1rc2) via its SOAP Query interface from a VBA macro using the MS SOAP
Type Library v3.0. I used the MS Web Services Toolkit to create the VBA
proxy classes to access the SOAP interface.
Connecting and using getResource works fine, but i encountered a
problem as i tried to check the availability of a document in the eXist
db using the xquery Method of the Query Interface and the
doc-available() xquery function. Executing this Function on an document
existing in the eXist db, i get an VBA error saying "SoapMapper: array
dimensions do not match definition".
The eXist log says that it receives the xquery correctly (i think so):
2006-12-05 11:33:16,031 [http-8080-Processor24] DEBUG
(QuerySoapBindingImpl.java [query]:268) - query:
doc-available('/test/testdoc.xml')
The corresponding SOAP Response is:
(...)
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<xqueryResponse xmlns="urn:exist">
<xqueryReturn>
<collections/>
<hits>1</hits>
<queryTime>0</queryTime>
</xqueryReturn>
</xqueryResponse>
</soapenv:Body>
</soapenv:Envelope>
The collections element is empty as there's no collection or document
to return, only the hits count matters. The collections element is also
marked as nillable in the WSDL file describing the SOAP Query
Interface. I suppose that the VBA Code isn't able to process the empty
collections element correctly (other users reported that the problem
occurs when an empty array is returned).
I already found the hint to change the type of the corresponding VBA
variable to variant, but this is already the case (output of the Web
Services Toolkit). So this doesn't help.
After all, i think the question is how to handle a returned empty array
correctly. Any help is appreciated.
Florian
i'm stuck with a problem that leads to the error message cited in the
subject. After Googling i found that some other people had this problem
already in 2003 without getting response. I hope i've more luck three
years later...
I'm exploring the possibilities of accessing and XML database (exist db
1.1rc2) via its SOAP Query interface from a VBA macro using the MS SOAP
Type Library v3.0. I used the MS Web Services Toolkit to create the VBA
proxy classes to access the SOAP interface.
Connecting and using getResource works fine, but i encountered a
problem as i tried to check the availability of a document in the eXist
db using the xquery Method of the Query Interface and the
doc-available() xquery function. Executing this Function on an document
existing in the eXist db, i get an VBA error saying "SoapMapper: array
dimensions do not match definition".
The eXist log says that it receives the xquery correctly (i think so):
2006-12-05 11:33:16,031 [http-8080-Processor24] DEBUG
(QuerySoapBindingImpl.java [query]:268) - query:
doc-available('/test/testdoc.xml')
The corresponding SOAP Response is:
(...)
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<xqueryResponse xmlns="urn:exist">
<xqueryReturn>
<collections/>
<hits>1</hits>
<queryTime>0</queryTime>
</xqueryReturn>
</xqueryResponse>
</soapenv:Body>
</soapenv:Envelope>
The collections element is empty as there's no collection or document
to return, only the hits count matters. The collections element is also
marked as nillable in the WSDL file describing the SOAP Query
Interface. I suppose that the VBA Code isn't able to process the empty
collections element correctly (other users reported that the problem
occurs when an empty array is returned).
I already found the hint to change the type of the corresponding VBA
variable to variant, but this is already the case (output of the Web
Services Toolkit). So this doesn't help.
After all, i think the question is how to handle a returned empty array
correctly. Any help is appreciated.
Florian