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
Joined: Nov 22, 2008
Posts: 18944
posted
0
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
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.