Solved

java: xml/html file with doctype trying to connect to site

Posted on 2008-10-09
13
197 Views
Last Modified: 2013-11-23
I've html/xml files that contain the following:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

The Java program that I create parses this file however it won't compile b/c it's trying to visit the w3 site for the DTD info.  Any idea if this function can be turned of in Java/Eclipse?
0
Comment
Question by:newbieal
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 6
13 Comments
 
LVL 60

Accepted Solution

by:
Kevin Cross earned 500 total points
ID: 22682490
Howdy, newbieal.

If I am not mistaken you have been working with javax.xml.parsers, so you want to take a look at DocumentBuilderFactory: http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/parsers/DocumentBuilderFactory.html.

I believe you want to use .setValidating(false).
0
 
LVL 4

Author Comment

by:newbieal
ID: 22686212
Hi mwvisa1,
I added this line:
dbf.setValidating(false);
(dbf being the documentbuildfactory)

However, it's still trying to validate.
0
 
LVL 60

Assisted Solution

by:Kevin Cross
Kevin Cross earned 500 total points
ID: 22686626
Not sure as your code and file work on my system just fine without any change in options.  However, you can try this setting:

dbf.setExpandEntityReferences(false);

You can look through the other settings in DocumentBuilderFactory API I linked to above, as maybe I have just not used something that is spelled out in there.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 4

Author Comment

by:newbieal
ID: 22686673
That didn't work either.  I get the this error:

java.net.ConnectException: Connection timed out: connect
0
 
LVL 60

Expert Comment

by:Kevin Cross
ID: 22686757
Please post your code.
0
 
LVL 4

Author Comment

by:newbieal
ID: 22686832

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
dbf.setNamespaceAware(false);
dbf.setExpandEntityReferences(false);
			
DocumentBuilder db = dbf.newDocumentBuilder ( );
	    	
Document doc = db.parse ( new File ( "testing.html" ) );
	   
String newinfo = "add this line";
	   
Element root = doc.getDocumentElement ( );
System.out.println ( root.getNodeName ( ) );
NodeList list = root.getChildNodes ( );
for ( int i = 0; i < list.getLength ( ); i++ ) 
{
   if ( list.item ( i ).getNodeName ( ).equals ( "head" ) ) 
{
       list.item ( i ).setTextContent ( newinfo );
}
}
XMLSerializer serializer = new XMLSerializer ( );
serializer.setOutputCharStream ( new java.io.FileWriter ( "testing.html" ) );
serializer.serialize ( doc );

Open in new window

0
 
LVL 60

Assisted Solution

by:Kevin Cross
Kevin Cross earned 500 total points
ID: 22686963
Yep, that is what I have with this as imports:
import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
0
 
LVL 4

Author Comment

by:newbieal
ID: 22687023
I don't understand why you do not get the connection timed out error.  Maybe it just means that your system is able to go out and verify the dtd.

I'm still getting: java.net.ConnectException: Connection timed out: connect

any other ideas? (I really just want to remove the doctype lines in the xml/html files but unfortunately I can't do that - it's a requirement that they stay in)
0
 
LVL 60

Expert Comment

by:Kevin Cross
ID: 22687392
Yes, it is strange as you have an Internet connection since you are posting here. :)
Should not have anything to do with it, but guess you can check your firewall settings to see.
0
 
LVL 4

Author Comment

by:newbieal
ID: 22687532
I just don't want it to connect at all.  I want it to ignore the validation of dtd.
0
 
LVL 60

Assisted Solution

by:Kevin Cross
Kevin Cross earned 500 total points
ID: 22687573
And that should definitely be the .setValidating(false) which is why I am not sure why this isn't working for you.

http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/DocumentBuilderFactory.html#validationCompatibility
0
 
LVL 60

Assisted Solution

by:Kevin Cross
Kevin Cross earned 500 total points
ID: 22687606
Check your java version, project settings, etc. and make sure nothing weird is going on there.  I am on system with Eclipse/NetBeans and JDK 1.6 and works with setValidating(false).
0
 
LVL 4

Author Comment

by:newbieal
ID: 22687790
I've suspended all validation in Eclipse and even with that it still tries to connect - arghhh!!!!  I have and am using JDK 1.5
0

Featured Post

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
Suggested Courses

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question