You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Jon Wilmoth <jo...@yahoo.com> on 2003/05/24 18:59:25 UTC

Bug in parser?

I'm trying to parse a very simple xml document with
xerces 2.4.0.  Unfortunately I get the following
error:

java.net.MalformedURLException
        at java.net.URL.<init>(URL.java:613)
        at java.net.URL.<init>(URL.java:476)
        at java.net.URL.<init>(URL.java:425)
        at
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
Source)
        at
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
        at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)
        at
org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
        at
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
        at
org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
        at
org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)

The document:
<?xml version="1.0"?>
<!DOCTYPE EventRegistrations SYSTEM
"file:///C:\temp\projects\EventRegistrations.dtd">
<EventRegistrations>
	<event name="test.events.BusinessObjectChangeEvent">
		<listener>test.ObjectCreationListener</listener>
	</event>
</EventRegistrations>

Passes validation in my xml editor.  What's going on?

__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org


Re: Bug in parser?

Posted by Jon Wilmoth <jo...@yahoo.com>.
Ah.  I thought
getClass().getResourceAsStream("test.xml") delegated
to the
getClass().getClassLoader().getResourceAsStream("test.xml")

and it was the location of the file (i.e.
com/acme/app/text.xml) that specified the package to
look under not the invoking class.

--- Jacob Kjome <ho...@visi.com> wrote:
> 
> I can tell you exactly why it didn't find 
> it.  getClass().getResourceAsStream("test.xml")
> looks for the test.xml file 
> in the same package as your class exists and nowhere
> else.  If you want to 
> find test.xml in the root of the classpath, then do
> either 
> getClass().getResourceAsStream("/test.xml") or 
>
getClass().getClassLoader().getResourceAsStream("test.xml")
> 
> Jake
> 
> At 01:46 PM 5/29/2003 -0700, you wrote:
> >Thank you that was the issue.  Although I'm not
> sure
> >why getClass().getResourceAsStream(testDoc); was
> not
> >able to find a file that was present in the
> >/WEB-INF/classes directory!  Changing the servlet
> >initialization code to
> >context.getResourceAsStream("/WEB-INF/classes/" +
> >testDoc); worked!
> >
> >Thanks again,
> >Jon
> >
> >--- Michael Rafael Glavassevich
> ><mr...@engmail.uwaterloo.ca> wrote:
> > > Hi Jon,
> > >
> > > You might want to check if you're passing in a
> > > non-null InputStream. I
> > > believe getResourceAsStream (unless your class
> was
> > > loaded by some custom
> > > ClassLoader), searches the classpath for the
> > > resource you want, so if
> > > you've only have jars in your classpath, I doubt
> it
> > > would search in the
> > > file system.
> > >
> > > -----------------------------------------
> > > Michael Glavassevich
> > > mrglavas@engmail.uwaterloo.ca
> > > Candidate for Bachelor of Applied Science
> > > Computer Engineering
> > > University of Waterloo
> > >
> > > On Tue, 27 May 2003, Jon Wilmoth wrote:
> > >
> > > > I've tried simplifying the test by attempting
> to
> > > parse
> > > > a document without a dtd reference.
> > > >
> > > > <?xml version="1.0"?>
> > > > <test>sample</test>
> > > >
> > > > The java code I use, which still results in an
> > > > exception is:
> > > >
> > > > log.debug("TRYING TO PARSE SIMPLE
> DOCUMENT...");
> > > > SAXBuilder builder = new SAXBuilder(false);
> > > >
> builder.setIgnoringElementContentWhitespace(true);
> > > >
> > >
>
>builder.setFeature("http://xml.org/sax/features/validation",
> > > > false);
> > > >
> > > > String testDoc = "test.xml";
> > > > try {
> > > >     Document doc =
> > > >
> > >
>
>builder.build(getClass().getResourceAsStream(testDoc));
> > > >
> > > >     //I never get here!
> > > >     log.debug("Successfully parsed test
> > > document!");
> > > >
> > > > } catch (JDOMException jdome) {
> > > >     Throwable root = jdome.getCause();
> > > >     if (root != null) {
> > > >         log.error("Root cause:" +
> > > root.getMessage());
> > > >     }
> > > >     log.error("Failed to parse " + testDoc + "
> > > file",
> > > > root);
> > > > }
> > > >
> > > >
> > > > --- Michael Rafael Glavassevich
> > > > <mr...@engmail.uwaterloo.ca> wrote:
> > > > > Hi Jon,
> > > > >
> > > > > It would be great if you posted a snippet of
> > > code
> > > > > before and including
> > > > > the invocation of SAXBuilder.build, in order
> to
> > > > > diagnose your problem. It
> > > > > seems that there is something wrong with the
> > > > > location specified for your
> > > > > XML file (either an invalid URI, or
> java.net.URL
> > > > > doesn't recognize the
> > > > > protocol/scheme of the URI). In either case,
> > > Xerces
> > > > > is unable to read
> > > > > your file.
> > > > >
> > > > > As a separate issue, I noticed that the
> system
> > > ID
> > > > > that you specified for
> > > > > your DTD is not a valid URI. It should be
> > > > >
> > >
> "file:///C:/temp/projects/EventRegistrations.dtd"
> > > > > instead of
> > > > >
> > >
> "file:///C:\temp\projects\EventRegistrations.dtd"
> > > > > ('\' isn't a valid URI
> > > > > character). Xerces (by default) will fix up
> the
> > > > > system ID before it's
> > > > > used. However, if you want your documents to
> be
> > > > > portable across different
> > > > > XML parsers, then you need to make sure that
> > > URIs
> > > > > you specify actually
> > > > > meet the URI spec.
> > > > >
> > > > > Hope that helps.
> > > > >
> > > > > -----------------------------------------
> > > > > Michael Glavassevich
> > > > > mrglavas@engmail.uwaterloo.ca
> > > > > Candidate for Bachelor of Applied Science
> > > > > Computer Engineering
> > > > > University of Waterloo
> > > > >
> > > > > On Sat, 24 May 2003, Jon Wilmoth wrote:
> > > > >
> > > > > > I'm trying to parse a very simple xml
> document
> > > > > with
> > > > > > xerces 2.4.0.  Unfortunately I get the
> > > following
> > > > > > error:
> > > > > >
> > > > > > java.net.MalformedURLException
> > > > > >         at
> java.net.URL.<init>(URL.java:613)
> > > > > >         at
> java.net.URL.<init>(URL.java:476)
> > > > > >         at
> java.net.URL.<init>(URL.java:425)
> > > > > >         at
> > > > > >
> > > > >
> > > >
> > >
>
>org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > > > > > Source)
> > > > > >         at
> > > > > >
> > > > >
> > > >
> > >
>
>org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> > > > > > Source)
> > > > > >         at
> > > > > >
> > > > >
> > > >
> > >
>
>org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > > > > > Source)
> > > > > >         at
> > > > > >
> > > > >
> > > >
> > >
>
>org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > > > > > Source)
> > > > > >         at
> > > > > >
> > >
> org.apache.xerces.parsers.XMLParser.parse(Unknown
> > > > > > Source)
> > > > > >         at
> > > > > >
> > > > >
> > > >
> > >
>
>org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > > > > > Source)
> > > > > >         at
> > > > > >
> > > > >
> > >
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
> > > > > >         at
> > > > > >
> > > > >
> > >
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
> > > > > >
> > > > > > The document:
> > > > > > <?xml version="1.0"?>
> > > > > > <!DOCTYPE EventRegistrations SYSTEM
> > > > > >
> > >
> "file:///C:\temp\projects\EventRegistrations.dtd">
> > > > > > <EventRegistrations>
> > > > > >         <event
> > > > >
> name="test.events.BusinessObjectChangeEvent">
> > > > > >
> > > <listener>test.ObjectCreationListener</listener>
> > > > > >         </event>
> > > > > > </EventRegistrations>
> > > > > >
> > > > > > Passes validation in my xml editor. 
> What's
> > > going
> > > > > on?
> > > > > >
> > > >
> > > > __________________________________
> > > > Do you Yahoo!?
> > > > The New Yahoo! Search - Faster. Easier. Bingo.
> > > > http://search.yahoo.com
> > > >
> > > >
> > >
>
>---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > > xerces-j-user-unsubscribe@xml.apache.org
> > > > For additional commands, e-mail:
> > > xerces-j-user-help@xml.apache.org
> > > >
> > >
> > >
>
>---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > > xerces-j-user-unsubscribe@xml.apache.org
> > > For additional commands, e-mail:
> > > xerces-j-user-help@xml.apache.org
> > >
> >
> >
> >__________________________________
> >Do you Yahoo!?
> >Yahoo! Calendar - Free online calendar with sync to
> Outlook(TM).
> >http://calendar.yahoo.com
> >
>
>---------------------------------------------------------------------
> >To unsubscribe, e-mail:
> xerces-j-user-unsubscribe@xml.apache.org
> >For additional commands, e-mail:
> xerces-j-user-help@xml.apache.org
> 


