• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Why is setValidate not working

 
Rob Bass
Ranch Hand
Posts: 67
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Maybe I am doing something totally wrong, here is my XML:
<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "bookgram.dtd">
<book>
<title>Professional Java Programming</title>
<author>Brett Spell</author>
<publisher>Wrox Press</publisher>
<tableOfContents showPageNumbers="Yes">
<tocEntry>Printing</tocEntry>
<tocEntry>Cut and Paste</tocEntry>
<tocEntry>Drag and Drop</tocEntry>
</tableOfContents>
</book>
and dtd:
<!ELEMENT book (title, author, publisher, tableOfContents)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT tableOfContents (tocEntry+)>
<!ATTLIST tableOfContents
showPageNumbers CDATA "yes"
>
<!ELEMENT tocEntry (#PCDATA)>

My java code:
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
this.fileNameNPath = fileToOpen;
factory.setValidating(true);
factory.setNamespaceAware(true);
this.doc = builder.parse(fileToOpen);
return true;
I edited the XML like this:
<?xml version="1.0"?>
<!DOCTYPE book SYSTEM "bookgram.dtd">
<book>
<title>Professional Java Programming</title>
<author>Brett Spell</author>
<addsomecrap/>
<publisher>Wrox Press</publisher>
<tableOfContents showPageNumbers="Yes">
<tocEntry>Printing</tocEntry>
<tocEntry>Cut and Paste</tocEntry>
<tocEntry>Drag and Drop</tocEntry>
</tableOfContents>
</book>
I then thought when I ran my Java code it would bomb but it still works,
the XML no longer confirms to the DTD, why is it still able to parse
without error???
HELP
Rob
 
Anonymous
Ranch Hand
Posts: 18944
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Rob,
When you change the settings of the document builder factory, it does not affect the previously created document builders. All you need to do is move the line instanciating a new document builder after the ones that changes the settings of the factory, like this:

Hope this helps.
Best regards,
Beno�t
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic