db-ddlutils-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Lipp (JIRA)" <j...@apache.org>
Subject [jira] Created: (DDLUTILS-196) Text data dumped incorrectly
Date Sun, 02 Mar 2008 16:24:50 GMT
Text data dumped incorrectly

                 Key: DDLUTILS-196
                 URL: https://issues.apache.org/jira/browse/DDLUTILS-196
             Project: DdlUtils
          Issue Type: Bug
          Components: Core (No specific database)
    Affects Versions: 1.0
         Environment: Any
            Reporter: Michael Lipp
            Assignee: Thomas Dudziak

DdlUtils does not properly preserve content through a dump/restore cycle if the content contains

DdlUtils takes the following approach for dumping text content:
(1) Write as value attribute, unless it cannot be written as such
(2) Write as "plain" element content unless it cannot be written as such
(3) Write as CDATA unless it cannot be written as such
(4) Write uuencoded.

Now when can a value not be written as attribute value? Easy: when there is no valid representation
that reads back the same value. And here is the problem. The XML recommendation specifies
something called "attribute value normalization" (http://www.w3.org/TR/xml/#AVNormalize).
Due to this, white space characters except space (#xD, #xA, #x9) in attribute values are not
read back in the same way as they are written.

There are two ways to circumvent this: (a) write them as character references (e.g. &#xD;)
or (b) skip to method (2). Option (a) cannot be used here , because it is impossible to write
a "&" in an attribute value when you use XMLStreamWriter. The spec says: 'However the
writeCharacters method is required to escape & , < and >  For attribute values the
writeAttribute method will escape the above characters plus "' (http://java.sun.com/webservices/docs/1.5/api/javax/xml/stream/XMLStreamWriter.html).
You might expect that the XMLStreamWriter.writeAttribute should handle escaping of the whitespace
characters (#xD, #xA, #x9), but if you read the spec carefully it does not say so. Leaves
option (b).

The attached patch fixes this problem.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message