[osis-core] Sorry for the silence, latest draft attached! -YIPES!

Patrick Durusau osis-core@bibletechnologieswg.org
Fri, 03 May 2002 13:27:57 -0400


Todd,

Todd Tillinghast wrote:

>Patrick,
>
>I read through the notes and would be interested to see the resulting
>schema.  
>
>PROPOSAL:
>1) Abandon OSISCore_1.0.6.xsd (and OSISCore_1.0.7.xsd)
>
I think I mentioned that 1.0.6 and 1.0.7 were very rough! The numbers 
were just so I could track the versions day by day.


>
>
>2) List the proposed changes to the last sable schema (the one published
>just prior to leaving for Rome) in simple terms of what is proposed to
>be REMOVED, ADDED, and CHANGED?
>
>Ex: 
>REMOVED: <milestones>
>REMOVED: <front>
>ADD: <front> with completely different model
>CHANGED: <text>, changed name to <osis>
>
Sure.

>
>3) Then apply the changes enumerated to the last stable schema.
>
As soon as I get the rest of the notes from Steve (probably this 
weekend) that is my intention.

>
>
>
>
>The things you mentioned on the phone related to pointing don't seem to
>be present in this current schema.  Or if they are they are not clear to
>me.
>
Quite right, a number of the things I was reporting were on the second 
day's notes and since I don't have a copy (so I could attempt to put 
them in as stated) they do not appear.

No I did not start over from an empty schema! Gee, you say it is a rough 
draft and they expect Windex clean!!!

;-)

Hopefully I will get the notes from Steve this weekend and I can start 
from the last version I mailed out and insert the new material and 
delete the old with XML comments so it will be easier to see what is 
happening (alone with the list you proposed above).

Patrick


