Cover Pages Logo SEARCH
Advanced Search
ABOUT
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

NEWS
Cover Stories
Articles & Papers
Press Releases

CORE STANDARDS
XML
SGML
Schemas
XSL/XSLT/XPath
XLink
XML Query
CSS
SVG

TECHNOLOGY REPORTS
XML Applications
General Apps
Government Apps
Academic Apps

EVENTS
LIBRARY
Introductions
FAQs
Bibliography
Technology and Society
Semantics
Tech Topics
Software
Related Standards
Historic

OSIS Beta Schema 2002-03-18.


From: http://www.sbl-site2.org/Technology/OSIS/osis_0.10.zip 2002-03-18.

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

<xs:include schemaLocation = "selectedRoleNames.xsd" />

<!-- <xs:include schemaLocation = "protScriptureRef.xsd" /> -->
<xs:include schemaLocation = "compScriptureRef.xsd" />


	<xs:annotation>
		<xs:documentation>
		Revision History 
	<p><date>2002-01-31</date><version>.01</version><resp>PLD</resp>First draft of schema following Dallas meeting, 24-27 January 2002. Comments for drafters will be removed prior to public release.</p>
	<p><date>2002-02-06</date><version>.02</version><resp>PLD</resp>Added annotation/documentation to schema. Began constructing with incremental validation using SchemaValidator from IBM. Began using group elements for content models and attributes.</p>
	<p><date>2002-02-08</date><version>.03</version><resp>PLD</resp>Completed header except for &lt;refsDecl&gt; and possible elements for translation and version (both of which should be in the &lt;refsDecl&gt; element? Note the notion of using &lt;title&gt; instead of head and similar elements for other title like portions of the text.</p>
	<p><date>2002-02-10</date><version>.04</version><resp>PLD</resp>Work began in earnest on the body and related elements. Note the use of &lt;titleGroup&gt; within &lt;body&gt;, &lt;div&gt;, &lt;book&gt;, &lt;chapter&gt;. I am using that instead of a free floating &lt;head&gt; element. I think it will give authors the flexibility to add whatever title/head like content to the text at any point without the confusion of &lt;head&gt;, plus &lt;title&gt;, plus whatever other header type structure we could invent.</p>
	<p><date>2002-02-11</date><version>.04</version><resp>PLD</resp>Content models sans the reference materials. Should be enough to start debugging the schema as a whole.</p>
	<p><date>2002-02-14</date><version>.05</version><resp>PLD</resp>After much email correspondence over the last two days, substantially reforming the content model to allow for recursive nesting of div elements. Also added enumerated types for divs, which should simplify the content models by eliminating book, chapter and similar group elements. Note that lineGroup has been swallowed up  by div, where it actually belongs.</p>
	<p><date>2002-02-18</date><version>.06</version><resp>PLD</resp>Finished the revisions noted for version .05 and am working on validation. Note that the ID attribute on milestones are also used as keys for the key/keyRef mechanism. This means that all keys are unique and all keyrefs are also declared to be unique. Should result in requiring a matching keyref that is unique within the relevant div structure.</p>
	<p><date>2002-03-01</date><version>.07</version><resp>PLD</resp>Major as well as minor changes: ID is now optional; created translationGroup for elements such as ampRead, changedTense, ntProphecy, otProphecy, supplied, since they are all claims about the text; need a reduced set on roles for this version and move to a separate file (eventually), roles will also become 3-letter abbreviations and the explanatory text will be in documentation elements; new element, lineGroup to contain line; list (now an orphan) will be add to div element, name element becomes mixed content to allow Mr., Dr., The Most Honored, Reverend, etc.; new element, divineName, with enumerated set (closed); attribute on name becomes human/nonhuman</p>
	<p><date>2002-03-03</date><version>.08</version><resp>PLD</resp>Final cleanup before release of first public beta! Will release with version number .10, since planning on one more revision for general approval tomorrow before the public release. I think I have finally remembered all the orphans! Please check carefully, that would be a very bad thing for the public release!</p>
	<p><date>2002-03-06</date><version>.095</version><resp>PLD</resp>Opps! Skipped a version in the log. Will reconstruct. New addtions as the separate includes for book names, one universal milestone element, fixed title to remove mixed = true, minor typo fixes to the book names so they will be valid IDs.</p>
	<p><date>2002-03-07</date><version>.096</version><resp>PLD</resp>Added Todd's reference schema and Protestant canon for reference testing. Added Chris's corrected set of book names. Cleaned up the content model (some) to remove B-C-V as an alternative hierarchy. Makes the data model cleaner anyway. Set default value on calendar to ISO, added other types as per Chris.</p>
	<p><date>2002-03-10</date><version>.097</version><resp>PLD</resp>Cleaned up attribute names (case) and corrected the content model on milestones (should be called allowing 0 or unbounded but within the group as xs:choice).</p>
	<p><date>2002-03-11</date><version>.098</version><resp>PLD</resp>Added attachement to note, double ended pointing with both ends optional. Included Catholic scripture reference as default since it is the larger set of books. Due to the`reference validation I have not included the other works.</p>
	<p><date>2002-03-12</date><version>.099</version><resp>PLD</resp>Corrected typo in reference "or" list (thanks to Chris!), modified the naming on the cathScriptureReference.xsd to be compScriptureReference.xsd. Move reference inside the main schema.</p>
	<p><date>2002-03-16</date><version>.0100</version><resp>PLD</resp>Numerous corrections as submitted by Todd. Added notePart to make the note model more robust.</p>
	<p><date>2002-03-18</date><version>.0101</version><resp>PLD</resp>Hopefully last version before public beta. More corrections from Todd. Suggested opening paragraph for documentation follows.</p>
	<p><date>2002-03-18</date><version>.0101</version><resp>PLD</resp>Welcome to the first beta release of the OSIS schema! Comments, corrections, etc., should be directed to: osis-editors@bibletechnologies.org.</p><p>The OSIS schema is an effort to build an extensible schema for Bible (primarily) encoding but can be used for other works related to the Bible. This first schema does not have all the mechanisms that would be desired by a publisher, translator or scholar. That is by design and and it is intended to provide a reasonable learning curve for anyone wishing to use markup to encode biblical texts. Later modules will build upon this basis so that users can leverage their knowledge of this schema in mastering more advanced modules.</p><p>This schema would not have been possible without the generous contributions of time and resources by SIL, LOGOS, Hosanna Foundation, ABSi, ABS, SBL, as well as the following individuals; Dennis Drescher, Nathan Miles, Alan Conner, Bob Pritchett, Mike Perez, John Walter, Trevon Gross, Adina Hamik, Robert Hogdson, Kees De Blois, Kent Richards, Troy Griffiths, Chris Little, Todd Tillinghast, Steven DeRose and others. If poor memory or records has caused your name to be omitted here, please excuse the oversight and contact the editors to have it added.</p><p>The editorial team that has been doing almost daily iterations and testing of the beta release: Chris Little, chrislit@crosswire.org, Troy Griffiths, scribe@crosswire.org, Todd Tillinghast, todd@contentframeworks.com, Steven DeRose, sderose@speakeasy.net, and Patrick Durusau, pdurusau@emory.edu.</p>  
		</xs:documentation>
	</xs:annotation>

	<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 = "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:attributeGroup name = "globalAttributesWithoutType">
		<xs:attribute name = "ID" type = "xs:ID" use = "optional" />
		<xs:attribute name = "reference" type = "ReferenceType" use = "optional" />
		<xs:attribute name = "work" type = "WorkType" use = "optional" />
	</xs:attributeGroup>


	<xs:attributeGroup name = "globalAttributesWithType">
		<xs:attribute name = "ID" type = "xs:ID" use = "optional" />
		<xs:attribute name = "type" type = "xs:string" use = "optional" />
		<xs:attribute name = "reference" type = "ReferenceType" use = "optional" />
		<xs:attribute name = "work" type = "WorkType" use = "optional" />
	</xs:attributeGroup>


	<xs:simpleType name = "namesOSIS">
		<xs:annotation>
			<xs:documentation>
				<p>Enumerated list of name types commonly found in biblical texts.</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 = "notesOSIS">
		<xs:annotation>
			<xs:documentation>
				<p>Enumerated list of note types for biblical texts.</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="ReferenceType">
		<xs:restriction base="xs:string">
			<xs:pattern value="([^.]+)((.[^.]+){0,})?"/>
		</xs:restriction>
	</xs:simpleType>



	<xs:attributeGroup name="referenceGroup">
		<xs:attribute name="work" type="WorkType" use="optional"/>
		<xs:attribute name="reference" type="ReferenceType" use="optional"/>
		<xs:attribute name="referenceEnd" type="ReferenceType" use="optional"/>
	</xs:attributeGroup>	
	
	<xs:element name = "text">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref = "front" />
				<xs:element ref = "body" />
				<xs:element ref = "back" />
				</xs:sequence>
			<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>
	

	<xs:element name = "front">
		<xs:annotation>
			<xs:documentation>
				<p>Note to working group. To be removed before publication. Note that this particular front matter model requires the initial sequence as shown. Once all these elements have occurred, you could have a variety of divs for front matter. Question: should not only the sequence be required but the occurrences as well?</p>
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
			<xs:group ref = "titleGroup" minOccurs = "1" maxOccurs = "1" />
			<xs:element ref = "author" minOccurs = "1" maxOccurs = "unbounded" />
			<xs:element ref = "date" minOccurs = "1" maxOccurs = "unbounded" />
			<xs:element ref = "copyright" minOccurs = "1" maxOccurs = "unbounded" />
			<xs:element ref = "publisher" minOccurs = "1" maxOccurs = "unbounded" />
			<xs:element ref = "pubPlace" minOccurs = "1" maxOccurs = "unbounded" />
			<xs:element ref = "revisionDesc" minOccurs = "1" maxOccurs = "unbounded" />
			<xs:element ref = "div" minOccurs = "0" maxOccurs = "unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>


	<xs:element name = "body">
			<xs:annotation>
				<xs:documentation>
					<p>Note the use of the xs:choice group between &lt;div&gt; and &lt;chapter&gt;. In one sense I think we need to be clear that you can have &lt;chapter&gt; elements inside &lt;div&gt; elements but that you should not mix them under the &lt;body&gt; element, at least at the same level. I can imaging cases where OSIS will be applied to texts with only a single &lt;div&gt; element as understood in TEI semantics and it seems easier to let users to choose &lt;chapter&gt; for such works. Note that this allows us to declare both the &lt;div&gt; and &lt;chapter&gt; elements elsewhere and use in this (as well as other) content models.</p><p>Note that milestones are constrained with unique properties throughout the &lt;body&gt;. The relevant content models also provide that either a container or milestone version of certain elements, such as &lt;verse&gt;, &lt;line&gt;, &lt;p&gt;, and &lt;chapter&gt; can be chosen in appropriate contexts.</p>
			
				</xs:documentation>
			</xs:annotation>
		<xs:complexType>
			<xs:sequence>
			<xs:group ref = "titleGroup" minOccurs = "0" maxOccurs = "1" />
			<xs:element ref = "div" minOccurs = "1" maxOccurs = "unbounded" />
			</xs:sequence>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "body" />
			</xs:complexType>
	</xs:element>

	<xs:element name = "back">
		<xs:complexType>
			<xs:sequence>
			<xs:group ref = "titleGroup" minOccurs = "1" maxOccurs = "1" />
			<xs:element ref = "div" minOccurs = "1" maxOccurs = "unbounded" />
			</xs:sequence>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "back" />
		</xs:complexType>
	</xs:element>


	<xs:group name = "annotationGroup">
		<xs:annotation>
			<xs:documentation>
				<p>A group for common annotations recorded on a text.</p>
			</xs:documentation>
		</xs:annotation>
                <xs:sequence>
		<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 = "name" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "note" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "q" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "reference" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "speaker" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "w" 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.</p>
			</xs:documentation>
                </xs:annotation>
                        <xs:choice>
					<xs:element name = "refStart">
						<xs:complexType>
						<xs:attribute name = "Start" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "refEnd">
						<xs:complexType>
						<xs:attribute name = "refStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "bookStart">
						<xs:complexType>
						<xs:attribute name = "bookStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "bookEnd">
						<xs:complexType>
						<xs:attribute name = "refbookStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "chapterStart">
						<xs:complexType>
						<xs:attribute name = "ChapterStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "chapterEnd">
						<xs:complexType>
						<xs:attribute name = "refChapterStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
						</xs:complexType>
					</xs:element>
					<xs:element name = "lineStart">
						<xs:complexType>
						<xs:attribute name = "LineStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "lineEnd">
						<xs:complexType>
						<xs:attribute name = "refLineStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
						</xs:complexType>
					</xs:element>
					<xs:element name = "pStart">
						<xs:complexType>
						<xs:attribute name = "pStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "pEnd">
						<xs:complexType>
						<xs:attribute name = "refPStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
						</xs:complexType>
					</xs:element>
					<xs:element name = "qStart">
						<xs:complexType>
						<xs:attribute name = "qStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "qEnd">
						<xs:complexType>
						<xs:attribute name = "refqStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "speechStart">
						<xs:complexType>
						<xs:attribute name = "speechStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "speechEnd">
						<xs:complexType>
						<xs:attribute name = "refspeechStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "verseStart">
						<xs:complexType>
						<xs:attribute name = "VerseStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
                                                </xs:complexType>
					</xs:element>
					<xs:element name = "verseEnd">
						<xs:complexType>
						<xs:attribute name = "refVerseStart" type = "xs:string" use = "required" />
						<xs:attributeGroup ref = "globalAttributesWithType" />
						</xs:complexType>
					</xs:element>
			</xs:choice>
	</xs:group>


	<xs:group name = "titleGroup">
		<xs:annotation>
			<xs:documentation>
				<p>The titleGroup provides title and titlePart models both for front matter (as traditionally understood in the sense of title pages) as well as heading such as appear in other divisions of the text. The use of head and similar mechanisms seems to complicate the semantics of the markup with no real benefit to the user.Structurally, titles interrupt the flow of the text for some purpose, such as the beginning of a new theme, section, chapter or other division of the text.</p>
				<p>The &lt;title&gt; mixed attribute is set to true and &lt;titlePart&gt; element is optional to allow for use of the &lt;title&gt; element in cases where &lt;titlePart&gt; is not desired. Thus the average user can simply input the title of a work without the added complexity of specifying parts of the title. The &lt;titlePart&gt; element is not recursive, in other words it cannot occur within &lt;titlePart&gt;.</p>
			</xs:documentation>
		</xs:annotation>
                <xs:sequence>
                        <xs:element ref = "title" minOccurs = "1" maxOccurs = "unbounded" />
                </xs:sequence>             
	</xs:group>


	<xs:group name = "translationGroup">
		<xs:annotation>
			<xs:documentation>
				<p>A group that gathers claims made about a text in the process of translation.</p>
			</xs:documentation>
		</xs:annotation>
                <xs:sequence>
		<xs:element ref = "ampRead" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "changedTense" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "ntProphecy" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "otPassage" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "supplied" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
	</xs:group>



	<xs:element name = "ampRead">
                <xs:complexType>
		<xs:sequence minOccurs = "0" maxOccurs = "unbounded">
		<xs:element ref = "note" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "author">
		<xs:annotation>
			<xs:documentation>
				<p>The author element has been defined globally to allow its use in a number of contexts. Users should note that the role of an author, i.e,, as editor, translator, etc., is required.</p>
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:choice>
			<xs:element ref = "persName" />
			<xs:element ref = "orgName" />
			</xs:choice>
				<xs:attributeGroup ref = "globalAttributesWithType" />
				<xs:attribute name = "role" type = "role" use = "required" />
				<xs:attribute name = "TEIform" fixed = "author" />
		</xs:complexType>
	</xs:element>

		<xs:element name = "caption">
		<xs:complexType>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>



	<xs:element name = "changedTense">
                <xs:complexType>
		<xs:sequence minOccurs = "0" maxOccurs = "unbounded">
		<xs:element ref = "note" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "copyright">
		<xs:annotation>
			<xs:documentation>
				<p>Not entirely happy with the content model requiring &lt;p&gt; for this element. Should I declare it mixed = yes? and make the &lt;p&gt; element optional?</p>
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
		<xs:sequence>
		<xs:element ref = "p" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		<xs:attribute name = "status" type = "status" use = "optional" />
		<xs:attribute name = "TEIform" fixed = "availability" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "date">
		<xs:complexType>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "calendar" type = "calendar" default = "ISO" use = "optional" />
			<xs:attribute name = "value" use = "optional" />
			<xs:attribute name = "TEIform" fixed = "date" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "div">
		<xs:complexType>
		<xs:sequence minOccurs = "1" maxOccurs = "unbounded">
		<xs:group ref = "titleGroup" minOccurs = "0" maxOccurs = "1" />
		<xs:group ref = "milestones" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "figure" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "div" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "lineGroup" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "list" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "note" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "p" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "reference" minOccurs = "0" maxOccurs = "unbounded" />	
		</xs:sequence>
                <xs:attributeGroup ref = "globalAttributesWithoutType" />
		<xs:attribute name = "type" type = "divType" use = "optional" />
		<xs:attribute name = "TEIform" fixed = "div" />
		</xs:complexType>
	</xs:element>

	<xs:simpleType name = "divType">
		<xs:union memberTypes="divsOSIS attributeExtension" />
	</xs:simpleType>

	<xs:element name = "divineName">
		<xs:complexType>
                        <xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "figure">
		<xs:complexType>
		<xs:sequence>
		<xs:element name = "caption" minOccurs = "0" maxOccurs = "1" />
		</xs:sequence>
		<xs:attribute name="attachFigure" type="xs:string" use="optional"/>
		<xs:attribute name="endAttachFigure" type="xs:string" use="optional"/>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "foreign">
		<xs:complexType>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "foreName">
		<xs:complexType>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "foreName" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "head">
		<xs:complexType>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

        <xs:element name = "groupLine">
                <xs:complexType>
                <xs:sequence>
                        <xs:element ref = "line" minOccurs = "1" maxOccurs = "unbounded" />
                </xs:sequence>
                <xs:attributeGroup ref = "globalAttributesWithType" />
                </xs:complexType>
        </xs:element>


	<xs:element name = "inscription">
		<xs:complexType>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "item">
		<xs:complexType>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "line">
                <xs:complexType mixed = "true" >
		<xs:sequence minOccurs = "1" maxOccurs = "unbounded">
		<xs:group ref = "annotationGroup" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:group ref = "milestones" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:group ref = "translationGroup" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "lineGroup">
		<xs:complexType>
		<xs:sequence>
		<xs:element ref = "line" minOccurs = "1" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
        </xs:element>


	<xs:element name = "list">
		<xs:complexType>
                <xs:sequence>
		<xs:element ref = "head" minOccurs = "0" maxOccurs = "1" />
		<xs:element ref = "item" minOccurs = "1" maxOccurs = "1" />
                </xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
                </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:attribute name = "nameType" type = "nameType" use = "required" />
		<xs:attribute name = "regular"  type = "xs:string" use = "optional" />
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
		</xs:element> 


	<xs:simpleType name = "nameType">
		<xs:union memberTypes="namesOSIS attributeExtension" />
	</xs:simpleType>

		<xs:element name="note">
		<xs:annotation>
			<xs:documentation>
				<p>Has enumerated list of note types and a fairly loose content model. Need to add reference mateirals. Should I add the placement attribute?</p>
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:element ref="p" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="notePart" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="startNote" type="xs:string" use="optional"/>
			<xs:attribute name="stopNote" type="xs:string" use="optional"/>
			<xs:attribute name="noteType" type="noteType" use="required"/>
			<xs:attributeGroup ref="globalAttributesWithType"/>
			<xs:attribute name="TEIform" fixed="note"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="notePart">
		<xs:annotation>
			<xs:documentation>
				<p/>
			</xs:documentation>
		</xs:annotation>
		<xs:complexType mixed="true">
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="p" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="notePart" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="reference" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="type" type="noteTypePart" use="required"/>
		</xs:complexType>
	</xs:element>

	<xs:simpleType name="noteTypePart">
		<xs:union memberTypes="notesOSIS attributeExtension"/>
	</xs:simpleType>

	<xs:simpleType name="noteType">
		<xs:union memberTypes="notesOSIS attributeExtension"/>
	</xs:simpleType>

	<xs:element name = "ntProphecy">
                <xs:complexType>
		<xs:sequence minOccurs = "0" maxOccurs = "unbounded">
		<xs:element ref = "note" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attribute name = "target" type = "xs:string" use = "optional" />
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "orgName">
		<xs:complexType>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "orgName" />
		</xs:complexType>
	</xs:element>


	<xs:element name = "otPassage">
                <xs:complexType mixed = "true" >
		<xs:sequence minOccurs = "0" maxOccurs = "unbounded">
		<xs:element ref = "note" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attribute name = "target" type = "xs:string" use = "optional" />
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "p">
		<xs:complexType mixed="true">
		<xs:sequence minOccurs = "0" maxOccurs = "unbounded">
		<xs:group ref = "annotationGroup" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:element ref = "figure" minOccurs = "0" maxOccurs = "unbounded" />
                <xs:element ref = "lineGroup" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:group ref = "milestones" minOccurs = "0" maxOccurs = "unbounded" />
		<xs:group ref = "translationGroup" minOccurs = "0" maxOccurs = "unbounded" />		
		</xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "persName">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref = "foreName"  minOccurs = "0" maxOccurs = "1" />
				<xs:element ref = "surName"  minOccurs = "0" maxOccurs = "1" />
			</xs:sequence>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "persName" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "publisher">
		<xs:complexType>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "publisher" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "pubPlace">
		<xs:complexType>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "pubPlace" />
		</xs:complexType>
	</xs:element>	


	<xs:element name = "q">
		<xs:complexType>
                <xs:sequence>
                <xs:element ref = "q" minOccurs = "0" maxOccurs = "unbounded" />
                </xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

	<xs:element name="reference">
		<xs:complexType>
			<xs:attribute name="work" type="WorkType" use="optional"/>
			<xs:attribute name="reference" type="ReferenceType" use="required"/>
			<xs:attribute name="referenceEnd" type="ReferenceType" use="optional"/>
		</xs:complexType>
	</xs:element>

	<xs:element name = "revisionDesc">
		<xs:complexType>
			<xs:sequence>
			<xs:element ref = "p" minOccurs = "1" maxOccurs = "unbounded" />
			</xs:sequence>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "revisionDesc" />
		</xs:complexType>
	</xs:element>

	
	<xs:element name = "speaker">
		<xs:complexType>
		<xs:attribute name="who" type = "xs:string" />
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

	<xs:simpleType name = "status">
	   <xs:restriction base="xs:string">
		<xs:enumeration value="free" /> 
		<xs:enumeration value="unknown" /> 	
		<xs:enumeration value="restricted" />
	   </xs:restriction>
	</xs:simpleType>

	<xs:element name = "supplied">
                <xs:complexType>
		<xs:sequence minOccurs = "0" maxOccurs = "unbounded">
		<xs:element ref = "note" minOccurs = "0" maxOccurs = "unbounded" />
		</xs:sequence>
		<xs:attributeGroup ref = "globalAttributesWithType" />
		</xs:complexType>
	</xs:element>

	<xs:element name = "surName">
		<xs:complexType>
			<xs:attributeGroup ref = "globalAttributesWithType" />
			<xs:attribute name = "TEIform" fixed = "surName" />
		</xs:complexType>
	</xs:element>

        <xs:element name = "title">
                <xs:complexType>
                        <xs:sequence minOccurs = "1" maxOccurs = "unbounded">
                           <xs:element name = "titlePart" type="xs:string" />
                        </xs:sequence>
		<xs:attribute name="startTitle" type="xs:string" use="optional"/>
		<xs:attribute name="endTitle" type="xs:string" use="optional"/>
                <xs:attributeGroup ref = "globalAttributesWithoutType" />
                <xs:attribute name = "TEIform" fixed = "title" />
                </xs:complexType>
        </xs:element>

	<xs:element name = "w">
		<xs:complexType>
		<xs:attribute name = "POS" type = "attributeExtension" use = "optional" />
		<xs:attribute name = "morphology" type = "attributeExtension" use = "optional" />
		<xs:attribute name = "lemma" type = "attributeExtension" use = "optional" />
		<xs:attribute name = "gloss" type = "xs:string" use = "optional" />
		<xs:attribute name = "transliteration" type = "xs:string" use = "optional" />
		<xs:attributeGroup ref = "globalAttributesWithType" />
		<xs:attribute name = "TEIform" fixed = "w" />
		</xs:complexType>
	</xs:element>
	

</xs:schema>


Prepared by Robin Cover for The XML Cover Pages archive.


Globe Image

Document URL: http://xml.coverpages.org/OSIS-0101Beta-xsd.html