DOM backward compatibility
This page lists changes to the DOM API.
Purpose
Sometimes the DOM API changes in a way that prevents client applications from working properly when they upgrade to the latest DOM version. Although the DOM maintainers minimize API breakage as much as possible, sometimes it's necessary. In most API breakage situations, the client application no longer compiles.
This page is used to record any changes that require clients to modify their code to work with a newer version of the DOM.
- Note: The revision numbers given below refer to the COLLADA DOM Subversion repository on SourceForge.
Core API changes
This section tracks changes made to the core API.
Build setup changes
This section tracks changes made to the build files. These changes likely won't require you to modify C++ source code that uses the DOM, but may require you to modify project files that link the DOM into your application.
Revision 110, 11 June 2007
In revision 110 I consolidated libraries to make things simpler for client applications. stdErrPlugin, libxmlPlugin, and STLDatabase have been merged into dae.vcproj. In your project settings you should remove any references to those libraries.
The equivalent changes were made for the Linux makefiles in revision 115 on 19 June 2007.
Revision 131, 18 July 2007
In revision 131 I removed iconv from the DOM build on Windows. In revision 133 I submitted a libxml build for Windows that doesn't need iconv. In the past, we expected developers to go download their own version of libxml for Windows, typically the one from Igor Zlatkovic. That libxml requires iconv, so if you update to the latest DOM, you may get link errors about missing iconv. The solution is to use the new libxml Windows build provided in the external-libs section of the SourceForge svn repository. See building libxml.
Revision 134, 19 July 2007
I updated the Visual Studio 2003 and 2005 files so the DOM can be built with both versions side by side. The build output location has changed, so if you update directly on top of the old DOM (e.g. by doing an svn checkout) you'll want to delete the lib/bin/tmp directories so you don't accidentally link against old libraries. If you forget to do this, you'll get a link error. You'll also need to change your project files to look for the DOM in the new output location.
A similar change is coming for Linux, but it's not done yet.
IO plug-in changes
This section tracks changes made to the I/O plug-in system. If you don't use custom I/O plug-ins then these changes won't affect your application.
Revision 77, 7 May 2007
In revision 77, changes were made to the atomic type and meta attribute systems that require changes in I/O plug-ins. Responsibility for handling whitespace when reading a document has been moved from the I/O plug-in to the atomic types. This should simplify I/O plug-ins. See the changes made to daeLIBXMLPlugin.cpp
in revision 77 for more details.