>
>I found OSISCore_1.0.6 to be pretty rough.
>(Did you start over from scratch with an empty schema?)
>
>I found OSISCore_1.0.6 to be pretty rough.
>(Did you start over from scratch with an empty schema?  Is it possible
>to work off of the version we had prior to the meeting and make changes
>to it?)
>
>I corrected a number of pure syntax errors to make it well formed as
>well as a valid XML Schema and have attached the correct version as
>OSISCore_1.0.7.xsd.
>
>I changed all references to dc:* to dcX* and xs:key to xsXkey.
>
>I am not sure why the dc namespace was used.
>
>There does not seem to be an xs:key.
>
>I added elements and simple types at the bottom that were required for
>validity.
>
>I removed the reference to milestones.
>
>Todd
>
>
>------------------------------------------------------------------------
>
><?xml version="1.0" encoding="UTF-8"?>
><!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Todd Tillinghast (private) -->
><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
>	<xs:annotation>
>		<xs:documentation> 	OSISCore.1.0.xsd  	<p>
>				<date>2002-04-27</date>
>				<version>1.0</version>
>
>				This is version 1.0 of the OSIS (Open Scriptural Information Standard) schema for Bible and biblical texts. While it will produce valid XML documents on its own, it is intended for use with the OSISScripture1.0.xsd and other schemas to be released by the OSIS Initiative. These additional schemas incorporate the core schema and provide validation for references and other extensions that may be required for more complex uses, such as by translators, publishers and scholars.</p>
>			<p>This schema did not spring full blown into existence but was heavily influenced by prior efforts such as XSEM (SIL), LGM (Logos), ThML (Harry Plantiga), SFM (UBS), and CCML (Hosanna Foundation). Unlike these prior efforts, OSIS has focused on producing the minimal encoding necessary to markup simple Bible texts and will be placing in additional modules the markup needed for more sophisticated users. The primary purpose behind that design was to allow users an easy learning curve for applying markup to biblical texts. All the element names that they learn for the core schema, can be applied, with additional abilities in the following modules. Despite our reliance on the pioneering efforts of others, any errors in substance or style in this schema remain the responsibility of the editors and contributors.</p>
>			<p>The work on this schema was made possible by the generous support of the American Bible Society, American Bible Society Interactive, and the Society of Biblical Literature. Contributions of prior encoding efforts, texts (the sample texts from the Good News Today translation are used in the documentation with the kind permission of the American Bible Society), and suggestions and comments from the participants in OSIS public meetings and mailing list were instrumental in the formation of this release.</p>
>			<p>The principal editors for this core module and the companion scripture schema are Steve DeRose (sderose@speakeasy.net), and Patrick Durusau (Society of Biblical Literature, pdurusau@emory.edu). Technical contributors (who often turned around sample encodings of the Book of Matthew on the same day as schema revisions!) were Troy Griffiths (scribe@crosswire.org), Chris Little (chrislit@crosswire.org), and Todd Tillinghast (todd@contentframeworks.com).</p>
>		</xs:documentation>
>	</xs:annotation>
>	<!-- attribute declarations and restrictions -->
>	<xs:simpleType name="attributeExtension">
>		<xs:annotation>
>			<xs:documentation>
>				<p>Where attribute values are declared, users can extend the allowed values by prepending the string &quot;x-&quot; to the values they desire to use. Attribute values are declared as the union of an enumerated set of values and this attributeExtension type.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:restriction base="xs:string">
>			<xs:pattern value="x-([^\s]+)"/>
>		</xs:restriction>
>	</xs:simpleType>
>	<xs:simpleType name="calendar">
>		<xs:restriction base="xs:string">
>			<xs:enumeration value="Chinese"/>
>			<xs:enumeration value="Gregorian"/>
>			<xs:enumeration value="Islamic"/>
>			<xs:enumeration value="ISO"/>
>			<xs:enumeration value="Jewish"/>
>			<xs:enumeration value="Julian"/>
>		</xs:restriction>
>	</xs:simpleType>
>	<xs:simpleType name="changesOSIS">
>		<xs:restriction base="xs:string">
>			<xs:enumeration value="added"/>
>			<xs:enumeration value="amplified"/>
>			<xs:enumeration value="changed"/>
>			<xs:enumeration value="deleted"/>
>			<xs:enumeration value="moved"/>
>		</xs:restriction>
>	</xs:simpleType>
>	<xs:simpleType name="changeType">
>		<xs:union memberTypes="changesOSIS attributeExtension"/>
>	</xs:simpleType>
>	<xs:simpleType name="divsOSIS">
>		<xs:annotation>
>			<xs:documentation>
>				<p>Enumerated list of types of div elements in an OSIS text. Note that users can add types of divs using the x- extension prefix on their type names.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:restriction base="xs:string">
>			<xs:enumeration value="appendix"/>
>			<xs:enumeration value="book"/>
>			<xs:enumeration value="chapter"/>
>			<xs:enumeration value="concordance"/>
>			<xs:enumeration value="glossary"/>
>		</xs:restriction>
>	</xs:simpleType>
>	<xs:simpleType name="divType">
>		<xs:union memberTypes="divsOSIS attributeExtension"/>
>	</xs:simpleType>
>	<xs:simpleType name="languageType">
>		<xs:annotation>
>			<xs:documentation>
>				<p>A regex to validate ISO and Ethnologue language codes.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:restriction base="xs:string">
>			<xs:pattern value="(x|i|[A-Za-z]{2,3})(-[A-Za-z0-9]{2,8}){0,}"/>
>		</xs:restriction>
>	</xs:simpleType>
>	<xs:simpleType name="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="xs:string">
>			<xs:enumeration value="geographic"/>
>			<xs:enumeration value="holiday"/>
>			<xs:enumeration value="nonhuman"/>
>			<xs:enumeration value="person"/>
>			<xs:enumeration value="ritual"/>
>		</xs:restriction>
>	</xs:simpleType>
>	<xs:simpleType name="nameType">
>		<xs:union memberTypes="namesOSIS attributeExtension"/>
>	</xs:simpleType>
>	<xs:simpleType name="noteType">
>		<xs:union memberTypes="notesOSIS attributeExtension"/>
>	</xs:simpleType>
>	<xs:simpleType name="notesOSIS">
>		<xs:annotation>
>			<xs:documentation>
>				<p>Enumerated list of note types for biblical texts. This list can be extended using the &lt;x-&gt; extension in front of other note types added by users.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:restriction base="xs:string">
>			<xs:enumeration value="allusion"/>
>			<xs:enumeration value="alternative"/>
>			<xs:enumeration value="background"/>
>			<xs:enumeration value="citation"/>
>			<xs:enumeration value="devotional"/>
>			<xs:enumeration value="exegesis"/>
>			<xs:enumeration value="explanation"/>
>			<xs:enumeration value="study"/>
>			<xs:enumeration value="translation"/>
>			<xs:enumeration value="variant"/>
>		</xs:restriction>
>	</xs:simpleType>
>	<xs:simpleType name="refType">
>		<xs:restriction base="xs:string"/>
>		<!-- need to add regex to validate two nmtokens (and no more) for refs -->
>	</xs:simpleType>
>	<xs:simpleType name="role">
>		<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="xs:string">
>			<xs:enumeration value="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="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="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 is not the chief author of a work.</xs:documentation>
>				</xs:annotation>
>			</xs:enumeration>
>			<xs:enumeration value="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="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="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.</xs:documentation>
>				</xs:annotation>
>			</xs:enumeration>
>			<xs:enumeration value="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="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="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="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>
>	<!-- add datatypes of key and keyref to point to certain element type, cat refSys plus ref to be unique, allows us to pitch underscore. -->
>	<!-- global attributes -->
>	<xs:attributeGroup name="globalAttributes">
>		<xs:attribute name="ews" type="xsXkey" use="optional"/>
>		<xs:attribute name="ID" type="xs:ID" use="optional"/>
>		<xs:attribute name="lang" type="languageType" use="optional"/>
>		<xs:attribute name="type" type="xs:string" use="optional"/>
>	</xs:attributeGroup>
>	<xs:attributeGroup name="inReferenceAttributes">
>		<xs:attribute name="ref" type="Define" use="required"/>
>		<xs:attribute name="refSys" type="Define" use="optional"/>
>		<xs:attribute name="work" type="Define" use="optional"/>
>	</xs:attributeGroup>
>	<xs:attributeGroup name="outReferenceAttributes">
>		<xs:attribute name="ref" type="refType" use="optional"/>
>	</xs:attributeGroup>
>	<!-- elementGroup declarations -->
>	<xs:group name="phraseGroup">
>		<xs:annotation>
>			<xs:documentation>
>				<p>A group for common annotations recorded on a text.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:sequence>
>			<xs:element ref="blockQuote" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="divineName" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="foreign" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="inscription" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="lineGroup" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="list" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="mentioned" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="name" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="reference" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="title" minOccurs="0" maxOccurs="unbounded"/>
>			<xs:element ref="w" minOccurs="0" maxOccurs="unbounded"/>
>			<!--			<xs:element ref="milestones" minOccurs="0" maxOccurs="unbounded"/> -->
>		</xs:sequence>
>	</xs:group>
>	<xs:group name="milestones">
>		<xs:annotation>
>			<xs:documentation>
>				<p>Milestones are used to mark the traditional book, chapter, verse divisions, which are the most likely to cross other divisions commonly used in translations. In addition to these milestones, there is a generic milestone marker for cases not forseen by the encoding team. Note that the segStart and segEnd milestones are the generic form of the milestone marker.</p>
>				<p>The attributes of the milestone markers require some comment for proper use. Note that all milestones have MID and MIDREF attributes but on a starting milestone, such as verseStart, the MID is required. That is a requirement because at the closing milestone for that verse, verseEnd, the attribute MIDREF is required. The MID and MIDREF serve to bind the two milestones together and provide some degree of validation for the use of milestones. If I properly note the MID on a starting milestone as: Matt.1.1 and then on the closing milestone enter: Mat.1.1 (Hard to see when typing but lost the second &quot;t&quot; in the abbreviation for Matthew, any XML parser will catch the error and tell me where the error has occurred.</p>
>				<p>Markup theorists will note that the named milestones are syntactic sugar for the more generic segStart and segStop milestones. While a departure from the overall simplicity of the schema, it is hoped that this naming of milestones will make it easier for beginning users to orient themselves to the use of such elements.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:choice>
>			<xs:element name="bookStart">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="bookEnd">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="chapterStart">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="chapterEnd">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="lineStart">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="lineEnd">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="osisPoint">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="qStart">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>					<xs:attribute name="who" type="xsXkeyRef" use="optional"/>
>					<!-- add key place holder for castList -->
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="qEnd">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="refStart">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="refEnd">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="segStart">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="segEnd">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="verseStart">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>			<xs:element name="verseEnd">
>				<xs:complexType>
>					<xs:attributeGroup ref="inReferenceAttributes"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:complexType>
>			</xs:element>
>		</xs:choice>
>	</xs:group>
>	<!-- element declarations -->
>	<xs:element name="osis">
>		<xs:complexType>
>			<xs:annotation>
>				<xs:documentation>
>					<p>Front and body element are required and in that sequence. This is implied by the sequence content model. Note that back is optional, but if occurs, only once.</p>
>				</xs:documentation>
>			</xs:annotation>
>			<xs:sequence>
>				<xs:element ref="front"/>
>				<xs:element ref="body"/>
>				<xs:element ref="back" minOccurs="0"/>
>			</xs:sequence>
>			<xs:attribute name="work" type="xs:NMTOKEN" use="optional"/>
>			<xs:attribute name="refSys" type="xs:NMTOKEN" use="optional"/>
>			<xs:attributeGroup ref="globalAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="front">
>		<xs:annotation>
>			<xs:documentation>
>				<p>This will be greatly expanded for the publications module (Fall, 2002) but should be sufficient to encode the basic front matter found in most Bible translations.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element name="dcXContributor" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXTitle">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXCreator" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>					<!-- add key, role attribute points to roleType, resp attribute has keyRef that points to key on creator -->
>				</xs:element>
>				<xs:element name="dcXSubject" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXDescription" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXPublisher" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXDate" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXType" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXFormat" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXIdentifier" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXSource" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXLanguage" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXRelation" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXCoverage" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="dcXRights" minOccurs="0">
>					<xs:complexType>
>						<xs:simpleContent>
>							<xs:extension base="xs:string">
>								<xs:attributeGroup ref="globalAttributes"/>
>							</xs:extension>
>						</xs:simpleContent>
>					</xs:complexType>
>				</xs:element>
>				<xs:element name="revisionDesc" minOccurs="0" maxOccurs="unbounded">
>					<xs:complexType>
>						<xs:sequence>
>							<xs:element ref="date"/>
>							<xs:group ref="phraseGroup" maxOccurs="unbounded"/>
>							<!--							<xs:element ref="resp"/> -->
>						</xs:sequence>
>						<xs:attributeGroup ref="globalAttributes"/>
>						<xs:attribute name="TEIform" fixed="revisionDesc"/>
>						<!-- add resp and date as attributes on revisionDesc, resp keyRef points to creator -->
>					</xs:complexType>
>				</xs:element>
>				<xs:element ref="div" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="body">
>		<xs:annotation>
>			<xs:documentation>
>				<p>It should be noted at the outset that OSIS has followed XSEM in treating verses with milestone markers in a text. This is in large part because versification varies across editions and the use of milestones is the simplest way to allow varying encoding of verses and yet retain usuability of the text. This does not affect the presentation to the ultimate reader or its usefulness in electronic versions. If none of the foregoing was meaningful, do not be troubled. See the OSIS User documentation and simply follow the examples for marking verses. This is an issue now largely due to technical decisions made decades ago that still affect markup systems today.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element ref="title" minOccurs="0"/>
>				<xs:element ref="div" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attribute name="TEIform" fixed="body"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="back">
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element ref="title"/>
>				<xs:element ref="div" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attribute name="TEIform" fixed="back"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="blockQuote">
>		<xs:complexType>
>			<xs:sequence>
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>				<!-- salute note,p,phrase close-salute-signed -->
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="catchWord">
>		<xs:complexType mixed="true">
>			<xs:sequence>
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="date">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attributeGroup ref="globalAttributes"/>
>					<xs:attribute name="calendar" type="calendar" use="optional" default="ISO"/>
>					<xs:attribute name="value" use="optional"/>
>					<xs:attribute name="TEIform" fixed="date"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="div">
>		<xs:complexType>
>			<xs:sequence maxOccurs="unbounded">
>				<xs:element ref="lineGroup" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:element ref="div" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:element ref="figure" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:element ref="p" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:element ref="speech" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attribute name="lang" type="languageType" use="optional"/>
>			<xs:attribute name="type" type="divType" use="optional"/>
>			<xs:attribute name="divTitle" type="xs:string" use="optional"/>
>			<xs:attributeGroup ref="inReferenceAttributes"/>
>			<xs:attribute name="TEIform" fixed="div"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="divineName">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="figure">
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element name="caption" minOccurs="0"/>
>			</xs:sequence>
>			<xs:attribute name="src" type="xs:string" use="required"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>			<xs:attributeGroup ref="globalAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="foreign">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="head">
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element ref="head" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="inscription">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="item">
>		<xs:complexType mixed="true">
>			<xs:sequence maxOccurs="unbounded">
>				<xs:element ref="label" type="xs:string" minOccurs="0"/>
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="label">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="line">
>		<xs:complexType mixed="true">
>			<xs:sequence maxOccurs="unbounded">
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="lineGroup">
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element ref="line" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:element ref="lineGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="list">
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element ref="head" minOccurs="0"/>
>				<xs:element ref="item" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="mentioned">
>		<xs:complexType mixed="true">
>			<xs:sequence>
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="name">
>		<xs:annotation>
>			<xs:documentation>
>				<p>An element with an attribute simiar to role that allows a semi-open attribute for specifying what type of name is being recorded in the markup. Examples include person, geographic, etc. Note the general format for enumerated values: a list is declared as a simpleType and then followed by a union statement combining that list with the attributeExtension simpleType which contains a regular expression constraining additions to the OSIS enumerated list to begin with the string &quot;x-&quot;. This allows OSIS to speify a list of values and yet allow users to extend that list.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attribute name="nameType" type="nameType" use="required"/>
>					<xs:attribute name="regular" type="xs:string" use="optional"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="note">
>		<xs:annotation>
>			<xs:documentation>
>				<p>Has enumerated list of note types.</p>
>			</xs:documentation>
>		</xs:annotation>
>		<xs:complexType mixed="true">
>			<xs:sequence maxOccurs="unbounded">
>				<xs:element ref="catchWord" minOccurs="0"/>
>				<xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:element ref="p" minOccurs="0" maxOccurs="unbounded"/>
>				<xs:element ref="reading" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attribute name="ID" type="xs:ID" use="optional"/>
>			<xs:attribute name="lang" type="languageType" use="optional"/>
>			<xs:attribute name="n" type="xs:string" use="optional"/>
>			<xs:attribute name="resp" type="xs:string" use="optional"/>
>			<xs:attribute name="type" type="noteType" use="required"/>
>			<xs:attribute name="TEIform" fixed="note"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="p">
>		<xs:complexType mixed="true">
>			<xs:sequence minOccurs="0" maxOccurs="unbounded">
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="reading">
>		<xs:complexType mixed="true">
>			<xs:sequence maxOccurs="unbounded">
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attributeGroup ref="outReferenceAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="reference">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attributeGroup ref="globalAttributes"/>
>					<xs:attributeGroup ref="outReferenceAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="speech">
>		<xs:complexType>
>			<xs:sequence>
>				<xs:element ref="speaker" minOccurs="0"/>
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="speaker">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attribute name="who" type="xs:string"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="title">
>		<xs:complexType>
>			<xs:sequence maxOccurs="unbounded">
>				<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
>			</xs:sequence>
>			<xs:attributeGroup ref="globalAttributes"/>
>			<xs:attribute name="TEIform" fixed="title"/>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="transChange">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attribute name="changeType" type="changeType"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>					<xs:attribute name="resp" type="xs:string" use="optional"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:element name="w">
>		<xs:complexType>
>			<xs:simpleContent>
>				<xs:extension base="xs:string">
>					<xs:attribute name="POS" type="attributeExtension" use="optional"/>
>					<xs:attribute name="morph" type="attributeExtension" use="optional"/>
>					<xs:attribute name="lemma" type="attributeExtension" use="optional"/>
>					<xs:attribute name="gloss" type="xs:string" use="optional"/>
>					<xs:attribute name="xlit" type="xs:string" use="optional"/>
>					<xs:attribute name="TEIform" fixed="w"/>
>					<xs:attributeGroup ref="globalAttributes"/>
>					<xs:attributeGroup ref="outReferenceAttributes"/>
>				</xs:extension>
>			</xs:simpleContent>
>		</xs:complexType>
>	</xs:element>
>	<xs:simpleType name="xsXkey">
>		<xs:restriction base="xs:string"/>
>	</xs:simpleType>
>	<xs:simpleType name="xsXkeyRef">
>		<xs:restriction base="xs:string"/>
>	</xs:simpleType>
>	<xs:simpleType name="Define">
>		<xs:restriction base="xs:string"/>
>	</xs:simpleType>
></xs:schema
>

-- 
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu