Re: End-of-line sequence.

Joe Bowbeer <[email protected]>
Newsgroups gmane.comp.java.jdom.general
Message-ID <CAHzJPEoSaqjK_EcK9hcpP51E=76J7vA1UtBedHxZjZtJ0UQu_g@mail.gmail.com>
-0.5

Since this is Java-DOM, I would choose the line separator used by Java
apps, which in Java5 can be obtained from String.format("%n") -- or
from System.getProperty("line.separator") in classic Java.

OTOH, since the rationale for choosing this separator hasn't changed since
it was originally selected, I lean toward not changing it.

Joe

On Tue, Nov 15, 2011 at 1:17 AM, Michael Kay <[email protected]> wrote:

> The only real case I can see for using \r\n is that if you use \n, you
> can't view the output in Notepad (and presumably a few other diehard
> Windows applications).
>
> Making a change will break a few people's unit tests, but no real
> applications should be dependent on the precise bitstream.
>
> Using \r\n does seem a bit quirky, but I can't see that it does any harm.
>
> -0, if that's an allowed vote.
>
> Michael Kay
> Saxonica
>
>
>
> On 15/11/2011 01:29, Rolf wrote:
>
>> Hi all.
>>
>> JDOM has been merrily using "\r\n" as an end-of-line sequence in the
>> XMLOutputer since 'forever'. The XML Spec indicates that all end-of-line
>> sequences should be normalized to a single '\n':
>> http://www.w3.org/TR/REC-xml/#**sec-line-ends<http://www.w3.org/TR/REC-xml/#sec-line-ends>The wording is such that XML parsers should clear out any extra '\r'
>> characters if there are any, so it is not as if the code is completely
>> broken.
>>
>> But, I think it makes sense to follow the spec, and avoid having
>> different XML compared to other systems.
>>
>> I propose changing the line separator to follow the spec, but this has a
>> very large impact on anyone who has expectations on JDOM having a
>> particular line-terminator, even though they shouldn't...
>>
>> I have filed https://github.com/**hunterhacker/jdom/issues/53<https://github.com/hunterhacker/jdom/issues/53>
>>
>> The original decision was made by Elliotte: http://markmail.org/message/*
>> *gv7m3xjgrkomrfe7 <http://markmail.org/message/gv7m3xjgrkomrfe7>   (it's
>> worth noting that it was changed from the 'platform default' to the
>> constant '\r\n' to create some consistency too).
>>
>> vvv quote vvv
>>
>> The one open question in this version is what to use for a line
>> separator. Right now I'm using \r\n since that's most cross-platform
>> compatible and friendliest to various network protocols. However, \n alone
>> might be slightly friendlier to XML parsers. Another possibility is to ask
>> for System.getProperty("line.**separator"). However, I'm loathe to make
>> the output platform dependent. What do people think?
>>
>> ^^^ quote ^^^
>>
>> Also, the commit introducing this has interesting comments:
>> https://github.com/**hunterhacker/jdom/commit/**
>> 958fb22a4c7088b82f0d48a933bdf4**e5c6806151#L0R173<https://github.com/hunterhacker/jdom/commit/958fb22a4c7088b82f0d48a933bdf4e5c6806151#L0R173>
>>
>> Two issues I see:
>> 1. "\r\n" was chosen for 'Network protocol' friendliness... is this still
>> a valid argument?
>>
>> 2. is it OK to change the standard format of all the XML that JDOM
>> produces? (I have been really careful (so far) for the most part to ensure
>> all whitespace (including indents and EOL/EOF is not changed) ).
>>
>> I see changing the default EOL as being an easy decision, especially
>> since users can still change it back easily on their Format instance.
>>
>> advantages:
>> 1. Most XML tools do not use "\r" values - better compatibility?
>> 2. XML output will be slightly smaller - ;-)
>> 3. XML produced by 'other' outputters (currently the StAX outputters) can
>> be compared directly with XMLOutputter for testing/compatibility
>>
>> disadvantages:
>> 1. people may have 'baselines' that contain \r\n terminators, which will
>> then be different from JDOM's default output.
>> 2. there may be some (obscure) protocols that require \r\n terminators
>> and users of JDOM2 will have to override the EOL to be '\r\n' for those.
>>
>> Anyone have comments/suggestions?
>>
>> Rolf
>>
>

_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.