Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Orbit/Xerces in Eclipse
Contents
Xerces and XML in Eclipse
The purpose of this page is to document various aspects of using Xerces in Eclipse. It's not always easy, and this pages is far from complete, but hopefully will be the start. Others are welcome to document here tips they kave learned, or suggest changes in the the wasy we bundle xerces (via but reports usually).
Parts of Xerces
Xerces 2.8.0
Xerces, as delivered by Apache, has about 4 or 5 jars in it's distributions that are planned to be part of Orbit. For example, in Xerces 2.8.0:
- xml-apis.jar
- xercesImpl.jar
- resolver.jar
- xercesSamples.jar
So far we have done nothing with 'samples', though hope to someday.
So, in Europa Version of Orbit, we delivered the apis and implementation in one bundle, and the resolver in another bundle, since the resolver can be used outside of Eclipse as a standalone jar to do certain catalog and resolution functions, so we didn't want to lose that capability.
Xerces 2.9.0
There was one new jar added to Xerces 2.9.0, for improved serialization code (improved especially in that they "merged" the code base between Xalan and Xerces). So, beside the above 4 jars, there is also now a
- serialization.jar
We have left that separate for now, apart from implementation, simply because there's some class loader issues with it on some VM's, so it deserves more study.
Also, in Xerces 2.9.0 in Eclipse/Orbit, we have left separate the API jar and the IMPL jar. More needs to be done, but the idea is that most clients can "depend on" only the API bundle and if the IMPL bundle happens to be there, then fine, though in principle there could be another implementation present to do the work in some slightly different way, for example. The idea being that client code should not have to change, just to use a different implementation.
Features and Xerces
The main point of list the parts of Xerces was to motivate why it's necessary to pay attention when creating features to include Xerces. For Xerces 2.8, there's only two to include to get the whole Xerces distribution.
Xerces 2.8.0
<plugin id="org.apache.xerces" download-size="0" install-size="0" version="2.8.0.qualifier" unpack="false"/> <plugin id="org.apache.xml.resolver" download-size="0" install-size="0" version="1.1.0.qualifier" unpack="false"/>
Xerces 2.9.0
<plugin id="org.apache.xerces" download-size="0" install-size="0" version="2.9.0.qualifier" unpack="false"/> <plugin id="org.apache.xml.resolver" download-size="0" install-size="0" version="1.2.0.qualifier" unpack="false"/> <plugin id="org.apache.xml.serializer" download-size="0" install-size="0" version="2.7.1.qualifier" unpack="false"/> <plugin id="javax.xml" download-size="0" install-size="0" version="1.3.4.qualifier" unpack="false"/>