<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.crosswire.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Domcox</id>
		<title>CrossWire Bible Society - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.crosswire.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Domcox"/>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/Special:Contributions/Domcox"/>
		<updated>2026-05-16T19:27:20Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17262</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17262"/>
				<updated>2023-06-15T14:32:37Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* What's next? */ Fix broken link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Other files =&lt;br /&gt;
&lt;br /&gt;
Besides source, conf and copyright files we accept:&lt;br /&gt;
* Cascading style sheet (CSS) file used to format the contents of a module&lt;br /&gt;
* Media subdir containing multimedia files, commonly &amp;lt;code&amp;gt;Images&amp;lt;/code&amp;gt; subdir.&lt;br /&gt;
&lt;br /&gt;
= How-To submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped. Supported file formats: &amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tgz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tar.bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tb2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gmx&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;Z&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so:&lt;br /&gt;
** Module files (source, .conf) shouldn't go into a subdir&lt;br /&gt;
** Optional files like copyright, style.css must be at the root of your repository&lt;br /&gt;
** Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries&lt;br /&gt;
** A script subdir containing tools for converting an original source file to OSIS is welcome&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- script/&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.&lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What's next? =&lt;br /&gt;
Modules submitted to Crosswire are generally reviewed as quickly as possible, most are often accepted. &lt;br /&gt;
&lt;br /&gt;
We build a binary version by using our creation and diagnostic tools: https://wiki.crosswire.org/File_Formats#The_SWORD_Project_Utilities.&lt;br /&gt;
&lt;br /&gt;
== Build failure ==&lt;br /&gt;
If the build fails, you'll be noticed by this mail:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is to announce that fatal errors were encountered&lt;br /&gt;
while processing the module &amp;lt;your-module&amp;gt; which caused&lt;br /&gt;
the build to fail.&lt;br /&gt;
&lt;br /&gt;
Please refer to the attached build log for more details&lt;br /&gt;
about the error encountered.&lt;br /&gt;
&lt;br /&gt;
Useful information to fix the problem can be found in&lt;br /&gt;
our Wiki in the '''Module development''' section at:&lt;br /&gt;
https://wiki.crosswire.org.&lt;br /&gt;
&lt;br /&gt;
yours,&lt;br /&gt;
&lt;br /&gt;
P.S.: This email is sent automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It’s OK to make mistakes, so do not be discouraged, read the build log and if you find anything that is unclear along the way, do not hesitate to ask questions. Then, once fixed, don't hesitate to re-send your corrected module.&lt;br /&gt;
&lt;br /&gt;
== Successful build ==&lt;br /&gt;
The build was sucessful, you'll receive this mail:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is to announce that we have just now uploaded &amp;lt;your-module&amp;gt;&lt;br /&gt;
in the CrossWire beta repository for testing purposes.&lt;br /&gt;
&lt;br /&gt;
If no raised concern nor a quality alert has been sent on the list,&lt;br /&gt;
&amp;lt;your-module&amp;gt; will be published in a week.&lt;br /&gt;
&lt;br /&gt;
Many thanks to everyone who contributed to this release.&lt;br /&gt;
&lt;br /&gt;
yours&lt;br /&gt;
&lt;br /&gt;
P.S.: This email is sent automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your module is now available to download from the Beta repository. It will be tested in this repository for around a week, and if everything is ok it will be regularly published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17074</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17074"/>
				<updated>2021-02-18T21:18:11Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Add information about the built process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Other files =&lt;br /&gt;
&lt;br /&gt;
Besides source, conf and copyright files we accept:&lt;br /&gt;
* Cascading style sheet (CSS) file used to format the contents of a module&lt;br /&gt;
* Media subdir containing multimedia files, commonly &amp;lt;code&amp;gt;Images&amp;lt;/code&amp;gt; subdir.&lt;br /&gt;
&lt;br /&gt;
= How-To submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped. Supported file formats: &amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tgz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tar.bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tb2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gmx&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;Z&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so:&lt;br /&gt;
** Module files (source, .conf) shouldn't go into a subdir&lt;br /&gt;
** Optional files like copyright, style.css must be at the root of your repository&lt;br /&gt;
** Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries&lt;br /&gt;
** A script subdir containing tools for converting an original source file to OSIS is welcome&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- script/&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.&lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What's next? =&lt;br /&gt;
Modules submitted to Crosswire are generally reviewed as quickly as possible, most are often accepted. &lt;br /&gt;
&lt;br /&gt;
We build a binary version by using our creation and diagnostic tools: https://wiki.crosswire.orgFile_Formats#The_SWORD_Project_Utilities.&lt;br /&gt;
&lt;br /&gt;
== Build failure ==&lt;br /&gt;
If the build fails, you'll be noticed by this mail:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is to announce that fatal errors were encountered&lt;br /&gt;
while processing the module &amp;lt;your-module&amp;gt; which caused&lt;br /&gt;
the build to fail.&lt;br /&gt;
&lt;br /&gt;
Please refer to the attached build log for more details&lt;br /&gt;
about the error encountered.&lt;br /&gt;
&lt;br /&gt;
Useful information to fix the problem can be found in&lt;br /&gt;
our Wiki in the '''Module development''' section at:&lt;br /&gt;
https://wiki.crosswire.org.&lt;br /&gt;
&lt;br /&gt;
yours,&lt;br /&gt;
&lt;br /&gt;
P.S.: This email is sent automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It’s OK to make mistakes, so do not be discouraged, read the build log and if you find anything that is unclear along the way, do not hesitate to ask questions. Then, once fixed, don't hesitate to re-send your corrected module.&lt;br /&gt;
&lt;br /&gt;
== Successfull build ==&lt;br /&gt;
The build was sucessful, you'll receive this mail:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is to announce that we have just now uploaded &amp;lt;your-module&amp;gt;&lt;br /&gt;
in the CrossWire beta repository for testing purposes.&lt;br /&gt;
&lt;br /&gt;
If no raised concern nor a quality alert has been sent on the list,&lt;br /&gt;
&amp;lt;your-module&amp;gt; will be published in a week.&lt;br /&gt;
&lt;br /&gt;
Many thanks to everyone who contributed to this release.&lt;br /&gt;
&lt;br /&gt;
yours&lt;br /&gt;
&lt;br /&gt;
P.S.: This email is sent automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your module is now available to download from the Beta repository. It will be tested in this repository for around a week, and if everything is ok it will be regularly published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17073</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17073"/>
				<updated>2021-02-18T17:43:28Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Link to a git Repository */ Add welcomed scripts dir&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Other files =&lt;br /&gt;
&lt;br /&gt;
Besides source, conf and copyright files we accept:&lt;br /&gt;
* Cascading style sheet (CSS) file used to format the contents of a module&lt;br /&gt;
* Media subdir containing multimedia files, commonly &amp;lt;code&amp;gt;Images&amp;lt;/code&amp;gt; subdir.&lt;br /&gt;
&lt;br /&gt;
= How-To submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped. Supported file formats: &amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tgz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tar.bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tb2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gmx&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;Z&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so:&lt;br /&gt;
** Module files (source, .conf) shouldn't go into a subdir&lt;br /&gt;
** Optional files like copyright, style.css must be at the root of your repository&lt;br /&gt;
** Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries&lt;br /&gt;
** A script subdir containing tools for converting an original source file to OSIS is welcome&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- script/&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.&lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=17026</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=17026"/>
				<updated>2021-01-25T13:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Required Elements with defaults */ Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes important information about module configuration (.conf) files. All SWORD modules require one. &lt;br /&gt;
