xerces-c-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alberto Massari <amass...@datadirect.com>
Subject Re: Null XML document root in some contexts (but working fine in some others with the same code) [huge question]
Date Mon, 28 Jul 2008 17:07:14 GMT
Hi Roberto,
I gave just a quick look at the code, but it seems to me that you are 
creating a visor.xsd schema on the fly; given that the visor.xml sample 
file has an hardcoded reference to "visor.xsd", this is going to work 
only if also the temp file is located in the same folder where you put 
the visor.xsd. Alternatively, you can register an entity resolver that 
will recognize the request for "visor.xsd" and provide the 
LocalInputSource pointing to the correct generated content.


Roberto Rigamonti wrote:
> Good evening, I'm working to a project that involves the parsing of 
> some XML files, and up to now I've successfully used the Xerces 
> library to do so (I've written a couple of messages some months ago 
> for some questions regarding the correct use of the library, but now 
> everything seemed to be ok).
> --- Brief resume of my project ---
> I have to develop a 3D visor using wxWidgets and OpenGL, that is an 
> application that reads an XML file (local file or sent through the 
> network), loads a set of drawing plugins (e.g. the plugin that draws 
> lines, the one that draws polygons, ...) and displays the objects 
> specified in the XML file in a three dimensional, navigable world. A 
> snapshot of the current project can be downloaded from:
> http://roby1984.netsons.org/3DVisor-0.0.3.tar.bz2
> The small client that will be used to send the files can be downloaded 
> from:
> http://roby1984.netsons.org/client.tar.bz2
> and compiled using
> g++ -c client.cc `wx-config --cxxflags` -ggdb
> g++ client.o `wx-config --gl-libs` -lglut `wx-config --libs` 
> -L/usr/X11R6/lib -lXi -lXmu -o client
> # Requested libraries:
> - Xerces :)
> - wxWidgets
> - Boost
> - GSL
> - Mesa
> - libXi
> - libXmu
> - some others that I'm probably missing now but that configure should
>   signal you promptly :)
> # Build & run example (file downloaded in /home/roby/Download/):
> -> tar xjvf 3DVisor-0.0.3.tar.bz2
> -> cd 3DVisor-0.0.3/
> -> ./configure --prefix=/home/roby/Download/3DVisor-0.0.3/sandbox
> [to avoid installing it somewhere in the system, so that we can 
> install it without being root]
> -> make
> -> make install
> -> cd sandbox/bin
> -> ./3DVisor
> The problem that I've encountered is the following:
> if I use the visor in "local mode" and select the file "visor.xml", 
> everything works fine, but if I enable the "remote mode", start up the 
> client program (after copying in the same directory of the client 
> program the file "visor.xml" renamed as "in.txt") and send the file, 
> the SAME code used for the local file but applied to a temporary file 
> where the data sent is stored gives me the following result:
> Temporary filename: /tmp/fileygUK8t  <--- changes everytime and is
>                                           removed as soon as processing
>                                           finishes
> XMLManager::fillVariablesMap() : Empty XML document
> (that is, after getting the DOMDocument, when trying to get the root 
> of the DOMDocument it gets a NULL root via getDocumentElement()), even 
> if the XML file is non-empty (it is removed immediately after 
> processing, but when it is processed is filled with correct entries, 
> I've triple-checked it by putting some std::cins to stop the execution 
> and checking it by hand, so I'm sure of that).
> The application's code is huge and intricate, but everything regarding 
> the XML management should be restricted to the XMLManager.* files, in 
> particular to the load3DObjects() and fillVariablesMap() methods, 
> eventually I can put specific sections of code upon request (I've put 
> everything on the web site just to avoid filling this message with 
> chunks of code).
> I know that a big effort was requested just to read my entire message, 
> but I'm really going crazy on this (the code used in both cases IS THE 
> SAME!!!!).
> Thanks in advance to anyone willing to help me.
>                                                Roberto

View raw message