微信公众号 CCBible/Bible101/DBible 微博@基督徒百科@Bible101@歌珊地圣经引擎@如鹰展翼而上 QQ群 4619600/226112909/226112998 同步推送#今日真道圣言#
OSIS2.1用户手册:第五章
OSIS开放圣经信息标准2.1用户手册翻译
OSIS 2.1 用户手册 第五章 XML和OSIS声明declaration
编码成OSIS的所有文本需要尽量被标识才能起作用。编码声明decalration告诉语法分析器parser(负责读入该文件的这部分软件)正在阅读的文档的类型。
第一行:
<?xml version="1.0" encoding="UTF-8"?>
有三部分:
? xml
? version="1.0"
? encoding="UTF-8"
前两个,xml version=”1.0”标识该文档为XML文档并且告知其XML版本号。第三个encoding=”UTF-8”告诉语法分析器(负责读入该文件的这部分软件)该文档使用哪个字符集character set。请把字符集理解成可以在该文档中显示的字符的集合。也可以使用其他的编码声明,不过这个声明却是最常用的。
从第三行开始有很长的一个开始标记是OSIS文档最外面的标记,<osis>。OSIS文档中所有的元素必须要在OSIS命名空间namespace中声明。命名空间是由XML标准定义的一个方法,用来声明一个文档中元素的来源。XML 标准允许来自不同定义的元素组合在一个文档中。也允许使用不同的方法定义元素,甚至包括在一个模式中没有任何的定义。为了处理这么多种情况,所有的基于XML的问的那个必须要有一个命名空间的声明。
使用OSIS命名空间有两种方法。不需要全部背下来,只要选择如下两种方法之一即可,需要记住的是要使用OSIS2.1.1来开始文本编码。
OSIS命名空间方法1:复制如下在<?xml version="1.0" encoding="UTF-8"?>之后的行:
<osis
xmlns="http://www.bibletechnologies.net/2003/OSIS/namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bibletechnologies.net/2003/OSIS/namespace
http://www.bibltechnolgologies.net/OSIS/osisCore.2.1.1.xsd">
OSIS命名空间方法2,复制如下在<?xml version="1.0" encoding="UTF-8"?>之后的行:
<osis:osis
xmlns:osis="http://www.bibletechnologies.net/2003/OSIS/namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bibletechnologies.net/2003/OSIS/namespace
http://www.bibltechnolgologies.net/OSIS/osisCore.2.1.1.xsd">
请注意在第二个方法中,最后的结束元素必须是: </osis:osis>. 第一种方法更简单一些,不过两种方法都是合理的。
将来参考:
前一个方法声明了OSIS命名空间是默认命名空间。后一个则允许在使用该命名空间以前,用”osis”前缀的来使用OSIS命名空间。命名空间继承于其父元素,所以它不会影响如何出版一个OSIS文档。
将来参考:
请注意这里给出了OSIS模式的URL地址。这表示要验证该文档,必须要连接到互联网。对于本地使用,必须在该文档相同的目录下有该模式文件的本地副本。这时候,http://www.bibltechnolgologies.net/OSIS/osisCore.2.1.xsd" 就要换成osisCore.2.1.xsd"。
从现在开始,OSIS文档就开始了。OSIS文档既可以是多个工作work(圣经)的文集,也可以只是单一的文本,例如KJV圣经。这个示例是一个简单的文档哥而不是一系列文档的集合(这时候需要用<osisCorpus>元素开始,且其中有多个<osisText>元素),所以下面一个要展开的元素就是osisText:
<osisText osisIDWork="CEV" osisRefWork="Bible" xml:lang="en" canonical="true">
osisText元素有比上例中更多的属性attribute,不过这里的属性却是一个基本的OSIS文档中最常用的。(osisText或者其他元素的属性的完整列表请参见附录A OSIS元素 中的列表)
每个osisText元素都需要提供一个osisIDWork属性和值。值是在编码的名字的缩写(短名),本例中是当代英文版本Contemporary English Version, or CEV。短名在文本的著作声明work declaration中定义,稍后详谈。
每个osisText元素都指定了其中的osisRef要参考的参考reference或者章节versification。它可以在或者不在相同的著作work中。根据你区分不同对象的精度的不同,有几个主要的章节传统versification tradition,以及无数的精细颗粒度的变体。对于目前来讲,我们定义并且保留了这些主要的传统参考系统的名字:
? NRSVA New Revised Standard Version with Apocrypha 新修订标准版带旁经
? NA27 Nestle-Aland, 27th Edition of the Greek New Testament Nestle-Aland希腊文新约第27版
? KJV King James Version or Authorized Version (AV) 英王版或者钦定版
? LXX Septuagint 七十士版
? MT Masoretic Text. Hebrew tradition varies in several respects, the best known being that it numbers
what is given as a title for Psalms in most English translations as verse 1,and the beginning of the
psalm in such a translation as verse 2. 马所拉抄本。希伯来文的传统有几个方面的不同变种,其中最著名的是给Psamls的标题进行数字编号,在多数英文译本中是第一节,而在这个译本中诗篇的开头却是第二节。
? SamPent the Samaritan Pentateuch used a quite different numbering system. 萨玛利亚五经使用非常不同的编号系统
? Synodal Russian Synodal 俄文译本
? Vugl Vulgate 拉丁文译本
? Loeb This system is used for most classical literature, though many major works have other systems
as well. 这个系统使用最传统的文本,虽然很多主要的著作work使用其他的系统。
OSIS模式可以正式的声明多个章节系统,也可以声明其他的系统。这样程序就可以在不同系统之间进行映像。不过目前我们只保留了已知的如上的一些基本且重要系统的命名。
所有的osisText元素都需要xml:lang属性。尽管在osisWrok元素中的语言元素允许大范围的语言分类系统,我们还是需要注意xml:lang却有更多的限制。xml:lang属性只认识如下两个列表中的值:
? ISO 639: http://lcweb.loc.gov/standards/iso639-2/langhome.html, 或者
? IANA: ftp://ftp.isi.edu/in-notes/iana/assignments/languages/tags
这些代码标识了文档中所用的语言。ISO 639是国际标准化组织ISO的标准,并且如果使用这个属性的其他的东西,需要在值的前面加上”x-”。例如,要为英语使用使用SIL民族语言代码,’eng’,需要写成’xeng’。所有的属性中都有经典canonical的值。有一个’默认值’,这样如果默认值被接受就不需要额外输入编码器了。在这里osisText的默认值是true,这样读者就可以看到他是如何操作的。
当canonical="true"时,她表示该元素的内容是正在编码的文本的一部分。例如圣经的“文本text”包括书卷book、章chapter、节verse,但是不包由编辑和译者添加的括注释note、段落标题section-heading等等。因此,对于例如是注释note等元素的默认值就是false,因为该元素的内容是被疑为编辑或者是作者在对文本进行编码的时候加进去的。必须要明确指明,经典canonical属性不应该用来反映对于文本内容的神学判断,只能用于区分是不是额外添加的文本。
在多数情况下使用经典canonical属性是非常直接的,而其值也差不多总是表示该有的结果。不过,也有很困单的情况出现:例如,有人会将古代带有注释annotation的文本连同文本本身一起编码。这是,这些注释note就可能是经典canonical,而现代编辑加进去的则不是。在这种情况下,确实可行的方法和原则应该是在该著作work文档中进行清楚地说明。
用户需要注意的canonical属性的值的一个常见情况是在诗篇中使用的<title>标题上。<title>元素的经典canonical属性的默认值是false,但是在一些诗篇中,该值应该是true。默认值设置成false是因为段落的标题等在多数情况下都是在实际文本之外添加的。
所有的元素都有经典canonical 属性。该属性的值是继承的,也就是说,如果一旦设置,则继承它的所有的子元素也就有了相同的设定。例如:
<osisText osisIDWork="CEV" osisRefWork="Bible" canonical="true"
xml:lang="en">
<header>…header elements omitted…</header>
<title canonical="false">Queen Vashti Disobeys King Xerxes</title>
<verse sID="Esth.1.1-Esth.1.2" osisID="Esth.1.1 Esth.1.2" n="1-2"/> King Xerxes of Persia lived in his capital city of Susa and ruled one hundred twenty-seven provinces from India to Ethiopia. <verse eID="Esth.1.1-Esth.1.2"/> 标题title元素中的经典canonical属性设置为false,因为问题的标题并没有出现在圣经文本中。如果title元素包含其他元素,他们也被认为其经典canonical属性也设置为false。 其后的p元素,是osisText元素的子元素,就继承了’true‘的值。因为这种继承关系,编码器很少显示定义该属性。在osisText中该属性设置了一个默认值”true”,而在头header、注释note、和参考reference中需要覆盖设置该属性为“false”。 在非圣经书卷中,也有类似的区分:希罗多德Herodotus的历史Histories必须要包含在canonical属性设置为”true”的元素中,而注释notes、头数据header data和其他的东西则必须要将该属性设置为“false”。 在多数情况下使用经典canonical属性是非常直接的,而其值也差不多总是表示该有的结果。不过,也有很困单的情况出现:例如,有人会将古代带有注释annotation的文本连同文本本身一起编码。这是,这些注释note就可能是经典canonical,而现代编辑加进去的则不是。在这种情况下,确实可行的方法和原则应该是在该著作work文档中的头header元素中进行清楚地说明。 5.1. osisText元素中允许出现的元素 osisText元素包括如下元素: ? header ? titlePage (optional) ? div