[osis-core] New Schema, minor corrections

Patrick Durusau osis-core@bibletechnologieswg.org
Fri, 14 Jun 2002 18:56:49 -0400


This is a multi-part message in MIME format.
--------------050404010502050805040401
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Guys,

The latest schema with the minor corrections I noted earlier. Have not 
validated it, just use for review and suggestions you post on changing 
content models (from the chart).

More major changes tomorrow (Sunday more likely) so get those comments 
into email!

Hope one and all are in good health and spirits! (More replies and 
questions coming, so if your post has not been answered yet, don't despair!)

Patrick

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


--------------050404010502050805040401
Content-Type: text/plain;
 name="osisCore_1test11.xsd"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="osisCore_1test11.xsd"

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="unqualified">


<!-- note that I have added a higher level root element so we can have collections of independent texts for a collection -->
<!-- added header as required element of osis, made header optional under osisText, 23 May 2002, pld -->

<xs:element name="osis">
	    <xs:complexType>
			<xs:sequence>
			<xs:element ref="header" minOccurs="1"/>
				    <xs:choice>
					<xs:element ref="osisCorpus"/>
					<xs:element ref="osisText"/>
				    </xs:choice>
			</xs:sequence>
	    </xs:complexType>
</xs:element>

<xs:element name="osisCorpus">
	    <xs:complexType>
		<xs:sequence minOccurs="1" maxOccurs="unbounded">
			<xs:element ref="osisText"/>
		</xs:sequence>
	    </xs:complexType>
</xs:element>

<!-- made header optional, but now required under osis, 23 May 2002, pld -->
<!-- changed type on work attribute to osisWork, removed refSys since now carried in osisRef, 31 May 2002, pld -->
<!-- removed work attribute, contained in globalAttributes, (Thanks to Harry!) -->

<xs:element name="osisText">
	<xs:complexType>
		<xs:sequence>
			<xs:element ref="header" minOccurs="0"/>
			<xs:element ref="front" minOccurs="0" maxOccurs="1"/>
			<xs:element ref="body" minOccurs="1" maxOccurs="1"/>
			<xs:element ref="back" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
			<xs:attributeGroup ref="globalAttributes"/>
	</xs:complexType>
</xs:element>

<!-- added date, but using our content model, 24 May 2002, pld -->

<!-- fixed name to ref in header, 24 May 2002, pld -->

<xs:element name="header">
	<xs:complexType>
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="contributor" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="creator" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="subject" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="date" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="publisher" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="type" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="format" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="identifier" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="source" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="relation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="coverage" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="rights" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="revisionDesc" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
</xs:element>

<!-- elements for header, with exception of title -->

<xs:element name="contributor">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="creator">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attribute name="role" type="roleType" use="optional"/>
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="subject">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="description">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="publisher">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="type">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="format">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="identifier">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="source">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="language">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="relation">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="coverage">
	<xs:complexType>
		<xs:simpleContent> 	
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="globalAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:element>

<xs:element name="rights">
	<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">
	<xs:complexType>
		<xs:sequence>
			<xs:element ref="date" minOccurs="1"/>
			<xs:element ref="p" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
		<xs:attribute name="TEIform" fixed="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="front">
	<xs:complexType>
		<xs:sequence>
			<xs:element ref="title" minOccurs="0"/>
			<xs:element ref="div" minOccurs="1" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
	</xs:complexType>
</xs:element>

<xs:element name="body">
	<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" minOccurs="0"/>
			<xs:element ref="div" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
		<xs:attribute name="TEIform" fixed="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="abbr">
	    <xs:complexType mixed="true">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
		</xs:sequence>
		<xs:attribute name="expansion" type="xs:string"/>
		<xs:attributeGroup ref="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 -->

<!-- restored seg as an element, 31 May 2002, pld -->
<!-- removed outReferenceAttributes, contained in global, 14 June 2002, pld (thanks to Harry!) -->
<!-- added blockQute as child for nesting, per Todd, 14 June 2002, pld -->

<xs:element name="blockQuote">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
                           <xs:element ref="blockQuote"/>
			   <xs:element ref="closer"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="lineGroup"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="p"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="salute"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="signed"/>
			   <xs:element ref="speaker"/>
			   <xs:element ref="speech"/>
			   <xs:element ref="transChange"/>
			   <xs:element ref="verse"/>
		</xs:choice>
		<xs:attributeGroup ref="globalAttributes"/>
	   </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 --> 

<xs:element name="caption">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
		</xs:choice>
		<xs:attributeGroup ref="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. -->

<!-- dropped expansion attribute that was included by bad copying of element model, 24 May 2002, pld -->

<xs:element name="catchWord">
	    <xs:complexType mixed="true">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
		</xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- close is a child of div and blockQuote, meant to deal with close of letters (Pauline for example) -->
<!-- dropped expansion attribute that was included by bad copying of element model, 24 May 2002, pld -->
<!-- restored seg as an element, 31 May 2002, pld -->
<!-- changed name to closer from close, 14 June 2002, pld -->

<xs:element name="closer">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="divineName"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="p"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="verse"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="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="date">
	    <xs:complexType mixed="true">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
		</xs:sequence>
		<xs:attribute name="calendarType" type="calendar" use="optional" default="ISO"/>
		<xs:attributeGroup ref="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 -->
<!-- removed seg as child of div, 23 May 2002, pld -->
<!-- added speech as child of div, 23 May 2002, pld -->
<!-- added seg as an element, 31 May 2002, pld -->
<!-- removed inReferenceAttributes, contained in globalAttributes (Thanks to Harry!) -->
<!-- added reference as child, per Todd, 14 June 2002, pld -->

<xs:element name="div">
	    <xs:complexType mixed="true">
	    <xs:sequence>
		<xs:element ref="div" minOccurs="0" maxOccurs="unbounded"/>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="blockQuote"/>
			   <xs:element ref="figure"/>
			   <xs:element ref="lineGroup"/>
			   <xs:element ref="list"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="p"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>	
			   <xs:element ref="speech"/>
			   <xs:element ref="title"/>
			   <xs:element ref="verse"/>
		</xs:choice>
	     </xs:sequence>
			<xs:attribute name="divType" type="divType" use="optional"/>
			<xs:attribute name="divTitle" type="xs:string" use="optional"/>
			<xs:attributeGroup ref="globalAttributes"/>
			<xs:attribute name="TEIform" fixed="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="divineName">
	    <xs:complexType mixed="true">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
		</xs:sequence>
		<xs:attributeGroup ref="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="figure">
	    <xs:complexType>
		<xs:sequence minOccurs="0">
			   <xs:element ref="caption"/>
		</xs:sequence>
		<xs:attribute name="src" type="xs:string"/>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- added seg as an element, changed content model to choice, 31 May 2002, pld -->

<!-- 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="foreign">
	<xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element ref="note"/>
	                <xs:element ref="seg"/>
		</xs:choice>
		<xs:attributeGroup ref="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 -->
<!-- fixed content model to allow recursion, 24 May 2002, pld -->
<!-- added seg as element, changed content model to choice, 31 May 2002, pld -->

<xs:element name="head">
	    <xs:complexType mixed="true">
	    <xs:sequence>
	    <xs:element ref="head" minOccurs="0" maxOccurs="unbounded"/>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
			   <xs:element ref="seg"/>
		</xs:choice>
	    </xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- inscription, fairly low level element to record short inscriptions, should not be used for quotes -->
<!-- added seg as element, 31 May 2002, pld -->


<xs:element name="inscription">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- item is solely a child of list and contains mixed content, note and w -->
<!-- added seg as element, 31 May 2002, pld -->

<xs:element name="item">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- label, optional element in list -->

<xs:element name="label">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="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. -->

<!-- restored seg as an element, 31 May 2002, pld -->

<xs:element name="line">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="speaker"/>
			   <xs:element ref="transChange"/>
			   <xs:element ref="verse"/>
		</xs:choice>
		<xs:attributeGroup ref="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 --> 

<xs:element name="lineGroup">
	    <xs:complexType>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="line"/>
			   <xs:element ref="milestone"/>
		</xs:choice>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- list, allowed to recur for embedded lists -->
<!-- fixed to allow recusion, 24 May 2002, pld -->
<!-- added head, was orphaned in prior release, 14 June 2002, pld -->

<xs:element name="list">
	    <xs:complexType mixed="true">
	    <xs:sequence>
	    <xs:element ref="list" minOccurs="0" maxOccurs="unbounded"/>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element ref="head"/>
			<xs:element ref="milestone"/>
			   <xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="label" minOccurs="0" maxOccurs="1"/>
					<xs:element ref="item" minOccurs="1" maxOccurs="1"/>
			   </xs:sequence>
		</xs:choice>
	     </xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- mentioned -->
<!-- restored seg as element, 31 May 2002, pld -->

<xs:element name="mentioned">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="date"/>
			   <xs:element ref="divineName"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
		</xs:choice>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- milestone, true milestone so no begin/end -->
<!-- removed inReferenceAttributes, contained in globalAttributes (Thanks to Harry!) -->

<xs:element name="milestone">
	    <xs:complexType>
		<xs:attributeGroup ref="globalAttributes"/>
	    </xs:complexType>
</xs:element>  

<!-- name is used to mark any variety of names, such as person, geographic, festival, etc. -->

<xs:element name="name">
	    <xs:complexType mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attribute name="nameType" type="nameType" use="required"/>
		<xs:attribute name="regular" type="xs:string" use="optional"/>
		<xs:attributeGroup ref="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 -->
<!-- added recusion to note, 24 May 2002, pld -->
<!-- restored seg as an element, 31 May 2002, pld -->
<!-- added figure, lineGroup and list, as per Chris, 31 May, 2002, pld -->
<!-- added catchWord, was an orphan in prior release, 14 June 2002, pld -->

<xs:element name="note">
	    <xs:complexType mixed="true">
	    <xs:sequence>
	        <xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="catchWord"/>	
			   <xs:element ref="figure"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="lineGroup"/>
			   <xs:element ref="list"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="p"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reading"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="verse"/>
			   <xs:element ref="w"/>
		</xs:choice>
	     </xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- the standard paragraph container element -->
<!-- restored seg as an element, 31 May 2002, pld -->


<xs:element name="p">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="blockQuote"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="inscription"/>
			   <xs:element ref="list"/>
			   <xs:element ref="mentioned"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="salute"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="speaker"/>
			   <xs:element ref="speech"/>
			   <xs:element ref="verse"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="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 -->
<!-- fixed content model to allow recursion, 24 May 2002, pld -->
<!-- tenatively have dropped key, keyRef as not buying us anything, gets cheap validation but only at the cost of always requiring the key attribute or element content, comments? -->
<!-- restored seg as an element, 31 May 2002, pld -->

<xs:element name="q">
	    <xs:complexType mixed="true">
	    <xs:sequence>
	        <xs:element ref="q" minOccurs="0" maxOccurs="unbounded"/>
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
	     </xs:sequence>
		<xs:attribute name="qID" type="xs:string"/>
		<xs:attribute name="next" type="xs:string" use="optional"/>
		<xs:attribute name="prev" type="xs:string" use="optional"/>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- reading occurs only in note, records alternative readings -->
<!-- restored seg as an element, 31 May 2002, pld -->


<xs:element name="reading">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="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. -->
<!-- restored seg as an element, 31 May 2002, pld -->


<xs:element name="reference">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="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 -->
<!-- restored seg as an element, 31 May 2002, pld -->


<xs:element name="salute">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- seg is a generic container element that can contain phrase level elements -->
<!-- since must include warning with seg, dropped for this test version, if re-added, will drop key/keyRef, comments? 24 May 2002, pld -->

<!-- restored seg as an element, removed key/keyRef stuff, 31 May 2002, pld -->

<xs:element name="seg">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attribute name="segID" type="xs:string"/>
		<xs:attribute name="next" type="xs:string" use="optional"/>
		<xs:attribute name="prev" type="xs:string" use="optional"/>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- signed is used to record the ending of a text where the author indicates that they have issued a particular work -->
<!-- restored seg as an element, 31 May 2002, pld -->


<xs:element name="signed">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attributeGroup ref="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="speaker">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="reference"/>
		</xs:choice>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- speech is used to mark direct speeches, reported speeches should be recorded using the q element -->
<!-- content model fixed to allow recursion, 24 May 2002, pld -->
<!-- commented out the key/keyRef for speech, 24 May 2002, pld -->

<!-- add who as attribute -->

<!-- restored seg as an element, add who as attribute, 31 May 2002, pld -->

<xs:element name="speech">
	    <xs:complexType mixed="true">
	    <xs:sequence>
	        <xs:element ref="speech" minOccurs="0" maxOccurs="unbounded"/>
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="blockQuote"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="inscription"/>
			   <xs:element ref="mentioned"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="salute"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="speaker"/>
			   <xs:element ref="verse"/>
			   <xs:element ref="w"/>
		</xs:choice>
	    </xs:sequence>
		<xs:attribute name="speechID" type="xs:string"/>
		<xs:attribute name="next" type="xs:string" use="optional"/>
		<xs:attribute name="prev" type="xs:string" use="optional"/>
	        <xs:attribute name="who" type="xs:string" use="optional"/>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- title occurs as child of div only - recurs so can use for subtitles - some smaller elements for common parts of title -->
<!-- fixed content model to allow recursion, 24 May 2002, pld -->
<!-- restored seg as an element, 31 May 2002, pld -->

<xs:element name="title">
	    <xs:complexType mixed="true">
	    <xs:sequence>
	        <xs:element ref="title" minOccurs="0" maxOccurs="unbounded"/>
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
	     </xs:sequence>
		<xs:attributeGroup ref="globalAttributes"/>
		<xs:attribute name="TEIform" fixed="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 -->
<!-- restored seg as an element, 31 May 2002, pld -->

<xs:element name="transChange">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attribute name="changeType" type="changeType" use="optional"/>
		<xs:attributeGroup ref="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. -->

<!-- commented out the key/keyRef mechanism, 24 May 2002, pld -->
<!-- removed key/keyRef mechanism, 31 May 2002, pld -->
<!-- restored seg as an element, 31 May 2002, pld -->


<xs:element name="verse">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="abbr"/>
			   <xs:element ref="foreign"/>
			   <xs:element ref="inscription"/>
			   <xs:element ref="milestone"/>
			   <xs:element ref="name"/>
			   <xs:element ref="note"/>
			   <xs:element ref="q"/>
			   <xs:element ref="reference"/>
			   <xs:element ref="seg"/>
			   <xs:element ref="speaker"/>
			   <xs:element ref="w"/>
		</xs:choice>
		<xs:attribute name="verseID" type="xs:string"/>
		<xs:attribute name="next" type="xs:string" use="optional"/>
		<xs:attribute name="prev" type="xs:string" use="optional"/>
		<xs:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</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. -->
<!-- restored seg as an element, 31 May 2002, pld -->

<xs:element name="w">
	    <xs:complexType mixed="true">
	    	<xs:choice minOccurs="0" maxOccurs="unbounded">
			   <xs:element ref="note"/>
			   <xs:element ref="seg"/>
		</xs:choice>
		<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:attributeGroup ref="globalAttributes"/>
	   </xs:complexType>
</xs:element>

<!-- attributes -->

<!-- changed type on lang to languageType, from xs:string, 24 May 2002, pld -->

<!-- created commonAttribute group to hold the common attributes and just call attribute groups from here, 24 May 2002, pld -->

<xs:attributeGroup name="globalAttributes">
		<xs:attributeGroup ref="commonAttributes"/>
		<xs:attributeGroup ref="inReferenceAttributes"/>
		<xs:attributeGroup ref="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="commonAttributes">
		<xs:attribute name="ews" type="xs:string" use="optional"/>
		<xs:attribute name="ID" type="xs:ID" use="optional"/>
		<xs:attribute name="lang" type="languageType" use="optional"/>
		<xs:attribute name="resp" type="xs:string" use="optional"/>
		<xs:attribute name="type" type="xs:string" use="optional"/>
		<xs:attribute name="n" type="xs:string" use="optional"/>
</xs:attributeGroup>

<!-- change to osisWork and osisRef, rename simple type for osisWork -->

<!-- combined osisRef and osisGrain to make citation easier, both in inReferrenceAttributes and outReferenceAttributes -->

<xs:attributeGroup name="inReferenceAttributes">
	<xs:attribute name="work" type="osisRef" use="optional"/>
	<xs:attribute name="cite" type="osisRef" use="optional"/>
</xs:attributeGroup>	

<xs:attributeGroup name="outReferenceAttributes">
	<xs:attribute name="outWork" type="osisRef" use="optional"/>
	<xs:attribute name="outCite" type="osisRef" use="optional"/>
</xs:attributeGroup>


<!-- simple types -->

<xs:simpleType name="attributeExtension">
	<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: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: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="notesOSIS">
	<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="noteType">
	<xs:union memberTypes="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? -->

<!-- combine osisGrain and osisRef into one attribute, ref1@grain-ref2@grain, 29 May 2002, pld -->

<xs:simpleType name="osisWork">
	       <xs:restriction base="xs:string">
		   <xs:pattern value="(([^\s]*\.){0,6}([^\s]*))"/>
	       </xs:restriction>
</xs:simpleType>


<xs:simpleType name="osisRef">
	<xs:restriction base="xs:string">
		<xs:pattern value="(([^\s]*\.){0,6}([^\s]*))(@((char:(\d*)\+(\d*)\((.*)\))|((x-(\c*):)(.*)\((.*)\))))?((-(([^\s]*\.){0,6}([^\s]*)))?|(-(([^\s]*\.){0,6}([^\s]*)))(@((char:(\d*)\+(\d*)\((.*)\))|((x-(\c*):)(.*)\((.*)\))))?)?"/>
	</xs:restriction>
</xs:simpleType>



	<xs:simpleType name="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="xs:string">
			<xs:enumeration value="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="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="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="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="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="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="bnd">
				<xs:annotation>
					<xs:documentation>Binder: </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="bdd">
				<xs:annotation>
					<xs:documentation>Binding designer:  Designer of binding</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="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="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="bjd">
				<xs:annotation>
					<xs:documentation>Bookjacket designer:  Designer of bookjacket</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="bpd">
				<xs:annotation>
					<xs:documentation>Bookplate designer: Designer of bookplate</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="ctg">
				<xs:annotation>
					<xs:documentation>Cartographer: </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="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="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="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="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="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="ilu">
				<xs:annotation>
					<xs:documentation>Illuminator: </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="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="pbl">
				<xs:annotation>
					<xs:documentation>Publisher: </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>

<xs:simpleType name="roleType">
	<xs:union memberTypes="roleOSIS attributeExtension"/>
</xs:simpleType>

</xs:schema>
--------------050404010502050805040401--