[ 
https://issues.apache.org/jira/browse/XERCESC-2025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16081416#comment-16081416
 ] 

Scott Cantor commented on XERCESC-2025:
---------------------------------------

The source of the problem isn't the code in the bug report, but the extra 
printNewline() calls in each of the Element, Comment, and PI branches of the 
processNode method.

The problem is that it would take a redesign to fix it because the 
Element/Comment/PI doesn't know what came before it. They might need to print 
the LF, and they might not. Fixing it trivially doesn't help, it just moves the 
bug to other combinations of content.

> Empty line generated when fgDOMXMLDeclaration is disabled
> ---------------------------------------------------------
>
>                 Key: XERCESC-2025
>                 URL: https://issues.apache.org/jira/browse/XERCESC-2025
>             Project: Xerces-C++
>          Issue Type: Bug
>          Components: DOM
>    Affects Versions: 3.0.0, 3.0.1, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4
>            Reporter: Jose M. Sanchez
>            Priority: Minor
>              Labels: DOMLSSerializer, empty, line
>
> The DOMLSSerializer implementation is generating a leading empty line
> in case that the generation of the XML Declaration is disabled.
> The source code looks like this:
> https://svn.apache.org/repos/asf/xerces/c/trunk/src/xercesc/dom/impl/DOMLSSerializerImpl.cpp
>             if (getFeature(XML_DECLARATION)) {
>                 // use the version and encoding resolved
>                 *fFormatter << gXMLDecl_VersionInfo << fDocumentVersion << 
> gXMLDecl_separator;
>                 *fFormatter << gXMLDecl_EncodingDecl << fEncodingUsed << 
> gXMLDecl_separator;
>                 const XMLCh* st = (docu->getXmlStandalone())? 
> XMLUni::fgYesString : XMLUni::fgNoString;
>                 *fFormatter << gXMLDecl_SDDecl << st << gXMLDecl_separator;
>                 *fFormatter << gXMLDecl_endtag;
>             }
>             DOMNodeSPtr child = nodeToWrite->getFirstChild();
>             while( child != 0)
>             {
>                 processNode(child, level);
>                 child = child->getNextSibling();
>             }
>             printNewLine();
> The printNewLine() method is called even if no XML declaration was written, 
> thus generating a leading empty line.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org

Reply via email to