__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org


Re: Bug in parser?

Posted by Jacob Kjome <ho...@visi.com>.
I can tell you exactly why it didn't find 
it.  getClass().getResourceAsStream("test.xml") looks for the test.xml file 
in the same package as your class exists and nowhere else.  If you want to 
find test.xml in the root of the classpath, then do either 
getClass().getResourceAsStream("/test.xml") or 
getClass().getClassLoader().getResourceAsStream("test.xml")

Jake

At 01:46 PM 5/29/2003 -0700, you wrote:
>Thank you that was the issue.  Although I'm not sure
>why getClass().getResourceAsStream(testDoc); was not
>able to find a file that was present in the
>/WEB-INF/classes directory!  Changing the servlet
>initialization code to
>context.getResourceAsStream("/WEB-INF/classes/" +
>testDoc); worked!
>
>Thanks again,
>Jon
>
>--- Michael Rafael Glavassevich
><mr...@engmail.uwaterloo.ca> wrote:
> > Hi Jon,
> >
> > You might want to check if you're passing in a
> > non-null InputStream. I
> > believe getResourceAsStream (unless your class was
> > loaded by some custom
> > ClassLoader), searches the classpath for the
> > resource you want, so if
> > you've only have jars in your classpath, I doubt it
> > would search in the
> > file system.
> >
> > -----------------------------------------
> > Michael Glavassevich
> > mrglavas@engmail.uwaterloo.ca
> > Candidate for Bachelor of Applied Science
> > Computer Engineering
> > University of Waterloo
> >
> > On Tue, 27 May 2003, Jon Wilmoth wrote:
> >
> > > I've tried simplifying the test by attempting to
> > parse
> > > a document without a dtd reference.
> > >
> > > <?xml version="1.0"?>
> > > <test>sample</test>
> > >
> > > The java code I use, which still results in an
> > > exception is:
> > >
> > > log.debug("TRYING TO PARSE SIMPLE DOCUMENT...");
> > > SAXBuilder builder = new SAXBuilder(false);
> > > builder.setIgnoringElementContentWhitespace(true);
> > >
> >
>builder.setFeature("http://xml.org/sax/features/validation",
> > > false);
> > >
> > > String testDoc = "test.xml";
> > > try {
> > >     Document doc =
> > >
> >
>builder.build(getClass().getResourceAsStream(testDoc));
> > >
> > >     //I never get here!
> > >     log.debug("Successfully parsed test
> > document!");
> > >
> > > } catch (JDOMException jdome) {
> > >     Throwable root = jdome.getCause();
> > >     if (root != null) {
> > >         log.error("Root cause:" +
> > root.getMessage());
> > >     }
> > >     log.error("Failed to parse " + testDoc + "
> > file",
> > > root);
> > > }
> > >
> > >
> > > --- Michael Rafael Glavassevich
> > > <mr...@engmail.uwaterloo.ca> wrote:
> > > > Hi Jon,
> > > >
> > > > It would be great if you posted a snippet of
> > code
> > > > before and including
> > > > the invocation of SAXBuilder.build, in order to
> > > > diagnose your problem. It
> > > > seems that there is something wrong with the
> > > > location specified for your
> > > > XML file (either an invalid URI, or java.net.URL
> > > > doesn't recognize the
> > > > protocol/scheme of the URI). In either case,
> > Xerces
> > > > is unable to read
> > > > your file.
> > > >
> > > > As a separate issue, I noticed that the system
> > ID
> > > > that you specified for
> > > > your DTD is not a valid URI. It should be
> > > >
> > "file:///C:/temp/projects/EventRegistrations.dtd"
> > > > instead of
> > > >
> > "file:///C:\temp\projects\EventRegistrations.dtd"
> > > > ('\' isn't a valid URI
> > > > character). Xerces (by default) will fix up the
> > > > system ID before it's
> > > > used. However, if you want your documents to be
> > > > portable across different
> > > > XML parsers, then you need to make sure that
> > URIs
> > > > you specify actually
> > > > meet the URI spec.
> > > >
> > > > Hope that helps.
> > > >
> > > > -----------------------------------------
> > > > Michael Glavassevich
> > > > mrglavas@engmail.uwaterloo.ca
> > > > Candidate for Bachelor of Applied Science
> > > > Computer Engineering
> > > > University of Waterloo
> > > >
> > > > On Sat, 24 May 2003, Jon Wilmoth wrote:
> > > >
> > > > > I'm trying to parse a very simple xml document
> > > > with
> > > > > xerces 2.4.0.  Unfortunately I get the
> > following
> > > > > error:
> > > > >
> > > > > java.net.MalformedURLException
> > > > >         at java.net.URL.<init>(URL.java:613)
> > > > >         at java.net.URL.<init>(URL.java:476)
> > > > >         at java.net.URL.<init>(URL.java:425)
> > > > >         at
> > > > >
> > > >
> > >
> >
>org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > > > > Source)
> > > > >         at
> > > > >
> > > >
> > >
> >
>org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> > > > > Source)
> > > > >         at
> > > > >
> > > >
> > >
> >
>org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > > > > Source)
> > > > >         at
> > > > >
> > > >
> > >
> >
>org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > > > > Source)
> > > > >         at
> > > > >
> > org.apache.xerces.parsers.XMLParser.parse(Unknown
> > > > > Source)
> > > > >         at
> > > > >
> > > >
> > >
> >
>org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > > > > Source)
> > > > >         at
> > > > >
> > > >
> > org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
> > > > >         at
> > > > >
> > > >
> > org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
> > > > >
> > > > > The document:
> > > > > <?xml version="1.0"?>
> > > > > <!DOCTYPE EventRegistrations SYSTEM
> > > > >
> > "file:///C:\temp\projects\EventRegistrations.dtd">
> > > > > <EventRegistrations>
> > > > >         <event
> > > > name="test.events.BusinessObjectChangeEvent">
> > > > >
> > <listener>test.ObjectCreationListener</listener>
> > > > >         </event>
> > > > > </EventRegistrations>
> > > > >
> > > > > Passes validation in my xml editor.  What's
> > going
> > > > on?
> > > > >
> > >
> > > __________________________________
> > > Do you Yahoo!?
> > > The New Yahoo! Search - Faster. Easier. Bingo.
> > > http://search.yahoo.com
> > >
> > >
> >
>---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > xerces-j-user-unsubscribe@xml.apache.org
> > > For additional commands, e-mail:
> > xerces-j-user-help@xml.apache.org
> > >
> >
> >
>---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > xerces-j-user-unsubscribe@xml.apache.org
> > For additional commands, e-mail:
> > xerces-j-user-help@xml.apache.org
> >
>
>
>__________________________________
>Do you Yahoo!?
>Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
>http://calendar.yahoo.com
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
>For additional commands, e-mail: xerces-j-user-help@xml.apache.org

