Talk:List of eXtensions to OSIS used in SWORD

From CrossWire Bible Society
Revision as of 09:42, 26 December 2014 by David Haslam (talk | contribs) (x-plural: removed more)

Jump to: navigation, search

Why this page should prove useful

For a valid OSIS XML file to be "fit for purpose", it's necessary to know what to include in order to achieve the goal of making good SWORD modules. Though some of these extensions are already partially documented in existing wiki pages, there is no single place where they are all listed along with usage rules. As further pre-processing tools are being developed (such as USX to OSIS), having a one stop reference should be valuable to help developers ensure that they can take full advantage of existing solutions and workarounds. David Haslam 05:00, 27 April 2012 (MDT)

This page will be a 'work in progress' for a time. I have made a start by adding sections for extensions found by searching the wiki. the result of such a search is probably quite incomplete. Developers who work on the SWORD source code should be able to add further sections. David Haslam 05:11, 27 April 2012 (MDT)
Further extensions were added by reference to and to kjv.xml. David Haslam 05:30, 28 April 2012 (MDT)
Examination of existing modules for unsupported extensions may also suggest opportunities for further enhancements to the SWORD engine, especially if they are used extensively, and when it would seem that their purpose was to affect how text is displayed. David Haslam 02:36, 1 May 2012 (MDT)
Comment from the xulsword developer received by email: David Haslam 12:11, 1 May 2012 (MDT)
"Hey this is great! This is the kind of thing that enables developers to make best use of their time and design products that are compatible. "
It may also help us to decide which extensions should be deprecated. David Haslam 12:16, 8 August 2012 (MDT)

Non-CrossWire OSIS eXtensions

Please list any non-CrossWire OSIS eXtensions here in the talk page. David Haslam 11:45, 27 April 2012 (MDT)

SWORD and JSword

The page is intended to reflect what extensions are supported by the SWORD API. There is no guarantee that these extensions are also supported by JSword, albeit many of them are. David Haslam 05:26, 28 April 2012 (MDT)

Extensions no longer supported ...

If it turns out that I have listed any extension that is no longer supported by the latest release of the SWORD engine, please contact me before editing the main page. David Haslam 05:33, 28 April 2012 (MDT)

Likewise for any extension that was never supported. David Haslam 02:23, 1 May 2012 (MDT)

Extensions used in xulsword

Research here about OSIS extensions used in xulsword, but not yet implemented or adopted in SWORD.
For further details, see [1]. David Haslam 10:22, 28 April 2012 (MDT)


This can be used within the note element as a value of the attribute subType.

It's used to mark crossReference links for parallel passages.


This can be used within the milestone element as a value of the attribute type.

It's used to provide a poetry indentation as an alternative to using line elements with level attributes.
Currently, deeper indents are created by two or three <milestone type="x-p-indent" /> elements in series.

Poetry indent is solely indicated by level="n", where 1 is no indent. There is no other mechanism that should be used to indicate indentation of a line of poetry.
--Dmsmith 08:30, 9 April 2014 (MDT)

Extensions found in SWORD modules

Research here about OSIS extensions found in SWORD modules, for which the status of support by the SWORD engine is still unclear. Please remember to identify the particular module. David Haslam 02:26, 1 May 2012 (MDT)

In the following researches, I'm restricting to recording notable observations. David Haslam 10:51, 2 May 2012 (MDT)

ESV module

This is a list of all x-prefix extensions in the ESV module (along with a count in column 1):

05206	x-begin-paragraph
19805	x-br
00081	x-declares
05206	x-end-paragraph
00007	x-extra-space
11334	x-indent
00021	x-indent-2
02428	x-preverse
00001	x-psalm-book
00003	x-psalm-doxology
00179	x-same-paragraph
00074	x-selah
00001	x-speaker
00002	x-textual-note
00016	x-us-time

KJV module

This is an edited list of all x-prefix extensions in the KJV module v2.6 (along with a count in column 1):

02970	x-p
                   Used to indicate the presence of a pilcrow in the original text
                   <milestone type="x-p" marker="¶"/>
03422	x-split-n
                   Used to indicate that a Greek word, typically a verb, is translated into English in split parts.
                   n is a unique integer that can be used to identify the two parts.
                   <w morph="strongMorph:TH8686" lemma=" strong:H05307" type="x-split-2">caused</w>
                   <w lemma="strong:H08639">a deep sleep</w>
                   <w morph="strongMorph:TH8686" lemma="strong:H05307" type="x-split-2">to fall</w>
01424	x-added
                   Not significant. Ignore. Will be removed in the future.
                   It is an editorial mark used to indicate pilcrows that were not present in the KJV 2003 and added in the KJV 2006.
                   <milestone type="x-p" subType="x-added" marker="¶"/>

