asukai
asked on
XML problem
If my program try to parse a xml file which starts with
<?xml version="1.0"?>
<!DOCTYPE symbolDefinition SYSTEM "C:\symbol.dtd">
it gives an error. The program works fine if the xml file starts with
<?xml version="1.0"?>
<!DOCTYPE symbolDefinition SYSTEM "symbol.dtd">
.
The error says its something to do with URI but I don't know how to over come this problem. The file "symbol.dtd" exists in the correct directory.
the following is the code to parse XML files.
Thanx
DocumentBuilderFactory factory
= DocumentBuilderFactory.new Instance() ;
factory.setValidating(true );
factory.setIgnoringElement ContentWhi tespace(tr ue);
DocumentBuilder builder = factory.newDocumentBuilder ();
Document doc = builder.parse(zin);
<?xml version="1.0"?>
<!DOCTYPE symbolDefinition SYSTEM "C:\symbol.dtd">
it gives an error. The program works fine if the xml file starts with
<?xml version="1.0"?>
<!DOCTYPE symbolDefinition SYSTEM "symbol.dtd">
.
The error says its something to do with URI but I don't know how to over come this problem. The file "symbol.dtd" exists in the correct directory.
the following is the code to parse XML files.
Thanx
DocumentBuilderFactory factory
= DocumentBuilderFactory.new
factory.setValidating(true
factory.setIgnoringElement
DocumentBuilder builder = factory.newDocumentBuilder
Document doc = builder.parse(zin);
Can you post the exact error messages and the versoin of XML parser you are using? Latest versions of Xerces have problems with paths since the expect everything to be a URI.
ASKER
It's rather long error
org.xml.sax.SAXParseExcept ion: Relative URI "C:\symbol.dtd"; can not be reso
lved without a base URI.
at org.apache.crimson.parser. Parser2.fa tal(Parser 2.java:318 2)
at org.apache.crimson.parser. Parser2.fa tal(Parser 2.java:317 6)
at org.apache.crimson.parser. Parser2.re solveURI(P arser2.jav a:2758)
at org.apache.crimson.parser. Parser2.ma ybeExterna lID(Parser 2.java:273 0)
at org.apache.crimson.parser. Parser2.ma ybeDoctype Decl(Parse r2.java:11 29)
at org.apache.crimson.parser. Parser2.pa rseInterna l(Parser2. java:489)
at org.apache.crimson.parser. Parser2.pa rse(Parser 2.java:305 )
at org.apache.crimson.parser. XMLReaderI mpl.parse( XMLReaderI mpl.java:4 42)
at org.apache.crimson.jaxp.Do cumentBuil derImpl.pa rse(Docume ntBuilderI mpl
.java:185)
at javax.xml.parsers.Document Builder.pa rse(Docume ntBuilder. java:76)
at XMLParser.<init>(XMLParser .java:62)
at DesktopFrame.actionPerform ed(Desktop Frame.java :814)
at javax.swing.AbstractButton .fireActio nPerformed (AbstractB utton.java :17
64)
at javax.swing.AbstractButton $ForwardAc tionEvents .actionPer formed(Abs tra
ctButton.java:1817)
at javax.swing.DefaultButtonM odel.fireA ctionPerfo rmed(Defau ltButtonMo del
.java:419)
at javax.swing.DefaultButtonM odel.setPr essed(Defa ultButtonM odel.java: 257
)
at javax.swing.AbstractButton .doClick(A bstractBut ton.java:2 89)
at javax.swing.plaf.basic.Bas icMenuItem UI.doClick (BasicMenu ItemUI.jav a:1
109)
at javax.swing.plaf.basic.Bas icMenuItem UI$MouseIn putHandler .mouseRele ase
d(BasicMenuItemUI.java:943 )
at java.awt.Component.process MouseEvent (Component .java:5093 )
at java.awt.Component.process Event(Comp onent.java :4890)
at java.awt.Container.process Event(Cont ainer.java :1566)
at java.awt.Component.dispatc hEventImpl (Component .java:3598 )
at java.awt.Container.dispatc hEventImpl (Container .java:1623 )
at java.awt.Component.dispatc hEvent(Com ponent.jav a:3439)
at java.awt.LightweightDispat cher.retar getMouseEv ent(Contai ner.java:3 450
)
at java.awt.LightweightDispat cher.proce ssMouseEve nt(Contain er.java:31 65)
at java.awt.LightweightDispat cher.dispa tchEvent(C ontainer.j ava:3095)
at java.awt.Container.dispatc hEventImpl (Container .java:1609 )
at java.awt.Window.dispatchEv entImpl(Wi ndow.java: 1585)
at java.awt.Component.dispatc hEvent(Com ponent.jav a:3439)
at java.awt.EventQueue.dispat chEvent(Ev entQueue.j ava:450)
at java.awt.EventDispatchThre ad.pumpOne EventForHi erarchy(Ev entDispatc hTh
read.java:197)
at java.awt.EventDispatchThre ad.pumpEve ntsForHier archy(Even tDispatchT hre
ad.java:150)
at java.awt.EventDispatchThre ad.pumpEve nts(EventD ispatchThr ead.java:1 44)
at java.awt.EventDispatchThre ad.pumpEve nts(EventD ispatchThr ead.java:1 36)
at java.awt.EventDispatchThre ad.run(Eve ntDispatch Thread.jav a:99)
java.lang.NullPointerExcep tion
at XMLParser.getSymbols(XMLPa rser.java: 157)
at DesktopFrame.actionPerform ed(Desktop Frame.java :815)
at javax.swing.AbstractButton .fireActio nPerformed (AbstractB utton.java :17
64)
at javax.swing.AbstractButton $ForwardAc tionEvents .actionPer formed(Abs tra
ctButton.java:1817)
at javax.swing.DefaultButtonM odel.fireA ctionPerfo rmed(Defau ltButtonMo del
.java:419)
at javax.swing.DefaultButtonM odel.setPr essed(Defa ultButtonM odel.java: 257
)
at javax.swing.AbstractButton .doClick(A bstractBut ton.java:2 89)
at javax.swing.plaf.basic.Bas icMenuItem UI.doClick (BasicMenu ItemUI.jav a:1
109)
at javax.swing.plaf.basic.Bas icMenuItem UI$MouseIn putHandler .mouseRele ase
d(BasicMenuItemUI.java:943 )
at java.awt.Component.process MouseEvent (Component .java:5093 )
at java.awt.Component.process Event(Comp onent.java :4890)
at java.awt.Container.process Event(Cont ainer.java :1566)
at java.awt.Component.dispatc hEventImpl (Component .java:3598 )
at java.awt.Container.dispatc hEventImpl (Container .java:1623 )
at java.awt.Component.dispatc hEvent(Com ponent.jav a:3439)
at java.awt.LightweightDispat cher.retar getMouseEv ent(Contai ner.java:3 450
)
at java.awt.LightweightDispat cher.proce ssMouseEve nt(Contain er.java:31 65)
at java.awt.LightweightDispat cher.dispa tchEvent(C ontainer.j ava:3095)
at java.awt.Container.dispatc hEventImpl (Container .java:1609 )
at java.awt.Window.dispatchEv entImpl(Wi ndow.java: 1585)
at java.awt.Component.dispatc hEvent(Com ponent.jav a:3439)
at java.awt.EventQueue.dispat chEvent(Ev entQueue.j ava:450)
at java.awt.EventDispatchThre ad.pumpOne EventForHi erarchy(Ev entDispatc hTh
read.java:197)
at java.awt.EventDispatchThre ad.pumpEve ntsForHier archy(Even tDispatchT hre
ad.java:150)
at java.awt.EventDispatchThre ad.pumpEve nts(EventD ispatchThr ead.java:1 44)
at java.awt.EventDispatchThre ad.pumpEve nts(EventD ispatchThr ead.java:1 36)
at java.awt.EventDispatchThre ad.run(Eve ntDispatch Thread.jav a:99)
org.xml.sax.SAXParseExcept
lved without a base URI.
at org.apache.crimson.parser.
at org.apache.crimson.parser.
at org.apache.crimson.parser.
at org.apache.crimson.parser.
at org.apache.crimson.parser.
at org.apache.crimson.parser.
at org.apache.crimson.parser.
at org.apache.crimson.parser.
at org.apache.crimson.jaxp.Do
.java:185)
at javax.xml.parsers.Document
at XMLParser.<init>(XMLParser
at DesktopFrame.actionPerform
at javax.swing.AbstractButton
64)
at javax.swing.AbstractButton
ctButton.java:1817)
at javax.swing.DefaultButtonM
.java:419)
at javax.swing.DefaultButtonM
)
at javax.swing.AbstractButton
at javax.swing.plaf.basic.Bas
109)
at javax.swing.plaf.basic.Bas
d(BasicMenuItemUI.java:943
at java.awt.Component.process
at java.awt.Component.process
at java.awt.Container.process
at java.awt.Component.dispatc
at java.awt.Container.dispatc
at java.awt.Component.dispatc
at java.awt.LightweightDispat
)
at java.awt.LightweightDispat
at java.awt.LightweightDispat
at java.awt.Container.dispatc
at java.awt.Window.dispatchEv
at java.awt.Component.dispatc
at java.awt.EventQueue.dispat
at java.awt.EventDispatchThre
read.java:197)
at java.awt.EventDispatchThre
ad.java:150)
at java.awt.EventDispatchThre
at java.awt.EventDispatchThre
at java.awt.EventDispatchThre
java.lang.NullPointerExcep
at XMLParser.getSymbols(XMLPa
at DesktopFrame.actionPerform
at javax.swing.AbstractButton
64)
at javax.swing.AbstractButton
ctButton.java:1817)
at javax.swing.DefaultButtonM
.java:419)
at javax.swing.DefaultButtonM
)
at javax.swing.AbstractButton
at javax.swing.plaf.basic.Bas
109)
at javax.swing.plaf.basic.Bas
d(BasicMenuItemUI.java:943
at java.awt.Component.process
at java.awt.Component.process
at java.awt.Container.process
at java.awt.Component.dispatc
at java.awt.Container.dispatc
at java.awt.Component.dispatc
at java.awt.LightweightDispat
)
at java.awt.LightweightDispat
at java.awt.LightweightDispat
at java.awt.Container.dispatc
at java.awt.Window.dispatchEv
at java.awt.Component.dispatc
at java.awt.EventQueue.dispat
at java.awt.EventDispatchThre
read.java:197)
at java.awt.EventDispatchThre
ad.java:150)
at java.awt.EventDispatchThre
at java.awt.EventDispatchThre
at java.awt.EventDispatchThre
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Isn't it
<!DOCTYPE symbolDefinition SYSTEM "file://C:/symbol.dtd">
?
<!DOCTYPE symbolDefinition SYSTEM "file://C:/symbol.dtd">
?
Hmm... I think it is without the ":". Try it with both and see if it works.