Re: Bug in parser?

Posted by Jon Wilmoth <jo...@yahoo.com>.
Thank you that was the issue.  Although I'm not sure
why getClass().getResourceAsStream(testDoc); was not
able to find a file that was present in the
/WEB-INF/classes directory!  Changing the servlet
initialization code to
context.getResourceAsStream("/WEB-INF/classes/" +
testDoc); worked!

Thanks again,
Jon

--- Michael Rafael Glavassevich
<mr...@engmail.uwaterloo.ca> wrote:
> Hi Jon,
> 
> You might want to check if you're passing in a
> non-null InputStream. I
> believe getResourceAsStream (unless your class was
> loaded by some custom
> ClassLoader), searches the classpath for the
> resource you want, so if
> you've only have jars in your classpath, I doubt it
> would search in the
> file system.
> 
> -----------------------------------------
> Michael Glavassevich
> mrglavas@engmail.uwaterloo.ca
> Candidate for Bachelor of Applied Science
> Computer Engineering
> University of Waterloo
> 
> On Tue, 27 May 2003, Jon Wilmoth wrote:
> 
> > I've tried simplifying the test by attempting to
> parse
> > a document without a dtd reference.
> >
> > <?xml version="1.0"?>
> > <test>sample</test>
> >
> > The java code I use, which still results in an
> > exception is:
> >
> > log.debug("TRYING TO PARSE SIMPLE DOCUMENT...");
> > SAXBuilder builder = new SAXBuilder(false);
> > builder.setIgnoringElementContentWhitespace(true);
> >
>
builder.setFeature("http://xml.org/sax/features/validation",
> > false);
> >
> > String testDoc = "test.xml";
> > try {
> >     Document doc =
> >
>
builder.build(getClass().getResourceAsStream(testDoc));
> >
> >     //I never get here!
> >     log.debug("Successfully parsed test
> document!");
> >
> > } catch (JDOMException jdome) {
> >     Throwable root = jdome.getCause();
> >     if (root != null) {
> >         log.error("Root cause:" +
> root.getMessage());
> >     }
> >     log.error("Failed to parse " + testDoc + "
> file",
> > root);
> > }
> >
> >
> > --- Michael Rafael Glavassevich
> > <mr...@engmail.uwaterloo.ca> wrote:
> > > Hi Jon,
> > >
> > > It would be great if you posted a snippet of
> code
> > > before and including
> > > the invocation of SAXBuilder.build, in order to
> > > diagnose your problem. It
> > > seems that there is something wrong with the
> > > location specified for your
> > > XML file (either an invalid URI, or java.net.URL
> > > doesn't recognize the
> > > protocol/scheme of the URI). In either case,
> Xerces
> > > is unable to read
> > > your file.
> > >
> > > As a separate issue, I noticed that the system
> ID
> > > that you specified for
> > > your DTD is not a valid URI. It should be
> > >
> "file:///C:/temp/projects/EventRegistrations.dtd"
> > > instead of
> > >
> "file:///C:\temp\projects\EventRegistrations.dtd"
> > > ('\' isn't a valid URI
> > > character). Xerces (by default) will fix up the
> > > system ID before it's
> > > used. However, if you want your documents to be
> > > portable across different
> > > XML parsers, then you need to make sure that
> URIs
> > > you specify actually
> > > meet the URI spec.
> > >
> > > Hope that helps.
> > >
> > > -----------------------------------------
> > > Michael Glavassevich
> > > mrglavas@engmail.uwaterloo.ca
> > > Candidate for Bachelor of Applied Science
> > > Computer Engineering
> > > University of Waterloo
> > >
> > > On Sat, 24 May 2003, Jon Wilmoth wrote:
> > >
> > > > I'm trying to parse a very simple xml document
> > > with
> > > > xerces 2.4.0.  Unfortunately I get the
> following
> > > > error:
> > > >
> > > > java.net.MalformedURLException
> > > >         at java.net.URL.<init>(URL.java:613)
> > > >         at java.net.URL.<init>(URL.java:476)
> > > >         at java.net.URL.<init>(URL.java:425)
> > > >         at
> > > >
> > >
> >
>
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > > > Source)
> > > >         at
> > > >
> > >
> >
>
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> > > > Source)
> > > >         at
> > > >
> > >
> >
>
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > > > Source)
> > > >         at
> > > >
> > >
> >
>
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > > > Source)
> > > >         at
> > > >
> org.apache.xerces.parsers.XMLParser.parse(Unknown
> > > > Source)
> > > >         at
> > > >
> > >
> >
>
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > > > Source)
> > > >         at
> > > >
> > >
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
> > > >         at
> > > >
> > >
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
> > > >
> > > > The document:
> > > > <?xml version="1.0"?>
> > > > <!DOCTYPE EventRegistrations SYSTEM
> > > >
> "file:///C:\temp\projects\EventRegistrations.dtd">
> > > > <EventRegistrations>
> > > > 	<event
> > > name="test.events.BusinessObjectChangeEvent">
> > > > 	
> <listener>test.ObjectCreationListener</listener>
> > > > 	</event>
> > > > </EventRegistrations>
> > > >
> > > > Passes validation in my xml editor.  What's
> going
> > > on?
> > > >
> >
> > __________________________________
> > Do you Yahoo!?
> > The New Yahoo! Search - Faster. Easier. Bingo.
> > http://search.yahoo.com
> >
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> xerces-j-user-unsubscribe@xml.apache.org
> > For additional commands, e-mail:
> xerces-j-user-help@xml.apache.org
> >
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> xerces-j-user-unsubscribe@xml.apache.org
> For additional commands, e-mail:
> xerces-j-user-help@xml.apache.org
> 


