Eddie, I have a good one for you regarding this issue.
My app is using OGRE+CEGUI with the default OGRE resource provider. My OGRE resources are all zip files. Here's the situation:
I have one zip archive that contains all my UI files, under a directory called "ui" within the archive. The files are subdivided logically, so my scheme files are in "ui/schemes", layout files are in "ui/layouts", imageset files are in "ui/imagesets", and so on.
I encountered an initial error when trying to load and validate the initial scheme file. I pass the path of the scheme, "ui/schemes/IronHellsLook.scheme", which the resource provider loads and then attempts to find the schema definition, GUIScheme.xsd. That's where the first failure occurs. The .xsd file is located in the same directory as the .scheme file, but it is not found. An exception is thrown stating that "GUIScheme.xsd" cannot be found. Note that file contains no path, so the resource provider will be looking for the file at the root of whatever resources I have defined.
So, to fix this, I moved the .xsd files into the root of one of the archives, and the resource provider is able to find them. Since you stated that the loading of the .xsd file and its pathing is internal to Xerces, moving them to the root of an archive is still an acceptable solution, so I don't think it's anything that requires fixing, but it should be noted to others who run into this issue.
However, another error arises at this point. In the GUIScheme, I define an imageset, "ui/imagesets/IronHellsLook.imageset". When CEGUI attempts to load this file, somewhere along the way some path resolution occurs, and I end up with this path:
Code: Select all
/Users/pauly/Projects/Builds/Iron Hells.app/Contents/Resources//ui/schemes/IronHellsLook.scheme
Since my resources are located in archives defined as OGRE resources, only the last part of the path, the part defined in the scheme file, should be used.
I had a peek at OgreResourceProvider.cpp, and it seems that it takes the filename as provided, without path resolution, so that must be occurring within CEGUI.