<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2716.2200" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Courier New" size=2>Thanks Frank, that did it. All I had to do
was put the latest xercesImpl.jar in my classpath. It parsed in </FONT><FONT
face="Courier New" size=2>1282 milliseconds instead of the estimated 26+ hours.
Nasty!</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>I appreciate it.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>Dan</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=Frank.Sauer@trcinc.com href="mailto:Frank.Sauer@trcinc.com">Frank
Sauer</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=Dan.Temple@wcom.com
href="mailto:Dan.Temple@wcom.com">Dan Temple</A> ; <A
title=jdom-interest@jdom.org
href="mailto:jdom-interest@jdom.org">jdom-interest@jdom.org</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, October 16, 2002 3:23
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> RE: [jdom-interest] SAX
Parser/DTD Validation EXTREMELY slow</DIV>
<DIV><BR></DIV>
<DIV><SPAN class=945412421-16102002><FONT face=Arial color=#0000ff size=2>Have
you tried another XML parser than the one packaged in the 1.4
JRE?</FONT></SPAN></DIV>
<DIV><SPAN class=945412421-16102002><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=945412421-16102002><FONT face=Arial color=#0000ff
size=2>Here's something I plucked off the web somewhere on how to do that
(replace Xalan with Xerces, same applies):</FONT></SPAN></DIV>
<DIV><SPAN class=945412421-16102002><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=945412421-16102002>
<P>Annoyingly, the Xalan-J classes included in Java 1.4 are zipped into the
<FONT face="Courier New" size=2>rt.jar</FONT> archive so it’s hard to replace
them with a less-buggy release version of Xalan. It can be done, but you have
to put the xalan.jar file in your <FONT face="Courier New"
size=2>$JAVA_HOME/lib/endorsed</FONT> directory rather than in the normal
<FONT face="Courier New" size=2>jre/lib/ext</FONT> directory. The exact
location of $JAVA_HOME varies from system to system, but it’s probably
something like <FONT face="Courier New" size=2>C:\j2sdk1.4.0</FONT> on
Windows. None of this is an issue with Java 1.3 and earlier, which don’t
bundle these classes. On these systems you just need to install whatever jar
files your XSLT engine vendor provides in the usual locations, the same as you
would any other third party library. </P>
<P> </P>
<P><SPAN class=945412421-16102002><FONT face=Arial color=#0000ff
size=2>Frank</FONT></SPAN></P></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma
size=2>-----Original Message-----<BR><B>From:</B> Dan Temple
[mailto:Dan.Temple@wcom.com]<BR><B>Sent:</B> Wednesday, October 16, 2002
5:14 PM<BR><B>To:</B> jdom-interest@jdom.org<BR><B>Subject:</B>
[jdom-interest] SAX Parser/DTD Validation EXTREMELY
slow<BR><BR></FONT></DIV>
<DIV><FONT face="Courier New" size=2>I have a DTD ELEMENT sequence that has
47 children. When I turn on SAX validation (SAXBuilder(true)) it <FONT
size=2>takes forever to build (saxBuilder.build(File)). OK, not actually
forever, but 26 hours! It takes so long that at first I thought that it was
in an infinite loop - CPU was at 100%.</FONT></FONT></DIV>
<DIV><FONT face="Courier New" size=2><FONT size=2></FONT></FONT> </DIV>
<DIV><FONT face="Courier New" size=2><FONT size=2>By playing with the XML
& DTD, I was able to narrow down the problem to just the number of
entries in the DTD ELEMENT sequence. It's falling down at about 20 entries
and goes up exponentially from there. For every additional child entry, the
time it takes to validate DOUBLES (almost exactly).</FONT></FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>Entries Millis<BR>=======
======<BR> 1
711<BR> 5 641<BR>
10 621<BR>
15 631<BR>
20 811<BR>
21 1031<BR>
22 1422<BR>
23 2163<BR>
24 3685<BR>
25 6709<BR> 26
12769<BR> 27 24796<BR>
28 48830<BR> 29
102367<BR> 30 206056<BR> 31
405963<BR></FONT></DIV>
<DIV><FONT face="Courier New" size=2>My largest actual test was 35 entries
& sure enough - over 1 1/2 hours. </FONT><FONT face="Courier New"
size=2>By my calculations, to process my 47 entries will take over 26 hours.
The only solution for me is to turn off SAX parser
validation.</DIV></FONT>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>I am using the latest code from CVS -
Beta8 (tag: jdom_1_0_b8). I am using Java 1.4.0_02. The problem occurs on
both Windows 2000 & Solaris 8.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>Attached is XMLTest.java, test.xml,
& test.dtd. Just compile & run the XMLTest class, it's hard coded to
use the test.xml file which references the test.dtd file.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>Thanks,</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>Dan Temple</FONT></DIV>
<DIV><FONT face="Courier New"
size=2></FONT> </DIV></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>