__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org


Re: Bug in parser?

Posted by Michael Rafael Glavassevich <mr...@engmail.uwaterloo.ca>.
Hi Jon,

You might want to check if you're passing in a non-null InputStream. I
believe getResourceAsStream (unless your class was loaded by some custom
ClassLoader), searches the classpath for the resource you want, so if
you've only have jars in your classpath, I doubt it would search in the
file system.

-----------------------------------------
Michael Glavassevich
mrglavas@engmail.uwaterloo.ca
Candidate for Bachelor of Applied Science
Computer Engineering
University of Waterloo

On Tue, 27 May 2003, Jon Wilmoth wrote:

> I've tried simplifying the test by attempting to parse
> a document without a dtd reference.
>
> <?xml version="1.0"?>
> <test>sample</test>
>
> The java code I use, which still results in an
> exception is:
>
> log.debug("TRYING TO PARSE SIMPLE DOCUMENT...");
> SAXBuilder builder = new SAXBuilder(false);
> builder.setIgnoringElementContentWhitespace(true);
> builder.setFeature("http://xml.org/sax/features/validation",
> false);
>
> String testDoc = "test.xml";
> try {
>     Document doc =
> builder.build(getClass().getResourceAsStream(testDoc));
>
>     //I never get here!
>     log.debug("Successfully parsed test document!");
>
> } catch (JDOMException jdome) {
>     Throwable root = jdome.getCause();
>     if (root != null) {
>         log.error("Root cause:" + root.getMessage());
>     }
>     log.error("Failed to parse " + testDoc + " file",
> root);
> }
>
>
> --- Michael Rafael Glavassevich
> <mr...@engmail.uwaterloo.ca> wrote:
> > Hi Jon,
> >
> > It would be great if you posted a snippet of code
> > before and including
> > the invocation of SAXBuilder.build, in order to
> > diagnose your problem. It
> > seems that there is something wrong with the
> > location specified for your
> > XML file (either an invalid URI, or java.net.URL
> > doesn't recognize the
> > protocol/scheme of the URI). In either case, Xerces
> > is unable to read
> > your file.
> >
> > As a separate issue, I noticed that the system ID
> > that you specified for
> > your DTD is not a valid URI. It should be
> > "file:///C:/temp/projects/EventRegistrations.dtd"
> > instead of
> > "file:///C:\temp\projects\EventRegistrations.dtd"
> > ('\' isn't a valid URI
> > character). Xerces (by default) will fix up the
> > system ID before it's
> > used. However, if you want your documents to be
> > portable across different
> > XML parsers, then you need to make sure that URIs
> > you specify actually
> > meet the URI spec.
> >
> > Hope that helps.
> >
> > -----------------------------------------
> > Michael Glavassevich
> > mrglavas@engmail.uwaterloo.ca
> > Candidate for Bachelor of Applied Science
> > Computer Engineering
> > University of Waterloo
> >
> > On Sat, 24 May 2003, Jon Wilmoth wrote:
> >
> > > I'm trying to parse a very simple xml document
> > with
> > > xerces 2.4.0.  Unfortunately I get the following
> > > error:
> > >
> > > java.net.MalformedURLException
> > >         at java.net.URL.<init>(URL.java:613)
> > >         at java.net.URL.<init>(URL.java:476)
> > >         at java.net.URL.<init>(URL.java:425)
> > >         at
> > >
> >
> org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > > Source)
> > >         at
> > >
> >
> org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> > > Source)
> > >         at
> > >
> >
> org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > > Source)
> > >         at
> > >
> >
> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > > Source)
> > >         at
> > > org.apache.xerces.parsers.XMLParser.parse(Unknown
> > > Source)
> > >         at
> > >
> >
> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > > Source)
> > >         at
> > >
> > org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
> > >         at
> > >
> > org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
> > >
> > > The document:
> > > <?xml version="1.0"?>
> > > <!DOCTYPE EventRegistrations SYSTEM
> > > "file:///C:\temp\projects\EventRegistrations.dtd">
> > > <EventRegistrations>
> > > 	<event
> > name="test.events.BusinessObjectChangeEvent">
> > > 		<listener>test.ObjectCreationListener</listener>
> > > 	</event>
> > > </EventRegistrations>
> > >
> > > Passes validation in my xml editor.  What's going
> > on?
> > >
>
> __________________________________
> Do you Yahoo!?
> The New Yahoo! Search - Faster. Easier. Bingo.
> http://search.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
> For additional commands, e-mail: xerces-j-user-help@xml.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org


