You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xmlbeans.apache.org by "Raman Gupta (JIRA)" <xm...@xml.apache.org> on 2009/11/03 20:23:32 UTC

[jira] Commented: (XMLBEANS-262) Line ending behavior inconsistent when using save(OutputStream)

    [ https://issues.apache.org/jira/browse/XMLBEANS-262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12773135#action_12773135 ] 

Raman Gupta commented on XMLBEANS-262:
--------------------------------------

Good point about option #1. Option #3 it is then.

For the enhancement, I how about two new XmlOption's:

setEolStyle(String eolStyle)
setEolStyleDeclaration(String eolStyle)

with the following constants as possible values:

EOLSTYLE_LF = "LF";
EOLSTYLE_CRLF = "CRLF";
EOLSTYLE_SYS = "SYS";

To maintain backwards compatibility, the option eolStyle would be set by the user to EOLSTYLE_LF and eolStyleDeclaration would be EOLSTYLE_SYS. However, the defaults provided by XmlBeans should probably be EOLSTYLE_LF or EOLSTYLE_SYS for both. My personal preference would be _LF but I suspect most people would expect _SYS to be the default.

> Line ending behavior inconsistent when using save(OutputStream)
> ---------------------------------------------------------------
>
>                 Key: XMLBEANS-262
>                 URL: https://issues.apache.org/jira/browse/XMLBEANS-262
>             Project: XMLBeans
>          Issue Type: Improvement
>          Components: XmlObject
>    Affects Versions: Version 2.1
>         Environment: Windows, JDK 1.5.0_06
>            Reporter: Raman Gupta
>            Assignee: Radu Preotiuc-Pietro
>            Priority: Minor
>
> When executing an XmlObject.save(OutputStream) call, the output's line endings do not conform to any consistent and expected behavior. Even though this should not be a problem for any conformant XML processor due to http://www.w3.org/TR/REC-xml/#sec-line-ends, this sometimes causes problems with other tools or code.
> Here is a code snippet to reproduce:
> XmlObject  x = XmlObject.Factory.parse("<root>\r\n<test/>\r\n</root>");
> OutputStream o = new FileOutputStream("out.xml");
> x.save(o);
> o.close();
> Viewing out.xml in a hex editor will show that the line ending after the XML declaration is determined by the System property line.separator (on windows, default is \r\n, or 0x0D, 0x0A) but the line endings after all the other elements is always a single \n (0x0A), regardless of line.separator and the input XML.  In other words, line endings do not match either the line endings provided in the input XML, or the platform default value on Windows.
> I suppose there are several options for fixing this:
> 1) The XML declaration continues to use the System property, but for other line endings, the input XML's line endings should be respected when output (\r\n on the input is output as is), OR
> 2) That the output XML uses the System property and makes all line endings consistent.
> 3) Some combination of the above with new XmlOption's settings.
> My preference would be #3 so that the line ending behavior can be controlled by the user. For the default, I have no preference except to have some known documented behavior. Option #1 will sometimes result in a file with inconsistent line endings, but it could be argued that the user requested it so it is ok.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org