LEB module

This is a list of all x-prefix extensions in the LEB module (along with a count in column 1):

000959	x-idiom
000002	x-license
000002	x-trademark


This can be used within the seg element as a value of the attribute type.

This extension is used to identify idiomatic words and phrases, and is normally immediately followed by a note element giving the literal meaning. e.g.

“Behold, the virgin <seg type="x-idiom">˻will become pregnant˼</seg><note>Literally “will have in the womb”</note> and ...

The LEB also uses visible markers (low corner brackets) to mark the start and end of each idiom.

OSHB module

This is a list of all x-prefix extensions in the Hebrew OSHB module (along with a count in column 1):

000119	x-accent
000001	x-importer
000004	x-large
042578	x-maqqef
471677	x-morph
000001	x-osis2mod
002278	x-paseq
001181	x-pe
001259	x-qere
000009	x-reversednun
001981	x-samekh
000003	x-small
023192	x-sof-pasuq
000004	x-suspended

WLC module

This is a list of all x-prefix extensions in the Hebrew WLC module (along with a count in column 1):

005915	x-DHSource
000009	x-invertednun
001276	x-ketiv
000004	x-large
472676	x-morph
001181	x-pe
001288	x-qere
001981	x-samekh
000003	x-small
000004	x-suspended
001018	x-textual

MapM module

This is a list of all x-prefix extensions in the Hebrew MapM module (along with a count in column 1):

000026	x-big
000001	x-importer
001060	x-ketiv
013477	x-milestone
000001	x-osis2mod
001624	x-p
000283	x-paseq
013477	x-preverse
000002	x-reversednun
000021	x-small
000002	x-space
000004	x-suspended
000009	x-symbol

WEB module

This is a list of all x-prefix extensions in the WEB module v3.1 (along with a count in column 1):

09596	x-milestone
09596	x-preverse
00002	x-testament

This is a list of all x-prefix extensions in the file web.osis.xml (downloaded from 2010-06-15) included for comparison:

000333	x-directAddress
000680	x-doNotGeneratePunctuation
000628	x-noteStartAnchor
003983	x-plural
007660	x-primary
008342	x-secondary


This could be used within the w element as a value of the attribute type.

It's intended to mark the pronoun 'you' where it's second person plural in the original languages.
The WEB is a translation that uses 'you' for both singular and plural second person pronouns.
For the whole pronoun word to be highlighted somehow (future implementation?), the syntax might be:

<w type="x-plural">you</w>

As it was in the file web.osis.xml, the pronouns were not wrapped like that, but merely tagged as:

you<w type="x-plural" />

I guess it depends to a large extent on how the translator envisaged them to be visibly displayed.

<w> is a container element, so <w/> doesn't mean anything. <w type="x-plural"/> doesn't mean that the previous word is plural, it means that the empty word is plural. Also, plurality is properly marked in the morph attribute of <w>. --Osk 06:59, 6 August 2012 (MDT)

x-primary & x-secondary

These could be used within the l element as a value of the attribute type.

It was a method envisaged to mark poetry indents in the WEB translation.

Poetic level (indentation) is indicated by the level attribute of <l>. --Osk 07:04, 6 August 2012 (MDT) : osis2mod & SWORD ?

We ought to compile a planning table to list whether and how osis2mod and the SWORD API handles each of the OSIS eXtensions capable of being generated as part of the output from

This would help the SWORD developers. David Haslam 09:36, 9 May 2013 (MDT)

This page is misleading

There are classes of x-values that need to be distinguished.

  • Values that CrossWire promotes as useful to making a SWORD module.
  • Values that the SWORD engine handles as an internal implementation detail. These should never be used by a module maker.
  • Values that the SWORD engine handles but should not be used in making current OSIS documents. These deprecated values should never be used by a module maker.
  • Values that a module maker uses that will be retained in the module but never used by SWORD. Specifically, a module maker is free to use anything that does not conflict with the above.


  1. The presence of an x-value in a module is not an indication of what SWORD handles. There needs to be a clear indication of what SWORD handles vs what is found in modules.
  2. That SWORD handles an x-value does not mean that it should ever be used in an OSIS document.
  1. Many are deprecated and as such should not be mentioned at all.
  2. Others such as x-preverse are created by osis2mod and should never be used in an OSIS document.

--Dmsmith 11:54, 17 May 2013 (MDT)

I don't disagree with those observations, yet something was clearly needed when I created the page in April 2012. Can we work together to improve the page? David Haslam 12:11, 17 May 2013 (MDT)