Re: Bug in parser?

Posted by Jon Wilmoth <jo...@yahoo.com>.
I've tried simplifying the test by attempting to parse
a document without a dtd reference.  

<?xml version="1.0"?>
<test>sample</test>

The java code I use, which still results in an
exception is:

log.debug("TRYING TO PARSE SIMPLE DOCUMENT...");
SAXBuilder builder = new SAXBuilder(false);
builder.setIgnoringElementContentWhitespace(true);
builder.setFeature("http://xml.org/sax/features/validation",
false);

String testDoc = "test.xml";
try {
    Document doc =
builder.build(getClass().getResourceAsStream(testDoc));

    //I never get here!
    log.debug("Successfully parsed test document!");

} catch (JDOMException jdome) {
    Throwable root = jdome.getCause();
    if (root != null) {
        log.error("Root cause:" + root.getMessage());
    }
    log.error("Failed to parse " + testDoc + " file",
root);
}


--- Michael Rafael Glavassevich
<mr...@engmail.uwaterloo.ca> wrote:
> Hi Jon,
> 
> It would be great if you posted a snippet of code
> before and including
> the invocation of SAXBuilder.build, in order to
> diagnose your problem. It
> seems that there is something wrong with the
> location specified for your
> XML file (either an invalid URI, or java.net.URL
> doesn't recognize the
> protocol/scheme of the URI). In either case, Xerces
> is unable to read
> your file.
> 
> As a separate issue, I noticed that the system ID
> that you specified for
> your DTD is not a valid URI. It should be
> "file:///C:/temp/projects/EventRegistrations.dtd"
> instead of
> "file:///C:\temp\projects\EventRegistrations.dtd"
> ('\' isn't a valid URI
> character). Xerces (by default) will fix up the
> system ID before it's
> used. However, if you want your documents to be
> portable across different
> XML parsers, then you need to make sure that URIs
> you specify actually
> meet the URI spec.
> 
> Hope that helps.
> 
> -----------------------------------------
> Michael Glavassevich
> mrglavas@engmail.uwaterloo.ca
> Candidate for Bachelor of Applied Science
> Computer Engineering
> University of Waterloo
> 
> On Sat, 24 May 2003, Jon Wilmoth wrote:
> 
> > I'm trying to parse a very simple xml document
> with
> > xerces 2.4.0.  Unfortunately I get the following
> > error:
> >
> > java.net.MalformedURLException
> >         at java.net.URL.<init>(URL.java:613)
> >         at java.net.URL.<init>(URL.java:476)
> >         at java.net.URL.<init>(URL.java:425)
> >         at
> >
>
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > Source)
> >         at
> >
>
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> > Source)
> >         at
> >
>
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > Source)
> >         at
> >
>
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > Source)
> >         at
> > org.apache.xerces.parsers.XMLParser.parse(Unknown
> > Source)
> >         at
> >
>
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > Source)
> >         at
> >
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
> >         at
> >
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
> >
> > The document:
> > <?xml version="1.0"?>
> > <!DOCTYPE EventRegistrations SYSTEM
> > "file:///C:\temp\projects\EventRegistrations.dtd">
> > <EventRegistrations>
> > 	<event
> name="test.events.BusinessObjectChangeEvent">
> > 		<listener>test.ObjectCreationListener</listener>
> > 	</event>
> > </EventRegistrations>
> >
> > Passes validation in my xml editor.  What's going
> on?
> >

