Hi,
What could be going wrong with this file? I don't see anything.
<?xml version="1.0"?>
<!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database.dtd">
<database name="testdb">
<table name="author">
<column name="author_id"
type="INTEGER"
primaryKey="true"
required="true"/>
<column name="name"
type="VARCHAR"
size="50"
required="true"/>
<column name="organisation"
type="VARCHAR"
size="50"
required="false"/>
</table>
<table name="book">
<column name="book_id"
type="INTEGER"
required="true"
primaryKey="true"
autoIncrement="true"/>
<column name="isbn"
type="VARCHAR"
size="15"
required="true"/>
<column name="author_id"
type="INTEGER"
required="true"/>
<column name="title"
type="VARCHAR"
size="255"
defaultValue="N/A"
required="true"/>
<foreign-key foreignTable="author">
<reference local="author_id" foreign="author_id"/>
</foreign-key>
<index name="book_isbn">
<index-column name="isbn"/>
</index>
</table>
</database>
Notice that it is the exception is caused by XMLStreamReader.next().
The javadoc of this method is:
> Get next parsing event - a processor may return all contiguous character
> data in a single chunk, or it may split it into several chunks. If the
> property javax.xml.stream.isCoalescing is set to true element content must
> be coalesced and only one CHARACTERS event must be returned for contiguous
> element content or CDATA Sections. By default entity references must be
> expanded and reported transparently to the application. An exception will be
> thrown if an entity reference cannot be expanded. If element content is
> empty (i.e. content is "") then no CHARACTERS event will be reported.
>
> Given the following XML:
> <foo><!--description-->content
> text<![CDATA[<greeting>Hello</greeting>]]>other content</foo>
> The behavior of calling next() when being on foo will be:
> 1- the comment (COMMENT)
> 2- then the characters section (CHARACTERS)
> 3- then the CDATA section (another CHARACTERS)
> 4- then the next characters section (another CHARACTERS)
> 5- then the END_ELEMENT
>
> *NOTE:* empty element (such as <tag/>) will be reported with two separate
> events: START_ELEMENT, END_ELEMENT - This preserves parsing equivalency of
> empty element to <tag></tag>. This method will throw an
> IllegalStateException if it is called after hasNext() returns false.
>
By debugging, i found that javax.xml.stream.isCoalescing is set to true. I
don't understand what does this does and what should i do if it's true, as
described by the javadoc. Can you help me understand this? Maybe this can
help solve the problem.
you see, this method throws a XMLStreamException: if there is an error
processing the underlying XML source.
Wessam
On 10/3/07, Thomas Dudziak <[EMAIL PROTECTED]> wrote:
>
> On 10/2/07, Wessam Abd Rabo <[EMAIL PROTECTED]> wrote:
>
> > I get the following exception:
> >
> > org.apache.ddlutils.io.DdlUtilsXMLException:
> > javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,74]
> > Message: db.apache.org
> > at org.apache.ddlutils.io.DatabaseIO.read(DatabaseIO.java:278)
> > at org.apache.ddlutils.io.DatabaseIO.read(DatabaseIO.java:207)
> > at org.apache.ddlutils.io.DatabaseIO.read(DatabaseIO.java:171)
> >
> > Caused by: javax.xml.stream.XMLStreamException: ParseError at
> > [row,col]:[2,74]
> > Message: db.apache.org
> > at com.sun.xml.stream.XMLReaderImpl.next(XMLReaderImpl.java:560)
> > at org.apache.ddlutils.io.DatabaseIO.read(DatabaseIO.java:262)
> > ... 26 more
> >
> > what could be going wrong? Could it be the XML file that am reading?
>
> That seems to be the case. Check your XML file, line 2, character 74
> (as indicated by the exception message).
>
> Tom
>