I’d also add that using XSLT can introduce unwanted white space. — DM Smith
> On Feb 9, 2019, at 9:41 AM, DM Smith <dmsm...@crosswire.org> wrote: > > There are several things in play wrt to whitespace in an OSIS document as it > pertains to a CrossWire module rendered by SWORD or JSword to a frontend. > 1) osis2mod’s handling of whitespace. > 1a) The parser that osis2mod uses to read the OSIS document is not a > validating parser. This means that whitespace between elements is always > considered important. > 1b) Newlines \n are replaced by a space. Note: carriage returns \r which are > part of a Windows style document are not permitted in valid XML. Nor are > tabs. If present they are passed as is. > 1c) Multiple spaces are folded into a single space. > 1d) Verses are trimmed of leading and trailing space. > 1e) Verses in the index have a trailing dos newline, even if not present in > the input. > > 2) Rendering > 2a) The parser that SWORD uses to render an OSIS module is not a validating > parser. This means that whitespace between elements is always considered > important. > 2b) HTML and RTF are different beasts. In HTML elements such as <div>, <p>, > <br> produce newlines in the output which are rendered by CSS, perhaps > implicit. RTF is precise and controlled by the document. > > 3) Pretty print of an OSIS XML document. > 3a) Nearly all pretty printers will introduce spaces between elements. > <?xml version="1.0" ?> > <List name="Fruit List"> > <Item>Apple</Item> > <Item>Banana</Item> > <Item>Pear</Item> > </List> > This introduces text. > If the pretty printing put the newlines and spaces within the element it > would not have introduced extra content. > <?xml version="1.0" ?> > <List name="Fruit List" > ><Item>Apple</Item > ><Item>Banana</Item > ><Item>Pear</Item >> </List> > > 3b) Some pretty printers will introduce spaces at the beginning of text. > <?xml version="1.0" ?> > <List name="Fruit List"> > <Item> > Apple > </Item> > <Item> > Banana > </Item> > <Item> > Pear > </Item> > </List> > If the pretty printing put the newlines and spaces within the element it > would not have introduced extra content. > <?xml version="1.0" ?> > <List name="Fruit List" > ><Item > >Apple</Item > ><Item > >Banana</Item > ><Item > >Pear</Item >> </List> > > Best advice for an OSIS module: > Verse per line. > Don’t put spaces or new lines after an opening <div>. > > In Him, > DM > >> On Feb 8, 2019, at 2:02 PM, David Haslam <dfh...@protonmail.com> wrote: >> >> Here's a question that I'd like our OSIS experts to ponder. >> >> In XML, there's a longstanding topic relating to whitespace. >> >> See http://usingxml.com/Basics/XmlSpace >> >> When we make a module from an OSIS file, are there any aspects of XML >> whitespace that can make a significant difference to how the module displays >> text or features? >> >> E.g. Might we inadvertently get a space inserted between a tagged word and a >> note tag? >> >> i.e. As maybe the result of performing a "pretty print" operation on the >> OSIS source text. >> >> cf. I'm sure you can think of other potential areas of interest. >> >> AFAIK, this has never been discussed before among us. >> >> With various software tools available for making "innocuous" changes to XML >> files, it's certainly the case that there's nothing to dissuade module >> providers from using them to "prettify" the OSIS file, even though there >> might - theoretically at least - be consequences. >> >> >> Best regards, >> >> David >> >> Sent with ProtonMail Secure Email. >> >> >> >> _______________________________________________ >> sword-devel mailing list: sword-devel@crosswire.org >> http://www.crosswire.org/mailman/listinfo/sword-devel >> Instructions to unsubscribe/change your settings at above page > > > _______________________________________________ > sword-devel mailing list: sword-devel@crosswire.org > http://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page _______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page