&lt;br /&gt;
Please look also at our detailed and commented [[Tutorial:Writing Conf files|tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Key elements of a SWORD module.conf ==&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated. Many not.&lt;br /&gt;
&lt;br /&gt;
Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Don't use continuation unless allowed. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
RTF is allowed in some values. &lt;br /&gt;
&lt;br /&gt;
Some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Values specifications are shown as '''&amp;amp;lt;content spec&amp;amp;gt;'''. The &amp;amp;lt; and &amp;amp;gt; are not to be included.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [ModName]&lt;br /&gt;
| Each conf file begins with a unique identifier for a module placed within brackets, e.g., [KJV1611]. This must be first in the file. Valid characters for this abbreviation are limited to [https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions PCRE] class &amp;lt;tt&amp;gt;[A-Za-z0-9_]&amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;That excludes the space and hyphen characters!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Abbreviation element is meant to allow for localization of this field.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, kjv1611.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&amp;lt;ref&amp;gt;We advise against explicitly declaring a redundant Abbreviation identical to the ModName.  Abbreviation values should try to be unique to avoid user confusion.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The abbreviation displayed to the user. If not supplied, the unique ModName will be used.  This field allows for localization-- showing a different abbreviation depending on the user's locale.&lt;br /&gt;
&lt;br /&gt;
| [ModName]&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths used for a module named [MyModule], depending on&amp;lt;BR&amp;gt;(a) the type of module (Bible text, commentary, lexicon or dictionary&amp;lt;ref&amp;gt;Daily devotionals &amp;amp; glossaries go in subdirectories under lexdict. A glossary is between two languages.&amp;lt;/ref&amp;gt;, general book) and&amp;lt;BR&amp;gt;(b) the data driver (ModDrv parameter) are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
:./modules/texts/rawtext4/mymodule/&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
:./modules/texts/ztext4/mymodule/&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
:./modules/comments/zcom4/mymodule/&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
|&lt;br /&gt;
'''RawText''' (for uncompressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawText4''' (for uncompressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText''' (for compressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText4''' (for compressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require MinimumVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom''' (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom4''' (for uncompressed Commentaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom''' (for compressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom4''' (for compressed Commentaries having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require SwordVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HREFCom''' (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawFiles''' (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD''' (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD4''' (for uncompressed Dictionaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zLD''' (for compressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawGenBook''' (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Elements with defaults ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&amp;lt;ref&amp;gt;Omitting this for a non-plaintext module has unpredictable effects.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''Plaintext'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSIS''' ([http://www.bibletechnologies.net Open Scriptural Information Standard])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''TEI''' ([http://www.tei-c.org Text Encoding Initiative])&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the '''markup''' used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries. While SourceType has a default, it is a best practice to specify it.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Legacy modules may have a key here stating: &lt;br /&gt;
&lt;br /&gt;
'''GBF''' ([http://www.ebible.org/bible/gbf.htm General Bible Format])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThML''' ([http://www.ccel.org/ThML Theological Markup Language])&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
|&lt;br /&gt;
'''UTF-8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SCSU''' ([http://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode Standard Compression Scheme for Unicode])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates how the text in the conf and in the module are encoded.&lt;br /&gt;
&lt;br /&gt;
The preferred encoding of texts is UTF-8. Other than Hebrew, UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Biblical Hebrew requires special handling.&amp;lt;ref&amp;gt;Unicode normalization can easily break Biblical Hebrew text. See on page 9 in the [http://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf SBL Hebrew Font User Manual].&amp;lt;/ref&amp;gt; A few other languages may require special handling.&amp;lt;ref&amp;gt;e.g. If they are mentioned in Table 10 in the [http://unicode.org/reports/tr15/#Corrigendum_5_Sequences Corrigendum 5 Sequences].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The improper normalization of exceptional codepoints can be prevented by inserting a [https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner Combining Grapheme Joiner].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To date, no modules use UTF-16 or SCSU. Legacy modules may hold a key here '''Latin-1''' referring solely to Windows Codepage 1252, a superset of ISO-8859-1. Front-end implementors wishing to use such modules should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.''&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
|&lt;br /&gt;
'''ZIP'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LZSS''' ([http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski Lempel Ziv Storer Szymanski])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BZIP2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''XZ'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText, zCom or zLD to indicate the compression algorithm.&lt;br /&gt;
While CompressType has a default, it is best practice to specify it.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
|&lt;br /&gt;
'''BOOK'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''CHAPTER'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VERSE'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText (Bibles) and zCom (Commentaries) to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller. It is best practice to take the default and not specify it.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&lt;br /&gt;
'''Calvin'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Darby_Fr'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''German'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LXX'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Leningrad'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Luther'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''MT'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Orthodox'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Segond'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Synodal'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SynodalProt'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Vulg'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates that a module is enciphered and that the module is (un)locked. When the key has no value (&amp;quot;CipherKey=&amp;quot;) the module is locked. When it has a value, the module is unlocked.&lt;br /&gt;
&lt;br /&gt;
A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But it needs to be readable, plain text, without leading or trailing spaces.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
|&lt;br /&gt;
'''TreeKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VerseKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD. It is best practice to take the default and not specify it.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CaseSensitiveKeys&lt;br /&gt;
|&lt;br /&gt;
Used for Dictionaries whose keys are case sensitive. This key is used to suppress normalization to UPPER CASE before comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
Only allowable value: '''true'''&lt;br /&gt;
| false&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
|&lt;br /&gt;
'''UTF8Cantillation''' (For Hebrew texts having cantillation marks)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Cantillation&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8GreekAccents''' (For Greek texts having accents)&amp;lt;ref&amp;gt;For detailed background, see https://en.wikipedia.org/wiki/Greek_diacritics&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This filter can have undesirable side-effects when applied to non-Greek text!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8HebrewPoints''' (For Hebrew texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Niqqud&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8ArabicPoints''' (For Arabic texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Arabic_diacritics&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISLemma''' (For OSIS texts having lemmas)&amp;lt;ref&amp;gt;Must precede OSISStrongs.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorphSegmentation''' (For OSIS texts having morphological segmentation elements)&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISStrongs''' (For OSIS texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISFootnotes''' (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISScripref''' (For OSIS texts having [[OSIS Bibles#Marking_cross-references_note|cross reference]] type notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorph''' (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISHeadings''' (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISVariants''' (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISRedLetterWords''' (For OSIS texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISGlosses''' (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Minimum SWORD version of 1.7.0 in the module .conf is required for OSISGlosses.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISXlit''' (For OSIS texts that include transliterated forms)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using xlit.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISEnum''' (For OSIS texts with enumerated words)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using enum.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISReferenceLinks''' (For OSIS texts with glossary links)&amp;lt;ref&amp;gt;New in SWORD 1.7.0 - This filter requires six vertical bar-delimited fields, of which the following is an example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GlobalOptionFilter=OSISReferenceLinks|Reference Material Links|Hide or show links to study helps in the Biblical text.|x-glossary||On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here are the different field meanings:&lt;br /&gt;
# &amp;quot;OSISReferenceLinks&amp;quot; = option filter class name (option class name internal to the engine). Always the same for this kind of filter.&lt;br /&gt;
# &amp;quot;Reference Material Links&amp;quot; = Visible name of this OSISReferenceLinks filter. This is what the user will see in the Global Options toggle lists.&lt;br /&gt;
# &amp;quot;Hide or show...&amp;quot; = A readable user tip explaining what the filter does.&lt;br /&gt;
# &amp;quot;x-glossary&amp;quot; = Tells this OSISReferenceLinks filter to filter all references with type=&amp;quot;x-glossary&amp;quot;.&lt;br /&gt;
# (empty) = Tells this OSISReferenceLinks filter to also require that subType=&amp;quot;something&amp;quot; in order to filter. Empty means ALL type=&amp;quot;x-glossary&amp;quot; references will be filtered regardless of subType.&lt;br /&gt;
# &amp;quot;On&amp;quot; = Default filter toggle value (&amp;quot;On&amp;quot; or &amp;quot;Off&amp;quot;)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;It is allowed to have multiple OSISReferenceLinks entries in a single conf file.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&amp;lt;ref&amp;gt;It's not implied that every front-end supports all of the listed option filters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. cross-references in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
&lt;br /&gt;
Legacy modules may also have following keys:&lt;br /&gt;
&lt;br /&gt;
'''OSISRuby'''&amp;lt;ref&amp;gt;See [https://en.wikipedia.org/wiki/Ruby_character Ruby character] and [https://en.wikipedia.org/wiki/Furigana Furigana]&amp;lt;/ref&amp;gt; (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Deprecated in 1.7.0. Use OSISGlosses instead.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFStrongs''' (For GBF texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFFootnotes''' (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFMorph''' (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFHeadings''' (For GBF texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFRedLetterWords''' (For GBF texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLStrongs''' (For THML texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLFootnotes''' (For THML texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLScripref''' (For THML texts having cross references)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLMorph''' (For THML texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLHeadings''' (For THML texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLVariants''' (For THML texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLLemma''' (For THML texts having lemmas)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
|&lt;br /&gt;
'''LtoR''' (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RtoL''' (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BiDi''' (&amp;lt;u&amp;gt;Bidi&amp;lt;/u&amp;gt;rectional)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script.&amp;lt;ref&amp;gt;JSword validates the direction property against the Lang of the module.&amp;lt;/ref&amp;gt; Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script. If the RtoL script is transliterated into a LtoR script, set the value to LtoR. If a module has both RtoL and LtoR text, then it is BiDi.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| '''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the [[Fonts|font]] to be used for display of the module if it is available.&amp;lt;ref&amp;gt;Specifying a font may not be sufficient for some modules. The required font features may depend on a particular smart font engine, which may not be compiled into the front-end application.&amp;lt;/ref&amp;gt; Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
|&lt;br /&gt;
'''StrongsNumbers''' (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekDef''' (for dictionary modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewDef''' (for dictionary modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekParse''' (for dictionary modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewParse''' (for dictionary modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''DailyDevotion''' (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossary''' (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that contain images of any type)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NoParagraphs''' (for modules without any paragraphing information, which are typically typeset with a verse per line&amp;lt;ref&amp;gt;This feature is intended to be informational to front-end developers. Ideally, front-ends will render these modules with a verse per line rather than as a single big chapter-length paragraph block.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The occurrence of a small number of paragraph elements in a module (such as might be used merely to format the colophon at the end of each Pauline epistle) does not rule out the use of this feature.&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| PreferredCSSXHTML&lt;br /&gt;
| '''&amp;amp;lt;filename&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Names a file in the module's DataPath that should be referenced for the renderer as CSS display controls.&lt;br /&gt;
Generality is advised: Use controls that are not specific to any particular rendering engine, e.g. WebKit.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== CaseInsensitiveKeys ====&lt;br /&gt;
Intended for use with Lexicon/Dictionary &amp;amp; Glossary modules. This field will make the order of the keys based upon the mixed case keys, but the index is still sorted by byte order of those keys. There are some scripts that don’t have upper/lower case (e.g. Arabic) and some languages where a naïve toUpper() will result in the wrong character (e.g. Turkish/Azeri lowercase dotted i and capital dotted İ).&lt;br /&gt;
&lt;br /&gt;
 CaseInsensitiveKeys=true|false&lt;br /&gt;
&lt;br /&gt;
It is fine to use toUpper() for internal normalization, but having keys in all caps when showing to a user is annoying. The problem is that the display order needs to follow something that makes sense to a user when the dictionary is presented as a list.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/JohnAustinDev/xulsword xulsword] has a different solution involving a configuration item not yet used by SWORD master.&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcDdEe... &lt;br /&gt;
&lt;br /&gt;
This is used by xulsword to sort the keys of a dictionary/glossary in original alphabetical order. Here's an actual example for module TKLDICT which has Lang=tk-Latn (i.e. Türkmençe):&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcÇçDdEeÄäŻżFfGgHhIiJjKkLlMmNnŇňOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyÝýZzŽž&lt;br /&gt;
&lt;br /&gt;
This method would need to be modified in order to support alphabets (such as [http://en.wikipedia.org/wiki/Welsh_orthography Welsh]) that include any [http://en.wikipedia.org/wiki/Digraph_%28orthography%29 digraphs].&lt;br /&gt;
&lt;br /&gt;
==== StrongsPadding ====&lt;br /&gt;
At the heart of our lexicon/dictionary drivers, we have some old logic which tries to detect if a key value is a Strong's number, and if so, then pad it with leading zeros accordingly. To support this logic, the recognition has recently been added for an optional new .conf entry for lexicon/dictionary modules:&lt;br /&gt;
&lt;br /&gt;
 StrongsPadding=true|false&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# So as not to break everything, this currently defaults to true if it is not present in the lexdict module's .conf file&lt;br /&gt;
# It can be set to false if you are building a lexdict module which has entries which may be misconstrued as Strong's numbers.&lt;br /&gt;
# In a couple years, we'll probably switch the default to false, so it would be nice to add this line and set the value to true on modules which really do require the logic.&lt;br /&gt;
# This is only available in SWORD version 1.7 or later. JSword never had this problem.&lt;br /&gt;
&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. Here's an example of what's used with the [http://papyri.info/docs/ddbdp Duke Databank of Papyri] with specialist software that's based on SWORD.&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=PapyriPlain&lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy-mm-dd&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Calendar_dates ISO 8601 Date])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a.&lt;br /&gt;
&lt;br /&gt;
CrossWire's standard practice is to indicate updates that only require a .conf-file update/download by incrementing the third most significant number (the revision number). For example, if module version 1.2 requires a .conf-file update. A new .conf file with version number 1.2.1 could be released.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
x.x is taken from the Version value.&lt;br /&gt;
&lt;br /&gt;
Indicates what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
&lt;br /&gt;
It is recommended that each explanation be suffixed by the corresponding SwordVersionDate value.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&amp;lt;ref&amp;gt;See http://tracker.crosswire.org/browse/API-201&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the [[Sword library versions | minimum version]] of the SWORD library required for this module.&amp;lt;ref&amp;gt;Required to support a Bible/Commentary module that has an [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Biblical Texts''' (for Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Commentaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Lexicons / Dictionaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossaries''' (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Daily Devotional''' (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Generic Books''' (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Maps''' (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Cults / Unorthodox / Questionable Material'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Essays''' (for essays)&amp;lt;ref&amp;gt;'''Essays''' is handled as a subset of '''Generic Books'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Biblical Texts&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=HRefCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawFiles'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=Glossary'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Daily Devotional&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=DailyDevotion'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawGenBook''&amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| '''&amp;amp;lt;tree/string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;Language[-Script]?[-Region]?&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The language identifier is a combination of sub-tags for '''Language''' and optionally '''Script''', and/or '''Region''', according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47] and [http://tools.ietf.org/html/rfc4647 RFC 4647]. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
&lt;br /&gt;
'''Language sub-tag''' ''(Regex: /[a-z]{2,3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module according to [http://en.wikipedia.org/wiki/ISO_639 ISO 639 parts 1, 2, 3 and 5]. Some languages have several codes. Use the following to determine the best choice:&amp;lt;br/&amp;gt;&lt;br /&gt;
:When available use a 2-letter [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English).&lt;br /&gt;
:If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar])  (e.g. ceb for Cebuano).&lt;br /&gt;
:Failing that, use a [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] code ([http://www-01.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages.&lt;br /&gt;
:Finally, use a [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] code ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macro languages.&lt;br /&gt;
The [http://www-01.sil.org/iso639-3/codes.asp ISO639-3 registrar] page gives up-to-date table on all of the above.&lt;br /&gt;
&lt;br /&gt;
'''Script sub-tag''' ''(Regex:  /[A-Z][a-z]{3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian).&lt;br /&gt;
&lt;br /&gt;
'''Region sub-tag''': ''(Regex: /[A-Z]{2}/)''&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English).&lt;br /&gt;
&lt;br /&gt;
'''Combinations'''''(Regex: /[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
Individual sub-tags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the total byte size of the module on disk, excluding the the size of any Lucene index files.&lt;br /&gt;
&lt;br /&gt;
For modules in the CrossWire repositories, this is automatically generated and overwritten if needed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element gives a former ModName that is made obsolete by this module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document. The current version is 2.1.1&lt;br /&gt;
&lt;br /&gt;
It is recommended that this be present for every OSIS module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| Companion&amp;lt;ref&amp;gt;Many (xulsword compatible) modules in the [[Official and Affiliated Module Repositories#Institute_for_Bible_Translation|IBT Repository]] make use of this field. See also https://github.com/johnaustindev/osis-converters&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName[, ModName]*&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies companion module(s) that should be opened together&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. When Bible and Commentary and/or Glossary modules are distributed together.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Years ISO 8601 Year])&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;distlic&amp;quot;&lt;br /&gt;
| DistributionLicense&lt;br /&gt;
|&lt;br /&gt;
'''Public Domain'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission to distribute granted to CrossWire'''&amp;lt;ref&amp;gt;Modules in other repositories may have a different organization name instead of CrossWire.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission granted to distribute non-commercially in SWORD format'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Free non-commercial distribution'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Freely distributable'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/fdl.html GFDL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/gpl.html GPL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-NC-ND 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-NC-SA 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-NC 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-ND 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-SA 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements.&amp;lt;br/&amp;gt;The last seven are different [https://creativecommons.org/licenses/ Creative Commons licenses].&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&lt;br /&gt;
|- &lt;br /&gt;
| UnlockInfo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains unlock instructions for the user, intended to be displayed upon attempt to install the module.  These instructions typically include a URL pointing to an exact location within a publisher's online store where a user can directly purchase an unlock key (CipherKey) for the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&amp;lt;br/&amp;gt;HTML Link&lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For JSword based front-ends such as Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Analysis Tools ==&lt;br /&gt;
* [[User:Dmsmith|DMSmith]] has created a script to analyse conf files and report anomalies.&lt;br /&gt;
* [[User:David Haslam|David Haslam]] has created a '''User Defined Language''' called '''CONF''' as a Syntax Highlighter for '''Notepad++''' (Windows). Download from [https://github.com/DavidHaslam/CONF].&lt;br /&gt;
&lt;br /&gt;
== Automated generation ==&lt;br /&gt;
* For new module submissions to CrossWire, [[User:Refdoc|Refdoc]] now maintains a script called '''confmaker''' that includes the ''automated generation'' of module conf files, given the minimum ''non-automatable'' requirements by the module submitter.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BibTeX entries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17025</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17025"/>
				<updated>2021-01-11T09:14:57Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Files attached */ Added list of file formats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Other files =&lt;br /&gt;
&lt;br /&gt;
Besides source, conf and copyright files we accept:&lt;br /&gt;
* Cascading style sheet (CSS) file used to format the contents of a module&lt;br /&gt;
* Media subdir containing multimedia files, commonly &amp;lt;code&amp;gt;Images&amp;lt;/code&amp;gt; subdir.&lt;br /&gt;
&lt;br /&gt;
= How-To submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped. Supported file formats: &amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tgz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tar.bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;tb2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;bz2&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gz&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;zip&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;gmx&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;Z&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;7z&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17024</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17024"/>
				<updated>2021-01-10T18:55:04Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Submit your files */ How-To added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Other files =&lt;br /&gt;
&lt;br /&gt;
Besides source, conf and copyright files we accept:&lt;br /&gt;
* Cascading style sheet (CSS) file used to format the contents of a module&lt;br /&gt;
* Media subdir containing multimedia files, commonly &amp;lt;code&amp;gt;Images&amp;lt;/code&amp;gt; subdir.&lt;br /&gt;
&lt;br /&gt;
= How-To submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17023</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17023"/>
				<updated>2021-01-10T18:53:37Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Other files */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Other files =&lt;br /&gt;
&lt;br /&gt;
Besides source, conf and copyright files we accept:&lt;br /&gt;
* Cascading style sheet (CSS) file used to format the contents of a module&lt;br /&gt;
* Media subdir containing multimedia files, commonly &amp;lt;code&amp;gt;Images&amp;lt;/code&amp;gt; subdir.&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17022</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17022"/>
				<updated>2021-01-10T18:53:10Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Copyrighted Material */ Added Other files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Other files =&lt;br /&gt;
&lt;br /&gt;
Besides Source, conf and copyright files we accept:&lt;br /&gt;
* Cascading style sheet (CSS) file used to format the contents of a module&lt;br /&gt;
* Media subdir containing multimedia files, commonly &amp;lt;code&amp;gt;Images&amp;lt;/code&amp;gt; subdir.&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17021</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17021"/>
				<updated>2021-01-10T18:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Copyrighted Material */ Section on its own&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
= Copyrighted Material =&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17020</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17020"/>
				<updated>2021-01-10T18:42:57Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: 'Source text must be unique' info added.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your source files =&lt;br /&gt;
&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
&lt;br /&gt;
* 1 Source text which will be converted to SWORD format. The source text must be unique and cannot be splitted in several files. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17019</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17019"/>
				<updated>2021-01-10T18:40:10Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* How-To prepare your files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
* 1 source text which will be converted to SWORD format. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your source files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17018</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17018"/>
				<updated>2021-01-10T18:34:53Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* How-To name your files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
You should provide 2 files:&lt;br /&gt;
* 1 source text which will be converted to SWORD format. &lt;br /&gt;
* 1 Configuration file which tells Sword how to recognize and what to do with your module.&lt;br /&gt;
&lt;br /&gt;
The files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17017</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17017"/>
				<updated>2021-01-10T18:26:40Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* How-To name your files */  Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source file reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17014</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17014"/>
				<updated>2021-01-01T13:20:09Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Link to a zip file */ mailto edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20of%20the%20module%20with%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17013</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17013"/>
				<updated>2021-01-01T13:17:50Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Files attached */ mailto edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20source%20and%20.conf%20files.%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17012</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17012"/>
				<updated>2021-01-01T13:15:28Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Submit your files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17011</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17011"/>
				<updated>2021-01-01T13:15:12Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Submit your files */ fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to &amp;lt;code&amp;gt;modules@crosswire.org modules@crosswire.org&amp;lt;/code&amp;gt; describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17010</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17010"/>
				<updated>2021-01-01T13:13:53Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Link to a git Repository */ fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- copyright.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17009</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17009"/>
				<updated>2021-01-01T13:11:04Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Link to a git Repository */ Add information about GIT submission&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%20containing%20source%20and%20.conf%20files%3A%20%3Curl%3E%0D%0A%0D%0AModule%20Name%20(CamelCase)%3A%0D%0AVersion%3A%20%0D%0AChangelog%3A%20%3CWhat's%20new%3E%0D%0AType%3A%20%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0ASource%20Type%3A%20%3COSIS%2FTEI%2F..%2F..%3E%20%0D%0AVersification%20(optional)%3A%20%0D%0A%0D%0AThanks!%0D%0A modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- license.pdf&lt;br /&gt;
   +-- README.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Try to not put other files in the repository, they are more misleading than handy. Original text URL should be linked in &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt;. If you really need to keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore.  &lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17007</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17007"/>
				<updated>2020-12-21T17:34:55Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* How-To name your files */ fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file are:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%2C%20containing%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- sources/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17006</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17006"/>
				<updated>2020-12-21T17:34:26Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Submit your files */ Avoid spaces&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format. Avoid spaces in folder and file names.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%2C%20containing%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- sources/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17005</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17005"/>
				<updated>2020-12-20T19:36:01Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Link to a git Repository */ Add module limit per repository&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%2C%20containing%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- sources/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* No more than 1 module per git repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17004</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17004"/>
				<updated>2020-12-20T17:25:22Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Link to a git Repository */ Add examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%2C%20containing%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.  &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  git&lt;br /&gt;
   |  &lt;br /&gt;
   +-- module.osis.xml&lt;br /&gt;
   +-- module.conf&lt;br /&gt;
   +-- style.css&lt;br /&gt;
   +-- images/&lt;br /&gt;
   +-- sources/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&amp;lt;code&amp;gt;$ echo sources/ &amp;gt;&amp;gt; .gitignore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17003</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=17003"/>
				<updated>2020-12-19T19:25:46Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Submit your files */ Add mail samples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
''Note: Pressing one of the following modules@crosswire.org links will open a new mail window already filled with a sample text.''&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Please%20find%20the%20attached%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file.%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20zip%20archive%20with%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email to [mailto:modules@crosswire.org?subject=Module%20submission%3A%20%3Cyour-module%3E&amp;amp;body=Here%20is%20the%20link%20to%20the%20Git%20repository%20of%20the%20module%2C%20containing%20OSIS%20(or%20TEI%20or%20other%20type)%20file%20and%20.conf%20file%3A%20%3Curl%3E%0D%0A%0D%0AVersion%3A%20%3Cyour-module-version%3E%0D%0AChangelog%3A%20(for%20updates%20only)%3CWhat's%20new%3E%0D%0AType%3D%3CBible%2FCommentary%2FGenBook%2FLexDict%3E%0D%0AVersification%3D(optional%20for%20Bibles%20and%20Commentaries%2C%20if%20not%20KJV)%0D%0A%0D%0AThanks! modules@crosswire.org].&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=OSIS_Genbooks&amp;diff=17002</id>
		<title>OSIS Genbooks</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=OSIS_Genbooks&amp;diff=17002"/>
				<updated>2020-12-19T10:21:32Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Change osisRefWork=&amp;quot;book&amp;quot; to osisRefWork=&amp;quot;GenBook&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
Much of what follows applies to any OSIS file, but there are a few features unique to genbooks (mainly in structure). This document aims to provide a complete, though not exhaustive, account of how to encode an OSIS genbook to become a SWORD module. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that, as with any XML document, elements are arranged hierarchically. The root node ends with the &amp;lt;/osis&amp;gt; element, so the rest of the document occurs within that container. Within that is the Work node. Within that is the Header and then the Body of the text, which are parallel to each other. For a complete OSIS XML file, see Example OSIS Genbook below.&lt;br /&gt;
&lt;br /&gt;
=Root Node=&lt;br /&gt;
The root node for a Genbook is the same as any other OSIS document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;osis xsi:schemaLocation=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace &lt;br /&gt;
      http://www.bibletechnologies.net/osisCore.2.1.1.xsd&amp;quot; &lt;br /&gt;
      xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; &lt;br /&gt;
      xmlns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/osis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Work Container=&lt;br /&gt;
&lt;br /&gt;
The Work container for a Genbook is the same as any other OSIS document except the reference system (osisRefWork) is simply &amp;quot;GenBook&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot; osisIDWork=&amp;quot;WorkID&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/osisText&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Header=&lt;br /&gt;
The Header should contain work elements for the current work and any other works to which this document links. In this example, the Bible is linked through Scripture references, and the KJV default reference scheme is used. More detailed information can be added, but the following is sufficient for a simple book with one author.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;header&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;work osisWork=&amp;quot;WorkID&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;OSISGenbook&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;creator role=&amp;quot;aut&amp;quot;&amp;gt;Author's Name&amp;lt;/creator&amp;gt;&lt;br /&gt;
&amp;lt;/work&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;work osisWork=&amp;quot;Bible&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;refSystem&amp;gt;Bible&amp;lt;/refSystem&amp;gt;&lt;br /&gt;
&amp;lt;/work&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/header&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Body=&lt;br /&gt;
==Basic Structure==&lt;br /&gt;
A &amp;lt;body&amp;gt; element is not used in OSIS. Instead, the body consists of &amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt; elements in a hierarchical structure. If you are encoding a collection of works by the same author, you can use the element &amp;lt;nowiki&amp;gt;&amp;lt;div type=&amp;quot;bookGroup&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; for the outer container. Otherwise start with &amp;lt;nowiki&amp;gt;&amp;lt;div type=&amp;quot;book&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;. The following represents several levels of containers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;book&amp;quot; osisID=&amp;quot;Book&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div type=&amp;quot;majorSection&amp;quot; osisID=&amp;quot;majorSection 1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div type=&amp;quot;chapter&amp;quot; osisID=&amp;quot;Chapter 1&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div type=&amp;quot;subSection&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
         &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course you decide what is in the osisID (within the bounds of what the schema allows--basically you should stick to letters, numbers, and spaces), and the &amp;lt;title&amp;gt; element can be used to create titles for each chapter, etc. You may define your hierarchy to as much detail as you like. However, remember that readers of SWORD genbooks can only read one container at a time, so if you define lots of subsections it forces the reader to flip through them. If those parts are short, consider just adding section titles and limiting your containers to chapters for ease of reading.&lt;br /&gt;
&lt;br /&gt;
==Basic Formatting==&lt;br /&gt;
===Titles===&lt;br /&gt;
Titles are defined using the &amp;lt;title&amp;gt; element: &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;title&amp;gt;Title Name&amp;lt;/title&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Paragraphs===&lt;br /&gt;
Paragraphs are defined using the &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt; element.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;p&amp;gt;Your paragraph goes here.&amp;lt;/p&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Italic Text===&lt;br /&gt;
For italics, use the &amp;lt;nowiki&amp;gt;&amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; element.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;Italic text&amp;lt;/hi&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Bold Text===&lt;br /&gt;
To make text display in bold type, use the &amp;lt;nowiki&amp;gt;&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; element.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Bold text&amp;lt;/hi&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Superscript and Subscript===&lt;br /&gt;
To make text superscript and subscript, just use the &amp;lt;nowiki&amp;gt;&amp;lt;hi&amp;gt;&amp;lt;/nowiki&amp;gt; element with the type defined as &amp;quot;super&amp;quot; for superscript text and &amp;quot;sub&amp;quot; for subscript text.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;hi type=&amp;quot;super&amp;quot;&amp;gt;Superscript text&amp;lt;/hi&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hi type=&amp;quot;sub&amp;quot;&amp;gt;Subscript text&amp;lt;/hi&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Footnotes and Endnotes==&lt;br /&gt;
Footnotes and endnotes are encoded in the same way except for their type name. Both use the &amp;lt;nowiki&amp;gt;&amp;lt;note&amp;gt;&amp;lt;/nowiki&amp;gt; element. Using the &amp;quot;n&amp;quot; attribute you can define the number, letter, or symbol which you want to appear for the note, but not all front-ends will display that.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;note type=&amp;quot;x-footnote&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt;Footnote text&amp;lt;/note&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;note type=&amp;quot;x-endnote&amp;quot; n=&amp;quot;i&amp;quot;&amp;gt;Endnote text&amp;lt;/note&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scripture References and Other Links==&lt;br /&gt;
===Scripture References===&lt;br /&gt;
Scripture references may be encoded as links which some front-ends will use to open that reference in a Bible window. This is done using the &amp;lt;nowiki&amp;gt;&amp;lt;reference&amp;gt;&amp;lt;/nowiki&amp;gt; element with the attribute &amp;quot;osisRef&amp;quot; defining the target verse or passage. Note the variety of possibilities for these kinds of references below.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;Gen.1.1&amp;quot;&amp;gt;Genesis 1:1&amp;lt;/reference&amp;gt;&lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;Ps.119&amp;quot;&amp;gt;Psalm 119&amp;lt;/reference&amp;gt;&lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;Prov.1-Prov.9&amp;quot;&amp;gt;Proverbs 1-9&amp;lt;/reference&amp;gt;&lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;2Cor.6.14-2Cor.7.1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bible book names are those abbreviations found in the OSIS manual (they basically follow the SBL abbreviations), and each portion of the reference is separated by a period. In a range of verses the book and chapter must be repeated and separated by a dash.&lt;br /&gt;
===Internal Links===&lt;br /&gt;
Links from an OSIS module to a non-verse-keyed OSIS module should use an '''osisRef''' of the format&amp;lt;ref&amp;gt;Currently this syntax works but does not validate to '''osisCore.2.1.1.xsd'''&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 Module:Div1/Div2/Div3&lt;br /&gt;
&lt;br /&gt;
Hence, if the module '''EarlyFathers''' were OSIS&amp;lt;ref&amp;gt;It's actually ThML. Install from the Xiphos repository.&amp;lt;/ref&amp;gt;, the introduction page may look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot; osisID=&amp;quot;Introduction&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;The Early Church Fathers Series&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This module is a massive 37-volume compendium of writings of the early church fathers including&lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;EarlyFathers:ANF01/Ignatius&amp;quot;&amp;gt;Ignatius&amp;lt;/reference&amp;gt;,&lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;EarlyFathers:ANF01/Justin_Martyr&amp;quot;&amp;gt;Justin Martyr&amp;lt;/reference&amp;gt;,&lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;EarlyFathers:ANF01/Irenæus&amp;quot;&amp;gt;Irenaeus&amp;lt;/reference&amp;gt;, and&lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;EarlyFathers:TOC&amp;quot;&amp;gt;many others&amp;lt;/reference&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===External Links===&lt;br /&gt;
Links from one OSIS genbook to another OSIS genbook uses the same syntax as the internal links, above.&lt;br /&gt;
&lt;br /&gt;
==Images==&lt;br /&gt;
You can easily place images in your books using the &amp;lt;figure/&amp;gt; element. This element is &amp;quot;milestoned,&amp;quot; meaning it isn't a container. The forward slash near the end signals that fact. Use the &amp;quot;src&amp;quot; attribute to define the location of the image relative to the compiled module. In the example below, the image &amp;quot;crosswire.jpg&amp;quot; resides in a folder &amp;quot;images&amp;quot; in the same folder as the compiled module.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;figure src=&amp;quot;images/crosswire.jpg&amp;quot;/&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tables==&lt;br /&gt;
Tables require a bit of work to get set up but can be useful for some purposes. The entire table is contained in a &amp;lt;table&amp;gt; element, and each row is then contained in a &amp;lt;row&amp;gt; element. For each column in each row a &amp;lt;cell&amp;gt; element contains the text of that cell. The following table creates column labels in bold type and includes two columns and two rows below the label row.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;table&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Column 1 Label&amp;lt;/hi&amp;gt;&amp;lt;/cell&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Column 2 Label&amp;lt;/hi&amp;gt;&amp;lt;/cell&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 1, Row 1&amp;lt;/cell&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 2, Row 1&amp;lt;/cell&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 1, Row 2&amp;lt;/cell&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 2, Row 2&amp;lt;/cell&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Foreign Languages==&lt;br /&gt;
Sometimes you may have multiple languages in a work, and in that case you should use the &amp;lt;nowiki&amp;gt;&amp;lt;foreign&amp;gt;&amp;lt;/nowiki&amp;gt; element. That way if you have different fonts defined for different languages you are able to make the display more appropriate for the reader. A Hebrew example looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;foreign xml:lang=&amp;quot;he&amp;quot;&amp;gt;עִבְרִי&amp;lt;/foreign&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You have to define the language of the language that is foreign to the module's language using the &amp;quot;xml:lang&amp;quot; attribute.&lt;br /&gt;
=Example OSIS Genbook=&lt;br /&gt;
The following is the text of a valid OSIS XML file which serves as a template for an OSIS Genbook for SWORD. Not all possible features are demonstrated here, but the file serves as an example of how to encode a Genbook. You should be able to copy the contents to a text editor, save it to a file as *.xml, and validate it against the OSIS schema.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;osis xsi:schemaLocation=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace &lt;br /&gt;
      http://www.bibletechnologies.net/osisCore.2.1.1.xsd&amp;quot; &lt;br /&gt;
      xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; &lt;br /&gt;
      xmlns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;osisText osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot; osisIDWork=&amp;quot;WorkID&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;header&amp;gt;&lt;br /&gt;
&amp;lt;work osisWork=&amp;quot;WorkID&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;OSISGenbook&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;creator role=&amp;quot;aut&amp;quot;&amp;gt;Author's Name&amp;lt;/creator&amp;gt;&lt;br /&gt;
&amp;lt;/work&amp;gt;&lt;br /&gt;
&amp;lt;work osisWork=&amp;quot;Bible&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;refSystem&amp;gt;Bible&amp;lt;/refSystem&amp;gt;&lt;br /&gt;
&amp;lt;/work&amp;gt;&lt;br /&gt;
&amp;lt;/header&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div type=&amp;quot;book&amp;quot; osisID=&amp;quot;Book Title&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Book Title&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;title type=&amp;quot;x-author&amp;quot;&amp;gt;Author's Name&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Copyright&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;figure src=&amp;quot;images/crosswire.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div type=&amp;quot;chapter&amp;quot; osisID=&amp;quot;Chapter 1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is Chapter 1, the introduction. &lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;Gen.1.1&amp;quot;&amp;gt;Genesis 1:1&amp;lt;/reference&amp;gt; is the first verse in the Bible. &lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;Rev.22.21&amp;quot;&amp;gt;Rev 22:21&amp;lt;/reference&amp;gt; is the last verse in the Bible. &lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;Ps.119&amp;quot;&amp;gt;Psalm 119&amp;lt;/reference&amp;gt; is the longest chapter in the Bible. &lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;Prov.1-Prov.9&amp;quot;&amp;gt;Proverbs 1-9&amp;lt;/reference&amp;gt; introduce the book of Proverbs. &lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;John.1-John.1.18&amp;quot;&amp;gt;John 1:1-18&amp;lt;/reference&amp;gt; introduces the book of John. &lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;2Cor.6.14-2Cor.7.1&amp;quot;&amp;gt;2 Corinthians 6:14-7:1&amp;lt;/reference&amp;gt; teaches about holiness.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Section 1&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is chapter 1, section 1.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;row&amp;gt;&lt;br /&gt;
&amp;lt;cell&amp;gt;&lt;br /&gt;
&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Column 1 Label&amp;lt;/hi&amp;gt;&lt;br /&gt;
&amp;lt;/cell&amp;gt;&lt;br /&gt;
&amp;lt;cell&amp;gt;&lt;br /&gt;
&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Column 2 Label&amp;lt;/hi&amp;gt;&lt;br /&gt;
&amp;lt;/cell&amp;gt;&lt;br /&gt;
&amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;row&amp;gt;&lt;br /&gt;
&amp;lt;cell&amp;gt;Column 1, Row 1&amp;lt;/cell&amp;gt;&lt;br /&gt;
&amp;lt;cell&amp;gt;Column 2, Row 1&amp;lt;/cell&amp;gt;&lt;br /&gt;
&amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;row&amp;gt;&lt;br /&gt;
&amp;lt;cell&amp;gt;Column 1, Row 2&amp;lt;/cell&amp;gt;&lt;br /&gt;
&amp;lt;cell&amp;gt;Column 2, Row 2&amp;lt;/cell&amp;gt;&lt;br /&gt;
&amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Section 2&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is chapter 1, section 2.&amp;lt;note type=&amp;quot;x-footnote&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt;Footnote&amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div type=&amp;quot;chapter&amp;quot; osisID=&amp;quot;Chapter 2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is Chapter 2, the introduction.&amp;lt;note type=&amp;quot;x-endnote&amp;quot; n=&amp;quot;i&amp;quot;&amp;gt;Endnote&amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Section 1&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is chapter 2, section 1.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Section 2&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is chapter 2, section 2.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Default &amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;Italics&amp;lt;/hi&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Default &amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Bold&amp;lt;/hi&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Default&amp;lt;hi type=&amp;quot;super&amp;quot;&amp;gt;SuperScript&amp;lt;/hi&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Default&amp;lt;hi type=&amp;quot;sub&amp;quot;&amp;gt;Subscript&amp;lt;/hi&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This is Hebrew: &amp;lt;foreign xml:lang=&amp;quot;he&amp;quot;&amp;gt;עִבְרִי&amp;lt;/foreign&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/osisText&amp;gt;&lt;br /&gt;
&amp;lt;/osis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Making a Genbook module =&lt;br /&gt;
'''xml2gbs''' (currently version 1.0) is the OSIS/ThML/TEI General Book module creation tool&amp;lt;ref&amp;gt;Use under Linux. The Windows edition has an undiagnosed bug that is not likely to be fixed soon.&amp;lt;/ref&amp;gt; for the SWORD Project.&lt;br /&gt;
  usage:&lt;br /&gt;
   xml2gbs [-l] [-i] [-fT|-fO|-fE] &amp;lt;filename&amp;gt; [modname]&lt;br /&gt;
  -l uses long div names in ThML files&lt;br /&gt;
  -i exports to IMP format instead of creating a module&lt;br /&gt;
  -fO, -fT, and -fE will set the importer to expect OSIS, ThML, or TEI format respectively&lt;br /&gt;
    (otherwise it attempts to autodetect)&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides|OSIS Genbooks]]&lt;br /&gt;
[[Category:OSIS]]&lt;br /&gt;
[[Category:Genbook]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=OSIS_Commentaries&amp;diff=17001</id>
		<title>OSIS Commentaries</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=OSIS_Commentaries&amp;diff=17001"/>
				<updated>2020-12-19T09:51:22Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Introduction */ Add general structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
In SWORD a commentary is structured just like a Bible. The difference is that instead of verse text the commentary has discussion about verse text.&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
To produce an OSIS Commentary, you can use this template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;osis&lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&lt;br /&gt;
	xmlns:osis=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace http://www.bibletechnologies.net/osisCore.2.1.1.xsd&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;osisText osisIDWork=&amp;quot;{NAME}&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;{LANG}&amp;quot; canonical=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;header&amp;gt;&lt;br /&gt;
			{HEADER}&lt;br /&gt;
		&amp;lt;/header&amp;gt;&lt;br /&gt;
		&amp;lt;div type=&amp;quot;bookGroup&amp;quot;&amp;gt;&lt;br /&gt;
			{BODY}&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/osisText&amp;gt;&lt;br /&gt;
&amp;lt;/osis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Markup ==&lt;br /&gt;
An OSIS Commentary differs from an OSIS Bible in that an [[OSIS Bibles]] use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;verse osisID=&amp;quot;Gen.1.1&amp;quot;&amp;gt;Blah blah...&amp;lt;/verse&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But the fundamental mechanism of markup for an OSIS commentary replaces that with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot; annotateType=&amp;quot;commentary&amp;quot; annotateRef=&amp;quot;Gen.1.1&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Blah blah...&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A couple of things to note:&lt;br /&gt;
&lt;br /&gt;
'''type'''&amp;lt;br/&amp;gt;This attribute can have any valid value or even be absent. osis2mod will not use this value.&lt;br /&gt;
&lt;br /&gt;
'''annotateType'''&amp;lt;br/&amp;gt;This attribute must have the value ''commentary'' and will be used to know that we are processing an entry for a commentary.&lt;br /&gt;
&lt;br /&gt;
'''annotateRef'''&amp;lt;br/&amp;gt;This attribute can contain any valid osisRef, but the references must not have a work prefix, such as 'Bible:'. The default for all references and the only ones that SWORD supports at this time are Bible references. We'll tackle work prefixes at a later date.&lt;br /&gt;
&lt;br /&gt;
A single reference uses single &amp;quot;osisID&amp;quot;:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A range will be of the form, &amp;quot;osisID-osisID&amp;quot;:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1-Gen.2.3&amp;quot;&lt;br /&gt;
where the first and the second reference are complete osisIDs and they are separated by a - (and no spaces). And the first reference must precede the second.&lt;br /&gt;
&lt;br /&gt;
Discontinuous references are to be separated by whitespace, &amp;quot;osisRef osisRef&amp;quot;. For example:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1 Gen1.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Importing ==&lt;br /&gt;
[[osis2mod]] (&amp;gt;= 1.5.11) is used for both Bibles and Commentaries. See [[osis2mod]] for details.&lt;br /&gt;
&lt;br /&gt;
== Config file ==&lt;br /&gt;
It's very important that all the necessary properties are included in the .conf file, otherwise the commentary module may not behave as required.&amp;lt;br&amp;gt;&lt;br /&gt;
e.g. The module being made from OSIS source text, this property should be specified:&lt;br /&gt;
 SourceType=OSIS&lt;br /&gt;
Otherwise, it would default to Plaintext. For further details, please refer to [[DevTools:conf Files]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides|OSIS Commentaries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSIS]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=OSIS_Commentaries&amp;diff=17000</id>
		<title>OSIS Commentaries</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=OSIS_Commentaries&amp;diff=17000"/>
				<updated>2020-12-19T09:48:28Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Markup */ back&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
In SWORD a commentary is structured just like a Bible. The difference is that instead of verse text the commentary has discussion about verse text.&lt;br /&gt;
&lt;br /&gt;
== Markup ==&lt;br /&gt;
An OSIS Commentary differs from an OSIS Bible in that an [[OSIS Bibles]] use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;verse osisID=&amp;quot;Gen.1.1&amp;quot;&amp;gt;Blah blah...&amp;lt;/verse&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But the fundamental mechanism of markup for an OSIS commentary replaces that with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot; annotateType=&amp;quot;commentary&amp;quot; annotateRef=&amp;quot;Gen.1.1&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Blah blah...&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A couple of things to note:&lt;br /&gt;
&lt;br /&gt;
'''type'''&amp;lt;br/&amp;gt;This attribute can have any valid value or even be absent. osis2mod will not use this value.&lt;br /&gt;
&lt;br /&gt;
'''annotateType'''&amp;lt;br/&amp;gt;This attribute must have the value ''commentary'' and will be used to know that we are processing an entry for a commentary.&lt;br /&gt;
&lt;br /&gt;
'''annotateRef'''&amp;lt;br/&amp;gt;This attribute can contain any valid osisRef, but the references must not have a work prefix, such as 'Bible:'. The default for all references and the only ones that SWORD supports at this time are Bible references. We'll tackle work prefixes at a later date.&lt;br /&gt;
&lt;br /&gt;
A single reference uses single &amp;quot;osisID&amp;quot;:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A range will be of the form, &amp;quot;osisID-osisID&amp;quot;:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1-Gen.2.3&amp;quot;&lt;br /&gt;
where the first and the second reference are complete osisIDs and they are separated by a - (and no spaces). And the first reference must precede the second.&lt;br /&gt;
&lt;br /&gt;
Discontinuous references are to be separated by whitespace, &amp;quot;osisRef osisRef&amp;quot;. For example:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1 Gen1.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Importing ==&lt;br /&gt;
[[osis2mod]] (&amp;gt;= 1.5.11) is used for both Bibles and Commentaries. See [[osis2mod]] for details.&lt;br /&gt;
&lt;br /&gt;
== Config file ==&lt;br /&gt;
It's very important that all the necessary properties are included in the .conf file, otherwise the commentary module may not behave as required.&amp;lt;br&amp;gt;&lt;br /&gt;
e.g. The module being made from OSIS source text, this property should be specified:&lt;br /&gt;
 SourceType=OSIS&lt;br /&gt;
Otherwise, it would default to Plaintext. For further details, please refer to [[DevTools:conf Files]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides|OSIS Commentaries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSIS]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=OSIS_Commentaries&amp;diff=16999</id>
		<title>OSIS Commentaries</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=OSIS_Commentaries&amp;diff=16999"/>
				<updated>2020-12-19T09:47:39Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Markup */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
In SWORD a commentary is structured just like a Bible. The difference is that instead of verse text the commentary has discussion about verse text.&lt;br /&gt;
&lt;br /&gt;
== Markup ==&lt;br /&gt;
An OSIS Commentary differs from an OSIS Bible in that an [[OSIS Bibles]] use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;verse osisID=&amp;quot;Gen.1.1&amp;quot;&amp;gt;Blah blah...&amp;lt;/verse&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But the fundamental mechanism of markup for an OSIS commentary replaces that with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot; annotateType=&amp;quot;commentary&amp;quot; annotateRef=&amp;quot;Gen.1.1&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Blah blah...&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A couple of things to note:&lt;br /&gt;
&lt;br /&gt;
'''type'''&amp;lt;br/&amp;gt;This attribute can have any valid value or even be absent. osis2mod will not use this value.&lt;br /&gt;
&lt;br /&gt;
'''annotateType'''&amp;lt;br/&amp;gt;This attribute must have the value ''Commentary'' and will be used to know that we are processing an entry for a commentary.&lt;br /&gt;
&lt;br /&gt;
'''annotateRef'''&amp;lt;br/&amp;gt;This attribute can contain any valid osisRef, but the references must not have a work prefix, such as 'Bible:'. The default for all references and the only ones that SWORD supports at this time are Bible references. We'll tackle work prefixes at a later date.&lt;br /&gt;
&lt;br /&gt;
A single reference uses single &amp;quot;osisID&amp;quot;:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A range will be of the form, &amp;quot;osisID-osisID&amp;quot;:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1-Gen.2.3&amp;quot;&lt;br /&gt;
where the first and the second reference are complete osisIDs and they are separated by a - (and no spaces). And the first reference must precede the second.&lt;br /&gt;
&lt;br /&gt;
Discontinuous references are to be separated by whitespace, &amp;quot;osisRef osisRef&amp;quot;. For example:&lt;br /&gt;
 annotateRef=&amp;quot;Gen.1.1 Gen1.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Importing ==&lt;br /&gt;
[[osis2mod]] (&amp;gt;= 1.5.11) is used for both Bibles and Commentaries. See [[osis2mod]] for details.&lt;br /&gt;
&lt;br /&gt;
== Config file ==&lt;br /&gt;
It's very important that all the necessary properties are included in the .conf file, otherwise the commentary module may not behave as required.&amp;lt;br&amp;gt;&lt;br /&gt;
e.g. The module being made from OSIS source text, this property should be specified:&lt;br /&gt;
 SourceType=OSIS&lt;br /&gt;
Otherwise, it would default to Plaintext. For further details, please refer to [[DevTools:conf Files]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides|OSIS Commentaries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSIS]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=OSIS_Bibles&amp;diff=16998</id>
		<title>OSIS Bibles</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=OSIS_Bibles&amp;diff=16998"/>
				<updated>2020-12-19T09:47:00Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* General structure */ Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OSIS==&lt;br /&gt;
OSIS is an XML Schema definition for Bibles and other Biblical research texts, which enables ministries and other organizations to collaborate more easily.  Traditionally, these organizations have stored their documents in disparate, proprietary markups, making it difficult when they wish to share in service with each other.  OSIS provides a common markup for multiple visions.&lt;br /&gt;
&lt;br /&gt;
CrossWire is committed to supporting the OSIS initiative.  We have developed OSIS import and export tools which work with our SWORD engine, making OSIS documents available to all of our SWORD software.&lt;br /&gt;
&lt;br /&gt;
The latest OSIS Schema definition and supporting information was once available at: [http://www.bibletechnologies.net/].&amp;lt;BR&amp;gt; However, the '''BTG''' no longer exists. See http://ebible.org/osis/&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
This page is for practical examples of how to encode a Bible in OSIS 2.1.1 for building a SWORD module with [[osis2mod]]. It represents CrossWire's experience and best practices in creating modules.&lt;br /&gt;
&lt;br /&gt;
Every OSIS SWORD module must be created from a well-formed and valid OSIS 2.1.1 document. While it is a desirable goal for any such document to be acceptable, SWORD has some particular requirements which are discussed here.&lt;br /&gt;
&lt;br /&gt;
The schema for '''OSIS 2.1.1''' that was formally at [http://www.bibletechnologies.net/osisCore.2.1.1.xsd] is preserved at http://crosswire.org/osis/osisCore.2.1.1.xsd.   &lt;br /&gt;
&amp;lt;br /&amp;gt;We are maintaining an updated schema at: http://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd that may be used in place of the official BibleTechnologies URL for validating OSIS files.&lt;br /&gt;
&amp;lt;br /&amp;gt;See also [[OSIS_211_CR#CrossWire_updated_schema| CrossWire updated schema]].&lt;br /&gt;
&lt;br /&gt;
The March 2006 version of the OSIS Manual may be found  [http://www.crosswire.org/OSIS/OSIS%202.1.1%20User%20Manual%2006March2006.pdf here] (PDF).&lt;br /&gt;
&lt;br /&gt;
A good example of an OSIS document can be found at http://www.crosswire.org/~dmsmith/kjv2006.&lt;br /&gt;
&amp;lt;BR&amp;gt;The latest releases are found under http://www.crosswire.org/~dmsmith/kjv2011/&lt;br /&gt;
&lt;br /&gt;
See also [[OSIS Book Abbreviations|OSIS Book Name Abbreviations]].&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
An OSIS document is a ''well-formed XML'' document, valid according to the ''OSIS schema''.&lt;br /&gt;
You can the most current version [http://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd here].&amp;lt;ref&amp;gt;See also [[OSIS Tutorial#The_Root_Element|root element]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To produce a Bible, you can use this template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;osis&lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&lt;br /&gt;
	xmlns:osis=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace http://www.bibletechnologies.net/osisCore.2.1.1.xsd&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;osisText osisIDWork=&amp;quot;{NAME}&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;{LANG}&amp;quot; canonical=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;header&amp;gt;&lt;br /&gt;
			{HEADER}&lt;br /&gt;
		&amp;lt;/header&amp;gt;&lt;br /&gt;
		&amp;lt;div type=&amp;quot;bookGroup&amp;quot;&amp;gt;&lt;br /&gt;
			{BODY}&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/osisText&amp;gt;&lt;br /&gt;
&amp;lt;/osis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following values:&lt;br /&gt;
; {NAME}: Normalized name of the Bible version (Usually 3 letters for language, 3 for translation)&lt;br /&gt;
; {LANG}: IETF language code-- ISO 639-1 codes are preferred, and ISO 639-3 codes are preferred when ISO 639-1 codes do not exist for the given language. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes. &lt;br /&gt;
; {HEADER}: Description of the included text; see below&lt;br /&gt;
; {BODY}: Text; see below&lt;br /&gt;
&lt;br /&gt;
For text without any character outside ASCII, you can use US-ASCII encoding (usually for english text). For every other language, please use UTF-8 and NFC. See the [[OSIS Bibles#Tools|tools]] section if you need to convert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
===Header===&lt;br /&gt;
This is the minimum contents of the header required for validation. It is also what &amp;lt;tt&amp;gt;usfm2osis.pl&amp;lt;/tt&amp;gt; produces. A valid OSIS header may include more than this.&lt;br /&gt;
 &amp;lt;header&amp;gt;  &lt;br /&gt;
   &amp;lt;work osisWork=&amp;quot;{Name}&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/header&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Body===&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of the body content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;bookGroup&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;title&amp;gt;Old Testament&amp;lt;/title&amp;gt;&lt;br /&gt;
	&amp;lt;div type=&amp;quot;book&amp;quot; osisID=&amp;quot;Gen&amp;quot; canonical=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;title type=&amp;quot;main&amp;quot; short=&amp;quot;Genesis&amp;quot;&amp;gt;Genesis&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;chapter osisID=&amp;quot;Gen.1&amp;quot; chapterTitle=&amp;quot;CHAPTER 1.&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;CHAPTER 1.&amp;lt;/title&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;In the beginning ...&lt;br /&gt;
			&amp;lt;verse eID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;And the earth was without form ...&lt;br /&gt;
			&amp;lt;verse eID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;&lt;br /&gt;
			...&lt;br /&gt;
		&amp;lt;/chapter&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# The top level bookGroup division is not mandatory.&lt;br /&gt;
# If they are used, the bookGroup division for the New Testament should have a similar structure.&lt;br /&gt;
# Any '''div''' element defaults canonical to false. You need to set it to true on elements representing the structure of the original text.&lt;br /&gt;
&lt;br /&gt;
===OSIS Milestones===&lt;br /&gt;
OSIS allows for two potentially overlapping structures: Document structure (BSP) and verse structure (BCV).&lt;br /&gt;
&lt;br /&gt;
Document structure is dominated by book, sections and paragraphs (BSP), additionally with titles, quotes and poetic material. While verse structure is indicated by book, chapter and verse numbers (BCV). While a SWORD module requires verse structure, the best way to encode a module with deep markup is with document structure. [[Osis2mod]] is responsible for transforming document structure into verse structure.&lt;br /&gt;
&lt;br /&gt;
Because these two systems can overlap and because XML does not allow for overlapping elements, OSIS defines a milestone mechanism for both document and verse structure elements.&lt;br /&gt;
&lt;br /&gt;
For:&lt;br /&gt;
 &amp;amp;lt;X  ... attribute list ...&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;amp;lt;/X&amp;gt;&lt;br /&gt;
the milestoned form is:&lt;br /&gt;
 &amp;amp;lt;X sID=&amp;quot;g1&amp;quot; ... attribute list .../&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;amp;lt;X eID=&amp;quot;g1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to the OSIS manual, for any given element X that defines a milestoneable form, all the instances of X in the document must use one form or the other and may not use both. The value of each sID attribute must be unique within the document.&lt;br /&gt;
&lt;br /&gt;
Verse milestone sID/eID attributes can even have values that denote a verse range. This is purely for convenience to human readers.  &lt;br /&gt;
&lt;br /&gt;
It is allowable to use milestone elements for verses alone, or for both verses and chapters. The body example above is for the former.&lt;br /&gt;
&lt;br /&gt;
Although, the order of sID and osisID attributes within a milestone element is insignificant (as is the case for XML attributes in general), it helps for human readability to have the sID element first, such that it might be aligned with the corresponding eID element, as in the body example above.&lt;br /&gt;
&lt;br /&gt;
==== Limitations of XML validators ====&lt;br /&gt;
&lt;br /&gt;
An [[OSIS Bibles#Valid_OSIS_test|XML validator]] cannot validate whether OSIS milestones are used properly. It cannot validate:&lt;br /&gt;
* that an element is consistently either milestoned or not.&lt;br /&gt;
* that for each element with an sID that there is a paired element with an eID.&amp;lt;ref&amp;gt;osis2mod does not crash if the eID milestones are all missing, but the resulting module may appear to be void of text.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* that each paired sID/eID have the same attribute value.&lt;br /&gt;
* that different sID/eID pairs of the same element type do not overlap.&amp;lt;ref&amp;gt;If they weren't milestones, one would say they should be properly nested.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* that the values of the osisID attributes are valid and correspond to the text demarcated by the verse milesones, etc.&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Notes about OSIS elements ====&lt;br /&gt;
* For an OSIS document to be valid it must use the non-milestoned &amp;amp;lt;div&amp;gt; and &amp;amp;lt;lg&amp;gt; elements.&lt;br /&gt;
* There is no milestoned version of the &amp;amp;lt;p&amp;gt; element. From a practical perspective, this means that the milestoned verse element should be used when paragraphs are used.&lt;br /&gt;
* The milestoned chapter element must be used when the paragraph is spanning over a chapter.&lt;br /&gt;
* The SWORD engine cannot handle sub-identifiers separated by ! in an osisID, so osis2mod strips these off from the osisIDs for verses. They are only of use for the osisIDs for notes.&lt;br /&gt;
&lt;br /&gt;
===Recommended approach===&lt;br /&gt;
* For chapters, use &amp;amp;lt;chapter&amp;gt;...&amp;amp;lt;/chapter&amp;gt; container elements (except in the rare case that other container elements cross chapter boundaries)&amp;lt;ref&amp;gt;Conversion scripts such as [[Converting SFM Bibles to OSIS#usfm2osis.py|usfm2osis.py]] generally produce the milestone elements for chapters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* For verses, use milestone elements (unless container elements will suffice) &amp;amp;ndash; see [[OSIS Bibles/BSPExample]].&lt;br /&gt;
* For paragraphs, use the &amp;amp;lt;p&amp;gt;...&amp;amp;lt;/p&amp;gt; container element&lt;br /&gt;
* For poetry, use container elements &amp;amp;lt;lg&amp;gt;...&amp;amp;lt;/lg&amp;gt; to indicate stanzas (or other types of line groups) and &amp;amp;lt;l&amp;gt;...&amp;amp;lt;/l&amp;gt; to indicate lines&lt;br /&gt;
* For quoted text, use the &amp;amp;lt;q&amp;gt;...&amp;amp;lt;/q&amp;gt; container element&lt;br /&gt;
* For translation changes, use the &amp;amp;lt;transChange&amp;gt;...&amp;amp;lt;/transChange&amp;gt; container element&amp;lt;ref&amp;gt;Except where the text is within a &amp;amp;lt;w&amp;gt; which is not allowed by OSIS. For these cases use the alternative &amp;amp;lt;seg subType=&amp;quot;x-added&amp;quot; type=&amp;quot;x-transChange&amp;quot;&amp;gt;...&amp;amp;lt;/seg&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Marking Paragraphs===&lt;br /&gt;
There is no milestoned version of the &amp;lt;tt&amp;gt;&amp;amp;lt;p&amp;gt;&amp;lt;/tt&amp;gt; element. Typically paragraphs surround whole verses. That is, they start and end between verses. If a paragraph begins or ends in a verse and extends beyond that verse, then the whole document must use the milestoned version of &amp;lt;tt&amp;gt;&amp;amp;lt;verse&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;book&amp;quot; osisID=&amp;quot;Gen&amp;quot; canonical=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;title type=&amp;quot;main&amp;quot;&amp;gt;LE PREMIER LIVRE DE MOÏSE dit LA GENÈSE&amp;lt;/title&amp;gt;&lt;br /&gt;
	&amp;lt;chapter osisID=&amp;quot;Gen.1&amp;quot; chapterTitle=&amp;quot;Chapitre 1&amp;quot;&amp;gt;&amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;Chapitre 1&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1&amp;quot; n=&amp;quot;1&amp;quot;/&amp;gt;Au commencement Dieu créa les &lt;br /&gt;
			cieux et la terre.&amp;lt;verse eID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2&amp;quot; n=&amp;quot;2&amp;quot;/&amp;gt;Et la terre était désolation et&lt;br /&gt;
			vide, et il y avait des ténèbres sur la face de l'abîme. Et l'Esprit de Dieu&lt;br /&gt;
			planait sur la face des eaux.&amp;lt;verse eID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.3&amp;quot; osisID=&amp;quot;Gen.1.3&amp;quot; n=&amp;quot;3&amp;quot;/&amp;gt;Et Dieu dit : Que la lumière&lt;br /&gt;
			soit. Et la lumière fut.&amp;lt;verse eID=&amp;quot;Gen.1.3&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.4&amp;quot; osisID=&amp;quot;Gen.1.4&amp;quot; n=&amp;quot;4&amp;quot;/&amp;gt;Et Dieu vit la lumière, qu'elle&lt;br /&gt;
			était bonne ; et Dieu sépara la lumière d'avec les ténèbres.&lt;br /&gt;
			&amp;lt;verse eID=&amp;quot;Gen.1.4&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.5&amp;quot; osisID=&amp;quot;Gen.1.5&amp;quot; n=&amp;quot;5&amp;quot;/&amp;gt;Et Dieu appela la lumière Jour ;&lt;br /&gt;
			et les ténèbres, il les appela Nuit. Et il y eut soir, et il y eut matin : &lt;br /&gt;
			&amp;amp;amp;#8212; premier jour.&amp;lt;verse eID=&amp;quot;Gen.1.5&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(1)'''&amp;lt;/sup&amp;gt; Au commencement Dieu créa les cieux et la terre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(2)'''&amp;lt;/sup&amp;gt; Et la terre était désolation et vide, et il y avait des ténèbres sur la face de l'abîme. Et l'Esprit de Dieu planait sur la face des eaux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(3)''' &amp;lt;/sup&amp;gt;Et Dieu dit : Que la lumière soit. Et la lumière fut. &amp;lt;sup&amp;gt;'''(4)'''&amp;lt;/sup&amp;gt; Et Dieu vit la lumière, qu'elle était bonne ; et Dieu sépara la lumière d'avec les ténèbres. &amp;lt;sup&amp;gt;'''(5)'''&amp;lt;/sup&amp;gt; Et Dieu appela la lumière Jour ; et les ténèbres, il les appela Nuit. Et il y eut soir, et il y eut matin : &amp;amp;#8212; premier jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: [[osis2mod]] converts a paragraph start into &amp;lt;tt&amp;gt;&amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; sID=&amp;quot;genX&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt; and a paragraph end into &amp;lt;tt&amp;gt;&amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; eID=&amp;quot;genX&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Marking Quotations===&lt;br /&gt;
Most of the SWORD front-end applications can show a chapter at a time and some can show isolated verses. This means that all of the SWORD applications can show partial quotations, such as the Sermon on the Mount which begins in Matt 5 and ends in Matt 7.&lt;br /&gt;
&lt;br /&gt;
====Default quotation marks====&lt;br /&gt;
By default, SWORD will use &amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; for quotations. The following describes various ways to influence this.&lt;br /&gt;
&lt;br /&gt;
====Indicating the nesting of a quote====&lt;br /&gt;
When a quote is contained in a quote, it is customary to set the level attribute to indicate the depth of the nesting. For example, Jeremiah 23:38 is part of a larger quote and has a back and forth dialog of nested quotes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
But if you say,&lt;br /&gt;
&amp;lt;q level=&amp;quot;2&amp;quot; sID=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
	The burden of the Lord,&lt;br /&gt;
&amp;lt;q level=&amp;quot;2&amp;quot; eID=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
thus says the Lord,&lt;br /&gt;
&amp;lt;q level=&amp;quot;2&amp;quot; sID=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
	Because you have said these words,&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; sID=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
		The burden of the Lord,&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; eID=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
	when I sent to you, saying,&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; sID=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
		You shall not say,&lt;br /&gt;
		&amp;lt;q level=&amp;quot;4&amp;quot; sID=&amp;quot;6&amp;quot;/&amp;gt;&lt;br /&gt;
			The burden of the Lord,&lt;br /&gt;
		&amp;lt;q level=&amp;quot;4&amp;quot; eID=&amp;quot;6&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; eID=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A couple of things to note about this verse. First, the level attribute is on both the sID and the eID pair, matching in value. Second, this is an example of a verse that has a quote that starts in the middle and finishes in another verse.&lt;br /&gt;
&lt;br /&gt;
In this case, SWORD will use the level to determine whether to use &amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;'&amp;lt;/tt&amp;gt; for quotes. Odd levels will use &amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; and even levels will use &amp;lt;tt&amp;gt;'&amp;lt;/tt&amp;gt;. This is in accordance with American English usage, which is the opposite of British English usage. Nesting levels up to five can be found in the Bible.&amp;lt;ref&amp;gt;Jeremiah 27:1-11; 29:1-28, 30-32; 34:1-5; and Ezekiel 1-36&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Supplying alternative quotation marks====&lt;br /&gt;
The quote element has a marker attribute that can be used to control the quotation marks. SWORD applications will always use this value when rendering the quote. When the marker attribute is the null string, it will render no quotation mark at all.&amp;lt;ref&amp;gt;e.g. The KJV module has &amp;lt;tt&amp;gt;marker=&amp;quot;&amp;quot;&amp;lt;/tt&amp;gt; because the text of the KJV Bible does not use any quotation marks.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To specify &amp;quot;curly&amp;quot; quotes you can use the following values:&lt;br /&gt;
{|border=1&lt;br /&gt;
!Description!!Char!!HTML Entity!!Unicode&lt;br /&gt;
|-align=center&lt;br /&gt;
|Opening double quote||&amp;amp;#8220;||&amp;amp;amp;#8220;||U+201C&lt;br /&gt;
|-align=center&lt;br /&gt;
|Closing double quote||&amp;amp;#8221;||&amp;amp;amp;#8221;||U+201D&lt;br /&gt;
|-align=center&lt;br /&gt;
|Opening single quote||&amp;amp;#8216;||&amp;amp;amp;#8216;||U+2018&lt;br /&gt;
|-align=center&lt;br /&gt;
|Closing single quote||&amp;amp;#8217;||&amp;amp;amp;#8217;||U+2019&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To use different marks to start and end a quote, use the milestoned version of the quote.&lt;br /&gt;
 &amp;amp;lt;q marker=&amp;quot;&amp;amp;#8220;&amp;quot; sID=&amp;quot;qN&amp;quot;/&amp;gt; ... &amp;amp;lt;q marker=&amp;quot;&amp;amp;#8221;&amp;quot; eID=&amp;quot;qN&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is further information about English quotation marks and their usage in [http://en.wikipedia.org/wiki/Quotation_marks].&lt;br /&gt;
&lt;br /&gt;
Quotation marks have a variety of forms in different languages and in different media. See [http://en.wikipedia.org/wiki/Quotation_mark,_non-English_usage Quotation mark, non-English usage].&amp;lt;ref&amp;gt;When modules are being converted from digitized source text used in other Bible software, it may be the case that quotation marks in the text source differ from those in the original published edition, whether due to inherent constraints of the other software, or for other causes.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Continuation quotation marks====&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;amp;lt;milestone type=&amp;quot;cQuote&amp;quot;/&amp;amp;gt;&amp;lt;/tt&amp;gt; can be used to indicate the presence of a continued quote. If the marker attribute is present, it will use that otherwise it will use a straight double quote, &amp;quot;. Since there is no level attribute on the milestone element, it is best to specify the marker attribute.&lt;br /&gt;
&lt;br /&gt;
====Marking the Words of Christ====&lt;br /&gt;
To indicate that a quote is something that Jesus said&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;, use the attribute &amp;lt;tt&amp;gt;who=&amp;quot;Jesus&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;verse osisID=&amp;quot;Luke.22.35 sID=&amp;quot;Luke.22.35&amp;quot;/&amp;gt;&lt;br /&gt;
	Then Jesus asked them, &amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;When I sent you without purse,&lt;br /&gt;
	bag or sandals, did you lack anything?&amp;lt;/q&amp;gt;&lt;br /&gt;
	&amp;lt;verse eID=&amp;quot;Luke.22.35&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
Then Jesus asked them, &amp;lt;span style=&amp;quot;color:#A00&amp;quot;&amp;gt;When I sent you without purse, bag or sandals, did you lack anything?&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Marking poetic material===&lt;br /&gt;
Poetry is marked up with &amp;amp;lt;lg&amp;amp;gt;, line group, and &amp;amp;lt;l&amp;amp;gt;, line, elements. The line element supports indentation with the level attribute. When the level attribute is not present or it is level=&amp;quot;1&amp;quot;, this should be interpreted as the first level of the line group. When level=&amp;quot;2&amp;quot; it is indented relative to level=&amp;quot;1&amp;quot;. The same is true for each subsequent level.  &lt;br /&gt;
&lt;br /&gt;
The level attribute is used to indicate indentation. A value of 1 means no indentation, the same as not specifying a level attribute. A value of 2 means to indent one. And so forth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;chapter osisID=&amp;quot;Exod.15&amp;quot; chapterTitle=&amp;quot;Chapitre 15&amp;quot;&amp;gt;&amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;Chapter 15&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.1&amp;quot; osisID=&amp;quot;Exod.15.1&amp;quot; n=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
      Then sang Moses and the children of Israel this song unto the LORD, and spake, saying,&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;lg&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;I will sing unto the LORD, for he hath triumphed gloriously:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;the horse and his rider hath he thrown into the sea.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.2&amp;quot; osisID=&amp;quot;Exod.15.2&amp;quot; n=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;The LORD is my strength and song, and he is become my salvation:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;he is my God, and I will prepare him an habitation;&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;my father's God, and I will exalt him.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.2&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.3&amp;quot; osisID=&amp;quot;Exod.15.3&amp;quot; n=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;The LORD is a man of war:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;the LORD is his name.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.4&amp;quot; osisID=&amp;quot;Exod.15.4&amp;quot; n=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;Pharaoh's chariots and his host hath he cast into the sea:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;his chosen captains also are drowned in the Red sea.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.4&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.5&amp;quot; osisID=&amp;quot;Exod.15.5&amp;quot; n=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;The depths have covered them:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;they sank into the bottom as a stone.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.5&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(1)'''&amp;lt;/sup&amp;gt; Then sang Moses and the children of Israel this song unto the LORD, and spake, saying,&lt;br /&gt;
&lt;br /&gt;
::''I will sing unto the LORD, for he hath triumphed gloriously:''&lt;br /&gt;
::::''the horse and his rider hath he thrown into the sea.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(2)'''&amp;lt;/sup&amp;gt; ''The LORD is my strength and song, and he is become my salvation:''&lt;br /&gt;
::::''he is my God, and I will prepare him an habitation;''&lt;br /&gt;
::::''my father's God, and I will exalt him.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(3)'''&amp;lt;/sup&amp;gt; ''The LORD is a man of war:''&lt;br /&gt;
::::''the LORD is his name.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(4)'''&amp;lt;/sup&amp;gt; ''Pharaoh's chariots and his host hath he cast into the sea:''&lt;br /&gt;
::::''his chosen captains also are drowned in the Red sea.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(5)'''&amp;lt;/sup&amp;gt; ''The depths have covered them:''&lt;br /&gt;
::::''they sank into the bottom as a stone.''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&lt;br /&gt;
# While OSIS defines a milestoned version of the &amp;lt;tt&amp;gt;&amp;lt;lg&amp;gt;&amp;lt;/tt&amp;gt; element, its use (rather than the container version) will not produce a valid XML document. The &amp;lt;tt&amp;gt;&amp;lt;l&amp;gt;&amp;lt;/tt&amp;gt; element can only occur within an &amp;lt;tt&amp;gt;&amp;lt;lg&amp;gt;&amp;lt;/tt&amp;gt; container, so use of &amp;lt;tt&amp;gt;&amp;lt;lg/&amp;gt;&amp;lt;/tt&amp;gt; milestones prevents use of &amp;lt;tt&amp;gt;&amp;lt;l&amp;gt;&amp;lt;/tt&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
==== Marking acrostic poetry headings ====&lt;br /&gt;
Use &amp;lt;tt&amp;gt;type=&amp;quot;acrostic&amp;quot;&amp;lt;/tt&amp;gt; as the title attribute for the stanza headings in acrostic passages such as Psalm 119. Whether or not this Psalm uses a poetry line group for each stanza, each title element should be placed before its related stanza.&lt;br /&gt;
&lt;br /&gt;
=== Marking lemmas &amp;amp; morphology ===&lt;br /&gt;
====Marking Strong's numbers====&lt;br /&gt;
To mark up [http://en.wikipedia.org/wiki/Strong%27s_Concordance Strong's numbers], you first need to declare a workID in the header of the OSIS document:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;header&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;work osisWork=&amp;quot;strong&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;refSystem&amp;gt;Dict.Strongs&amp;lt;/refSystem&amp;gt;&lt;br /&gt;
    &amp;lt;/work&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/header&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SWORD does not actually use this declaration, but it is required to have a proper OSIS document.&lt;br /&gt;
&lt;br /&gt;
And while OSIS allows arbitrary workIDs, SWORD can only handle &amp;quot;strong&amp;quot; and a few variants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w lemma=&amp;quot;strong:H0853 strong:H03045&amp;quot;&amp;gt;knew&amp;lt;/w&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;w&amp;amp;gt; element is used to surround the text that is represented by the Strong's number. It may be that the text is a phrase and it may be that more than one Strong's number defines the text.&lt;br /&gt;
&lt;br /&gt;
When more than one Strong's number defines the text, each must be prefixed with a workID and must be separated from each other by a space. (While OSIS allows for the defining of default workIDs, SWORD requires that the workIDs be used.)&lt;br /&gt;
&lt;br /&gt;
The actual Strong's Number should indicate whether it is Hebrew (H) or Greek (G) followed by the number. The number may be 0 padded up to 5 digits as in H00001.&lt;br /&gt;
&lt;br /&gt;
====Marking morphology====&lt;br /&gt;
In a similar manner to marking with Strong's numbers, morphology can also be noted. Since morphology regards the original language, Strong's numbers will be shown at the same time.&lt;br /&gt;
&lt;br /&gt;
As with Strong's numbers, a workID needs to be defined. Here we are defining one for Robinson's Morphology Codes. And while SWORD will ignore this declaration, &amp;quot;robinson&amp;quot; is hard-coded into SWORD for Greek morphology codes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;header&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;work osisWork=&amp;quot;robinson&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;refSystem&amp;gt;Dict.Robinson&amp;lt;/refSystem&amp;gt;&lt;br /&gt;
    &amp;lt;/work&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/header&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example markup of Robinson's Morphology Codes in the KJV module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w lemma=&amp;quot;strong:G3588 strong:G80&amp;quot; morph=&amp;quot;robinson:T-APM robinson:N-APM&amp;quot; src=&amp;quot;7 8&amp;quot;&amp;gt;his brethren&amp;lt;/w&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this example, lemma, morph and src form parallel arrays. The first strong: mapping to the first robinson: and the first src value, etc.&lt;br /&gt;
&lt;br /&gt;
The workID should be name of a current, future, or potential lexicon module in which the morphology code could be looked up. For example, morph=&amp;quot;packard:D&amp;quot; represents a reference to morphology code &amp;quot;D&amp;quot; in a module named Packard, whether or not a Packard module has been created or released. (Currently, SWORD offers lexicon modules named Robinson and Packard, both for Greek morphology.)&lt;br /&gt;
&lt;br /&gt;
The src attribute is used here to indicate the word position in the original Greek.&lt;br /&gt;
&lt;br /&gt;
====Marking other lemmas====&lt;br /&gt;
The lemma attribute of the &amp;lt;tt&amp;gt;&amp;amp;lt;w&amp;amp;gt;&amp;lt;/tt&amp;gt; element can contain any number of other lemmas. Like Strong's numbers and morphology codes, these need to have a workID declared in the header. SWORD presumes that these lemma workIDs all start with &amp;quot;lemma.&amp;quot; (note the final period). The portion of the workID following &amp;quot;lemma.&amp;quot; should be name of a current, future, or potential lexicon module in which the lemma could be looked up. For example, lemma=&amp;quot;lemma.TWOT:271&amp;quot; represents a reference to lemma #271 in a module named TWOT (i.e the Theological Workbook of the Old Testament), whether or not a TWOT module has been created or released. As far as SWORD is concerned, there can be any number of these space-delimited values in a lemma attribute and they can be in any order, even interspersed among the &amp;quot;strong:&amp;quot; lemmas. &lt;br /&gt;
&lt;br /&gt;
Example of a lemma markup for the Greek words from the [https://en.wikipedia.org/wiki/Textus_Receptus TR] in the KJV module:&lt;br /&gt;
 &amp;lt;w lemma=&amp;quot;strong:G976 lemma.TR:βιβλος&amp;quot; morph=&amp;quot;robinson:N-NSF&amp;quot; src=&amp;quot;1&amp;quot;&amp;gt;The book&amp;lt;/w&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SWORD has the ability to show or hide non-Strong's lemmas as a group. See [[DevTools:conf Files#Elements_required_for_proper_rendering|GlobalOptionFilter=OSISLemma]] &amp;amp;ndash; for OSIS texts having lemmas.&lt;br /&gt;
&lt;br /&gt;
==== Marking glosses ====&lt;br /&gt;
Gloss markup uses the &amp;lt;tt&amp;gt;gloss&amp;lt;/tt&amp;gt; attribute of the &amp;lt;tt&amp;gt;&amp;lt;w&amp;gt;&amp;lt;/tt&amp;gt; element. The syntax is illustrated by this line exported from the module JapMeiji.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w gloss=&amp;quot;はじめ&amp;quot;&amp;gt;元始&amp;lt;/w&amp;gt;に&amp;lt;w gloss=&amp;quot;かみ&amp;quot;&amp;gt;神&amp;lt;/w&amp;gt;&amp;lt;w gloss=&amp;quot;てんち&amp;quot;&amp;gt;天地&amp;lt;/w&amp;gt;を&amp;lt;w gloss=&amp;quot;つくり&amp;quot;&amp;gt;創造&amp;lt;/w&amp;gt;たまへり&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Display of glosses can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISGlosses&lt;br /&gt;
==== Marking encoded transliterations ====&lt;br /&gt;
Transliteration markup uses the xlit attribute of the &amp;lt;w&amp;gt; element. The syntax is illustrated by this line exported from the module SP.&lt;br /&gt;
 &amp;lt;w gloss=&amp;quot;in_beginnings&amp;quot; lemma=&amp;quot;strong:H7225&amp;quot; morph=&amp;quot;ב_ראשית&amp;quot; n=&amp;quot;1&amp;quot; xlit=&amp;quot;Latn:b_raShit&amp;quot;&amp;gt;בראשית&amp;lt;/w&amp;gt;&lt;br /&gt;
Display of encoded transliterations can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISXlit&lt;br /&gt;
==== Marking enumerated words ====&lt;br /&gt;
Enumerated words markup uses the n attribute in the &amp;lt;w&amp;gt; element. The syntax is illustrated in the previous subsection.&lt;br /&gt;
&lt;br /&gt;
Display of enumerated words can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISEnum&lt;br /&gt;
&lt;br /&gt;
==== Marking morpheme segmentation ====&lt;br /&gt;
&lt;br /&gt;
In languages such as Biblical Hebrew, parts of words may be split into semantic segments using the XML '''seg''' element, thus:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;w&amp;gt;&amp;lt;seg type=&amp;quot;x-morph&amp;quot;&amp;gt;וַ&amp;lt;/seg&amp;gt;&amp;lt;seg type=&amp;quot;x-morph&amp;quot;&amp;gt;יִּקְרָ֨א&amp;lt;/seg&amp;gt;&amp;lt;/w&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Display of morpheme segmentation&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt; can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]&amp;lt;ref&amp;gt;e.g. STEP Bible uses these structures to provide colour coding. It just uses 2 colours to show different parts, alternating between the two.&amp;lt;/ref&amp;gt;) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISMorphSegmentation&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Marking the divine name===&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;amp;lt;divineName&amp;amp;gt;&amp;lt;/tt&amp;gt; tag is reserved for representations of the tetragrammaton יהוה (YHWH). These occur in the Old Testament as &amp;lt;span style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;Lord&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;God&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;Yah&amp;lt;/span&amp;gt;. Not every instance of Lord or God is a translation of this.&lt;br /&gt;
&lt;br /&gt;
The content of the divineName element is the word Lord, God or Yah, not in all upper case (i.e. not LORD, GOD, or YAH). SWORD will either convert it to small-caps or uppercase.&lt;br /&gt;
&lt;br /&gt;
Note, if it is the use is possessive it is permissible to have the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;divineName&amp;gt;Lord's&amp;lt;/divineName&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it is inadvisable to include any other punctuation within the tag pair. Thus the following is '''not''' good practice (the quotation mark should ''precede'' the start tag):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;divineName&amp;gt;“God &amp;lt;/divineName&amp;gt; .....”&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When also marking with Strong's numbers you will need to do it one of two ways:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;divineName&amp;gt;&amp;lt;w lemma=&amp;quot;strong:H3068&amp;quot;&amp;gt;Lord's&amp;lt;/w&amp;gt;&amp;lt;divineName&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
   &amp;lt;w lemma=&amp;quot;strong:H3068&amp;quot;&amp;gt;of the &amp;lt;seg&amp;gt;&amp;lt;divineName&amp;gt;Lord&amp;lt;/divineName&amp;gt;&amp;lt;/seg&amp;gt;&amp;lt;/w&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The latter form uses a workaround to allow the embedding of &amp;lt;tt&amp;gt;&amp;amp;lt;divineName&amp;amp;gt;&amp;lt;/tt&amp;gt; in a &amp;lt;tt&amp;gt;&amp;amp;lt;w&amp;amp;gt;&amp;lt;/tt&amp;gt;, since OSIS does not allow for this, but does allow for &amp;lt;tt&amp;gt;&amp;amp;lt;seg&amp;amp;gt;&amp;lt;/tt&amp;gt; to be in a &amp;lt;tt&amp;gt;&amp;amp;lt;w&amp;amp;gt;&amp;lt;/tt&amp;gt; and to contain &amp;lt;tt&amp;gt;&amp;amp;lt;divineName&amp;amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' See also [[OSIS 211 CR#Allow_.3CdivineName.3E_within_.3Cw.3E|OSIS change requests: Allow &amp;lt;divineName&amp;gt; within &amp;lt;w&amp;gt;]].&lt;br /&gt;
&lt;br /&gt;
===Marking sections and titles===&lt;br /&gt;
A section is marked with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In OSIS the &amp;lt;tt&amp;gt;&amp;amp;lt;title&amp;amp;gt;&amp;lt;/tt&amp;gt; element is used to provide general headings. Titles should be placed at the top of the container that they title, not before.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;book&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;A book title&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;chapter&amp;gt;&lt;br /&gt;
       &amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;A title chapter&amp;lt;/title&amp;gt;&lt;br /&gt;
       &amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;A section title&amp;lt;/title&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
       ...&lt;br /&gt;
      &amp;lt;/chapter&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Using &amp;lt;tt&amp;gt;type=&amp;quot;chapter&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;type=&amp;quot;main&amp;quot;&amp;lt;/tt&amp;gt; is needed by [[osis2mod]] to distinguish chapter titles from verse titles. When SWORD stores an OSIS document it does so as an index of verses. It has special indexes for book and chapter titles. SWORD does not store the &amp;lt;tt&amp;gt;&amp;amp;lt;verse&amp;gt;&amp;lt;/tt&amp;gt; tags. So when it comes to storing a title in the following verse, [[osis2mod]] generates special markup to indicate that the title stands before the verse. SWORD uses this to place the verse number.&lt;br /&gt;
&lt;br /&gt;
It is recommended that chapter labels (converted from the USFM tag \cl) be coded like this (Malayalam) example:&lt;br /&gt;
 &amp;lt;title type=&amp;quot;chapter&amp;quot; subType=&amp;quot;chapterLabel&amp;quot;&amp;gt;൧. അദ്ധ്യായം.&amp;lt;/title&amp;gt;&lt;br /&gt;
This ensures that these labels are not treated differently to other chapter titles.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
# The &amp;lt;tt&amp;gt;&amp;amp;lt;head&amp;amp;gt;&amp;lt;/tt&amp;gt; element is used to provide headings for tables, lists and cast groups. There are errors in the OSIS 2.1.1 manual that use the &amp;lt;tt&amp;gt;&amp;amp;lt;head&amp;amp;gt;&amp;lt;/tt&amp;gt; incorrectly.&lt;br /&gt;
&lt;br /&gt;
==== Marking pre-verse titles ====&lt;br /&gt;
There is no special markup for pre-verse titles. '''Osis2mod''' will determine what titles belong to the book, the chapter and otherwise if the above advice is followed.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
# See also [[OSIS pre-verse titles]].&lt;br /&gt;
&lt;br /&gt;
====Marking parallel passage headings====&lt;br /&gt;
These may be marked in a similar manner to [[OSIS Bibles#Marking_cross-references_notes|cross-reference notes]]. Example: (Welsh Beibl for Matt.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;title type=&amp;quot;parallel&amp;quot;&amp;gt;(&lt;br /&gt;
  &amp;lt;reference type=&amp;quot;parallel&amp;quot; osisRef=&amp;quot;Mark.1.1-Mark.1.8&amp;quot;&amp;gt;Marc 1:1-8&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference type=&amp;quot;parallel&amp;quot; osisRef=&amp;quot;Luke.3.1-Luke.3.18&amp;quot;&amp;gt;Luc 3:1-18&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference type=&amp;quot;parallel&amp;quot; osisRef=&amp;quot;John.1.19-John.1.28&amp;quot;&amp;gt;Ioan 1:19-28&amp;lt;/reference&amp;gt;)&lt;br /&gt;
&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# Each parallel passage has a separate reference element.&lt;br /&gt;
# Each reference element may have the optional attribute type=&amp;quot;parallel&amp;quot;.&lt;br /&gt;
# Each reference element has a valid osisRef attribute. Typically this is for a contiguous range of verses.&lt;br /&gt;
# The displayed reference for each passage uses the locale for the language.&lt;br /&gt;
# Reference elements are typically separated by a semicolon and space.&lt;br /&gt;
# The displayed title is typically enclosed within parentheses, which are not part of any reference element.&lt;br /&gt;
# Localized book names may or may not be abbreviated. If abbreviations are used, ideally they should be used consistently throughout the whole Bible.&lt;br /&gt;
# Abbreviated localized book names may or may not end with a full stop.&lt;br /&gt;
# The localized chapter verse separator may be other than a colon.&lt;br /&gt;
# The range specifier is typically a [http://en.wikipedia.org/wiki/Hyphen-minus hyphen-minus] but alternatively may be an [http://en.wikipedia.org/wiki/Dash#En_dash en dash].&lt;br /&gt;
# Special care is required when:&lt;br /&gt;
:*There is more than one passage listed for the same book, when typically the book name is given only for the first passage.&lt;br /&gt;
:*There is more than one passage listed for the same chapter, when typically the chapter number is given only for the first passage.&lt;br /&gt;
:*The parallel passage is in the same book, when typically the book name is omitted in the displayed reference.&lt;br /&gt;
:*The parallel passage is one or more whole chapters (or psalms), when typically the verse numbers are omitted.&lt;br /&gt;
:*The parallel passage is a range of verses in a &amp;quot;single chapter&amp;quot; book, when typically the chapter number is omitted.&amp;lt;br&amp;gt;Example: Jude 3-24 is sometimes used as parallel with 2 Peter 2.&lt;br /&gt;
:*The parallel passage is a range that spans a chapter divison, and where the range separator might even be an [http://en.wikipedia.org/wiki/Dash#Em_dash em dash] or an [http://en.wikipedia.org/wiki/Dash#En_dash en dash] rather than a hyphen-minus. Example: Exodus 35:30—36:1&lt;br /&gt;
&lt;br /&gt;
===Marking notes===&lt;br /&gt;
The note element can appear in any element that can contain text ''outside'' of the '''header''' element.&lt;br /&gt;
&lt;br /&gt;
NB. The examples in this section include the use of sub-identifiers in '''osisID'''s for notes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;verse sID=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1&amp;quot; n=&amp;quot;1&amp;quot;/&amp;gt;Au commencement &lt;br /&gt;
	Dieu&amp;lt;note osisRef=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1!1&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;en hébreu&amp;lt;/hi&amp;gt; : Élohim,&lt;br /&gt;
	(&amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;pluriel d&amp;lt;/hi&amp;gt;'Éloah, le Dieu suprême), la Déité, &amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;dans&lt;br /&gt;
	le sens absolu&amp;lt;/hi&amp;gt;.&amp;lt;/note&amp;gt; créa les cieux et la terre.&amp;lt;verse eID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;verse sID=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2&amp;quot; n=&amp;quot;2&amp;quot;/&amp;gt;Et la terre était désolation et &lt;br /&gt;
	vide&amp;lt;note osisRef=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2!1&amp;quot; n=&amp;quot;2&amp;quot;&amp;gt;le vide.&amp;lt;/note&amp;gt;, et il y avait des ténèbres&lt;br /&gt;
	sur la face de l'abîme. Et l'Esprit de Dieu planait sur la face des eaux.&amp;lt;verse eID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
# Au commencement Dieu¹ créa les cieux et la terre.&lt;br /&gt;
# Et la terre était désolation et vide², et il y avait des ténèbres sur la face de l'abîme. Et l'Esprit de Dieu planait sur la face des eaux.&lt;br /&gt;
&lt;br /&gt;
*¹ ''en hébreu'': Élohim, (''pluriel d'''Éloah, le Dieu suprême), la Déité, ''dans le sens absolu''.&lt;br /&gt;
*² le vide.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The note should be attached to what it refers to, either ''after'' (as is the case here) or ''before''. There should no additional space surrounding the note, but only what is in the text.&lt;br /&gt;
&lt;br /&gt;
These notes can have any type other than '''crossReference'''.&lt;br /&gt;
&lt;br /&gt;
For more detailed information about the '''note''' element, please refer to sections '''8.3''' to '''8.6''' of the '''OSIS Reference Manual'''.&lt;br /&gt;
&lt;br /&gt;
====Notes with an annotation reference====&lt;br /&gt;
An OSIS file converted correctly from USFM files may contain notes with an annotation reference. The syntax should be like this:&lt;br /&gt;
 &amp;lt;note placement=&amp;quot;foot&amp;quot;&amp;gt;&amp;lt;reference type=&amp;quot;annotateRef&amp;quot; osisRef=&amp;quot;Matt.1.19&amp;quot;&amp;gt;1:19&amp;lt;/reference&amp;gt; The footnote informational text is here.&amp;lt;/note&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An annotation reference is usually generated when converting from USFM for notes containing the tag &amp;lt;tt&amp;gt;\fr &amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;\xo &amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;The human readable reference is typically just the chapter and verse number, as in this example.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example is for a note tagged for a word in Matt.1.19. and it illustrates that the reference element has two attributes.&lt;br /&gt;
* &amp;lt;tt&amp;gt;type=&amp;quot;annotateRef&amp;quot;&amp;lt;/tt&amp;gt; &amp;amp;ndash; this defines the note as having an annotation reference&lt;br /&gt;
* &amp;lt;tt&amp;gt;osisRef=&amp;quot;Matt.1.19&amp;quot;&amp;lt;/tt&amp;gt; &amp;amp;ndash; this specifies the origin of the note, and makes the &amp;quot;1:19&amp;quot; display as a link in the footnote panel.&lt;br /&gt;
The space at the start of the footnote text is required in order to separate the reference from the text.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Marking cross-references notes====&lt;br /&gt;
SWORD provides the ability for a user to show or hide cross-references. To achieve this you embed one or more &amp;lt;tt&amp;gt;&amp;amp;lt;reference&amp;amp;gt;&amp;lt;/tt&amp;gt; elements in a &amp;lt;tt&amp;gt;&amp;amp;lt;note type=&amp;quot;crossReference&amp;quot;&amp;amp;gt;...&amp;amp;lt;/note&amp;amp;gt;&amp;lt;/tt&amp;gt;. If this is not done, then the cross-references will always show inline in the text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;note type=&amp;quot;crossReference&amp;quot; n=&amp;quot;t&amp;quot; osisID=&amp;quot;Jer.24.7!crossReference.t&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Jer.32.39&amp;quot;&amp;gt;ch. 32:39&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Deut.30.6&amp;quot;&amp;gt;Deut. 30:6&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Ezek.11.19&amp;quot;&amp;gt;Ezek. 11:19&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Ezek.36.26-Ezek.36.27&amp;quot;&amp;gt;36:26, 27&amp;lt;/reference&amp;gt;.&lt;br /&gt;
&amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a breakdown.&lt;br /&gt;
&lt;br /&gt;
Regarding the &amp;lt;tt&amp;gt;&amp;amp;lt;note&amp;amp;gt;&amp;lt;/tt&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;type=&amp;quot;crossReference&amp;quot;&amp;lt;/tt&amp;gt; is one of the predefined OSIS note types. SWORD looks for this value to show/hide cross-references.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;n=&amp;quot;t&amp;quot;&amp;lt;/tt&amp;gt; is the marker for the cross-reference note. This can be either of the following:&lt;br /&gt;
:# A serially allocated index letter in the range &amp;lt;tt&amp;gt;a-z&amp;lt;/tt&amp;gt;.&lt;br /&gt;
:# A custom xref note marker symbol (or scheme) as may be specified by the author/translator.&lt;br /&gt;
:btw. Source text [[Converting SFM Bibles to OSIS|converted from USFM]] usually adopts method 1.&lt;br /&gt;
&lt;br /&gt;
:The given '''osisID''' is based upon the location of the note. In order to not conflict with the verse's osisID and to construct a unique id, the ! (extension mark, ''aka'' sub-identifier) syntax is used. This is further qualified by the note's '''type''' and '''n''' value, separated by a dot.&lt;br /&gt;
&lt;br /&gt;
:Observe the punctuation marks between references and (optionally) after the last reference. There is typically a space after each semicolon.&lt;br /&gt;
&lt;br /&gt;
:This note pertains to a single verse and it is given an '''osisRef'''.&lt;br /&gt;
&lt;br /&gt;
Regarding the &amp;lt;tt&amp;gt;&amp;amp;lt;reference&amp;amp;gt;&amp;lt;/tt&amp;gt; elements:&lt;br /&gt;
&lt;br /&gt;
:The &amp;lt;tt&amp;gt;&amp;amp;lt;reference&amp;amp;gt;&amp;lt;/tt&amp;gt; element is replaced by SWORD with a link to the reference with the text of the element being shown as link text.&amp;lt;ref&amp;gt;Some front-ends (e.g. Xiphos, PocketSword) never display the raw cross-reference text (the original text wrapped within each '''reference''' element. Instead they display a preview of each cross-referenced linked verse.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:While the '''osisRef''' can point to multiple verses, most SWORD applications cannot handle a link that goes to more than one verse or a contiguous range of verses. Xiphos (for example) just generates a verse list in the side panel.&lt;br /&gt;
&lt;br /&gt;
:Here we see that each '''reference''' element is separated by punctuation (the semicolon at the end of each line).&lt;br /&gt;
&lt;br /&gt;
Some of the notes given under [[OSIS Bibles#Marking_parallel_passage_headings|Marking parallel passage headings]] are also applicable here.&lt;br /&gt;
&lt;br /&gt;
For non-English Bibles, the punctuation marks used as separators in displayed Scripture references can be different. Even with English, there can be variations between Bible versions.&lt;br /&gt;
&lt;br /&gt;
Special care is required when the cross-reference includes additional prose text which is not a scripture reference. This often arises in [[Converting SFM Bibles to OSIS|Bibles converted from SFM]]. Unless and until this issue is fixed, it becomes almost impossible to parse the reference elements such that the OSIS references can be added automatically.&lt;br /&gt;
&lt;br /&gt;
Further care is often required to deal with minor errors of punctuation that translators are prone to make in footnotes with cross-references.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Marking references in Right to Left scripts====&lt;br /&gt;
To ensure that the ''human readable'' reference is correctly displayed in Bibles with a '''Right to Left''' script, the translator[s] may have made judicious use of the special Unicode character '''RIGHT TO LEFT MARK''' ['''RLM'''] (U+200F).&lt;br /&gt;
&lt;br /&gt;
The RLM being invisible, its presence may easily go unnoticed, yet script developers need to be aware of it. The procedure to convert the ''human readable'' reference to the ''machine readable'' '''osisRef''' value must ensure that the RLM is deleted from the latter.&lt;br /&gt;
&lt;br /&gt;
=====Technical details=====&lt;br /&gt;
The key to understanding this is the exact placements of the '''RLM''' in references in a RtoL script.&lt;br /&gt;
&lt;br /&gt;
* before the colon separator between chapter and verse &lt;br /&gt;
* before the hyphen/minus (or endash) used as the verse range separator &lt;br /&gt;
* before an ''ordinary'' comma between verse numbers in a list (not required when the ''Arabic'' comma is used)&lt;br /&gt;
* before the chapter number in the caller reference, because that becomes the start of the displayed footnote in SWORD apps.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
Here's a '''note''' element in the OSIS source: (of the UrduGeo module)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;note placement=&amp;quot;foot&amp;quot;&amp;gt;&amp;lt;reference type=&amp;quot;annotateRef&amp;quot; osisRef=&amp;quot;2Kgs.12.4&amp;quot;&amp;gt;‏12‏:4&amp;lt;/reference&amp;gt; &amp;lt;catchWord&amp;gt;مردم شماری کے ٹیکس: &amp;lt;/catchWord&amp;gt;دیکھئے &amp;lt;seg type=&amp;quot;x-nested&amp;quot;&amp;gt;&amp;lt;reference osisRef=&amp;quot;Exod.11.16-Exod.11.30&amp;quot;&amp;gt;خروج 11‏:16‏-30&amp;lt;/reference&amp;gt;&amp;lt;/seg&amp;gt; &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here's the same Unicode text converted to PCRE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;note placement=&amp;quot;foot&amp;quot;&amp;gt;&amp;lt;reference type=&amp;quot;annotateRef&amp;quot; osisRef=&amp;quot;2Kgs.12.4&amp;quot;&amp;gt;\x{200F}12\x{200F}:4&amp;lt;/reference&amp;gt; &amp;lt;catchWord&amp;gt;\x{0645}\x{0631}\x{062F}\x{0645} \x{0634}\x{0645}\x{0627}\x{0631}\x{06CC} \x{06A9}\x{06D2} \x{0679}\x{06CC}\x{06A9}\x{0633}: &amp;lt;/catchWord&amp;gt;\x{062F}\x{06CC}\x{06A9}\x{06BE}\x{0626}\x{06D2} &amp;lt;seg type=&amp;quot;x-nested&amp;quot;&amp;gt;&amp;lt;reference osisRef=&amp;quot;Exod.11.16-Exod.11.30&amp;quot;&amp;gt;\x{062E}\x{0631}\x{0648}\x{062C} 11\x{200F}:16\x{200F}-30&amp;lt;/reference&amp;gt;&amp;lt;/seg&amp;gt; &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe the '''four''' instances of &amp;lt;code&amp;gt;\x{200F}&amp;lt;/code&amp;gt; which is the '''RLM''' described above.&lt;br /&gt;
&lt;br /&gt;
:''Further details to be added to illustrate the footnote as displayed in Xiphos.''&lt;br /&gt;
&lt;br /&gt;
===Marking variants===&lt;br /&gt;
SWORD recognizes the element '''seg''' with '''type=&amp;quot;x-variant&amp;quot;''' as marking variants present in different versions of a text&amp;lt;ref&amp;gt;This feature requires the front-end to have been compiled with SWORD version 1.7 or later.&amp;lt;/ref&amp;gt;. The attribute '''subType''' should be added, with a value of '''&amp;quot;x-1&amp;quot;''' or '''&amp;quot;x-2&amp;quot;''' to indicate whether the reading is the primary or secondary variant. At present, SWORD supports only 2 different readings per text. The method is illustrated below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The text of the Bible&lt;br /&gt;
&amp;lt;seg type=&amp;quot;x-variant&amp;quot; subType=&amp;quot;x-1&amp;quot;&amp;gt;may &amp;lt;/seg&amp;gt;&lt;br /&gt;
&amp;lt;seg type=&amp;quot;x-variant&amp;quot; subType=&amp;quot;x-2&amp;quot;&amp;gt;can &amp;lt;/seg&amp;gt;&lt;br /&gt;
contain variant readings.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This illustrates a primary reading &amp;quot;may &amp;quot; and a secondary reading &amp;quot;can &amp;quot;. Observe the space included in both seg elements. If these spaces were omitted, the variant words would be joined when displaying all readings.&lt;br /&gt;
&lt;br /&gt;
==== Filter ====&lt;br /&gt;
Variant readings in OSIS modules may be switched by the SWORD engine when the module conf file includes:&lt;br /&gt;
 GlobalOptionFilter=OSISVariants&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
* The TR module contains 246 locations where two such variants are marked.&lt;br /&gt;
* The WHNU module contains 1473 locations where two variants are marked.&lt;br /&gt;
&lt;br /&gt;
==== SWORD implementation ====&lt;br /&gt;
The SWORD API provides for these three choices:&lt;br /&gt;
 [Primary Reading|Secondary Reading|All Readings]&lt;br /&gt;
Example: In Xiphos version 3.1.6 or later, the module context menu provides these three options for any module that has variants.&lt;br /&gt;
&lt;br /&gt;
SWORD does not supply its own delimiters to distinguish between variants. When displaying text that contains variants, it may not be obvious where these are located.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Bible Technologies Group===&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
References below that use the domain '''www.bibletechnologies.net''' will no longer work.&lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
===Valid OSIS test===&lt;br /&gt;
A valid XML document one that is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define ''how'' entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
Many programs capable of schema validation exist. Most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  The Windows based text editor [http://en.wikipedia.org/wiki/Notepad%2B%2B Notepad++] supports Unicode and has an [https://github.com/morbac/xmltools XML Tools] plugin which can perform syntax checking and validation.&lt;br /&gt;
&lt;br /&gt;
There are also some online facilities for XML validation, e.g. [http://www.freeformatter.com/xml-validator-xsd.html].&lt;br /&gt;
&lt;br /&gt;
====xmllint====&lt;br /&gt;
libxml2, available for Linux, Windows, &amp;amp; MacOS, includes a command-line validator called xmllint. To check that a document is valid against OSIS schema, use the following command. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xmllint --noout --schema http://crosswire.org/osis/osisCore.2.1.1.xsd myfile.osis.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# Internet access is required to validate your document using a remote schema.&lt;br /&gt;
# Even if you use a local copy of the OSIS schema, it calls on [http://www.w3.org/XML/1998/namespace] via HTTP. &lt;br /&gt;
# Having a VPN connection may sometimes interfere with the use of XML validation tools.&lt;br /&gt;
# Some firewalls or proxies also prevent or interfere with the use of these tools.&lt;br /&gt;
&lt;br /&gt;
To install xmllint, simply install libxml2 via your distribution's standard package management system in Linux or download the Windows binary from our [http://www.crosswire.org/ftpmirror/pub/sword/utils/win32/ mirror]. You also need to install &amp;quot;libxml2-utils&amp;quot;. In this last package is program &amp;quot;xmllint&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====lxml (Python)====&lt;br /&gt;
[http://lxml.de/ lxml] is a toolkit that can be used within a Python script to validate an XML file.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Online XML Validators====&lt;br /&gt;
The external links section of http://en.wikipedia.org/wiki/XML_Validation lists at least three online validators. Some or all of these can validate against external XML schema.&lt;br /&gt;
&lt;br /&gt;
==Creating a SWORD Module==&lt;br /&gt;
Use [[osis2mod]] to create the module.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[OSIS]] &amp;amp;ndash; a partial list of other OSIS related pages and external links.&lt;br /&gt;
&lt;br /&gt;
*[[Converting SFM Bibles to OSIS]] &amp;amp;ndash; describes how to prepare a single OSIS XML file for a Biblical text supplied as several USFM files.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/List_of_Bible_verses_not_included_in_modern_translations List of Bible verses not included in modern translations]&lt;br /&gt;
&lt;br /&gt;
* [http://xml.coverpages.org/DeRoseEML2004.pdf Markup Overlap: A Review and a Horse] &amp;amp;ndash; Steven DeRose (2004) Bible Technologies Group.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides|OSIS Bibles]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSIS|OSIS Bibles]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Morphology|OSIS Bibles]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16997</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16997"/>
				<updated>2020-12-17T21:05:50Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* How-To name your files */ Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflects the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead.&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email.&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16996</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16996"/>
				<updated>2020-12-15T09:46:57Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Link to a git Repository */ Remove git cloning --branch tag section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflect the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead.&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email.&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16995</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16995"/>
				<updated>2020-12-14T20:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflect the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead.&lt;br /&gt;
&lt;br /&gt;
== Link to a git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email.&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.&lt;br /&gt;
* For upgraded modules, we'll clone tagged releases, so you have to mark your release by running &amp;lt;code&amp;gt;git tag &amp;lt;version&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16994</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16994"/>
				<updated>2020-12-14T20:35:57Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Changes to reflect the upgraded publishing framework&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
----&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: crimson&amp;quot;&amp;gt;For information on module licensing''' → please look at [[DevTools:Module Submission and Copyrights]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How-To Name your module =&lt;br /&gt;
Each module needs a name that be used as a unique identifier. Valid characters for the name are limited to alphanumeric characters, numeric characters and underscore. PCRE class [A-Za-z0-9\_].&lt;br /&gt;
&lt;br /&gt;
Normalized names of module contains usually&amp;lt;ref name=&amp;quot;Eng&amp;quot;&amp;gt;For historical reasons, modules in English do not have any language prefix.&amp;lt;/ref&amp;gt; 3 letters for language, followed by a short name descibing the work. Language is encoded in ISO 639-3 code. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes.&lt;br /&gt;
&lt;br /&gt;
The name has to be set in CamelCase format. Example for The French Bible David Martin 1707: &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;bdm&amp;quot;&amp;gt;The published year was added to differentiate this version from successive revisions in 1744, 1855. Otherwise we could just have named it FreBDM.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How-To name your files =&lt;br /&gt;
The source files reflect the name of your module in '''lowercase''' followed by an extension.&lt;br /&gt;
&lt;br /&gt;
For the configuration file, the extension is &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Extensions for the text file:&lt;br /&gt;
&lt;br /&gt;
* OSIS: &amp;lt;code&amp;gt;.osis.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TEI: &amp;lt;code&amp;gt;.tei.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* VPL: &amp;lt;code&amp;gt;.vpl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* IMP: &amp;lt;code&amp;gt;.imp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ThML: &amp;lt;code&amp;gt;.thml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, for the &amp;lt;code&amp;gt;FreBDM1707&amp;lt;/code&amp;gt; module encoded in OSIS, we have &amp;lt;code&amp;gt;frebdm1707.osis.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frebdm1707.conf&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
= How-To prepare your files =&lt;br /&gt;
&lt;br /&gt;
We will accept only plain texts in VPL&amp;lt;ref name=&amp;quot;vpl&amp;quot;&amp;gt;Only for Bibles in KJV versification&amp;lt;/ref&amp;gt;  or texts marked up in OSIS or TEI, with the sole exception texts based on CCEL documents that are marked up in ThML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Check your OSIS before submitting ==&lt;br /&gt;
&lt;br /&gt;
OSIS 2.1 is now the preferred format for Bibles, Commentaries and General Books. TEI is the prefered format for dictionaries.&lt;br /&gt;
&lt;br /&gt;
OSIS texts need to have the CamelCase module name as &amp;lt;code&amp;gt;workID&amp;lt;/code&amp;gt; and an appropriate &amp;lt;code&amp;gt;osisRefWork&amp;lt;/code&amp;gt; entry within the appropriate header section. The document language needs to be set correctly, ISO 639-1 codes are preferred, and ISO 639-3 codes when ISO 639-1 codes do not exist for the given language. Examples:&lt;br /&gt;
&lt;br /&gt;
Bible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Bible&amp;quot; xml:lang=&amp;quot;he&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;Commentary&amp;quot; xml:lang=&amp;quot;gr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
General Book:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;osisText osisIDWork=&amp;quot;MyModule&amp;quot; osisRefWork=&amp;quot;GenBook&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Please validate your OSIS or TEI text ==&lt;br /&gt;
See: Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
&lt;br /&gt;
== Check your configuration file ==&lt;br /&gt;
We require that the following minimum set of module configuration fields are included: &amp;lt;code&amp;gt;Description&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;About&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DistributionLicense&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;TextSource&amp;lt;/code&amp;gt;. Ensure that your module complies with our stated copyright policy.&lt;br /&gt;
&lt;br /&gt;
== Copyrighted Material ==&lt;br /&gt;
If your got permission to distribute a new module which is under copyright, please send a copy of the authorization in a file named copyright.&amp;lt;extension&amp;gt; like &amp;lt;code&amp;gt;copyright.pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copyright.png&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
= Submit your files =&lt;br /&gt;
Submit only source files. Do not submit built modules that you have imported to Sword format.&lt;br /&gt;
&lt;br /&gt;
Send an email to [mailto:modules@crosswire.org modules@crosswire.org] describing the module and your files with one of the options below:&lt;br /&gt;
&lt;br /&gt;
== Files attached ==&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to zip your files, as they are text files they will be highly compressed with the double benefit to reduce storage and make transmitting them much easier.&lt;br /&gt;
Feel free to attach your zip file to the email sent to [mailto:modules@crosswire.org modules@crosswire.org]. Actually the biggest file (30MB) we have is 3MB once zipped.&lt;br /&gt;
&lt;br /&gt;
== Link to a zip file ==&lt;br /&gt;
&lt;br /&gt;
If you own a repository on the Internet, you may also store your zipped file on your repository and send the URL to this file instead.&lt;br /&gt;
&lt;br /&gt;
== Link to git Repository ==&lt;br /&gt;
&lt;br /&gt;
If you built your module on a public Git/GitLab/GitHub, you may want to share the &amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt; URL in the email.&lt;br /&gt;
&lt;br /&gt;
We do accept git URL but there are some limitations, though:&lt;br /&gt;
&lt;br /&gt;
* We expect to run into a flat structure, so Module files (source, .conf) shouldn't go in a subdir. Optional files like copyright, style.css should be at the root of your repository as well. Only multimedia files (audio/video/images) should go in their own subdir, typically &amp;lt;code&amp;gt;images&amp;lt;/code&amp;gt; for dictionaries.&lt;br /&gt;
* For upgraded modules, we'll clone tagged releases, so you have to mark your release by running &amp;lt;code&amp;gt;git tag &amp;lt;version&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If you keep the original source text in plain format, USFM ot whatever in a subdir, please add this subdir to .gitignore as we are not very interested in cloning it.&lt;br /&gt;
&lt;br /&gt;
It is sometimes easier to run &amp;lt;code&amp;gt;git archive&amp;lt;/code&amp;gt; and attach the resulting zip file to the email.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center&amp;quot;&amp;gt;'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page.&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Module_Submission_and_Copyrights&amp;diff=16993</id>
		<title>DevTools:Module Submission and Copyrights</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Module_Submission_and_Copyrights&amp;diff=16993"/>
				<updated>2020-12-14T16:46:50Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CrossWise does respect copyrights and takes in general a very cautious  view in these matters.&lt;br /&gt;
&lt;br /&gt;
==General Policy==&lt;br /&gt;
&lt;br /&gt;
If there is a hint of a doubt regarding the public domain status we do not publish a text unless we have permissions, either explicitly relating to us or via free licensing (Creative Commons and the like). If we believe we require explicit permissions then we welcome the assistance of community members to obtain these, but in the end it will always be the module team or the director who needs to receive the permissions from the copyright owner.&lt;br /&gt;
&lt;br /&gt;
In this way we have on occasion forgone texts we really would like to publish and other projects felt free to publish, but we still believe that this approach has born fruit.&lt;br /&gt;
&lt;br /&gt;
There are occasionally situations where people decided that the only likely approach to convince a copyright owner to grant permissions is to create a module as showcase. This is, dependent on the legislation at place, a potentially very risky undertaking, but clearly who does so believes that the risk is acceptable for them personally or , thanks to local legislation is not a problem for them. As long as such modules are not discussed (explicitely or implicitly) or offered on the list for testing purposes or otherwise and as long as these people do not describe themselves as CrossWire volunteers to the publishers, then we as a community do not take a further view on this.&lt;br /&gt;
&lt;br /&gt;
Beyond the above, some jurisdictions will permit private use, reuse and transformation of texts otherwise restricted. This is great for individuals, but it does not enable us as an entity to assist with this. Please do not discuss your attempts in this way on the mailing list. You are of course allowed to discuss technical problems around encoding on the list, but making such private use modules available for others via the list or otherwise is not something we want to see or be involved in.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
Below some typical examples encountered in the years &lt;br /&gt;
&lt;br /&gt;
# &amp;quot;I am working on this Bible text in my language. The text is ancient, around 200 years old, but still very relevant for my country's church. I have put my source text into Github and would be grateful about some coding advice&amp;quot; thanks, no questions, all are happy. &lt;br /&gt;
# &amp;quot; I am the technical guy of the Bible society of X and we want to make our new translation wider available. Can some help me to fix A, B and C , I can make the full module available to testers. Our director will write a letter to your module team regarding distribution rights as module&amp;quot; thanks no problem. Discuss your preliminaries and technical examples with original text if necessary here on the list. &lt;br /&gt;
# &amp;quot;I have obtained the text of the NIV by scraping this website.... Can you help to fix my module?&amp;quot; Sorry, stop right here, we do not want any discussion about this and certainly do not want it here.&lt;br /&gt;
# I have created a module of this translation into my language , the translation is from 1960, still in copyright, but our bible society is publishing the text with a license allowing free redistribution as long As the text remains unchanged. &amp;quot; &amp;quot; thanks, sounds really interesting, can you point us at where it says that you can freely redistribute?&amp;quot;&lt;br /&gt;
# &amp;quot;I believe that the Bible should never be copyrighted and have created a collection of modules of modern translations to make use of my belief.&amp;quot; No debate necessary, move on please. But do not stay here. &lt;br /&gt;
# &amp;quot;I am making use of this scholarly edition, and while it is only 30 years old, I believe I am justified to make a module because scientist crave nothing more than exposure and use of the text as a module should be allowed under academic freedom. I have further interesting theories of copyright exemptions in which only I believe, but I am sure I am right!&amp;quot;, &amp;quot; well, we do not agree and we do not recognise your exemptions on the law as we know it, so please do not advertise or discuss your new modules here. &amp;quot;&lt;br /&gt;
# &amp;quot;I am making use of this scholarly edition and the editors and copyright holders are really keen to see it in module form, where can they send a letter to confirm this?&amp;quot; &amp;quot;Right here, right here, many thanks, brilliant news&amp;quot;&lt;br /&gt;
# &amp;quot;My country is an interesting one, as it has never subscribed to the Berne convention, but it introduced copyright in 1987. Everything before is under public domain. Can I publish this Bible in my language, it was published in 1985.?&amp;quot; Ah, this is an interesting one...&lt;br /&gt;
&lt;br /&gt;
==Mistaken publication==&lt;br /&gt;
&lt;br /&gt;
We will withdraw as fast as we technically can any text we suspect of being incorrectly published. If you believe that a text is wrongly published please send an email to modules@crosswire.org&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
We are not lawyers, what we have learned over the years is condensed above and it boils down to - we want to get it right and if we err, we rather err on side of the caution.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Module Submission and Copyrights]]&lt;br /&gt;
[[Category:Copyright|Module Submission and Copyrights]]&lt;br /&gt;
[[Category:Modules|Module Submission and Copyrights]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Module_Submission_and_Copyrights&amp;diff=16992</id>
		<title>DevTools:Module Submission and Copyrights</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Module_Submission_and_Copyrights&amp;diff=16992"/>
				<updated>2020-12-14T16:45:28Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CrossWise does respect copyrights and takes in general a very cautious  view in these matters.&lt;br /&gt;
&lt;br /&gt;
==General Policy==&lt;br /&gt;
&lt;br /&gt;
If there is a hint of a doubt regarding the public domain status we do not publish a text unless we have permissions, either explicitly relating to us or via free licensing (Creative Commons and the like). If we believe we require explicit permissions then we welcome the assistance of community members to obtain these, but in the end it will always be the module team or the director who needs to receive the permissions from the copyright owner.&lt;br /&gt;
&lt;br /&gt;
In this way we have on occasion forgone texts we really would like to publish and other projects felt free to publish, but we still believe that this approach has born fruit.&lt;br /&gt;
&lt;br /&gt;
There are occasionally situations where people decided that the only likely approach to convince a copyright owner to grant permissions is to create a module as showcase. This is, dependent on the legislation at place, a potentially very risky undertaking, but clearly who does so believes that the risk is acceptable for them personally or , thanks to local legislation is not a problem for them. As long as such modules are not discussed (explicitely or implicitly) or offered on the list for testing purposes or otherwise and as long as these people do not describe themselves as CrossWire volunteers to the publishers, then we as a community do not take a further view on this.&lt;br /&gt;
&lt;br /&gt;
Beyond the above, some jurisdictions will permit private use, reuse and transformation of texts otherwise restricted. This is great for individuals, but it does not enable us as an entity to assist with this. Please do not discuss your attempts in this way on the mailing list. You are of course allowed to discuss technical problems around encoding on the list, but making such private use modules available for others via the list or otherwise is not something we want to see or be involved in.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
Below some typical examples encountered in the years &lt;br /&gt;
&lt;br /&gt;
# &amp;quot;I am working on this Bible text in my language. The text is ancient, around 200 years old, but still very relevant for my country's church. I have put my source text into Github and would be grateful about some coding advice&amp;quot; thanks, no questions, all are happy. &lt;br /&gt;
# &amp;quot; I am the technical guy of the Bible society of X and we want to make our new translation wider available. Can some help me to fix A, B and C , I can make the full module available to testers. Our director will write a letter to your module team regarding distribution rights as module&amp;quot; thanks no problem. Discuss your preliminaries and technical examples with original text if necessary here on the list. &lt;br /&gt;
# &amp;quot;I have obtained the text of the NIV by scraping this website.... Can you help to fix my module?&amp;quot; Sorry, stop right here, we do not want any discussion about this and certainly do not want it here.&lt;br /&gt;
# I have created a module of this translation into my language , the translation is from 1960, still in copyright, but our bible society is publishhing the text with a license allowing free redistribution as long As the text remains unchanged. &amp;quot; &amp;quot; thanks, sounds really interesting, can you point us at where it says that you can freely redistribute?&amp;quot;&lt;br /&gt;
# &amp;quot;I believe that the Bible should never be copyrighted and have created a collection of modules of modern translations to make use of my belief.&amp;quot; No debate necessary, move on please. But do not stay here. &lt;br /&gt;
# &amp;quot;I am making use of this scholarly edition, and while it is only 30 years old, I believe I am justified to make a module because scientist crave nothing more than exposure and use of the text as a module should be allowed under academic freedom. I have further interesting theories of copyright exemptions in which only I believe, but I am sure I am right!&amp;quot;, &amp;quot; well, we do not agree and we do not recognise your exemptions on the law as we know it, so please do not advertise or discuss your new modules here. &amp;quot;&lt;br /&gt;
# &amp;quot;I am making use of this scholarly edition and the editors and copyright holders are really keen to see it in module form, where can they send a letter to confirm this?&amp;quot; &amp;quot;Right here, right here, many thanks, brilliant news&amp;quot;&lt;br /&gt;
# &amp;quot;My country is an interesting one, as it has never subscribed to the Berne convention, but it introduced copyright in 1987. Everything before is under public domain. Can I publish this Bible in my language, it was published in 1985.?&amp;quot; Ah, this is an interesting one... &lt;br /&gt;
&lt;br /&gt;
==Mistaken publication==&lt;br /&gt;
&lt;br /&gt;
We will withdraw as fast as we technically can any text we suspect of being incorrectly published. If you believe that a text is wrongly published please send an email to modules@crosswire.org&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
We are not lawyers, what we have learned over the years is condensed above and it boils down to - we want to get it right and if we err, we rather err on side of the caution.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Module Submission and Copyrights]]&lt;br /&gt;
[[Category:Copyright|Module Submission and Copyrights]]&lt;br /&gt;
[[Category:Modules|Module Submission and Copyrights]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16987</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Module_Submission&amp;diff=16987"/>
				<updated>2020-10-27T20:31:10Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Fix confmaker.pl link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Please note: Do not edit this page unless you are actually ''directly'' involved with uploading modules onto the server. If you have a comment or addition to make, but you are not part of this particular effort, please use talk page'''&lt;br /&gt;
&lt;br /&gt;
''For information on module licensing please look at [[DevTools:Module Submission and Copyrights]]''&lt;br /&gt;
&lt;br /&gt;
Module submissions are to a large extent now automated. &lt;br /&gt;
&lt;br /&gt;
To make it simple (and subsequently fast) please prepare your modules in following fashion&lt;br /&gt;
&lt;br /&gt;
# Please check and validate your OSIS or TEI text. Please create a test module for yourself and check it for typical mistakes:&lt;br /&gt;
## Poorly encoded verse ranges, empty verses&lt;br /&gt;
## Wrong Bible book identifiers. The identifiers are ''not'' abbreviations in the normal sense - even though they look like English language abbreviations. They are intended to be machine readable internal identifiers. Mistakes will render your module unreadable&lt;br /&gt;
# OSIS texts need to have the CamelCase module name as workID and a 'osisRefWork=&amp;quot;Bible&amp;quot;' or 'osisRefWork=&amp;quot;Commentary&amp;quot;' entry within the appropriate header section. &lt;br /&gt;
# The document language needs to be set correctly&lt;br /&gt;
# If you can run Perl please run confmaker.pl on your text (found in the [https://crosswire.org/svn/sword-tools/trunk/modules/conf/confmaker.pl sword-tools repository]). Sometimes OSIS texts have spurious tag entries which are picked up by the script and set as module options in the conf file. Our scripts ''will'' pick up e.g. the single title element you have not even noticed and they will realise there is a single footnote somewhere - and set the relevant option in the module conf file. To undo this by hand is tedious and ''will'' slow down publication.  If you do not want your module at this moment in time to have that kind of entry in its conf file, please do not submit texts containing such elements. You may have started a next stage in your module making already - but submitted OSIS texts should be clean and solely containing what you are willing to see published.  &lt;br /&gt;
# The preparation of our conf files is automated. Please do not submit a complete conf file, but restrict yourself to the non-calculated elements. If you do otherwise, we will need to delete the irrelevant lines, which is prone to create confusion. Automatically added entries are the [ModuleName] line, all filter options, size, language, data path, osis version, sword version date, minimum sword version, scope. &lt;br /&gt;
# For visual reasons it is good to have your history entries sorted in ascending order at the very bottom of your conf file fragment.&lt;br /&gt;
# As modules are potentially updated for various reasons (tool updates etc) in between releases of new source texts, the module version and the latest history entry should not be in the conf file fragment submitted but in your covering email. These entries added in a different way to your module.  &lt;br /&gt;
&lt;br /&gt;
'''If you do not comply with the above your module submission might end up being deprioritised and will certainly not get uploaded as fast as it could be otherwise'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=OSIS_Bibles&amp;diff=16981</id>
		<title>OSIS Bibles</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=OSIS_Bibles&amp;diff=16981"/>
				<updated>2020-07-31T12:42:57Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Added link to the updated OSIS schema&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OSIS==&lt;br /&gt;
OSIS is an XML Schema definition for Bibles and other Biblical research texts, which enables ministries and other organizations to collaborate more easily.  Traditionally, these organizations have stored their documents in disparate, proprietary markups, making it difficult when they wish to share in service with each other.  OSIS provides a common markup for multiple visions.&lt;br /&gt;
&lt;br /&gt;
CrossWire is committed to supporting the OSIS initiative.  We have developed OSIS import and export tools which work with our SWORD engine, making OSIS documents available to all of our SWORD software.&lt;br /&gt;
&lt;br /&gt;
The latest OSIS Schema definition and supporting information was once available at: [http://www.bibletechnologies.net/].&amp;lt;BR&amp;gt; However, the '''BTG''' no longer exists. See http://ebible.org/osis/&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
This page is for practical examples of how to encode a Bible in OSIS 2.1.1 for building a SWORD module with [[osis2mod]]. It represents CrossWire's experience and best practices in creating modules.&lt;br /&gt;
&lt;br /&gt;
Every OSIS SWORD module must be created from a well-formed and valid OSIS 2.1.1 document. While it is a desirable goal for any such document to be acceptable, SWORD has some particular requirements which are discussed here.&lt;br /&gt;
&lt;br /&gt;
The schema for '''OSIS 2.1.1''' that was formally at [http://www.bibletechnologies.net/osisCore.2.1.1.xsd] is preserved at http://crosswire.org/osis/osisCore.2.1.1.xsd.   &lt;br /&gt;
&amp;lt;br /&amp;gt;We are maintaining an updated schema at: http://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd that may be used in place of the official BibleTechnologies URL for validating OSIS files.&lt;br /&gt;
&amp;lt;br /&amp;gt;See also [[OSIS_211_CR#CrossWire_updated_schema| CrossWire updated schema]].&lt;br /&gt;
&lt;br /&gt;
The March 2006 version of the OSIS Manual may be found  [http://www.crosswire.org/OSIS/OSIS%202.1.1%20User%20Manual%2006March2006.pdf here] (PDF).&lt;br /&gt;
&lt;br /&gt;
A good example of an OSIS document can be found at http://www.crosswire.org/~dmsmith/kjv2006.&lt;br /&gt;
&amp;lt;BR&amp;gt;The latest releases are found under http://www.crosswire.org/~dmsmith/kjv2011/&lt;br /&gt;
&lt;br /&gt;
See also [[OSIS Book Abbreviations|OSIS Book Name Abbreviations]].&lt;br /&gt;
&lt;br /&gt;
==General structure==&lt;br /&gt;
&lt;br /&gt;
An OSIS document is a ''well-formed XML'' document, valid according to the ''OSIS schema''.&lt;br /&gt;
You can the most current version [http://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd here].&amp;lt;ref&amp;gt;See also [[OSIS Tutorial#The_Root_Element|root element]]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To produce a Bible, you can use this template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;osis&lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
	xmlns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&lt;br /&gt;
	xmlns:osis=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace http://www.bibletechnologies.net/osisCore.2.1.1.xsd&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;osisText osisIDWork=&amp;quot;{NAME}&amp;quot; osisRefWork=&amp;quot;bible&amp;quot; xml:lang=&amp;quot;{LANG}&amp;quot; canonical=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;header&amp;gt;&lt;br /&gt;
			{HEADER}&lt;br /&gt;
		&amp;lt;/header&amp;gt;&lt;br /&gt;
		&amp;lt;div type=&amp;quot;bookGroup&amp;quot;&amp;gt;&lt;br /&gt;
			{BODY}&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/osisText&amp;gt;&lt;br /&gt;
&amp;lt;/osis&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the following values:&lt;br /&gt;
; {NAME}: Normalized name of the Bible version (Usually 3 letters for language, 3 for translation)&lt;br /&gt;
; {LANG}: IETF language code-- ISO 639-1 codes are preferred, and ISO 639-3 codes are preferred when ISO 639-1 codes do not exist for the given language. See [http://www.sil.org/iso639-3/codes.asp] for a list of codes. &lt;br /&gt;
; {HEADER}: Description of the included text; see below&lt;br /&gt;
; {BODY}: Text; see below&lt;br /&gt;
&lt;br /&gt;
For text without any character outside ASCII, you can use US-ASCII encoding (usually for english text). For every other language, please use UTF-8 and NFC. See the [[OSIS Bibles#Tools|tools]] section if you need to convert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
===Header===&lt;br /&gt;
This is the minimum contents of the header required for validation. It is also what &amp;lt;tt&amp;gt;usfm2osis.pl&amp;lt;/tt&amp;gt; produces. A valid OSIS header may include more than this.&lt;br /&gt;
 &amp;lt;header&amp;gt;  &lt;br /&gt;
   &amp;lt;work osisWork=&amp;quot;{Name}&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/header&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Body===&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of the body content:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;bookGroup&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;title&amp;gt;Old Testament&amp;lt;/title&amp;gt;&lt;br /&gt;
	&amp;lt;div type=&amp;quot;book&amp;quot; osisID=&amp;quot;Gen&amp;quot; canonical=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;title type=&amp;quot;main&amp;quot; short=&amp;quot;Genesis&amp;quot;&amp;gt;Genesis&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;chapter osisID=&amp;quot;Gen.1&amp;quot; chapterTitle=&amp;quot;CHAPTER 1.&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;CHAPTER 1.&amp;lt;/title&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;In the beginning ...&lt;br /&gt;
			&amp;lt;verse eID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;And the earth was without form ...&lt;br /&gt;
			&amp;lt;verse eID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;&lt;br /&gt;
			...&lt;br /&gt;
		&amp;lt;/chapter&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# The top level bookGroup division is not mandatory.&lt;br /&gt;
# If they are used, the bookGroup division for the New Testament should have a similar structure.&lt;br /&gt;
# Any '''div''' element defaults canonical to false. You need to set it to true on elements representing the structure of the original text.&lt;br /&gt;
&lt;br /&gt;
===OSIS Milestones===&lt;br /&gt;
OSIS allows for two potentially overlapping structures: Document structure (BSP) and verse structure (BCV).&lt;br /&gt;
&lt;br /&gt;
Document structure is dominated by book, sections and paragraphs (BSP), additionally with titles, quotes and poetic material. While verse structure is indicated by book, chapter and verse numbers (BCV). While a SWORD module requires verse structure, the best way to encode a module with deep markup is with document structure. [[Osis2mod]] is responsible for transforming document structure into verse structure.&lt;br /&gt;
&lt;br /&gt;
Because these two systems can overlap and because XML does not allow for overlapping elements, OSIS defines a milestone mechanism for both document and verse structure elements.&lt;br /&gt;
&lt;br /&gt;
For:&lt;br /&gt;
 &amp;amp;lt;X  ... attribute list ...&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;amp;lt;/X&amp;gt;&lt;br /&gt;
the milestoned form is:&lt;br /&gt;
 &amp;amp;lt;X sID=&amp;quot;g1&amp;quot; ... attribute list .../&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;amp;lt;X eID=&amp;quot;g1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
According to the OSIS manual, for any given element X that defines a milestoneable form, all the instances of X in the document must use one form or the other and may not use both. The value of each sID attribute must be unique within the document.&lt;br /&gt;
&lt;br /&gt;
Verse milestone sID/eID attributes can even have values that denote a verse range. This is purely for convenience to human readers.  &lt;br /&gt;
&lt;br /&gt;
It is allowable to use milestone elements for verses alone, or for both verses and chapters. The body example above is for the former.&lt;br /&gt;
&lt;br /&gt;
Although, the order of sID and osisID attributes within a milestone element is insignificant (as is the case for XML attributes in general), it helps for human readability to have the sID element first, such that it might be aligned with the corresponding eID element, as in the body example above.&lt;br /&gt;
&lt;br /&gt;
==== Limitations of XML validators ====&lt;br /&gt;
&lt;br /&gt;
An [[OSIS Bibles#Valid_OSIS_test|XML validator]] cannot validate whether OSIS milestones are used properly. It cannot validate:&lt;br /&gt;
* that an element is consistently either milestoned or not.&lt;br /&gt;
* that for each element with an sID that there is a paired element with an eID.&amp;lt;ref&amp;gt;osis2mod does not crash if the eID milestones are all missing, but the resulting module may appear to be void of text.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* that each paired sID/eID have the same attribute value.&lt;br /&gt;
* that different sID/eID pairs of the same element type do not overlap.&amp;lt;ref&amp;gt;If they weren't milestones, one would say they should be properly nested.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* that the values of the osisID attributes are valid and correspond to the text demarcated by the verse milesones, etc.&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Notes about OSIS elements ====&lt;br /&gt;
* For an OSIS document to be valid it must use the non-milestoned &amp;amp;lt;div&amp;gt; and &amp;amp;lt;lg&amp;gt; elements.&lt;br /&gt;
* There is no milestoned version of the &amp;amp;lt;p&amp;gt; element. From a practical perspective, this means that the milestoned verse element should be used when paragraphs are used.&lt;br /&gt;
* The milestoned chapter element must be used when the paragraph is spanning over a chapter.&lt;br /&gt;
* The SWORD engine cannot handle sub-identifiers separated by ! in an osisID, so osis2mod strips these off from the osisIDs for verses. They are only of use for the osisIDs for notes.&lt;br /&gt;
&lt;br /&gt;
===Recommended approach===&lt;br /&gt;
* For chapters, use &amp;amp;lt;chapter&amp;gt;...&amp;amp;lt;/chapter&amp;gt; container elements (except in the rare case that other container elements cross chapter boundaries)&amp;lt;ref&amp;gt;Conversion scripts such as [[Converting SFM Bibles to OSIS#usfm2osis.py|usfm2osis.py]] generally produce the milestone elements for chapters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* For verses, use milestone elements (unless container elements will suffice) &amp;amp;ndash; see [[OSIS Bibles/BSPExample]].&lt;br /&gt;
* For paragraphs, use the &amp;amp;lt;p&amp;gt;...&amp;amp;lt;/p&amp;gt; container element&lt;br /&gt;
* For poetry, use container elements &amp;amp;lt;lg&amp;gt;...&amp;amp;lt;/lg&amp;gt; to indicate stanzas (or other types of line groups) and &amp;amp;lt;l&amp;gt;...&amp;amp;lt;/l&amp;gt; to indicate lines&lt;br /&gt;
* For quoted text, use the &amp;amp;lt;q&amp;gt;...&amp;amp;lt;/q&amp;gt; container element&lt;br /&gt;
* For translation changes, use the &amp;amp;lt;transChange&amp;gt;...&amp;amp;lt;/transChange&amp;gt; container element&amp;lt;ref&amp;gt;Except where the text is within a &amp;amp;lt;w&amp;gt; which is not allowed by OSIS. For these cases use the alternative &amp;amp;lt;seg subType=&amp;quot;x-added&amp;quot; type=&amp;quot;x-transChange&amp;quot;&amp;gt;...&amp;amp;lt;/seg&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Marking Paragraphs===&lt;br /&gt;
There is no milestoned version of the &amp;lt;tt&amp;gt;&amp;amp;lt;p&amp;gt;&amp;lt;/tt&amp;gt; element. Typically paragraphs surround whole verses. That is, they start and end between verses. If a paragraph begins or ends in a verse and extends beyond that verse, then the whole document must use the milestoned version of &amp;lt;tt&amp;gt;&amp;amp;lt;verse&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;book&amp;quot; osisID=&amp;quot;Gen&amp;quot; canonical=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;title type=&amp;quot;main&amp;quot;&amp;gt;LE PREMIER LIVRE DE MOÏSE dit LA GENÈSE&amp;lt;/title&amp;gt;&lt;br /&gt;
	&amp;lt;chapter osisID=&amp;quot;Gen.1&amp;quot; chapterTitle=&amp;quot;Chapitre 1&amp;quot;&amp;gt;&amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;Chapitre 1&amp;lt;/title&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1&amp;quot; n=&amp;quot;1&amp;quot;/&amp;gt;Au commencement Dieu créa les &lt;br /&gt;
			cieux et la terre.&amp;lt;verse eID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2&amp;quot; n=&amp;quot;2&amp;quot;/&amp;gt;Et la terre était désolation et&lt;br /&gt;
			vide, et il y avait des ténèbres sur la face de l'abîme. Et l'Esprit de Dieu&lt;br /&gt;
			planait sur la face des eaux.&amp;lt;verse eID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;p&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.3&amp;quot; osisID=&amp;quot;Gen.1.3&amp;quot; n=&amp;quot;3&amp;quot;/&amp;gt;Et Dieu dit : Que la lumière&lt;br /&gt;
			soit. Et la lumière fut.&amp;lt;verse eID=&amp;quot;Gen.1.3&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.4&amp;quot; osisID=&amp;quot;Gen.1.4&amp;quot; n=&amp;quot;4&amp;quot;/&amp;gt;Et Dieu vit la lumière, qu'elle&lt;br /&gt;
			était bonne ; et Dieu sépara la lumière d'avec les ténèbres.&lt;br /&gt;
			&amp;lt;verse eID=&amp;quot;Gen.1.4&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;verse sID=&amp;quot;Gen.1.5&amp;quot; osisID=&amp;quot;Gen.1.5&amp;quot; n=&amp;quot;5&amp;quot;/&amp;gt;Et Dieu appela la lumière Jour ;&lt;br /&gt;
			et les ténèbres, il les appela Nuit. Et il y eut soir, et il y eut matin : &lt;br /&gt;
			&amp;amp;amp;#8212; premier jour.&amp;lt;verse eID=&amp;quot;Gen.1.5&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(1)'''&amp;lt;/sup&amp;gt; Au commencement Dieu créa les cieux et la terre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(2)'''&amp;lt;/sup&amp;gt; Et la terre était désolation et vide, et il y avait des ténèbres sur la face de l'abîme. Et l'Esprit de Dieu planait sur la face des eaux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(3)''' &amp;lt;/sup&amp;gt;Et Dieu dit : Que la lumière soit. Et la lumière fut. &amp;lt;sup&amp;gt;'''(4)'''&amp;lt;/sup&amp;gt; Et Dieu vit la lumière, qu'elle était bonne ; et Dieu sépara la lumière d'avec les ténèbres. &amp;lt;sup&amp;gt;'''(5)'''&amp;lt;/sup&amp;gt; Et Dieu appela la lumière Jour ; et les ténèbres, il les appela Nuit. Et il y eut soir, et il y eut matin : &amp;amp;#8212; premier jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: [[osis2mod]] converts a paragraph start into &amp;lt;tt&amp;gt;&amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; sID=&amp;quot;genX&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt; and a paragraph end into &amp;lt;tt&amp;gt;&amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; eID=&amp;quot;genX&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Marking Quotations===&lt;br /&gt;
Most of the SWORD front-end applications can show a chapter at a time and some can show isolated verses. This means that all of the SWORD applications can show partial quotations, such as the Sermon on the Mount which begins in Matt 5 and ends in Matt 7.&lt;br /&gt;
&lt;br /&gt;
====Default quotation marks====&lt;br /&gt;
By default, SWORD will use &amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; for quotations. The following describes various ways to influence this.&lt;br /&gt;
&lt;br /&gt;
====Indicating the nesting of a quote====&lt;br /&gt;
When a quote is contained in a quote, it is customary to set the level attribute to indicate the depth of the nesting. For example, Jeremiah 23:38 is part of a larger quote and has a back and forth dialog of nested quotes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
But if you say,&lt;br /&gt;
&amp;lt;q level=&amp;quot;2&amp;quot; sID=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
	The burden of the Lord,&lt;br /&gt;
&amp;lt;q level=&amp;quot;2&amp;quot; eID=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
thus says the Lord,&lt;br /&gt;
&amp;lt;q level=&amp;quot;2&amp;quot; sID=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
	Because you have said these words,&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; sID=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
		The burden of the Lord,&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; eID=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
	when I sent to you, saying,&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; sID=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
		You shall not say,&lt;br /&gt;
		&amp;lt;q level=&amp;quot;4&amp;quot; sID=&amp;quot;6&amp;quot;/&amp;gt;&lt;br /&gt;
			The burden of the Lord,&lt;br /&gt;
		&amp;lt;q level=&amp;quot;4&amp;quot; eID=&amp;quot;6&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;q level=&amp;quot;3&amp;quot; eID=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A couple of things to note about this verse. First, the level attribute is on both the sID and the eID pair, matching in value. Second, this is an example of a verse that has a quote that starts in the middle and finishes in another verse.&lt;br /&gt;
&lt;br /&gt;
In this case, SWORD will use the level to determine whether to use &amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;'&amp;lt;/tt&amp;gt; for quotes. Odd levels will use &amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; and even levels will use &amp;lt;tt&amp;gt;'&amp;lt;/tt&amp;gt;. This is in accordance with American English usage, which is the opposite of British English usage. Nesting levels up to five can be found in the Bible.&amp;lt;ref&amp;gt;Jeremiah 27:1-11; 29:1-28, 30-32; 34:1-5; and Ezekiel 1-36&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Supplying alternative quotation marks====&lt;br /&gt;
The quote element has a marker attribute that can be used to control the quotation marks. SWORD applications will always use this value when rendering the quote. When the marker attribute is the null string, it will render no quotation mark at all.&amp;lt;ref&amp;gt;e.g. The KJV module has &amp;lt;tt&amp;gt;marker=&amp;quot;&amp;quot;&amp;lt;/tt&amp;gt; because the text of the KJV Bible does not use any quotation marks.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To specify &amp;quot;curly&amp;quot; quotes you can use the following values:&lt;br /&gt;
{|border=1&lt;br /&gt;
!Description!!Char!!HTML Entity!!Unicode&lt;br /&gt;
|-align=center&lt;br /&gt;
|Opening double quote||&amp;amp;#8220;||&amp;amp;amp;#8220;||U+201C&lt;br /&gt;
|-align=center&lt;br /&gt;
|Closing double quote||&amp;amp;#8221;||&amp;amp;amp;#8221;||U+201D&lt;br /&gt;
|-align=center&lt;br /&gt;
|Opening single quote||&amp;amp;#8216;||&amp;amp;amp;#8216;||U+2018&lt;br /&gt;
|-align=center&lt;br /&gt;
|Closing single quote||&amp;amp;#8217;||&amp;amp;amp;#8217;||U+2019&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To use different marks to start and end a quote, use the milestoned version of the quote.&lt;br /&gt;
 &amp;amp;lt;q marker=&amp;quot;&amp;amp;#8220;&amp;quot; sID=&amp;quot;qN&amp;quot;/&amp;gt; ... &amp;amp;lt;q marker=&amp;quot;&amp;amp;#8221;&amp;quot; eID=&amp;quot;qN&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is further information about English quotation marks and their usage in [http://en.wikipedia.org/wiki/Quotation_marks].&lt;br /&gt;
&lt;br /&gt;
Quotation marks have a variety of forms in different languages and in different media. See [http://en.wikipedia.org/wiki/Quotation_mark,_non-English_usage Quotation mark, non-English usage].&amp;lt;ref&amp;gt;When modules are being converted from digitized source text used in other Bible software, it may be the case that quotation marks in the text source differ from those in the original published edition, whether due to inherent constraints of the other software, or for other causes.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Continuation quotation marks====&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;amp;lt;milestone type=&amp;quot;cQuote&amp;quot;/&amp;amp;gt;&amp;lt;/tt&amp;gt; can be used to indicate the presence of a continued quote. If the marker attribute is present, it will use that otherwise it will use a straight double quote, &amp;quot;. Since there is no level attribute on the milestone element, it is best to specify the marker attribute.&lt;br /&gt;
&lt;br /&gt;
====Marking the Words of Christ====&lt;br /&gt;
To indicate that a quote is something that Jesus said&amp;lt;ref&amp;gt;http://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;, use the attribute &amp;lt;tt&amp;gt;who=&amp;quot;Jesus&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;verse osisID=&amp;quot;Luke.22.35 sID=&amp;quot;Luke.22.35&amp;quot;/&amp;gt;&lt;br /&gt;
	Then Jesus asked them, &amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;When I sent you without purse,&lt;br /&gt;
	bag or sandals, did you lack anything?&amp;lt;/q&amp;gt;&lt;br /&gt;
	&amp;lt;verse eID=&amp;quot;Luke.22.35&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
Then Jesus asked them, &amp;lt;span style=&amp;quot;color:#A00&amp;quot;&amp;gt;When I sent you without purse, bag or sandals, did you lack anything?&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Marking poetic material===&lt;br /&gt;
Poetry is marked up with &amp;amp;lt;lg&amp;amp;gt;, line group, and &amp;amp;lt;l&amp;amp;gt;, line, elements. The line element supports indentation with the level attribute. When the level attribute is not present or it is level=&amp;quot;1&amp;quot;, this should be interpreted as the first level of the line group. When level=&amp;quot;2&amp;quot; it is indented relative to level=&amp;quot;1&amp;quot;. The same is true for each subsequent level.  &lt;br /&gt;
&lt;br /&gt;
The level attribute is used to indicate indentation. A value of 1 means no indentation, the same as not specifying a level attribute. A value of 2 means to indent one. And so forth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;chapter osisID=&amp;quot;Exod.15&amp;quot; chapterTitle=&amp;quot;Chapitre 15&amp;quot;&amp;gt;&amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;Chapter 15&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.1&amp;quot; osisID=&amp;quot;Exod.15.1&amp;quot; n=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
      Then sang Moses and the children of Israel this song unto the LORD, and spake, saying,&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;lg&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;I will sing unto the LORD, for he hath triumphed gloriously:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;the horse and his rider hath he thrown into the sea.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.2&amp;quot; osisID=&amp;quot;Exod.15.2&amp;quot; n=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;The LORD is my strength and song, and he is become my salvation:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;he is my God, and I will prepare him an habitation;&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;my father's God, and I will exalt him.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.2&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.3&amp;quot; osisID=&amp;quot;Exod.15.3&amp;quot; n=&amp;quot;3&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;The LORD is a man of war:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;the LORD is his name.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.3&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.4&amp;quot; osisID=&amp;quot;Exod.15.4&amp;quot; n=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;Pharaoh's chariots and his host hath he cast into the sea:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;his chosen captains also are drowned in the Red sea.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.4&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;verse sID=&amp;quot;Exod.15.5&amp;quot; osisID=&amp;quot;Exod.15.5&amp;quot; n=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;1&amp;quot;&amp;gt;The depths have covered them:&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;l level=&amp;quot;2&amp;quot;&amp;gt;they sank into the bottom as a stone.&amp;lt;/l&amp;gt;&lt;br /&gt;
      &amp;lt;verse eID=&amp;quot;Exod.15.5&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;sup&amp;gt;'''(1)'''&amp;lt;/sup&amp;gt; Then sang Moses and the children of Israel this song unto the LORD, and spake, saying,&lt;br /&gt;
&lt;br /&gt;
::''I will sing unto the LORD, for he hath triumphed gloriously:''&lt;br /&gt;
::::''the horse and his rider hath he thrown into the sea.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(2)'''&amp;lt;/sup&amp;gt; ''The LORD is my strength and song, and he is become my salvation:''&lt;br /&gt;
::::''he is my God, and I will prepare him an habitation;''&lt;br /&gt;
::::''my father's God, and I will exalt him.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(3)'''&amp;lt;/sup&amp;gt; ''The LORD is a man of war:''&lt;br /&gt;
::::''the LORD is his name.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(4)'''&amp;lt;/sup&amp;gt; ''Pharaoh's chariots and his host hath he cast into the sea:''&lt;br /&gt;
::::''his chosen captains also are drowned in the Red sea.''&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;sup&amp;gt;'''(5)'''&amp;lt;/sup&amp;gt; ''The depths have covered them:''&lt;br /&gt;
::::''they sank into the bottom as a stone.''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&lt;br /&gt;
# While OSIS defines a milestoned version of the &amp;lt;tt&amp;gt;&amp;lt;lg&amp;gt;&amp;lt;/tt&amp;gt; element, its use (rather than the container version) will not produce a valid XML document. The &amp;lt;tt&amp;gt;&amp;lt;l&amp;gt;&amp;lt;/tt&amp;gt; element can only occur within an &amp;lt;tt&amp;gt;&amp;lt;lg&amp;gt;&amp;lt;/tt&amp;gt; container, so use of &amp;lt;tt&amp;gt;&amp;lt;lg/&amp;gt;&amp;lt;/tt&amp;gt; milestones prevents use of &amp;lt;tt&amp;gt;&amp;lt;l&amp;gt;&amp;lt;/tt&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
==== Marking acrostic poetry headings ====&lt;br /&gt;
Use &amp;lt;tt&amp;gt;type=&amp;quot;acrostic&amp;quot;&amp;lt;/tt&amp;gt; as the title attribute for the stanza headings in acrostic passages such as Psalm 119. Whether or not this Psalm uses a poetry line group for each stanza, each title element should be placed before its related stanza.&lt;br /&gt;
&lt;br /&gt;
=== Marking lemmas &amp;amp; morphology ===&lt;br /&gt;
====Marking Strong's numbers====&lt;br /&gt;
To mark up [http://en.wikipedia.org/wiki/Strong%27s_Concordance Strong's numbers], you first need to declare a workID in the header of the OSIS document:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;header&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;work osisWork=&amp;quot;strong&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;refSystem&amp;gt;Dict.Strongs&amp;lt;/refSystem&amp;gt;&lt;br /&gt;
    &amp;lt;/work&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/header&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SWORD does not actually use this declaration, but it is required to have a proper OSIS document.&lt;br /&gt;
&lt;br /&gt;
And while OSIS allows arbitrary workIDs, SWORD can only handle &amp;quot;strong&amp;quot; and a few variants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w lemma=&amp;quot;strong:H0853 strong:H03045&amp;quot;&amp;gt;knew&amp;lt;/w&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;w&amp;amp;gt; element is used to surround the text that is represented by the Strong's number. It may be that the text is a phrase and it may be that more than one Strong's number defines the text.&lt;br /&gt;
&lt;br /&gt;
When more than one Strong's number defines the text, each must be prefixed with a workID and must be separated from each other by a space. (While OSIS allows for the defining of default workIDs, SWORD requires that the workIDs be used.)&lt;br /&gt;
&lt;br /&gt;
The actual Strong's Number should indicate whether it is Hebrew (H) or Greek (G) followed by the number. The number may be 0 padded up to 5 digits as in H00001.&lt;br /&gt;
&lt;br /&gt;
====Marking morphology====&lt;br /&gt;
In a similar manner to marking with Strong's numbers, morphology can also be noted. Since morphology regards the original language, Strong's numbers will be shown at the same time.&lt;br /&gt;
&lt;br /&gt;
As with Strong's numbers, a workID needs to be defined. Here we are defining one for Robinson's Morphology Codes. And while SWORD will ignore this declaration, &amp;quot;robinson&amp;quot; is hard-coded into SWORD for Greek morphology codes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;header&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;lt;work osisWork=&amp;quot;robinson&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;refSystem&amp;gt;Dict.Robinson&amp;lt;/refSystem&amp;gt;&lt;br /&gt;
    &amp;lt;/work&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/header&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example markup of Robinson's Morphology Codes in the KJV module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w lemma=&amp;quot;strong:G3588 strong:G80&amp;quot; morph=&amp;quot;robinson:T-APM robinson:N-APM&amp;quot; src=&amp;quot;7 8&amp;quot;&amp;gt;his brethren&amp;lt;/w&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this example, lemma, morph and src form parallel arrays. The first strong: mapping to the first robinson: and the first src value, etc.&lt;br /&gt;
&lt;br /&gt;
The workID should be name of a current, future, or potential lexicon module in which the morphology code could be looked up. For example, morph=&amp;quot;packard:D&amp;quot; represents a reference to morphology code &amp;quot;D&amp;quot; in a module named Packard, whether or not a Packard module has been created or released. (Currently, SWORD offers lexicon modules named Robinson and Packard, both for Greek morphology.)&lt;br /&gt;
&lt;br /&gt;
The src attribute is used here to indicate the word position in the original Greek.&lt;br /&gt;
&lt;br /&gt;
====Marking other lemmas====&lt;br /&gt;
The lemma attribute of the &amp;lt;tt&amp;gt;&amp;amp;lt;w&amp;amp;gt;&amp;lt;/tt&amp;gt; element can contain any number of other lemmas. Like Strong's numbers and morphology codes, these need to have a workID declared in the header. SWORD presumes that these lemma workIDs all start with &amp;quot;lemma.&amp;quot; (note the final period). The portion of the workID following &amp;quot;lemma.&amp;quot; should be name of a current, future, or potential lexicon module in which the lemma could be looked up. For example, lemma=&amp;quot;lemma.TWOT:271&amp;quot; represents a reference to lemma #271 in a module named TWOT (i.e the Theological Workbook of the Old Testament), whether or not a TWOT module has been created or released. As far as SWORD is concerned, there can be any number of these space-delimited values in a lemma attribute and they can be in any order, even interspersed among the &amp;quot;strong:&amp;quot; lemmas. &lt;br /&gt;
&lt;br /&gt;
Example of a lemma markup for the Greek words from the [https://en.wikipedia.org/wiki/Textus_Receptus TR] in the KJV module:&lt;br /&gt;
 &amp;lt;w lemma=&amp;quot;strong:G976 lemma.TR:βιβλος&amp;quot; morph=&amp;quot;robinson:N-NSF&amp;quot; src=&amp;quot;1&amp;quot;&amp;gt;The book&amp;lt;/w&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SWORD has the ability to show or hide non-Strong's lemmas as a group. See [[DevTools:conf Files#Elements_required_for_proper_rendering|GlobalOptionFilter=OSISLemma]] &amp;amp;ndash; for OSIS texts having lemmas.&lt;br /&gt;
&lt;br /&gt;
==== Marking glosses ====&lt;br /&gt;
Gloss markup uses the &amp;lt;tt&amp;gt;gloss&amp;lt;/tt&amp;gt; attribute of the &amp;lt;tt&amp;gt;&amp;lt;w&amp;gt;&amp;lt;/tt&amp;gt; element. The syntax is illustrated by this line exported from the module JapMeiji.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w gloss=&amp;quot;はじめ&amp;quot;&amp;gt;元始&amp;lt;/w&amp;gt;に&amp;lt;w gloss=&amp;quot;かみ&amp;quot;&amp;gt;神&amp;lt;/w&amp;gt;&amp;lt;w gloss=&amp;quot;てんち&amp;quot;&amp;gt;天地&amp;lt;/w&amp;gt;を&amp;lt;w gloss=&amp;quot;つくり&amp;quot;&amp;gt;創造&amp;lt;/w&amp;gt;たまへり&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Display of glosses can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISGlosses&lt;br /&gt;
==== Marking encoded transliterations ====&lt;br /&gt;
Transliteration markup uses the xlit attribute of the &amp;lt;w&amp;gt; element. The syntax is illustrated by this line exported from the module SP.&lt;br /&gt;
 &amp;lt;w gloss=&amp;quot;in_beginnings&amp;quot; lemma=&amp;quot;strong:H7225&amp;quot; morph=&amp;quot;ב_ראשית&amp;quot; n=&amp;quot;1&amp;quot; xlit=&amp;quot;Latn:b_raShit&amp;quot;&amp;gt;בראשית&amp;lt;/w&amp;gt;&lt;br /&gt;
Display of encoded transliterations can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISXlit&lt;br /&gt;
==== Marking enumerated words ====&lt;br /&gt;
Enumerated words markup uses the n attribute in the &amp;lt;w&amp;gt; element. The syntax is illustrated in the previous subsection.&lt;br /&gt;
&lt;br /&gt;
Display of enumerated words can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISEnum&lt;br /&gt;
&lt;br /&gt;
==== Marking morpheme segmentation ====&lt;br /&gt;
&lt;br /&gt;
In languages such as Biblical Hebrew, parts of words may be split into semantic segments using the XML '''seg''' element, thus:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;w&amp;gt;&amp;lt;seg type=&amp;quot;x-morph&amp;quot;&amp;gt;וַ&amp;lt;/seg&amp;gt;&amp;lt;seg type=&amp;quot;x-morph&amp;quot;&amp;gt;יִּקְרָ֨א&amp;lt;/seg&amp;gt;&amp;lt;/w&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Display of morpheme segmentation&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt; can be toggled (in [[Choosing a SWORD program#Module_Support|compatible front-ends]]&amp;lt;ref&amp;gt;e.g. STEP Bible uses these structures to provide colour coding. It just uses 2 colours to show different parts, alternating between the two.&amp;lt;/ref&amp;gt;) by having this line in the [[DevTools:conf Files#Elements_required_for_proper_rendering|.conf file]]:&lt;br /&gt;
 GlobalOptionFilter=OSISMorphSegmentation&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Marking the divine name===&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;amp;lt;divineName&amp;amp;gt;&amp;lt;/tt&amp;gt; tag is reserved for representations of the tetragrammaton יהוה (YHWH). These occur in the Old Testament as &amp;lt;span style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;Lord&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;God&amp;lt;/span&amp;gt; and &amp;lt;span style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;Yah&amp;lt;/span&amp;gt;. Not every instance of Lord or God is a translation of this.&lt;br /&gt;
&lt;br /&gt;
The content of the divineName element is the word Lord, God or Yah, not in all upper case (i.e. not LORD, GOD, or YAH). SWORD will either convert it to small-caps or uppercase.&lt;br /&gt;
&lt;br /&gt;
Note, if it is the use is possessive it is permissible to have the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;divineName&amp;gt;Lord's&amp;lt;/divineName&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it is inadvisable to include any other punctuation within the tag pair. Thus the following is '''not''' good practice (the quotation mark should ''precede'' the start tag):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;divineName&amp;gt;“God &amp;lt;/divineName&amp;gt; .....”&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When also marking with Strong's numbers you will need to do it one of two ways:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;divineName&amp;gt;&amp;lt;w lemma=&amp;quot;strong:H3068&amp;quot;&amp;gt;Lord's&amp;lt;/w&amp;gt;&amp;lt;divineName&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
   &amp;lt;w lemma=&amp;quot;strong:H3068&amp;quot;&amp;gt;of the &amp;lt;seg&amp;gt;&amp;lt;divineName&amp;gt;Lord&amp;lt;/divineName&amp;gt;&amp;lt;/seg&amp;gt;&amp;lt;/w&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The latter form uses a workaround to allow the embedding of &amp;lt;tt&amp;gt;&amp;amp;lt;divineName&amp;amp;gt;&amp;lt;/tt&amp;gt; in a &amp;lt;tt&amp;gt;&amp;amp;lt;w&amp;amp;gt;&amp;lt;/tt&amp;gt;, since OSIS does not allow for this, but does allow for &amp;lt;tt&amp;gt;&amp;amp;lt;seg&amp;amp;gt;&amp;lt;/tt&amp;gt; to be in a &amp;lt;tt&amp;gt;&amp;amp;lt;w&amp;amp;gt;&amp;lt;/tt&amp;gt; and to contain &amp;lt;tt&amp;gt;&amp;amp;lt;divineName&amp;amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' See also [[OSIS 211 CR#Allow_.3CdivineName.3E_within_.3Cw.3E|OSIS change requests: Allow &amp;lt;divineName&amp;gt; within &amp;lt;w&amp;gt;]].&lt;br /&gt;
&lt;br /&gt;
===Marking sections and titles===&lt;br /&gt;
A section is marked with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In OSIS the &amp;lt;tt&amp;gt;&amp;amp;lt;title&amp;amp;gt;&amp;lt;/tt&amp;gt; element is used to provide general headings. Titles should be placed at the top of the container that they title, not before.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div type=&amp;quot;book&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;A book title&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;chapter&amp;gt;&lt;br /&gt;
       &amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;A title chapter&amp;lt;/title&amp;gt;&lt;br /&gt;
       &amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;A section title&amp;lt;/title&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
       ...&lt;br /&gt;
      &amp;lt;/chapter&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Using &amp;lt;tt&amp;gt;type=&amp;quot;chapter&amp;quot;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;type=&amp;quot;main&amp;quot;&amp;lt;/tt&amp;gt; is needed by [[osis2mod]] to distinguish chapter titles from verse titles. When SWORD stores an OSIS document it does so as an index of verses. It has special indexes for book and chapter titles. SWORD does not store the &amp;lt;tt&amp;gt;&amp;amp;lt;verse&amp;gt;&amp;lt;/tt&amp;gt; tags. So when it comes to storing a title in the following verse, [[osis2mod]] generates special markup to indicate that the title stands before the verse. SWORD uses this to place the verse number.&lt;br /&gt;
&lt;br /&gt;
It is recommended that chapter labels (converted from the USFM tag \cl) be coded like this (Malayalam) example:&lt;br /&gt;
 &amp;lt;title type=&amp;quot;chapter&amp;quot; subType=&amp;quot;chapterLabel&amp;quot;&amp;gt;൧. അദ്ധ്യായം.&amp;lt;/title&amp;gt;&lt;br /&gt;
This ensures that these labels are not treated differently to other chapter titles.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
# The &amp;lt;tt&amp;gt;&amp;amp;lt;head&amp;amp;gt;&amp;lt;/tt&amp;gt; element is used to provide headings for tables, lists and cast groups. There are errors in the OSIS 2.1.1 manual that use the &amp;lt;tt&amp;gt;&amp;amp;lt;head&amp;amp;gt;&amp;lt;/tt&amp;gt; incorrectly.&lt;br /&gt;
&lt;br /&gt;
==== Marking pre-verse titles ====&lt;br /&gt;
There is no special markup for pre-verse titles. Osis2mod will determine what titles belong to the book, the chapter and otherwise if the above advice is followed.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
# See also [[OSIS pre-verse titles]].&lt;br /&gt;
&lt;br /&gt;
====Marking parallel passage headings====&lt;br /&gt;
These may be marked in a similar manner to [[OSIS Bibles#Marking_cross-references_notes|cross-reference notes]]. Example: (Welsh Beibl for Matt.3)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;title type=&amp;quot;parallel&amp;quot;&amp;gt;(&lt;br /&gt;
  &amp;lt;reference type=&amp;quot;parallel&amp;quot; osisRef=&amp;quot;Mark.1.1-Mark.1.8&amp;quot;&amp;gt;Marc 1:1-8&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference type=&amp;quot;parallel&amp;quot; osisRef=&amp;quot;Luke.3.1-Luke.3.18&amp;quot;&amp;gt;Luc 3:1-18&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference type=&amp;quot;parallel&amp;quot; osisRef=&amp;quot;John.1.19-John.1.28&amp;quot;&amp;gt;Ioan 1:19-28&amp;lt;/reference&amp;gt;)&lt;br /&gt;
&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# Each parallel passage has a separate reference element.&lt;br /&gt;
# Each reference element may have the optional attribute type=&amp;quot;parallel&amp;quot;.&lt;br /&gt;
# Each reference element has a valid osisRef attribute. Typically this is for a contiguous range of verses.&lt;br /&gt;
# The displayed reference for each passage uses the locale for the language.&lt;br /&gt;
# Reference elements are typically separated by a semicolon and space.&lt;br /&gt;
# The displayed title is typically enclosed within parentheses, which are not part of any reference element.&lt;br /&gt;
# Localized book names may or may not be abbreviated. If abbreviations are used, ideally they should be used consistently throughout the whole Bible.&lt;br /&gt;
# Abbreviated localized book names may or may not end with a full stop.&lt;br /&gt;
# The localized chapter verse separator may be other than a colon.&lt;br /&gt;
# The range specifier is typically a [http://en.wikipedia.org/wiki/Hyphen-minus hyphen-minus] but alternatively may be an [http://en.wikipedia.org/wiki/Dash#En_dash en dash].&lt;br /&gt;
# Special care is required when:&lt;br /&gt;
:*There is more than one passage listed for the same book, when typically the book name is given only for the first passage.&lt;br /&gt;
:*There is more than one passage listed for the same chapter, when typically the chapter number is given only for the first passage.&lt;br /&gt;
:*The parallel passage is in the same book, when typically the book name is omitted in the displayed reference.&lt;br /&gt;
:*The parallel passage is one or more whole chapters (or psalms), when typically the verse numbers are omitted.&lt;br /&gt;
:*The parallel passage is a range of verses in a &amp;quot;single chapter&amp;quot; book, when typically the chapter number is omitted.&amp;lt;br&amp;gt;Example: Jude 3-24 is sometimes used as parallel with 2 Peter 2.&lt;br /&gt;
:*The parallel passage is a range that spans a chapter divison, and where the range separator might even be an [http://en.wikipedia.org/wiki/Dash#Em_dash em dash] or an [http://en.wikipedia.org/wiki/Dash#En_dash en dash] rather than a hyphen-minus. Example: Exodus 35:30—36:1&lt;br /&gt;
&lt;br /&gt;
===Marking notes===&lt;br /&gt;
The note element can appear in any element that can contain text ''outside'' of the '''header''' element.&lt;br /&gt;
&lt;br /&gt;
NB. The examples in this section include the use of sub-identifiers in '''osisID'''s for notes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;verse sID=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1&amp;quot; n=&amp;quot;1&amp;quot;/&amp;gt;Au commencement &lt;br /&gt;
	Dieu&amp;lt;note osisRef=&amp;quot;Gen.1.1&amp;quot; osisID=&amp;quot;Gen.1.1!1&amp;quot; n=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;en hébreu&amp;lt;/hi&amp;gt; : Élohim,&lt;br /&gt;
	(&amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;pluriel d&amp;lt;/hi&amp;gt;'Éloah, le Dieu suprême), la Déité, &amp;lt;hi type=&amp;quot;italic&amp;quot;&amp;gt;dans&lt;br /&gt;
	le sens absolu&amp;lt;/hi&amp;gt;.&amp;lt;/note&amp;gt; créa les cieux et la terre.&amp;lt;verse eID=&amp;quot;Gen.1.1&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;verse sID=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2&amp;quot; n=&amp;quot;2&amp;quot;/&amp;gt;Et la terre était désolation et &lt;br /&gt;
	vide&amp;lt;note osisRef=&amp;quot;Gen.1.2&amp;quot; osisID=&amp;quot;Gen.1.2!1&amp;quot; n=&amp;quot;2&amp;quot;&amp;gt;le vide.&amp;lt;/note&amp;gt;, et il y avait des ténèbres&lt;br /&gt;
	sur la face de l'abîme. Et l'Esprit de Dieu planait sur la face des eaux.&amp;lt;verse eID=&amp;quot;Gen.1.2&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+Result&lt;br /&gt;
|&lt;br /&gt;
# Au commencement Dieu¹ créa les cieux et la terre.&lt;br /&gt;
# Et la terre était désolation et vide², et il y avait des ténèbres sur la face de l'abîme. Et l'Esprit de Dieu planait sur la face des eaux.&lt;br /&gt;
&lt;br /&gt;
*¹ ''en hébreu'': Élohim, (''pluriel d'''Éloah, le Dieu suprême), la Déité, ''dans le sens absolu''.&lt;br /&gt;
*² le vide.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The note should be attached to what it refers to, either ''after'' (as is the case here) or ''before''. There should no additional space surrounding the note, but only what is in the text.&lt;br /&gt;
&lt;br /&gt;
These notes can have any type other than '''crossReference'''.&lt;br /&gt;
&lt;br /&gt;
For more detailed information about the '''note''' element, please refer to sections '''8.3''' to '''8.6''' of the '''OSIS Reference Manual'''.&lt;br /&gt;
&lt;br /&gt;
====Notes with an annotation reference====&lt;br /&gt;
An OSIS file converted correctly from USFM files may contain notes with an annotation reference. The syntax should be like this:&lt;br /&gt;
 &amp;lt;note placement=&amp;quot;foot&amp;quot;&amp;gt;&amp;lt;reference type=&amp;quot;annotateRef&amp;quot; osisRef=&amp;quot;Matt.1.19&amp;quot;&amp;gt;1:19&amp;lt;/reference&amp;gt; The footnote informational text is here.&amp;lt;/note&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An annotation reference is usually generated when converting from USFM for notes containing the tag &amp;lt;tt&amp;gt;\fr &amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;\xo &amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;The human readable reference is typically just the chapter and verse number, as in this example.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example is for a note tagged for a word in Matt.1.19. and it illustrates that the reference element has two attributes.&lt;br /&gt;
* &amp;lt;tt&amp;gt;type=&amp;quot;annotateRef&amp;quot;&amp;lt;/tt&amp;gt; &amp;amp;ndash; this defines the note as having an annotation reference&lt;br /&gt;
* &amp;lt;tt&amp;gt;osisRef=&amp;quot;Matt.1.19&amp;quot;&amp;lt;/tt&amp;gt; &amp;amp;ndash; this specifies the origin of the note, and makes the &amp;quot;1:19&amp;quot; display as a link in the footnote panel.&lt;br /&gt;
The space at the start of the footnote text is required in order to separate the reference from the text.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Marking cross-references notes====&lt;br /&gt;
SWORD provides the ability for a user to show or hide cross-references. To achieve this you embed one or more &amp;lt;tt&amp;gt;&amp;amp;lt;reference&amp;amp;gt;&amp;lt;/tt&amp;gt; elements in a &amp;lt;tt&amp;gt;&amp;amp;lt;note type=&amp;quot;crossReference&amp;quot;&amp;amp;gt;...&amp;amp;lt;/note&amp;amp;gt;&amp;lt;/tt&amp;gt;. If this is not done, then the cross-references will always show inline in the text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;note type=&amp;quot;crossReference&amp;quot; n=&amp;quot;t&amp;quot; osisID=&amp;quot;Jer.24.7!crossReference.t&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Jer.32.39&amp;quot;&amp;gt;ch. 32:39&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Deut.30.6&amp;quot;&amp;gt;Deut. 30:6&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Ezek.11.19&amp;quot;&amp;gt;Ezek. 11:19&amp;lt;/reference&amp;gt;; &lt;br /&gt;
  &amp;lt;reference osisRef=&amp;quot;Ezek.36.26-Ezek.36.27&amp;quot;&amp;gt;36:26, 27&amp;lt;/reference&amp;gt;.&lt;br /&gt;
&amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a breakdown.&lt;br /&gt;
&lt;br /&gt;
Regarding the &amp;lt;tt&amp;gt;&amp;amp;lt;note&amp;amp;gt;&amp;lt;/tt&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;type=&amp;quot;crossReference&amp;quot;&amp;lt;/tt&amp;gt; is one of the predefined OSIS note types. SWORD looks for this value to show/hide cross-references.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;n=&amp;quot;t&amp;quot;&amp;lt;/tt&amp;gt; is the marker for the cross-reference note. This can be either of the following:&lt;br /&gt;
:# A serially allocated index letter in the range &amp;lt;tt&amp;gt;a-z&amp;lt;/tt&amp;gt;.&lt;br /&gt;
:# A custom xref note marker symbol (or scheme) as may be specified by the author/translator.&lt;br /&gt;
:btw. Source text [[Converting SFM Bibles to OSIS|converted from USFM]] usually adopts method 1.&lt;br /&gt;
&lt;br /&gt;
:The given '''osisID''' is based upon the location of the note. In order to not conflict with the verse's osisID and to construct a unique id, the ! (extension mark, ''aka'' sub-identifier) syntax is used. This is further qualified by the note's '''type''' and '''n''' value, separated by a dot.&lt;br /&gt;
&lt;br /&gt;
:Observe the punctuation marks between references and (optionally) after the last reference. There is typically a space after each semicolon.&lt;br /&gt;
&lt;br /&gt;
:This note pertains to a single verse and it is given an '''osisRef'''.&lt;br /&gt;
&lt;br /&gt;
Regarding the &amp;lt;tt&amp;gt;&amp;amp;lt;reference&amp;amp;gt;&amp;lt;/tt&amp;gt; elements:&lt;br /&gt;
&lt;br /&gt;
:The &amp;lt;tt&amp;gt;&amp;amp;lt;reference&amp;amp;gt;&amp;lt;/tt&amp;gt; element is replaced by SWORD with a link to the reference with the text of the element being shown as link text.&amp;lt;ref&amp;gt;Some front-ends (e.g. Xiphos, PocketSword) never display the raw cross-reference text (the original text wrapped within each '''reference''' element. Instead they display a preview of each cross-referenced linked verse.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:While the '''osisRef''' can point to multiple verses, most SWORD applications cannot handle a link that goes to more than one verse or a contiguous range of verses. Xiphos (for example) just generates a verse list in the side panel.&lt;br /&gt;
&lt;br /&gt;
:Here we see that each '''reference''' element is separated by punctuation (the semicolon at the end of each line).&lt;br /&gt;
&lt;br /&gt;
Some of the notes given under [[OSIS Bibles#Marking_parallel_passage_headings|Marking parallel passage headings]] are also applicable here.&lt;br /&gt;
&lt;br /&gt;
For non-English Bibles, the punctuation marks used as separators in displayed Scripture references can be different. Even with English, there can be variations between Bible versions.&lt;br /&gt;
&lt;br /&gt;
Special care is required when the cross-reference includes additional prose text which is not a scripture reference. This often arises in [[Converting SFM Bibles to OSIS|Bibles converted from SFM]]. Unless and until this issue is fixed, it becomes almost impossible to parse the reference elements such that the OSIS references can be added automatically.&lt;br /&gt;
&lt;br /&gt;
Further care is often required to deal with minor errors of punctuation that translators are prone to make in footnotes with cross-references.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Marking references in Right to Left scripts====&lt;br /&gt;
To ensure that the ''human readable'' reference is correctly displayed in Bibles with a '''Right to Left''' script, the translator[s] may have made judicious use of the special Unicode character '''RIGHT TO LEFT MARK''' ['''RLM'''] (U+200F).&lt;br /&gt;
&lt;br /&gt;
The RLM being invisible, its presence may easily go unnoticed, yet script developers need to be aware of it. The procedure to convert the ''human readable'' reference to the ''machine readable'' '''osisRef''' value must ensure that the RLM is deleted from the latter.&lt;br /&gt;
&lt;br /&gt;
=====Technical details=====&lt;br /&gt;
The key to understanding this is the exact placements of the '''RLM''' in references in a RtoL script.&lt;br /&gt;
&lt;br /&gt;
* before the colon separator between chapter and verse &lt;br /&gt;
* before the hyphen/minus (or endash) used as the verse range separator &lt;br /&gt;
* before an ''ordinary'' comma between verse numbers in a list (not required when the ''Arabic'' comma is used)&lt;br /&gt;
* before the chapter number in the caller reference, because that becomes the start of the displayed footnote in SWORD apps.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&lt;br /&gt;
Here's a '''note''' element in the OSIS source: (of the UrduGeo module)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;note placement=&amp;quot;foot&amp;quot;&amp;gt;&amp;lt;reference type=&amp;quot;annotateRef&amp;quot; osisRef=&amp;quot;2Kgs.12.4&amp;quot;&amp;gt;‏12‏:4&amp;lt;/reference&amp;gt; &amp;lt;catchWord&amp;gt;مردم شماری کے ٹیکس: &amp;lt;/catchWord&amp;gt;دیکھئے &amp;lt;seg type=&amp;quot;x-nested&amp;quot;&amp;gt;&amp;lt;reference osisRef=&amp;quot;Exod.11.16-Exod.11.30&amp;quot;&amp;gt;خروج 11‏:16‏-30&amp;lt;/reference&amp;gt;&amp;lt;/seg&amp;gt; &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here's the same Unicode text converted to PCRE.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;note placement=&amp;quot;foot&amp;quot;&amp;gt;&amp;lt;reference type=&amp;quot;annotateRef&amp;quot; osisRef=&amp;quot;2Kgs.12.4&amp;quot;&amp;gt;\x{200F}12\x{200F}:4&amp;lt;/reference&amp;gt; &amp;lt;catchWord&amp;gt;\x{0645}\x{0631}\x{062F}\x{0645} \x{0634}\x{0645}\x{0627}\x{0631}\x{06CC} \x{06A9}\x{06D2} \x{0679}\x{06CC}\x{06A9}\x{0633}: &amp;lt;/catchWord&amp;gt;\x{062F}\x{06CC}\x{06A9}\x{06BE}\x{0626}\x{06D2} &amp;lt;seg type=&amp;quot;x-nested&amp;quot;&amp;gt;&amp;lt;reference osisRef=&amp;quot;Exod.11.16-Exod.11.30&amp;quot;&amp;gt;\x{062E}\x{0631}\x{0648}\x{062C} 11\x{200F}:16\x{200F}-30&amp;lt;/reference&amp;gt;&amp;lt;/seg&amp;gt; &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe the '''four''' instances of &amp;lt;code&amp;gt;\x{200F}&amp;lt;/code&amp;gt; which is the '''RLM''' described above.&lt;br /&gt;
&lt;br /&gt;
:''Further details to be added to illustrate the footnote as displayed in Xiphos.''&lt;br /&gt;
&lt;br /&gt;
===Marking variants===&lt;br /&gt;
SWORD recognizes the element '''seg''' with '''type=&amp;quot;x-variant&amp;quot;''' as marking variants present in different versions of a text&amp;lt;ref&amp;gt;This feature requires the front-end to have been compiled with SWORD version 1.7 or later.&amp;lt;/ref&amp;gt;. The attribute '''subType''' should be added, with a value of '''&amp;quot;x-1&amp;quot;''' or '''&amp;quot;x-2&amp;quot;''' to indicate whether the reading is the primary or secondary variant. At present, SWORD supports only 2 different readings per text. The method is illustrated below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The text of the Bible&lt;br /&gt;
&amp;lt;seg type=&amp;quot;x-variant&amp;quot; subType=&amp;quot;x-1&amp;quot;&amp;gt;may &amp;lt;/seg&amp;gt;&lt;br /&gt;
&amp;lt;seg type=&amp;quot;x-variant&amp;quot; subType=&amp;quot;x-2&amp;quot;&amp;gt;can &amp;lt;/seg&amp;gt;&lt;br /&gt;
contain variant readings.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This illustrates a primary reading &amp;quot;may &amp;quot; and a secondary reading &amp;quot;can &amp;quot;. Observe the space included in both seg elements. If these spaces were omitted, the variant words would be joined when displaying all readings.&lt;br /&gt;
&lt;br /&gt;
==== Filter ====&lt;br /&gt;
Variant readings in OSIS modules may be switched by the SWORD engine when the module conf file includes:&lt;br /&gt;
 GlobalOptionFilter=OSISVariants&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
* The TR module contains 246 locations where two such variants are marked.&lt;br /&gt;
* The WHNU module contains 1473 locations where two variants are marked.&lt;br /&gt;
&lt;br /&gt;
==== SWORD implementation ====&lt;br /&gt;
The SWORD API provides for these three choices:&lt;br /&gt;
 [Primary Reading|Secondary Reading|All Readings]&lt;br /&gt;
Example: In Xiphos version 3.1.6 or later, the module context menu provides these three options for any module that has variants.&lt;br /&gt;
&lt;br /&gt;
SWORD does not supply its own delimiters to distinguish between variants. When displaying text that contains variants, it may not be obvious where these are located.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Bible Technologies Group===&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
References below that use the domain '''www.bibletechnologies.net''' will no longer work.&lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
===Valid OSIS test===&lt;br /&gt;
A valid XML document one that is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define ''how'' entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
Many programs capable of schema validation exist. Most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  The Windows based text editor [http://en.wikipedia.org/wiki/Notepad%2B%2B Notepad++] supports Unicode and has an [https://github.com/morbac/xmltools XML Tools] plugin which can perform syntax checking and validation.&lt;br /&gt;
&lt;br /&gt;
There are also some online facilities for XML validation, e.g. [http://www.freeformatter.com/xml-validator-xsd.html].&lt;br /&gt;
&lt;br /&gt;
====xmllint====&lt;br /&gt;
libxml2, available for Linux, Windows, &amp;amp; MacOS, includes a command-line validator called xmllint. To check that a document is valid against OSIS schema, use the following command. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xmllint --noout --schema http://crosswire.org/osis/osisCore.2.1.1.xsd myfile.osis.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# Internet access is required to validate your document using a remote schema.&lt;br /&gt;
# Even if you use a local copy of the OSIS schema, it calls on [http://www.w3.org/XML/1998/namespace] via HTTP. &lt;br /&gt;
# Having a VPN connection may sometimes interfere with the use of XML validation tools.&lt;br /&gt;
# Some firewalls or proxies also prevent or interfere with the use of these tools.&lt;br /&gt;
&lt;br /&gt;
To install xmllint, simply install libxml2 via your distribution's standard package management system in Linux or download the Windows binary from our [http://www.crosswire.org/ftpmirror/pub/sword/utils/win32/ mirror]. You also need to install &amp;quot;libxml2-utils&amp;quot;. In this last package is program &amp;quot;xmllint&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====lxml (Python)====&lt;br /&gt;
[http://lxml.de/ lxml] is a toolkit that can be used within a Python script to validate an XML file.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Online XML Validators====&lt;br /&gt;
The external links section of http://en.wikipedia.org/wiki/XML_Validation lists at least three online validators. Some or all of these can validate against external XML schema.&lt;br /&gt;
&lt;br /&gt;
==Creating a SWORD Module==&lt;br /&gt;
Use [[osis2mod]] to create the module.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[OSIS]] &amp;amp;ndash; a partial list of other OSIS related pages and external links.&lt;br /&gt;
&lt;br /&gt;
*[[Converting SFM Bibles to OSIS]] &amp;amp;ndash; describes how to prepare a single OSIS XML file for a Biblical text supplied as several USFM files.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/List_of_Bible_verses_not_included_in_modern_translations List of Bible verses not included in modern translations]&lt;br /&gt;
&lt;br /&gt;
* [http://xml.coverpages.org/DeRoseEML2004.pdf Markup Overlap: A Review and a Horse] &amp;amp;ndash; Steven DeRose (2004) Bible Technologies Group.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides|OSIS Bibles]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSIS|OSIS Bibles]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Morphology|OSIS Bibles]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=16933</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=16933"/>
				<updated>2020-06-13T19:37:18Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Module development */ Add guide to XML validation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid green;padding-left:1em;padding-right:0.5em;background:#E4FFDF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
==Welcome to the CrossWire developers' wiki==&lt;br /&gt;
&lt;br /&gt;
Check out our [[Current Projects|current projects]] page to see how you might use your skills. Please also look at our general [[Volunteers|volunteering]] page.&lt;br /&gt;
&lt;br /&gt;
If you want to help in this wiki, please [mailto://support@crosswire.org request] an account.&lt;br /&gt;
&lt;br /&gt;
Here is the [http://tracker.crosswire.org bugs] database. Chat with SWORD developers on IRC: [http://webchat.freenode.net/?randomnick=1&amp;amp;channels=sword&amp;amp;prompt=1 #sword] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background:#E8F1FF;border-style:solid;border-width:1px;border-color:#00ccFF;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Front-end Bible study applications==&lt;br /&gt;
&lt;br /&gt;
===SWORD based front-ends===&lt;br /&gt;
* [[Frontends:BibleCS|The SWORD Project for Windows]] (internally known as BibleCS)&lt;br /&gt;
* [[Frontends:Eloquent|Eloquent]] MacOS application&lt;br /&gt;
* [[Frontends:Xiphos|Xiphos]] Windows and Linux Desktop application&lt;br /&gt;
* [[Frontends:BibleTime|BibleTime]] Windows and Linux Desktop application&lt;br /&gt;
* [[Frontends:The_Bible_Tool|The Bible Tool]] &amp;amp;ndash; web server application &lt;br /&gt;
* [[Frontends:PocketSword|PocketSword]] iOS application&lt;br /&gt;
* [[Frontends:Bishop|Bishop]] Android &amp;amp; iOS application&lt;br /&gt;
* [[Frontends:Holy Bible|Holy Bible]] Windows Desktop application&lt;br /&gt;
* [http://www.godehardt.org/losung.html GLosung] &amp;amp;ndash; Gottes Wort für deinen Desktop&lt;br /&gt;
* [[Frontends:Ezra Project|Ezra Project]] Windows, Linux, macOS Desktop application&lt;br /&gt;
&lt;br /&gt;
===JSword based front-ends===&lt;br /&gt;
* [[Frontends:BibleDesktop|BibleDesktop]]&lt;br /&gt;
* [http://www.kiyut.com/products/alkitab/ Alkitab Bible Study]&lt;br /&gt;
* [[Frontends:GSword|GSword]] &amp;amp;ndash; CCIM Online Bible Studio&lt;br /&gt;
* [https://mjdenham.github.io/and-bible/ And Bible] &amp;amp;ndash; for Android OS&lt;br /&gt;
* [http://www.stepbible.org/ STEP Bible] &amp;amp;ndash; developed at [http://www.tyndale.cam.ac.uk/ Tyndale House]&lt;br /&gt;
&lt;br /&gt;
=== Front-ends in general ===&lt;br /&gt;
* [[Choosing a SWORD program]]&lt;br /&gt;
* [[Frontends:No longer being actively developed|Front-ends no longer being actively developed]]&lt;br /&gt;
&lt;br /&gt;
==SWORD module sources==&lt;br /&gt;
* [[Official and Affiliated Module Repositories]]&lt;br /&gt;
* [[Other Module Sources]]&lt;br /&gt;
* [[Creating and Maintaining a Module Repository]]&lt;br /&gt;
&lt;br /&gt;
==Public relations, website, user assistance==&lt;br /&gt;
* [[Contact| Contact us]]&lt;br /&gt;
* CrossWire's [[Copyright|copyright]] policy&lt;br /&gt;
* [[EnduserFAQ|Frequently Asked Questions]]&lt;br /&gt;
* [[Help:Contents|Help]], [[Help:Bugs|Bugs]] and [[Help:Mailing Lists|Mailing Lists]]&lt;br /&gt;
* [[SWORD CD]]&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#FFE8E8&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:#FF6060;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Back-end API development tools==&lt;br /&gt;
* [[DevTools:SWORD|SWORD Engine (C++)]]&lt;br /&gt;
** Compiling and installing SWORD &lt;br /&gt;
*** on [[Tutorial:Compiling &amp;amp; Installing SWORD| Linux/MacOS/Unix]]&lt;br /&gt;
*** on or for [[Tutorial:Compiling &amp;amp; Installing SWORD on Windows|Windows]]&lt;br /&gt;
*** with [[DevTools:CMake|CMake]]&lt;br /&gt;
** [[:DevTools:Code Examples|Code Examples]]&lt;br /&gt;
** [[Tutorial:How SWORD works]]&lt;br /&gt;
** [[DevTools:Locale Files|Locale Files]]&lt;br /&gt;
** [[DevTools:Bindings|SWIG Bindings]], [[DevTools:CSharp Bindings on Windows|C# Bindings on Windows]], [[DevTools:JNI Bindings for Android|Android Bindings]]&lt;br /&gt;
** bug reports with or without appended patches to our [http://tracker.crosswire.org/projects/API/issues/API-119?filter=allopenissues|bug tracker]&lt;br /&gt;
* [[DevTools:JSword|JSword Engine (Java)]]&lt;br /&gt;
** [[DevTools:JSword/Personal Commentary|Personal Commentary]]&lt;br /&gt;
** [[DevTools:JSword/Internationalization|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
==Open Scriptures Information Standard==&lt;br /&gt;
* A basic [[OSIS Tutorial|OSIS XML tutorial]]&lt;br /&gt;
* [[OSIS 211 CR| OSIS 2.1.1 schema change requests]]&lt;br /&gt;
* [https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd OSIS schema] &lt;br /&gt;
* [[List of eXtensions to OSIS used in SWORD]]&lt;br /&gt;
&lt;br /&gt;
==Ancillary software==&lt;br /&gt;
* [[BibleSync]] &amp;amp;ndash; for Bible software shared co-navigation&lt;br /&gt;
* [[DevTools:ICU|International Components for Unicode (ICU)]]&lt;br /&gt;
&lt;br /&gt;
== Development proposals and discussions ==&lt;br /&gt;
* [[Whiteboard]]&lt;br /&gt;
&lt;br /&gt;
==Module development==&lt;br /&gt;
* How to create [[DevTools:Modules|SWORD Modules]] &amp;amp; [[DevTools:conf Files|Module Configuration Files]]&lt;br /&gt;
* Guides to writing&lt;br /&gt;
**[[OSIS Bibles]], [[OSIS Commentaries]],&lt;br /&gt;
**[[OSIS Genbooks]], [[TEI Dictionaries]]&lt;br /&gt;
* Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
* Guide to [[Converting SFM Bibles to OSIS]]&lt;br /&gt;
* About [[Alternate Versification|Bible Versification]] schemes&lt;br /&gt;
* About [[File Formats]] and related [[File Formats#The_SWORD_Project_Utilities|Utility Programs]]&lt;br /&gt;
* About Unicode [[Encoding]]s, [[Fonts]] &amp;amp; [[DevTools:Text Editors|Text Editors]]&lt;br /&gt;
-----&lt;br /&gt;
* [[Module Development Collaboration]]&lt;br /&gt;
* [[Notes on particular CrossWire modules]]&lt;br /&gt;
* [[Module Requests]] and [[Non-CrossWire Text-Development Projects|Text Development]]&lt;br /&gt;
* [[Module Submission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8E8E8;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Getting started in wiki collaboration==&lt;br /&gt;
A wiki is a place to share documentation and development information.&lt;br /&gt;
* New user account [mailto://support@crosswire.org|requests] are now moderated. Anyone who has been a member for at least 4 days can edit a wiki once they have [[Special:Userlogin|logged in]].&lt;br /&gt;
* If you are new to wikis, consult the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] or the [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ] for information on using the wiki software .&lt;br /&gt;
* Look to see what might need attention by visiting [[Wiki Maintenance]]&lt;br /&gt;
* You may experiment with wiki using our [[CrossWire:Sandbox|Sandbox]].&lt;br /&gt;
* Another way to navigate the wiki is to click on [[:Category:Categories]].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CrossWire]]&lt;br /&gt;
[[Category:SWORD Frontends]]&lt;br /&gt;
[[Category:SWORD]]&lt;br /&gt;
[[Category:JSword]]&lt;br /&gt;
[[Category:OSIS]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16921</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16921"/>
				<updated>2020-06-08T19:11:27Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Emacs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd:&lt;br /&gt;
:https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd:&lt;br /&gt;
:http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
== Sublime Text ==&lt;br /&gt;
&lt;br /&gt;
Validate XML files on the fly with this [http://www.sublimetext.com/ Sublime Text 3] plugin:&amp;lt;br/&amp;gt;&lt;br /&gt;
https://packagecontrol.io/packages/Exalt&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
* Easy navigation&lt;br /&gt;
* Validation on the fly&lt;br /&gt;
* Auto completion&lt;br /&gt;
&lt;br /&gt;
=== Use nxml-mode for editing XML ===&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
=== Set-up Crosswire Schemas ===&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
Converting XSD is a very hard task; the XSD specification is complex. It seems that available command line tools that convert from xsd (XML Schema) to rng (RelaxNG) have problems of some sort.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Convert from .xsd to .rng: ====&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
==== Convert from .rng to .rnc ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tell nxml where to find our schemas ===&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auto-completion ===&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
= Validating from Windows Explorer =&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
= Python =&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16920</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16920"/>
				<updated>2020-06-08T18:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Schema */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd:&lt;br /&gt;
:https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd:&lt;br /&gt;
:http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
== Sublime Text ==&lt;br /&gt;
&lt;br /&gt;
Validate XML files on the fly with this [http://www.sublimetext.com/ Sublime Text 3] plugin:&amp;lt;br/&amp;gt;&lt;br /&gt;
https://packagecontrol.io/packages/Exalt&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
=== Use nxml-mode for editing XML ===&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
=== Set-up Crosswire Schemas ===&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Convert from .xsd to .rng: ====&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
==== Convert from .rng to .rnc ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tell nxml where to find our schemas ===&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auto-completion ===&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Validating from Windows Explorer =&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
= Python =&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16919</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16919"/>
				<updated>2020-06-08T18:46:04Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Notepad++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd (https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd)&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd (http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd)&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
== Sublime Text ==&lt;br /&gt;
&lt;br /&gt;
Validate XML files on the fly with this [http://www.sublimetext.com/ Sublime Text 3] plugin:&amp;lt;br/&amp;gt;&lt;br /&gt;
https://packagecontrol.io/packages/Exalt&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
=== Use nxml-mode for editing XML ===&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
=== Set-up Crosswire Schemas ===&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Convert from .xsd to .rng: ====&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
==== Convert from .rng to .rnc ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tell nxml where to find our schemas ===&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auto-completion ===&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Validating from Windows Explorer =&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
= Python =&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16918</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16918"/>
				<updated>2020-06-08T18:37:54Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd (https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd)&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd (http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd)&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
=== Use nxml-mode for editing XML ===&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
=== Set-up Crosswire Schemas ===&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Convert from .xsd to .rng: ====&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
==== Convert from .rng to .rnc ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tell nxml where to find our schemas ===&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auto-completion ===&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Validating from Windows Explorer =&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
= Python =&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16917</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16917"/>
				<updated>2020-06-08T18:37:43Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Validating from Windows Explorer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd (https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd)&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd (http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd)&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
=== Use nxml-mode for editing XML ===&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
=== Set-up Crosswire Schemas ===&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Convert from .xsd to .rng: ====&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
==== Convert from .rng to .rnc ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tell nxml where to find our schemas ===&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auto-completion ===&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Validating from Windows Explorer =&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16916</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16916"/>
				<updated>2020-06-08T18:37:06Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Emacs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd (https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd)&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd (http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd)&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
=== Use nxml-mode for editing XML ===&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
=== Set-up Crosswire Schemas ===&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Convert from .xsd to .rng: ====&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
==== Convert from .rng to .rnc ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tell nxml where to find our schemas ===&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auto-completion ===&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Validating from Windows Explorer ===&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16915</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16915"/>
				<updated>2020-06-08T18:34:48Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Emacs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd (https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd)&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd (http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd)&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
# Use nxml-mode for editing XML&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
# Set-up Crosswire Schemas&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
## Convert from .xsd to .rng:&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
## Convert from .rng to .rnc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Tell nxml where to find our schemas&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Auto-completion&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
# Links&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Validating from Windows Explorer ===&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&lt;br /&gt;
So it should be relatively easy to create a 'Crosswire XML validator'&lt;br /&gt;
Nautilus extension to help us validate TEI and OSIS files directly from&lt;br /&gt;
the file manager in Fedora/CentOS/Red Hat/Ubuntu.&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16914</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16914"/>
				<updated>2020-06-08T18:32:11Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Online validators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd (https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd)&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd (http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd)&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, you'll find others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file to the website before validating.&lt;br /&gt;
&lt;br /&gt;
We no not recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, and although it may be fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're creating and&lt;br /&gt;
editing a text and want periodically validate your work.&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
# Use nxml-mode for editing XML&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
# Set-up Crosswire Schemas&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&lt;br /&gt;
## Convert from .xsd to .rng:&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
## Convert from .rng to .rnc&lt;br /&gt;
&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's a little bit tedious to convert these files. I think you'll be&lt;br /&gt;
pleased to find these 2 .rnc files attached.&lt;br /&gt;
&lt;br /&gt;
## Tell nxml where to find our schemas&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Auto-completion&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
# links&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Validating from Windows Explorer ===&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&lt;br /&gt;
So it should be relatively easy to create a 'Crosswire XML validator'&lt;br /&gt;
Nautilus extension to help us validate TEI and OSIS files directly from&lt;br /&gt;
the file manager in Fedora/CentOS/Red Hat/Ubuntu.&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16913</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16913"/>
				<updated>2020-06-08T18:29:18Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Schema */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd (https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd)&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd (http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd)&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, there are others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file before validating.&lt;br /&gt;
&lt;br /&gt;
I think we shouldn't recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, moreover if it's fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're editing and&lt;br /&gt;
working on a text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
# Use nxml-mode for editing XML&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
# Set-up Crosswire Schemas&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&lt;br /&gt;
## Convert from .xsd to .rng:&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
## Convert from .rng to .rnc&lt;br /&gt;
&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's a little bit tedious to convert these files. I think you'll be&lt;br /&gt;
pleased to find these 2 .rnc files attached.&lt;br /&gt;
&lt;br /&gt;
## Tell nxml where to find our schemas&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Auto-completion&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
# links&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Validating from Windows Explorer ===&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&lt;br /&gt;
So it should be relatively easy to create a 'Crosswire XML validator'&lt;br /&gt;
Nautilus extension to help us validate TEI and OSIS files directly from&lt;br /&gt;
the file manager in Fedora/CentOS/Red Hat/Ubuntu.&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16912</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16912"/>
				<updated>2020-06-08T18:28:48Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Syntax Check and Valid OSIS/TEI files =&lt;br /&gt;
&lt;br /&gt;
An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
There are online facilities for XML validation, many programs capable of schema validation exist and most [http://en.wikipedia.org/wiki/XML_editor XML editors] ([http://xml-copy-editor.sourceforge.net/ XML Copy Editor], [http://en.wikipedia.org/wiki/Oxygen_XML_Editor Oxygen], [http://en.wikipedia.org/wiki/XMLSpy XMLSpy], [http://www.topologi.com/ Topologi], etc.) support some sort of XML schema validation.  &lt;br /&gt;
&lt;br /&gt;
= Bible Technologies Group =&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
Before validating XML files, you first need to download a schema from Crosswire.&lt;br /&gt;
* For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd&lt;br /&gt;
* For TEI encoded source files:  teiP5osis.2.5.0.xsd http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Online validators =&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, there are others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file before validating.&lt;br /&gt;
&lt;br /&gt;
I think we shouldn't recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, moreover if it's fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're editing and&lt;br /&gt;
working on a text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= CLI Validators =&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
== xmllint ==&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xmlstarlet ==&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Xerces ==&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
=== xerces-c ===&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== xsd-validator by Adrian Mouat ===&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Editors Supporting Validation =&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the editors listed below.&lt;br /&gt;
&lt;br /&gt;
NOTE: If for any reason they do not find a schema, many editor silently fallback to only checking if the file is well-formed, which may generate false-positive results. To be sure, run the Solomon test:&lt;br /&gt;
Add tag &amp;lt;code&amp;gt;&amp;lt;solomonTest /&amp;gt;&amp;lt;/code&amp;gt; in your text.&lt;br /&gt;
This tag conforms to the XML specifications but is not part of our schemas, so the editor must show up an error.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Notepad++ ==&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Emacs ==&lt;br /&gt;
&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
# Use nxml-mode for editing XML&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
# Set-up Crosswire Schemas&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&lt;br /&gt;
## Convert from .xsd to .rng:&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
## Convert from .rng to .rnc&lt;br /&gt;
&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's a little bit tedious to convert these files. I think you'll be&lt;br /&gt;
pleased to find these 2 .rnc files attached.&lt;br /&gt;
&lt;br /&gt;
## Tell nxml where to find our schemas&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Auto-completion&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
# links&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Validating from Windows Explorer ===&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&lt;br /&gt;
So it should be relatively easy to create a 'Crosswire XML validator'&lt;br /&gt;
Nautilus extension to help us validate TEI and OSIS files directly from&lt;br /&gt;
the file manager in Fedora/CentOS/Red Hat/Ubuntu.&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16911</id>
		<title>Validate OSIS or TEI text</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Validate_OSIS_or_TEI_text&amp;diff=16911"/>
				<updated>2020-06-08T17:13:47Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: Created page with &amp;quot;An OSIS or TEI test is an XML Document that must be: # &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An OSIS or TEI test is an XML Document that must be:&lt;br /&gt;
# &amp;lt;b&amp;gt;Well formed&amp;lt;/b&amp;gt;, it means that its syntax must conforms to the XML specs. An XML file that is not well formed is not an XML file.&lt;br /&gt;
# &amp;lt;b&amp;gt;Valid&amp;lt;/b&amp;gt;. A valid XML document is well-formed and conforms to the formal definition provided in a schema (or DTD). A document cannot have elements, attributes, or entities not defined in the schema. A schema can also define how entities may be nested, the possible values of attributes, etc.&lt;br /&gt;
&lt;br /&gt;
===Bible Technologies Group===&lt;br /&gt;
The '''BTG''' that sponsored the OSIS committee and hosted the OSIS schema no longer exists. &lt;br /&gt;
The schema location therefore now needs to be for a local copy on your computer or to a copy hosted by CrossWire or elsewhere.&lt;br /&gt;
&lt;br /&gt;
For more up to date details, see [[OSIS 211 CR]] which includes CrossWire's own updated schema.&lt;br /&gt;
&lt;br /&gt;
=== Schema ===&lt;br /&gt;
Before validating XML files, we first need to download a schema. At Crosswire, we use:&lt;br /&gt;
- For OSIS encoded source files: osisCore.2.1.1-cw-latest.xsd&lt;br /&gt;
- For TEI encoded source files:  teiP5osis.2.5.0.xsd&lt;br /&gt;
&lt;br /&gt;
You have to download these files here from Crosswire:&lt;br /&gt;
https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd&lt;br /&gt;
http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Online validators ===&lt;br /&gt;
The first and simpliest option for checking an XML file is to use&lt;br /&gt;
online validators. They will check if your XML is both well-formed and&lt;br /&gt;
valid. &lt;br /&gt;
&lt;br /&gt;
Here are two websites, there are others on the Internet.&lt;br /&gt;
&lt;br /&gt;
- Core Filing XML Schema Validator&lt;br /&gt;
  https://www.corefiling.com/opensource/schemaValidate/&lt;br /&gt;
  Accept huge files (tested with a 5.5MB file)&lt;br /&gt;
&lt;br /&gt;
- FreeFormatter Validator&lt;br /&gt;
  https://www.freeformatter.com/xml-validator-xsd.html&lt;br /&gt;
  The maximum size limit for file upload is 2MB&lt;br /&gt;
&lt;br /&gt;
With these validators, you have to upload the XML File and the schema&lt;br /&gt;
(.xsd) file before validating.&lt;br /&gt;
&lt;br /&gt;
I think we shouldn't recommend online validation, it may raises privacy&lt;br /&gt;
concerns with copyright texts, moreover if it's fine for a one shot&lt;br /&gt;
validation task, it becomes quickly boring when you're editing and&lt;br /&gt;
working on a text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== CLI Validators ===&lt;br /&gt;
When you're editing a text, one of the fastest option for checking your&lt;br /&gt;
XML is to use a CLI tool.&lt;br /&gt;
&lt;br /&gt;
==== xmllint ====&lt;br /&gt;
The simplest way is to use the xmllint program included with libxml2.&lt;br /&gt;
For Mac and Linux users, you likely already have xmllint installed.&lt;br /&gt;
Windows users willing to try xmllint will find interesting instructions&lt;br /&gt;
here:&lt;br /&gt;
https://techrina.net/2019/01/25/using-xmllint-program-for-windows-7/&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
To validate a TEI xml file enter:&lt;br /&gt;
&lt;br /&gt;
    xmllint --noout --schema teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xmlstarlet ====&lt;br /&gt;
XMLStarlet is an open source XML toolkit that you can use with Linux,&lt;br /&gt;
Mac or Windows. XMLStarlet is linked statically to both libxml2 and&lt;br /&gt;
libxslt, so generally all you need to process XML documents is one&lt;br /&gt;
executable file, it may be a better option for Windows users.&lt;br /&gt;
&lt;br /&gt;
On Linux, xmlstarlet is available as a regular package. &lt;br /&gt;
&lt;br /&gt;
For Mac or Windows, the download page is at:&lt;br /&gt;
http://xmlstar.sourceforge.net/download.php&lt;br /&gt;
&lt;br /&gt;
To validate a TEI XML file enter:&lt;br /&gt;
&lt;br /&gt;
    xmlstarlet val --xsd ../../schemas/teiP5osis.2.5.0.xsd test.tei.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Xerces ====&lt;br /&gt;
Xerces is Apache's collection of software libraries for parsing,&lt;br /&gt;
validating, serializing and manipulating XML. The implementation is&lt;br /&gt;
available in the Java, C++ and Perl programming languages, the Java&lt;br /&gt;
version having the most features.&lt;br /&gt;
&lt;br /&gt;
On Ubuntu/debian, you can install xerces-c tools:&lt;br /&gt;
&lt;br /&gt;
    apt install libxerces-c-samples&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    StdInParse -v=always -n -s &amp;lt; test.osis.xml.&lt;br /&gt;
&lt;br /&gt;
You'll find the full syntax here:&lt;br /&gt;
https://xerces.apache.org/xerces-c/stdinparse-3.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== xsd-validator by Adrian Mouat ====&lt;br /&gt;
There isn’t a simple way to immediately run the Xerces validator in&lt;br /&gt;
Java from the command line. For that reason, Adrian Mouat wrote a Java&lt;br /&gt;
program to solve this issue.&lt;br /&gt;
&lt;br /&gt;
It's called 'xsd-validator', for installing it:&lt;br /&gt;
&lt;br /&gt;
Either clone the git repository at:&lt;br /&gt;
https://github.com/amouat/xsd-validator.git&lt;br /&gt;
or download xsd-validator zip from:&lt;br /&gt;
https://github.com/amouat/xsd-validator/releases/download/v1.0/xsdv-1.0.zip&lt;br /&gt;
&lt;br /&gt;
To validate an OSIS XML file enter:&lt;br /&gt;
&lt;br /&gt;
    cd xsd-validator&lt;br /&gt;
    ./xsdv.sh osisCore.2.1.1-cw-latest.xsd test.osis.xml&lt;br /&gt;
&lt;br /&gt;
There is also a cmd file that you can use to run xsdv from a windows Command Prompt.&lt;br /&gt;
&lt;br /&gt;
For installing xsd-validator, run:&lt;br /&gt;
&lt;br /&gt;
    sudo ant install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Editors Supporting Validation ===&lt;br /&gt;
The final choice is to use an editor with validation on the fly. If&lt;br /&gt;
you’re doing a lot of XML editing and validation it may well be worth&lt;br /&gt;
looking into one of the following:&lt;br /&gt;
&lt;br /&gt;
==== Notepad++ ====&lt;br /&gt;
&lt;br /&gt;
With XML Tools plugin for Notepad++, Notepad++ will allow you to clean&lt;br /&gt;
up unformatted files, check XML syntax function if you want just to&lt;br /&gt;
check your existing XML file for errors, or use Enable Auto Validation&lt;br /&gt;
for automatic validation of code as it is being written among other&lt;br /&gt;
features.&lt;br /&gt;
&lt;br /&gt;
Go to the “Plugins” menu, then to “Plugin Manager”, then “Show Plugin&lt;br /&gt;
Manager”. Look for XML Tools in the opened window, set the checkbox,&lt;br /&gt;
and click the button “Install”.&lt;br /&gt;
&lt;br /&gt;
You must restart Notepad ++ after installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Emacs ====&lt;br /&gt;
It's a little bit tricky, but you can configure Emacs to provide the&lt;br /&gt;
following features:&lt;br /&gt;
&lt;br /&gt;
- Easy navigation&lt;br /&gt;
- Validation on the fly&lt;br /&gt;
- Auto completion&lt;br /&gt;
&lt;br /&gt;
# Use nxml-mode for editing XML&lt;br /&gt;
The first thing to do is to force Emacs to use nxml mode instead of xml&lt;br /&gt;
mode when editing XML files. nxml-mode uses the nXML extension to&lt;br /&gt;
provide automatic validation and lots of other helpful functions for&lt;br /&gt;
editing XML files.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your ~/.emacs file:&lt;br /&gt;
&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xsl$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.xhtml$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
    (setq auto-mode-alist (cons '(&amp;quot;\\.page$&amp;quot; . nxml-mode) auto-mode-alist))&lt;br /&gt;
&lt;br /&gt;
    (autoload 'xml-mode &amp;quot;nxml&amp;quot; &amp;quot;XML editing mode&amp;quot; t)&lt;br /&gt;
&lt;br /&gt;
    (eval-after-load 'rng-loc&lt;br /&gt;
       '(add-to-list 'rng-schema-locating-files &amp;quot;~/.schema/schemas.xml&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
If you are using Emacs 24 or higher, you will also need this line that&lt;br /&gt;
will give you auto-completion:&lt;br /&gt;
&lt;br /&gt;
    (global-set-key [C-return] 'completion-at-point)&lt;br /&gt;
&lt;br /&gt;
# Set-up Crosswire Schemas&lt;br /&gt;
nxml-mode validates XML files using schemas in relaxng compact format&lt;br /&gt;
(.rnc). We have to convert our files from .xsd format to .rnc.&lt;br /&gt;
&lt;br /&gt;
We use Sun RELAX NG Converter, nowadays bundled with the (Sun)&lt;br /&gt;
'Multi-Schema Validator' to convert .xsd to .rng, then we use trang to&lt;br /&gt;
convert .rng to .rnc:&lt;br /&gt;
&lt;br /&gt;
Install on Fedora:&lt;br /&gt;
&lt;br /&gt;
    # sudo dnf install msv-rngconv trang&lt;br /&gt;
&lt;br /&gt;
## Convert from .xsd to .rng:&lt;br /&gt;
&lt;br /&gt;
    rngconv osisCore.2.1.1-cw-latest.xsd &amp;gt; osisCore.2.1.1-cw-latest.rng&lt;br /&gt;
&lt;br /&gt;
## Convert from .rng to .rnc&lt;br /&gt;
&lt;br /&gt;
    trang -I rng -O rnc osisCore.2.1.1-cw-latest.rng osisCore.2.1.1-cw-latest.rnc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's a little bit tedious to convert these files. I think you'll be&lt;br /&gt;
pleased to find these 2 .rnc files attached.&lt;br /&gt;
&lt;br /&gt;
## Tell nxml where to find our schemas&lt;br /&gt;
We have already (see above) set the variable rng-schema-locating-files&lt;br /&gt;
to &amp;quot;~/.schema/schemas.xml&lt;br /&gt;
&lt;br /&gt;
Now, we have to copy our new .rnc schemas in the .schema dir&lt;br /&gt;
&lt;br /&gt;
    mkdir -p ~/.schema&lt;br /&gt;
    cp osisCore.2.1.1-cw-latest.rnc teiP5osis.2.5.0.rnc ~/.schema&lt;br /&gt;
&lt;br /&gt;
and create ~/.schema/schemas.xml:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;locatingRules xmlns=&amp;quot;http://thaiopensource.com/ns/locating-rules/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot; uri=&amp;quot;teiP5osis.2.5.0.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;namespace ns=&amp;quot;http://www.bibletechnologies.net/2003/OSIS/namespace&amp;quot; uri=&amp;quot;osisCore.2.1.1-cw-latest.rnc&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/locatingRules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Auto-completion&lt;br /&gt;
Type a &amp;lt; character and hit Ctrl+Enter for a list of valid tags. You can&lt;br /&gt;
type a few letters and hit Tab to use auto-completion. Hit Enter to&lt;br /&gt;
insert the given tag. This also works with attributes: simply add a&lt;br /&gt;
space after the tag, and hit Ctrl+Enter for attribute auto-completion.&lt;br /&gt;
&lt;br /&gt;
# links&lt;br /&gt;
https://fedoraproject.org/wiki/How_to_use_Emacs_for_XML_editing&lt;br /&gt;
https://lgfang.github.io/mynotes/emacs/emacs-xml.html#sec-9&lt;br /&gt;
https://www.emacswiki.org/emacs/NxmlMode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Validating from Windows Explorer ===&lt;br /&gt;
Here is a simple application for validating XML files from within&lt;br /&gt;
Windows Explorer.&lt;br /&gt;
&lt;br /&gt;
https://www.codeproject.com/Articles/8431/A-Simple-XML-Validator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
It's relatively straighforward to validate a file with Python:&lt;br /&gt;
&lt;br /&gt;
Let's create simplest validator.py&lt;br /&gt;
&lt;br /&gt;
    from lxml import etree&lt;br /&gt;
&lt;br /&gt;
    def validate(xml_path: str, xsd_path: str) -&amp;gt; bool:&lt;br /&gt;
&lt;br /&gt;
        xmlschema_doc = etree.parse(xsd_path)&lt;br /&gt;
        xmlschema = etree.XMLSchema(xmlschema_doc)&lt;br /&gt;
&lt;br /&gt;
        xml_doc = etree.parse(xml_path)&lt;br /&gt;
        result = xmlschema.validate(xml_doc)&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
&lt;br /&gt;
then write and run main.py&lt;br /&gt;
&lt;br /&gt;
    from validator import validate&lt;br /&gt;
&lt;br /&gt;
    if validate(&amp;quot;path/to/file.xml&amp;quot;, &amp;quot;path/to/scheme.xsd&amp;quot;):&lt;br /&gt;
        print('Valid! :)')&lt;br /&gt;
    else:&lt;br /&gt;
        print('Not valid! :(')&lt;br /&gt;
&lt;br /&gt;
So it should be relatively easy to create a 'Crosswire XML validator'&lt;br /&gt;
Nautilus extension to help us validate TEI and OSIS files directly from&lt;br /&gt;
the file manager in Fedora/CentOS/Red Hat/Ubuntu.&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=TEI_Dictionaries&amp;diff=16906</id>
		<title>TEI Dictionaries</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=TEI_Dictionaries&amp;diff=16906"/>
				<updated>2020-05-31T18:26:11Z</updated>
		
		<summary type="html">&lt;p&gt;Domcox: /* Validation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
In SWORD, the &amp;quot;LD&amp;quot; module type is used to contain modules keyed to non-hierarchical keys. Such modules include: dictionaries (indexed by words or numbers), glossaries (simple one-word translation dictionaries), and daily devotionals (indexed by dates).&lt;br /&gt;
&lt;br /&gt;
For lexicons and dictionaries, the use of [http://www.tei-c.org/Guidelines/P5/ Text Encoding Initiative P5] markup is encouraged. TEI P5 is an XML standard, quite similar to OSIS and ThML, intended for encoding all types of electronic documents. Since TEI is modular, it is possible to ignore the majority of its modules and use only a smaller set of tags necessary to our needs.&lt;br /&gt;
&lt;br /&gt;
For the purpose using TEI P5 in SWORD, we have developed a special XML Schema that includes the basic set of P5 modules necessary for dictionaries and adds osisID and osisRef attributes (with their normal OSIS syntax) to many elements. This will permit cross-referencing with OSIS modules and the use of standard Bible references in TEI documents. Our customized TEI schema is available at http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd.&lt;br /&gt;
&lt;br /&gt;
==Order==&lt;br /&gt;
SWORD uses a strict binary search to find entries and nearest entries in a &amp;quot;LD&amp;quot; module. There are two restrictions that this places upon a TEI dictionary:&lt;br /&gt;
&lt;br /&gt;
1) Keys are unique and cannot be repeated. This poses problems with some dictionaries that have more than 1 entry for a key. These will need to be merged.&lt;br /&gt;
&lt;br /&gt;
2) Entries will be re-ordered (by the importer utility) based upon their UTF-8 code points. Fortunately this turns out to be identical to a simple 8-bit ASCII collation.&lt;br /&gt;
&lt;br /&gt;
Note: Some characters can be composed or decomposed. The tei2mod importer will normalize to NFC using ICU. Any program that does not normalize its search request in exactly the same way cannot be expected to find entries.&lt;br /&gt;
&lt;br /&gt;
==General Structure==&lt;br /&gt;
&lt;br /&gt;
To produce a Lexicon/Dictionary with our customized TEI Schema, you can use this template: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;TEI xmlns=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&amp;quot;&lt;br /&gt;
      xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt;
      xsi:schemaLocation=&amp;quot;http://www.crosswire.org/2013/TEIOSIS/namespace&lt;br /&gt;
                          http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Header===&lt;br /&gt;
&lt;br /&gt;
A header minimally contains information about the title of the electronic text in &amp;lt;titleStmt&amp;gt;, about its publication in &amp;lt;publicationStmt&amp;gt;, and bibliographic information about the source document from which it is derived &amp;lt;sourceDesc&amp;gt;. A minimal TEI header would look as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;teiHeader&amp;gt;&lt;br /&gt;
 &amp;lt;fileDesc&amp;gt;&lt;br /&gt;
  &amp;lt;titleStmt&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;A title statement about the electronic text&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/titleStmt&amp;gt;&lt;br /&gt;
  &amp;lt;publicationStmt&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Information on the publication of the electronic text.&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/publicationStmt&amp;gt;&lt;br /&gt;
  &amp;lt;sourceDesc&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;A bibliographic description of the source for the electronic text.&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/sourceDesc&amp;gt;&lt;br /&gt;
 &amp;lt;/fileDesc&amp;gt;&lt;br /&gt;
&amp;lt;/teiHeader&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Body ===&lt;br /&gt;
&lt;br /&gt;
Here is the general structure of the body content: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;entryFree sortKey=&amp;quot;AARON&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;def&amp;gt;The son of Amram and Jochebed, and the older brother of Moses and Miriam.&amp;lt;/def&amp;gt;&lt;br /&gt;
  &amp;lt;/entryFree&amp;gt;&lt;br /&gt;
  &amp;lt;entryFree sortKey=&amp;quot;ABADDON&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;def&amp;gt;Destroyer, the name given to the king of the hosts represented by the locusts.&amp;lt;/def&amp;gt;&lt;br /&gt;
  &amp;lt;/entryFree&amp;gt;&lt;br /&gt;
  ....&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. '''sortKeys are unique and cannot be repeated.'''&lt;br /&gt;
&lt;br /&gt;
2. The container for a dictionary element in TEI is &amp;lt;entry&amp;gt; for structured entries, &amp;lt;entryFree&amp;gt; for any child elements allowed, and &amp;lt;superEntry&amp;gt; to collect entries into a larger one. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;entry&amp;gt; is strongly structured. It is more like a database row definition. Elements have particular parenting. And whitespace is insignificant. &amp;lt;entry&amp;gt; requires elements to be in a particular order and nested in a particular fashion and may not allow text in places one would want. &amp;lt;entry&amp;gt; seems more appropriate for original works.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;entryFree&amp;gt; is weakly structured. It is more like a document. The elements can come in any order, nested in any fashion and text can be interspersed as desired. Thus, whitespace is significant. '''For transforming e-texts into TEI, &amp;lt;entryFree&amp;gt; is then highly recommended'''.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;superEntry&amp;gt; can be used as a collector for several &amp;lt;entry&amp;gt; or &amp;lt;entryFree&amp;gt;. The tei2mod module creator will create an entry for the &amp;lt;superEntry&amp;gt; and one for each &amp;lt;entry&amp;gt; and &amp;lt;entryFree&amp;gt; in it.&lt;br /&gt;
&lt;br /&gt;
3. The engine is designed to support multiple keys in a single dictionary module so something like &amp;lt;entryFree n=&amp;quot;ἀγαπάω|agapaō|G25&amp;quot;&amp;gt; would be a feasible entry. A user could look up the same word in different languages modules without having to switch dictionaries.&lt;br /&gt;
&lt;br /&gt;
An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;entryFree n=&amp;quot;H0002|אב&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;title&amp;gt;H2&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;orth&amp;gt;אב&amp;lt;/orth&amp;gt;&lt;br /&gt;
 &amp;lt;orth type=&amp;quot;trans&amp;quot; rend=&amp;quot;bold&amp;quot;&amp;gt;'ab&amp;lt;/orth&amp;gt;&lt;br /&gt;
 &amp;lt;pron rend=&amp;quot;italic&amp;quot;&amp;gt;ab&amp;lt;/pron&amp;gt;&amp;lt;lb/&amp;gt;&lt;br /&gt;
 &amp;lt;def&amp;gt;(Chaldee); corresponding to &amp;lt;ref target=&amp;quot;Strong:H0001&amp;quot;&amp;gt;H1&amp;lt;/ref&amp;gt;: - father.&amp;lt;/def&amp;gt;&lt;br /&gt;
&amp;lt;/entryFree&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And here a more complicated example from our Webster1913 module&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;entryFree sortKey=&amp;quot;A&amp;quot; split=&amp;quot;A|A per se&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form type=&amp;quot;headword&amp;quot;&amp;gt;&amp;lt;orth rend=&amp;quot;bold&amp;quot;&amp;gt;A&amp;lt;/orth&amp;gt;&amp;lt;/form&amp;gt; &amp;lt;pron&amp;gt;(&amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;named ā in the English, and most commonly ä in other languages&amp;lt;/hi&amp;gt;)&amp;lt;/pron&amp;gt;. &amp;lt;def&amp;gt;The first letter of the English and of many other alphabets. The capital A of the alphabets of Middle and Western Europe, as also the small letter (a), besides the forms in Italic, black letter, etc., are all descended from the old Latin A, which was borrowed from the Greek &amp;lt;name type=&amp;quot;biologicalSpecies&amp;quot; rend=&amp;quot;italic&amp;quot;&amp;gt;&amp;lt;ref target=&amp;quot;alpha&amp;quot;&amp;gt;Alpha&amp;lt;/ref&amp;gt;&amp;lt;/name&amp;gt;, of the same form; and this was made from the first letter (�) of the Phœnician alphabet, the equivalent of the Hebrew &amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;Aleph&amp;lt;/hi&amp;gt;, and itself from the Egyptian origin. The &amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;Aleph&amp;lt;/hi&amp;gt; was a consonant letter, with a guttural breath sound that was not an element of Greek articulation; and the Greeks took it to represent their vowel &amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;Alpha&amp;lt;/hi&amp;gt; with the ä sound, the Phœnician alphabet having no vowel symbols.&amp;lt;/def&amp;gt;&amp;lt;lb/&amp;gt;&lt;br /&gt;
This letter, in English, is used for several different vowel sounds. See &amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;Guide to pronunciation&amp;lt;/hi&amp;gt;, §§ 43-74. The regular long &amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;a&amp;lt;/hi&amp;gt;, as in &amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;fate&amp;lt;/hi&amp;gt;, etc., is a comparatively modern sound, and has taken the place of what, till about the early part of the 17th century, was a sound of the quality of ä (as in &amp;lt;hi rend=&amp;quot;italic&amp;quot;&amp;gt;far&amp;lt;/hi&amp;gt;).&amp;lt;lb/&amp;gt;&lt;br /&gt;
&amp;lt;sense n=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;num type=&amp;quot;sense&amp;quot;&amp;gt;2.&amp;lt;/num&amp;gt; &amp;lt;seg type=&amp;quot;specialization&amp;quot; rend=&amp;quot;italic&amp;quot;&amp;gt;(Mus.)&amp;lt;/seg&amp;gt; &amp;lt;def&amp;gt;The name of the sixth tone in the model major scale (that in C), or the first tone of the minor scale, which is named after it the scale in A minor. The second string of the violin is tuned to the A in the treble staff. — A sharp (A♯) is the name of a musical tone intermediate between A and B. — A flat (A♭) is the name of a tone intermediate between A and G.&amp;lt;/def&amp;gt;&amp;lt;/sense&amp;gt;&amp;lt;lb/&amp;gt;&lt;br /&gt;
&amp;lt;re type=&amp;quot;colloc&amp;quot; rend=&amp;quot;smaller&amp;quot;&amp;gt;&amp;lt;term type=&amp;quot;colloc&amp;quot; rend=&amp;quot;bold smaller&amp;quot;&amp;gt;A per se&amp;lt;/term&amp;gt; &amp;lt;etym&amp;gt;(L. &amp;lt;oVar rend=&amp;quot;italic&amp;quot;&amp;gt;per se&amp;lt;/oVar&amp;gt; by itself)&amp;lt;/etym&amp;gt;, &amp;lt;def rend=&amp;quot;narrow-spacing&amp;quot;&amp;gt;one preëminent; a nonesuch.&amp;lt;/def&amp;gt; &amp;lt;usg rend=&amp;quot;italic&amp;quot;&amp;gt;&amp;lt;/usg&amp;gt;&amp;lt;/re&amp;gt;&amp;lt;lb/&amp;gt;&lt;br /&gt;
&amp;lt;cit type=&amp;quot;quotation&amp;quot;&amp;gt;&amp;lt;quote&amp;gt;O fair Creseide, the flower and &amp;lt;oVar rend=&amp;quot;italic&amp;quot;&amp;gt;A per se&amp;lt;/oVar&amp;gt;&amp;lt;lb/&amp;gt;&lt;br /&gt;
Of Troy and Greece.&amp;lt;lb/&amp;gt;&lt;br /&gt;
&amp;lt;hi rend=&amp;quot;text-align(right)&amp;quot;&amp;gt;&amp;lt;persName type=&amp;quot;author&amp;quot; rend=&amp;quot;italic&amp;quot;&amp;gt;Chaucer.&amp;lt;/persName&amp;gt;&amp;lt;/hi&amp;gt;&amp;lt;/quote&amp;gt;&amp;lt;/cit&amp;gt;&amp;lt;lb/&amp;gt;&lt;br /&gt;
&amp;lt;/entryFree&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Markup==&lt;br /&gt;
&lt;br /&gt;
===Linking Entries===&lt;br /&gt;
There are three kinds of references in a dictionary:&lt;br /&gt;
&lt;br /&gt;
'''Internal references''' to entries in the same dictionary.&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;xr type=&amp;quot;see&amp;quot;&amp;gt;See: &amp;lt;ref target=&amp;quot;self:key&amp;quot;&amp;gt;key text&amp;lt;/ref&amp;gt;&amp;lt;/xr&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: the key text may be any representation of the key. For example, the key may be G0019a and the key text may be 19a.&lt;br /&gt;
&lt;br /&gt;
'''External references''' to entries in another work.&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;xr type=&amp;quot;xref&amp;quot;&amp;gt;&amp;lt;ref target=&amp;quot;work:key&amp;quot;&amp;gt;key text&amp;lt;/ref&amp;gt;&amp;lt;/xr&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: work is the short module name as found ''between'' square brackets as in [Strong]&lt;br /&gt;
&lt;br /&gt;
'''Biblical references''' to scripture passages. These use osisRef and are discussed below.&lt;br /&gt;
&lt;br /&gt;
====OSIS References====&lt;br /&gt;
&lt;br /&gt;
For the purpose of facilitating the marking of Bible references and linking with OSIS documents, two attributes have been borrowed from OSIS:&lt;br /&gt;
&lt;br /&gt;
osisID exists on virtually all elements and contains osisID(s) (optionally with work IDs). An osisID might be used to link from an OSIS document to your TEI dictionary entry.&lt;br /&gt;
&lt;br /&gt;
osisRef exists on the &amp;lt;tt&amp;gt;&amp;amp;lt;ref&amp;gt;&amp;lt;/tt&amp;gt; element. A biblical reference occurring in an entry might be marked as:&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;xr type=&amp;quot;Bible&amp;quot;&amp;gt;&amp;lt;ref osisRef=&amp;quot;KJV:Gen.1.5-Gen.1.8&amp;quot;&amp;gt;Genesis 1:5-8&amp;lt;/ref&amp;gt;&amp;lt;/xr&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rendering Instructions===&lt;br /&gt;
&lt;br /&gt;
TEI is focused on semantic markup, but supports rendering instructions on most elements via the &amp;lt;tt&amp;gt;rend&amp;lt;/tt&amp;gt; attribute. This attribute contains a description (or recommendation) of how the enclosed text should be rendered. In addition, if a segment of text should be marked as primarily significant because of its differentiated rendering, it may be marked by either the &amp;lt;emph&amp;gt; or &amp;lt;hi&amp;gt; elements. &amp;lt;emph&amp;gt; indicates that the text is emphasized, whereas the more general and semantically neutral &amp;lt;hi&amp;gt; element simply acts as a place to hang the rend attribute:&lt;br /&gt;
 &amp;lt;code&amp;gt;I was &amp;lt;emph rend=&amp;quot;italic&amp;quot;&amp;gt;extremely&amp;lt;/emph&amp;gt; excited by the new TEI filters. Yay.&lt;br /&gt;
 This text is &amp;lt;hi rend=&amp;quot;bold&amp;quot;&amp;gt;bold&amp;lt;/hi&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;rend&amp;lt;/tt&amp;gt; attribute may contain a list of values, but these values are not specified by the TEI P5 specification itself. As such, for the purpose of interoperability and consistency, it is important that values for use in Sword be enumerated. Some of these values come from the set of allowed values on the type attribute of OSIS &amp;lt;hi&amp;gt; elements, which in turn borrows from CSS. Other values will generally borrow from CSS conventions.&lt;br /&gt;
&lt;br /&gt;
CrossWire values for the TEI P5 &amp;lt;tt&amp;gt;rend&amp;lt;/tt&amp;gt; attribute:&lt;br /&gt;
 bold          'from OSIS'&lt;br /&gt;
 illuminated   'from OSIS; an illuminated letter or drop-cap, rendered very large, preferably across multiple subsequent lines of text'&lt;br /&gt;
 italic        'from OSIS'&lt;br /&gt;
 line-through  'from OSIS; used for strike-through text'&lt;br /&gt;
 normal        'from OSIS; used to switch off special rendering while in the midst of a string of special rendering'&lt;br /&gt;
 small-caps    'from OSIS'&lt;br /&gt;
 sub           'from OSIS; subscript text'&lt;br /&gt;
 super         'from OSIS; superscript text'&lt;br /&gt;
 underline     'from OSIS'&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
&lt;br /&gt;
You can easily place images in your TEI file using the &amp;lt;graphic /&amp;gt; element. This element is &amp;quot;milestoned,&amp;quot; meaning it isn't a container. The forward slash near the end signals that fact. Use the &amp;quot;url&amp;quot; attribute to define the location of the image relative to the compiled module. In the example below, the image &amp;quot;crosswire.jpg&amp;quot; resides in a folder &amp;quot;images&amp;quot; in the same folder as the compiled module. (SVN version)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;graphic url=&amp;quot;images/crosswire.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables require a bit of work to get set up but can be useful for some purposes. The entire table is contained in a element, and each row is then contained in a &amp;lt;row&amp;gt; element. For each column in each row a &amp;lt;cell&amp;gt; element contains the text of that cell. The following table creates column labels in bold type and includes two columns and two rows below the label row.  (SVN version)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Column 1 Label&amp;lt;/hi&amp;gt;&amp;lt;/cell&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;&amp;lt;hi type=&amp;quot;bold&amp;quot;&amp;gt;Column 2 Label&amp;lt;/hi&amp;gt;&amp;lt;/cell&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 1, Row 1&amp;lt;/cell&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 2, Row 1&amp;lt;/cell&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
   &amp;lt;row&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 1, Row 2&amp;lt;/cell&amp;gt;&lt;br /&gt;
      &amp;lt;cell&amp;gt;Column 2, Row 2&amp;lt;/cell&amp;gt;&lt;br /&gt;
   &amp;lt;/row&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Validation==&lt;br /&gt;
&lt;br /&gt;
Use of the above XML header will assist in automated validation with most XML Schema Validators.&lt;br /&gt;
&lt;br /&gt;
How to validate with xmllint:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ wget http://www.crosswire.org/OSIS/teiP5osis.2.5.0.xsd&lt;br /&gt;
$ xmllint --noout --schema teiP5osis.2.5.0.xsd file.tei.xml&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also the TEI Validator online: http://teibyexample.org/xquery/TBEvalidator.xq&lt;br /&gt;
&lt;br /&gt;
==Importing==&lt;br /&gt;
The program tei2mod is used to create a SWORD Lexicon/Dictionary/Daily Devotional/Glossary module from valid TEI.&lt;br /&gt;
&lt;br /&gt;
This is a work in progress, so please report any problems found.&lt;br /&gt;
&lt;br /&gt;
The current usage is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
You are running tei2mod:&lt;br /&gt;
TEI Lexicon/Dictionary/Daily Devotional/Glossary module creation tool for&lt;br /&gt;
	The SWORD Project&lt;br /&gt;
&lt;br /&gt;
usage: tei2mod &amp;lt;output/path&amp;gt; &amp;lt;teiDoc&amp;gt; [OPTIONS]&lt;br /&gt;
  -z			 use ZIP compression (default no compression)&lt;br /&gt;
  -Z			 use LZSS compression (default no compression)&lt;br /&gt;
  -s &amp;lt;2|4&amp;gt;		 max text size per entry(default 4):&lt;br /&gt;
  -c &amp;lt;cipher_key&amp;gt;	 encipher module using supplied key&lt;br /&gt;
				 (default no enciphering)&lt;br /&gt;
  -N			 Do not convert UTF-8 or normalize UTF-8 to NFC&lt;br /&gt;
				 (default is to convert to UTF-8, if needed,&lt;br /&gt;
				  and then normalize to NFC. Note: all UTF-8&lt;br /&gt;
				  texts should be normalized to NFC.)&lt;br /&gt;
&lt;br /&gt;
	The options -z, -Z, and -s are mutually exclusive.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes:''' &lt;br /&gt;
# At this time, enciphering does not work for tei2mod.&lt;br /&gt;
# Currently, all compressed SWORD modules use ZIP compression.&lt;br /&gt;
# Having keys in the proper order may noticeably improve import time and may affect the module's lookup performance of &amp;quot;adjacent&amp;quot; entries.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
If a module compiles but causes a front-end to crash:&lt;br /&gt;
* Double-check the entry id (@n) to make sure there is a unique id for each entry. &lt;br /&gt;
* For modules keyed to Strong's numbers, ensure there is &amp;quot;zero-padding,&amp;quot; meaning all Strong's numbers should include four digits plus a zero at the beginning. So &amp;quot;G1&amp;quot; should be &amp;quot;00001&amp;quot;. If any numbered id is not five digits, it make cause frontends to crash. &lt;br /&gt;
* Remove all &amp;lt;tt&amp;gt;&amp;amp;lt;div&amp;gt;&amp;lt;/tt&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
==Other helpful sites==&lt;br /&gt;
&lt;br /&gt;
[http://www.tei-c.org/release/doc/tei-p5-doc/en/html/index.html The TEI Guidelines] and in particular, the documentation for [http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-entryFree.html &amp;lt;entryFree&amp;gt;], on which most dictionaries should be based.&lt;br /&gt;
&lt;br /&gt;
Tutorial modules accompanied with a dedicated examples section: http://teibyexample.org/TBE.htm&lt;br /&gt;
&lt;br /&gt;
==Sample TEI P5 documents==&lt;br /&gt;
* [https://gitlab.com/crosswire-bible-society/webster1913 Webster's Dictionary (1913)]&lt;br /&gt;
* [https://gitlab.com/crosswire-bible-society/strongsdic Strong's Dictionary]&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides|TEI Dictionaries]]&lt;/div&gt;</summary>
		<author><name>Domcox</name></author>	</entry>

	</feed>