[osis-core] OSISCore_1.test6 osisCorpus/osisText/Header
Chris Little
osis-core@bibletechnologieswg.org
Wed, 22 May 2002 18:36:03 -0700
This is a multi-part message in MIME format.
------=_NextPart_000_0003_01C201BF.8799F370
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
Looking at the current content model, I really like the addition of
osisCorpus, but I think it raises possible issues with the header
element.
I believe a majority of instances where osisCorpus would be used, it
would make sense to have a header element that applies to the whole
document (osisCorpus) rather than the component osisTexts. I would
recommend that we add Header as a required element of osisCorpus.
An alternate solution would be to make Header a required element of osis
and only optional in osisText (and not at all part of osisCorpus. The
osisText's Header element would be used only when the osisText is a
child of an osisCorpus.
--Chris
------=_NextPart_000_0003_01C201BF.8799F370
Content-Type: text/xml;
name="OSISCore_1.test6.xsd"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="OSISCore_1.test6.xsd"
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<xs:schema xmlns:xs=3D"http://www.w3.org/2001/XMLSchema"
elementFormDefault=3D"unqualified">
<!-- note that I have added a higher level root element so we can have =
collections of independent texts for a collection -->
<xs:element name=3D"osis">
<xs:complexType>
<xs:choice>
<xs:element ref=3D"osisCorpus"/>
<xs:element ref=3D"osisText"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name=3D"osisCorpus">
<xs:complexType>
<xs:sequence minOccurs=3D"1" maxOccurs=3D"unbounded">
<xs:element ref=3D"osisText"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name=3D"osisText">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"header" minOccurs=3D"1" maxOccurs=3D"1"/>
<xs:element ref=3D"front" minOccurs=3D"0" maxOccurs=3D"1"/>
<xs:element ref=3D"body" minOccurs=3D"1" maxOccurs=3D"1"/>
<xs:element ref=3D"back" minOccurs=3D"0" maxOccurs=3D"1"/>
</xs:sequence>
<xs:attribute name=3D"work" type=3D"osisRef" use=3D"optional"/>
<xs:attribute name=3D"refSys" type=3D"osisRef" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"header">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"title" minOccurs=3D"0"/>
<xs:element ref=3D"contributor" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"creator" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"subject" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"description" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"publisher" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"type" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element name=3D"format" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element name=3D"identifier" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"source" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element name=3D"language" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"relation" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"coverage" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element name=3D"rights" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element name=3D"revisionDesc" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- elements for header, with exception of title -->
<xs:element name=3D"contributor">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"creator">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"role" type=3D"roleType" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"subject">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"description">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"publisher">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"type">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"format">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"identifier">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"source">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"language">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"relation">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"coverage">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"rights">
<xs:complexType>
<xs:simpleContent> =09
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"revisionDesc">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"date" minOccurs=3D"1"/>
<xs:element ref=3D"p" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"revisionDesc"/>
</xs:complexType>
</xs:element>
<!-- end of header elements -->
<!-- major structural elements -->
<!-- note that title recurs (within title) so even though only one title =
element, can have as many subtitles as desired -->
<!-- Todd has noted that since the content models for front, body and =
back are the same that we could handle these with a common element with =
an attribute for those divisions. I tend to agree but suspect it will be =
easier to explain if we retain the semantics of having different =
elements names for these divisions. -->
<xs:element name=3D"front">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"title" minOccurs=3D"0"/>
<xs:element ref=3D"div" minOccurs=3D"1" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"body">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"title" minOccurs=3D"0"/>
<xs:element ref=3D"div" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"body"/>
</xs:complexType>
</xs:element>
=09
<xs:element name=3D"back">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"title" minOccurs=3D"0"/>
<xs:element ref=3D"div" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"back"/>
</xs:complexType>
</xs:element>
<!-- end of major structural elements -->
<!-- abbr element contains abbreviations and expansion of abbreviations =
is carried in the expansion attribute. Note allowed since people may =
want to annotate the abbreviation with other information. Have allowed =
unbounded number of notes, probably should be the general case for notes =
as there is no way to anticipate how many notes any text may have at a =
given point. Can be changed for validation in particular production =
environments -->
<xs:element name=3D"abbr">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
</xs:sequence>
<xs:attribute name=3D"expansion" type=3D"xs:string"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- blockQuote is a child of blockQuote, div and p. Can contain p which =
form part of the blockQuote. If used to surround verses for denoting =
blockQuote, use next/prev attributes on verses to span the close of the =
blockQuote element -->
<xs:element name=3D"blockQuote">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"close"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"p"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"salute"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"speaker"/>
<xs:element ref=3D"speech"/>
<xs:element ref=3D"transChange"/>
<xs:element ref=3D"verse"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<!-- caption is used within figure to contain short descriptive =
information that may appear with an illustration, photo or other =
illustration - caption is allowed to contain abbr, foreign, name, note, =
q, reference -->=20
<xs:element name=3D"caption">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- catchWord is used to contain text in a note that is part of the =
main text and used to alert the reader to the materila from the main =
text that is under discussion. may contain PCDATA and note. -->
<xs:element name=3D"catchWord">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
</xs:sequence>
<xs:attribute name=3D"expansion" type=3D"xs:string"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- close is a child of div and blockQuote, meant to deal with close of =
letters (Pauline for example) -->
<xs:element name=3D"close">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"divineName"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"p"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"verse"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attribute name=3D"expansion" type=3D"xs:string"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- date includes note for cases where in addition to recording the =
calendar type, the encoder wishes to make some other claim about the =
date -->
<xs:element name=3D"date">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
</xs:sequence>
<xs:attribute name=3D"calendarType" type=3D"calendar" use=3D"optional" =
default=3D"ISO"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- div is the largest generic container below the main structural =
elements - should be used for subsections in commentaries and the like =
-->
<xs:element name=3D"div">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"blockQuote"/>
<xs:element ref=3D"figure"/>
<xs:element ref=3D"lineGroup"/>
<xs:element ref=3D"list"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"p"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"title"/>
<xs:element ref=3D"verse"/>
</xs:choice>
<xs:attribute name=3D"divType" type=3D"divType" use=3D"optional"/>
<xs:attribute name=3D"divTitle" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"inReferenceAttributes"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"div"/>
</xs:complexType>
</xs:element>
<!-- used to mark occurrences of the divine name, the treatment of which =
varies from tradtional to tradition. The type attribute should be used =
if the encoder wishes to create a typology of of the divine name as =
found or translated in the text. -->
<xs:element name=3D"divineName">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- figure contains only an optional caption element - the source for =
the figure should be specified using the src attribute -->
<xs:element name=3D"figure">
<xs:complexType>
<xs:sequence minOccurs=3D"0">
<xs:element ref=3D"caption"/>
</xs:sequence>
<xs:attribute name=3D"src" type=3D"xs:string"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- foreign is used to mark foreign words or phrases that occur in a =
text. such words are usually offset from the main text by quotes or =
italics but that is a function of styling and not reflected in the =
attributes to this element, i.e., no rend, sorry Chris! -->
<xs:element name=3D"foreign">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- head, allowed in list only, does recur so can have multiple level =
of headings for a list, note that list recurs as well -->
<xs:element name=3D"head">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"head"/>
<xs:element ref=3D"note"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- inscription, fairly low level element to record short inscriptions, =
should not be used for quotes -->
<xs:element name=3D"inscription">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- item is solely a child of list and contains mixed content, note and =
w -->
<xs:element name=3D"item">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- label, optional element in list -->
<xs:element name=3D"label">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- line is a member of lineGroup and should be used for poetic =
sections, not the recording of orthographic lines, such as when encoding =
a manuscript witness. markup for recording original mss. will be =
included in the scholarly module. Note that line can include a verse and =
this is the most likely place for crossing boundaries where verses will =
need to be split to cross line boundaries. -->
<xs:element name=3D"line">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"speaker"/>
<xs:element ref=3D"transChange"/>
<xs:element ref=3D"verse"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- lineGroup is a container element for line. use for poetic texts and =
embed verses, by splitting them, into the line elements -->=20
<xs:element name=3D"lineGroup">
<xs:complexType>
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"line"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- list, allowed to recur for embedded lists -->
<xs:element name=3D"list">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"label" minOccurs=3D"0" maxOccurs=3D"1"/>
<xs:element ref=3D"item" minOccurs=3D"1" maxOccurs=3D"1"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- mentioned -->
<xs:element name=3D"mentioned">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"date"/>
<xs:element ref=3D"divineName"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- milestone, true milestone so no begin/end -->
<xs:element name=3D"milestone">
<xs:complexType>
<xs:attributeGroup ref=3D"inReferenceAttributes"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element> =20
<!-- name is used to mark any variety of names, such as person, =
geographic, festival, etc. -->
<xs:element name=3D"name">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attribute name=3D"nameType" type=3D"nameType" use=3D"required"/>
<xs:attribute name=3D"regular" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- note is used inline to record notes about a particular text - note =
has attributes that allow the attachment of the note to a particular =
place or passage in the text -->
<xs:element name=3D"note">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"p"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reading"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"verse"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- the standard paragraph container element -->
<xs:element name=3D"p">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"blockQuote"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"inscription"/>
<xs:element ref=3D"mentioned"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"salute"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"speaker"/>
<xs:element ref=3D"speech"/>
<xs:element ref=3D"verse"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- note that q does not allow verse. In secondary materials where a =
verse is being quoted by a speaker, for example, it whould be encoded as =
a reference with the appropriate attributes -->
<xs:element name=3D"q">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attribute name=3D"qID" type=3D"xs:string"/>
<xs:attribute name=3D"next" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"prev" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
<xs:key name=3D"prevQKey">
<xs:selector xpath=3D".//q"/>
<xs:field xpath=3D"@qID"/>
</xs:key>
<xs:keyref name=3D"prevQRef" refer=3D"prevQKey">
<xs:selector xpath=3D".//q"/>
<xs:field xpath=3D"@prev"/>
</xs:keyref>
</xs:element>
<!-- reading occurs only in note, records alternative readings -->
<xs:element name=3D"reading">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- reference is used to mark any reference in a text to another, =
whether direct or an allusion. The type of reference being should be =
classified by the encoder. References from the NT to passages in the OT =
would be examples of a reference. -->
<xs:element name=3D"reference">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- salute occurs in both blockQuote as well as p since encoders may =
choose to use different mechanisms contain material where a salute =
occurs -->
<xs:element name=3D"salute">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- seg is a generic container element that can contain phrase level =
elements -->
<xs:element name=3D"seg">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attribute name=3D"segID" type=3D"xs:string"/>
<xs:attribute name=3D"next" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"prev" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
<xs:key name=3D"prevSegKey">
<xs:selector xpath=3D".//seg"/>
<xs:field xpath=3D"@segID"/>
</xs:key>
<xs:keyref name=3D"prevSegRef" refer=3D"prevSegKey">
<xs:selector xpath=3D".//seg"/>
<xs:field xpath=3D"@prev"/>
</xs:keyref>
</xs:element>
<!-- signed is used to record the ending of a text where the author =
indicates that they have issued a particular work -->
<xs:element name=3D"signed">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- speaker will usually have content but is not required to do so, =
shifts in the character in poetic dialogue may not be explicitly marked =
in a text but the encoder wishes to make a claim about such speakers -->
<xs:element name=3D"speaker">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"reference"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- speech is used to mark direct speeches, reported speeches should be =
recorded using the q element -->
<xs:element name=3D"speech">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"blockQuote"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"inscription"/>
<xs:element ref=3D"mentioned"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"salute"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"speaker"/>
<xs:element ref=3D"speech"/>
<xs:element ref=3D"verse"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attribute name=3D"speechID" type=3D"xs:string"/>
<xs:attribute name=3D"next" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"prev" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
<xs:key name=3D"prevSpeechKey">
<xs:selector xpath=3D".//speech"/>
<xs:field xpath=3D"@speechID"/>
</xs:key>
<xs:keyref name=3D"prevSpeechRef" refer=3D"prevSpeechKey">
<xs:selector xpath=3D".//speech"/>
<xs:field xpath=3D"@prev"/>
</xs:keyref>
</xs:element>
<!-- title occurs as child of div only - recurs so can use for subtitles =
- some smaller elements for common parts of title -->
<xs:element name=3D"title">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"title"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"title"/>
</xs:complexType>
</xs:element>
<!-- transChange is used to encode material not thought to be part of =
the original language in a translation - use attributes to indicate a =
typology of the change -->
<xs:element name=3D"transChange">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attribute name=3D"changeType" type=3D"changeType" =
use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- note that I have added the key/keyRef to allow the spliting of a =
verse across boundaries where necessary. The key/keyRef mechanism =
requires that the key be non-nillable, in other words required. Rather =
than make another attribute group for global attributes or require IDs =
everywhere, I simply added the verseID attribute and it is required on =
all elements. Note that the next attribute has only an informative =
function. -->
<xs:element name=3D"verse">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"abbr"/>
<xs:element ref=3D"foreign"/>
<xs:element ref=3D"inscription"/>
<xs:element ref=3D"milestone"/>
<xs:element ref=3D"name"/>
<xs:element ref=3D"note"/>
<xs:element ref=3D"q"/>
<xs:element ref=3D"reference"/>
<xs:element ref=3D"seg"/>
<xs:element ref=3D"speaker"/>
<xs:element ref=3D"w"/>
</xs:choice>
<xs:attribute name=3D"verseID" type=3D"xs:string"/>
<xs:attribute name=3D"next" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"prev" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
<xs:key name=3D"prevVerseKey">
<xs:selector xpath=3D".//verse"/>
<xs:field xpath=3D"@verseID"/>
</xs:key>
<xs:keyref name=3D"prevVerseRef" refer=3D"prevVerseKey">
<xs:selector xpath=3D".//verse"/>
<xs:field xpath=3D"@prev"/>
</xs:keyref>
</xs:element>
<!-- word is used to mark the smallest unit of text, generally in =
Western literature seen as a token separated by white space - has =
attributes to carry Strong's numbers. -->
<xs:element name=3D"w">
<xs:complexType mixed=3D"true">
<xs:choice minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:element ref=3D"note"/>
<xs:element ref=3D"seg"/>
</xs:choice>
<xs:attribute name=3D"POS" type=3D"attributeExtension" =
use=3D"optional"/>
<xs:attribute name=3D"morph" type=3D"attributeExtension" =
use=3D"optional"/>
<xs:attribute name=3D"lemma" type=3D"attributeExtension" =
use=3D"optional"/>
<xs:attribute name=3D"gloss" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"xlit" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<!-- attributes -->
<xs:attributeGroup name=3D"globalAttributes">
<xs:attribute name=3D"ews" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"ID" type=3D"xs:ID" use=3D"optional"/>
<xs:attribute name=3D"lang" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"resp" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"type" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"n" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"inReferenceAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:attributeGroup>
<!-- note that for the various simple types I have only defined the =
regexes as suggested by Steve. For further validation, those values, =
particulary osisWork and osisRef should be overidden by additional =
declarations. avoids trying to solve the referce system question based =
upon inadequate information -->
<xs:attributeGroup name=3D"inReferenceAttributes">
<xs:attribute name=3D"work" type=3D"osisRef" use=3D"optional"/>
<xs:attribute name=3D"cite" type=3D"osisRef" use=3D"optional"/>
<xs:attribute name=3D"grain" type=3D"osisGrain" use=3D"optional"/>
</xs:attributeGroup>=09
<xs:attributeGroup name=3D"outReferenceAttributes">
<xs:attribute name=3D"outWork" type=3D"osisRef" use=3D"optional"/>
<xs:attribute name=3D"outCite" type=3D"osisRef" use=3D"optional"/>
<xs:attribute name=3D"outGrain" type=3D"osisGrain" use=3D"optional"/>
</xs:attributeGroup>
<!-- simple types -->
<xs:simpleType name=3D"attributeExtension">
<xs:restriction base=3D"xs:string">
<xs:pattern value=3D"x-([^\s]+)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"calendar">
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"Chinese"/>
<xs:enumeration value=3D"Gregorian"/>
<xs:enumeration value=3D"Islamic"/>
<xs:enumeration value=3D"ISO"/>
<xs:enumeration value=3D"Jewish"/>
<xs:enumeration value=3D"Julian"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"changesOSIS">
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"added"/>
<xs:enumeration value=3D"amplified"/>
<xs:enumeration value=3D"changed"/>
<xs:enumeration value=3D"deleted"/>
<xs:enumeration value=3D"moved"/>
</xs:restriction>
</xs:simpleType>
=09
<xs:simpleType name=3D"changeType">
<xs:union memberTypes=3D"changesOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name=3D"divsOSIS">
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"appendix"/>
<xs:enumeration value=3D"book"/>
<xs:enumeration value=3D"chapter"/>
<xs:enumeration value=3D"concordance"/>
<xs:enumeration value=3D"glossary"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"divType">
<xs:union memberTypes=3D"divsOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name=3D"languageType">
<xs:restriction base=3D"xs:string">
<xs:pattern value=3D"(x|i|[A-Za-z]{2,3})(-[A-Za-z0-9]{2,8}){0,}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"namesOSIS">
<xs:annotation>
<xs:documentation>
<p>Enumerated list of name types commonly found in biblical =
texts.</p>
<p>The attribute nonhuman was inserted to allow the marking of names =
that are not encoded with the element divineName. The divineName element =
was introduced to treat name occurences that are treated differently, =
i.e., the setting of Lord in small caps, to represent a name in the =
original text. Rather than attempt to enumerate all the varying =
traditions for such practices, the divineName element simply recognizes =
it and allows encoders to follow that practice (or not) as they =
desire.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"geographic"/>
<xs:enumeration value=3D"holiday"/>
<xs:enumeration value=3D"nonhuman"/>
<xs:enumeration value=3D"person"/>
<xs:enumeration value=3D"ritual"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"nameType">
<xs:union memberTypes=3D"namesOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name=3D"notesOSIS">
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"allusion"/>
<xs:enumeration value=3D"alternative"/>
<xs:enumeration value=3D"background"/>
<xs:enumeration value=3D"citation"/>
<xs:enumeration value=3D"devotional"/>
<xs:enumeration value=3D"exegesis"/>
<xs:enumeration value=3D"explanation"/>
<xs:enumeration value=3D"study"/>
<xs:enumeration value=3D"translation"/>
<xs:enumeration value=3D"variant"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"noteType">
<xs:union memberTypes=3D"notesOSIS attributeExtension"/>
</xs:simpleType>
<!-- query to Steve, shouldn't grain do the duty of range? Can be =
character count but also other meaningful (in the reference system) =
grain? -->
<xs:simpleType name=3D"osisGrain">
<xs:restriction base=3D"xs:string">
<xs:pattern value=3D"(char:(\p{Nd}*)\+(\p{Nd}*)\(([^\s]*)\) | =
([^\s]*))"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"osisRef">
<xs:restriction base=3D"xs:string">
<xs:pattern =
value=3D"(([^\s]*\.)?([^\s]*\.)?([^\s]*\.)?([^\s]*\.)?([^\s]*\.)?([^\s]*)=
?)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"roleOSIS">
<xs:annotation>
<xs:documentation>
<p>This is a selected set of the most common role names likely to be =
needed for basic encoding. The full set of relator codes on which this =
listing (and the descriptions are based, was taken from: MARC Code List: =
Relator Codes -- Term Sequence =
(http://lcweb.loc.gov/marc/relators/re0002r1.html). This listing will be =
followed for later OSIS modules.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"adp">
<xs:annotation>
<xs:documentation>Adapter: Use for a person who 1) reworks a =
musical composition,usually for a different medium, or 2) rewrites =
novels or stories for motionpictures or other audiovisual =
medium.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"ann">
<xs:annotation>
<xs:documentation>Annotator: Use for a person who writes manuscript =
annotations on a printed item.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"art">
<xs:annotation>
<xs:documentation>Artist: Use for a person (e.g., a painter) who =
conceives, and perhaps also implements, an original graphic design or =
work of art, </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"aut">
<xs:annotation>
<xs:documentation>Author: Use for a person or corporate body =
chiefly responsiblefor the intellectual or artistic content of a work, =
usually printed text. This term may also be used when more than one =
person or body bears such responsibility.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"aqt">
<xs:annotation>
<xs:documentation>Author in quotations or text extracts: Use for a =
person whose work is largely quoted or extracted in a works to which he =
or she did not contribute directly. Such quotations are found =
particularly in exhibition catalogs, collections of photographs, =
etc.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"aft">
<xs:annotation>
<xs:documentation>Author of afterword, colophon, etc.: Use for a =
person or corporate body responsible for an afterword, postface, =
colophon, etc. but who isnot the chief author of a =
work.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"aui">
<xs:annotation>
<xs:documentation>Author of introduction, etc.: Use for a person or =
corporate body responsible for an introduction, preface, foreword, or =
other critical introductory matter, but who is not the chief =
author.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"bnd">
<xs:annotation>
<xs:documentation>Binder: </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"bdd">
<xs:annotation>
<xs:documentation>Binding designer: Designer of =
binding</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"bkd">
<xs:annotation>
<xs:documentation>Book designer: Use for the person or firm =
responsible for the entire graphic design of a book, including =
arrangement of type and illustration,choice of materials, and process =
used.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"bkp">
<xs:annotation>
<xs:documentation>Book producer: Use for the person or firm =
responsible for the production of books and other print media, if =
specific codes</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"bjd">
<xs:annotation>
<xs:documentation>Bookjacket designer: Designer of =
bookjacket</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"bpd">
<xs:annotation>
<xs:documentation>Bookplate designer: Designer of =
bookplate</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"ctg">
<xs:annotation>
<xs:documentation>Cartographer: </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"clb">
<xs:annotation>
<xs:documentation>Collaborator: Use for a person or corporate body =
that takes a limited part in the elaboration of a work of another person =
or corporate body that brings complements (e.g., appendices, notes) to =
the work.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"cmm">
<xs:annotation>
<xs:documentation>Commentator: Use for a person who provides =
interpretation, analysis,or a discussion of the subject matter on a =
recording, motion picture, or other audiovisual =
medium.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"cwt">
<xs:annotation>
<xs:documentation>Commentator for written text: Use for a person or =
corporate body responsible for the commentary or explanatory notes about =
a text. For the writer of manuscript annotations in a printed book, use =
Annotator</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"com">
<xs:annotation>
<xs:documentation>Compiler: Use for a person who produces a work or =
publication by selecting and putting together material from the works of =
various persons or bodies.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"ctb">
<xs:annotation>
<xs:documentation>Contributor: Use for one whose work has been =
contributed to a larger work, such as an anthology, serial publication, =
or other compilation of individual works. Do not use for someone whose =
sole function in relation to a work is as author, editor, compiler or =
translator.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"cre">
<xs:annotation>
<xs:documentation>Creator: Use for a person or corporate body =
responsible for the intellectual or artistic content of a =
work.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"edt">
<xs:annotation>
<xs:documentation>Editor: Use for a person who prepares for =
publication a work not primarily his/her own, such as by elucidating =
text, adding introductory or other critical matter, or technically =
directing an editorial staff.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"ilu">
<xs:annotation>
<xs:documentation>Illuminator: </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"ill">
<xs:annotation>
<xs:documentation>Illustrator: Use for the person who conceives, =
and perhaps also implements, a design or illustration, usually to =
accompany a written text.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"pbl">
<xs:annotation>
<xs:documentation>Publisher: </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"trl">
<xs:annotation>
<xs:documentation>Translator: Use for a person who renders a text =
from one language into another, or from an older form of a language into =
the modern form.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"roleType">
<xs:union memberTypes=3D"roleOSIS attributeExtension"/>
</xs:simpleType>
</xs:schema>
------=_NextPart_000_0003_01C201BF.8799F370--