betelgeuse@pena /usr/share/xalan/lib $ jar -tf xalan.jar | grep "/$" META-INF/ META-INF/services/ java_cup/ java_cup/runtime/ org/ org/apache/ org/apache/bcel/ org/apache/bcel/classfile/ org/apache/bcel/generic/ org/apache/bcel/util/ org/apache/bcel/verifier/ org/apache/bcel/verifier/exc/ org/apache/bcel/verifier/statics/ org/apache/bcel/verifier/structurals/ org/apache/regexp/ org/apache/xalan/ org/apache/xalan/client/ org/apache/xalan/extensions/ org/apache/xalan/lib/ org/apache/xalan/lib/sql/ org/apache/xalan/processor/ org/apache/xalan/res/ org/apache/xalan/serialize/ org/apache/xalan/templates/ org/apache/xalan/trace/ org/apache/xalan/transformer/ org/apache/xalan/xslt/ org/apache/xalan/xsltc/ org/apache/xalan/xsltc/cmdline/ org/apache/xalan/xsltc/cmdline/getopt/ org/apache/xalan/xsltc/compiler/ org/apache/xalan/xsltc/compiler/util/ org/apache/xalan/xsltc/dom/ org/apache/xalan/xsltc/runtime/ org/apache/xalan/xsltc/runtime/output/ org/apache/xalan/xsltc/trax/ org/apache/xalan/xsltc/util/ org/apache/xml/ org/apache/xml/dtm/ org/apache/xml/dtm/ref/ org/apache/xml/dtm/ref/dom2dtm/ org/apache/xml/dtm/ref/sax2dtm/ org/apache/xml/res/ org/apache/xml/serializer/ org/apache/xml/utils/ org/apache/xml/utils/res/ org/apache/xpath/ org/apache/xpath/axes/ org/apache/xpath/compiler/ org/apache/xpath/domapi/ org/apache/xpath/functions/ org/apache/xpath/objects/ org/apache/xpath/operations/ org/apache/xpath/patterns/ org/apache/xpath/res/ org/w3c/ org/w3c/dom/ org/w3c/dom/xpath/ There is an build.xml option to disable this behaviour but it broke translets. Opening a bug so that I don't forget this issue again.
Xalan 2.7.0-r2 still have this problem. It's not an insignificant problem - classes in xalan are in front of ant classpath. So if you want to use for example java_cup then version from xalan will be used. If you want to use newer version than xalan is using then you're in trouble.
Fixed in xalan-2.7.0-r3.