__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org


Re: Bug in parser?

Posted by Michael Rafael Glavassevich <mr...@engmail.uwaterloo.ca>.
Hi Jon,

It would be great if you posted a snippet of code before and including
the invocation of SAXBuilder.build, in order to diagnose your problem. It
seems that there is something wrong with the location specified for your
XML file (either an invalid URI, or java.net.URL doesn't recognize the
protocol/scheme of the URI). In either case, Xerces is unable to read
your file.

As a separate issue, I noticed that the system ID that you specified for
your DTD is not a valid URI. It should be
"file:///C:/temp/projects/EventRegistrations.dtd" instead of
"file:///C:\temp\projects\EventRegistrations.dtd" ('\' isn't a valid URI
character). Xerces (by default) will fix up the system ID before it's
used. However, if you want your documents to be portable across different
XML parsers, then you need to make sure that URIs you specify actually
meet the URI spec.

Hope that helps.

-----------------------------------------
Michael Glavassevich
mrglavas@engmail.uwaterloo.ca
Candidate for Bachelor of Applied Science
Computer Engineering
University of Waterloo

On Sat, 24 May 2003, Jon Wilmoth wrote:

> I'm trying to parse a very simple xml document with
> xerces 2.4.0.  Unfortunately I get the following
> error:
>
> java.net.MalformedURLException
>         at java.net.URL.<init>(URL.java:613)
>         at java.net.URL.<init>(URL.java:476)
>         at java.net.URL.<init>(URL.java:425)
>         at
> org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> Source)
>         at
> org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> Source)
>         at
> org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)
>         at
> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> Source)
>         at
> org.apache.xerces.parsers.XMLParser.parse(Unknown
> Source)
>         at
> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)
>         at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
>         at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:673)
>
> The document:
> <?xml version="1.0"?>
> <!DOCTYPE EventRegistrations SYSTEM
> "file:///C:\temp\projects\EventRegistrations.dtd">
> <EventRegistrations>
> 	<event name="test.events.BusinessObjectChangeEvent">
> 		<listener>test.ObjectCreationListener</listener>
> 	</event>
> </EventRegistrations>
>
> Passes validation in my xml editor.  What's going on?
>
> __________________________________
> Do you Yahoo!?
> The New Yahoo! Search - Faster. Easier. Bingo.
> http://search.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
> For additional commands, e-mail: xerces-j-user-help@xml.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org