Re: Output a new line after the XML declaration using indent="yes"

David Bertoni <[email protected]>
Newsgroups gmane.text.xml.xalan.java.user
Message-ID <[email protected]>
Jörg Hohwiller wrote:
> Hi there,
> 
> 
> Brian Minchau wrote:
>> Hi Stanimir.
>>
>> The Xalan
>> serializer doesn't know about whether the serialized XML will
>> be used in the the future as an external general parsed
>> entity and included in yet another XML file.
>>
>> It is possible that the XML will be included next to a text node that
>> is not all whitespace and the extra whitespace that we inject after the
>> XML header would be included next to non-whitespace
>> text and become part of that text node, modifying it.
>>
>> Extra whitespace added for indentation is done in ignorable locations,
>> but this particular one (just after the header) might not be ignored.
>>
>> Added indentation or extra whitespace before the document element
>> is not always correct, so Xalan doesn't do it.
>>
>> There is no Xalan specific option to control this behavior.
>>
>> - Brian
>>
> 
> 1. Could you please give an example or a link to the
> XML-specification to point out why a newline after
> XML-declation or at the end of the file should make the 
> XML illegal. I am NOT talking about your problems
> to implement this properly, but why
> <?xml ....?>^n
> <root>...</root>^n
> should be illegal!?!?
Brian didn't say it would make the result "illegal."  He simply said 
that it would modify the content of the result inappropriately.  The 
processor generates a external general parsed entity, and a newline 
between the XML declaration would introduce whitespace into the content 
of the entity.

> 
> 2. Having a newline after XML-declaration as well
> as at the end of the file is a common need that
> JAXP users have. I can NOT accept your point
> saying that this is generally NOT supported because
> it could cause some trouble you may have implementing this.
I find the tone of your post to be offensive.  No one on this list owes 
you anything in particular, and I suggest you be more polite in future 
posts.

> This has a large impact after everybody has to eat this
> when just using a plain JDK. It is a lot worse if people
> start adding newlines manually to OutputStream,
> because this will cause real trouble with encodings, especially
> if the encoding is NOT 8-bit-wise (e.g. UTF-16) and a newlines
> get broken because hackers of such workaround do NOT think
> of such problems.
Any XML parser that requires a newline between the XML declaration and 
the root element, or after the root element, is non-conforming and 
should be fixed.

> 
> Please provide a solution here.
You can always post-process the document and add the new line characters.

Dave
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.