[osis-core] Error in Schema - Getting valid
Todd Tillinghast
osis-core@bibletechnologieswg.org
Mon, 6 May 2002 18:15:27 -0500
This is a multi-part message in MIME format.
------=_NextPart_000_000D_01C1F52A.005AD970
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
Following are the needed changes.
Attached is the file with the following changes. READ the changes
listed. I commented out one thing and created temporary elements and
simple types of others that were not defined but referenced.
Hope this helps.
Todd
ONE
In milestone
Make <xs:attributeGroup name="inReferenceAttributes"/>
<xs:attributeGroup ref="inReferenceAttributes"/>
TWO
Remove all uses of "dc:". If we are going to use elements defined in
another namespace the we should not define them in our schema.
THREE
Top level elements can not have minOccurs="0" or maxOccurs="0"
Remove from Title, Creator, Subject, Description, Publisher, Date, Type,
Format, Identifier, Source, Language, Relation, Coverage, Rights, and
revisionDesc.
FOUR
In reference the attribute target is not a valid attribute
<xs:attribute name="referenceTo" target="xs:string" type="referenceType"
use="optional"/>
FIVE
In globalAttributes xs:key is undefined. There is no key in the xs
namespace.
I substituted for xsXkey and created a type xsXkey to get the schema
valid.
SIX
In phraseGroup
<xs:element ref="speaker" mixOccurs="0" maxOccurs="unbounded"/> should
be
<xs:element ref="speaker" minOccurs="0" maxOccurs="unbounded"/>
SEVEN
In body and back
<xs:attributeGroup ref="referenceAttributes"/> should be
<xs:attributeGroup ref="inReferenceAttributes"/>
EIGHT
languageType is never defined.
(I defined it temporarily)
NINE
<xs:simpleType name="nameType">
<xs:union memberTypes="namessOSIS attributeExtension"/>
</xs:simpleType>
should be
<xs:simpleType name="nameType">
<xs:union memberTypes="namesOSIS attributeExtension"/>
</xs:simpleType>
TEN
In transChange
<xs:attribute ref="resp" type="xs:string" use="optional"/> should be
<xs:attribute name="resp" type="xs:string" use="optional"/>
ELEVEN
nonLitOSIS is undefined in transChangeType
I created a temp simple type.
TWELVE
Define is not defined a temp simple type was created.
THIRTEEN
refType is not defined a temp simple type was created.
FOURTEEN
Element refered to as "closer" in div was commented out.
FIFTEEN
In revisionDesc resp is undefined a temporary element was created.
SIXTEEN
In seg and title
<xs:element ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
should be
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
> -----Original Message-----
> From: owner-osis-core@bibletechnologieswg.org [mailto:owner-osis-
> core@bibletechnologieswg.org] On Behalf Of Patrick Durusau
> Sent: Monday, May 06, 2002 3:16 PM
> To: osis-core
> Subject: [osis-core] Error in Schema
>
> Guys,
>
> Well, it is not a namespace error, I stripped those out and still get
an
> error on not having a closing xs:schema element name right at
> revisionDesc.
>
> For $400, this is really bad software.
>
> Unfortunately, same error from the IBM software, which usually has
> better error messages.
>
> Patrick
>
> --
> Patrick Durusau
> Director of Research and Development
> Society of Biblical Literature
> pdurusau@emory.edu
>
------=_NextPart_000_000D_01C1F52A.005AD970
Content-Type: text/xml;
name="OSISCore_PostRome.xsd"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="OSISCore_PostRome.xsd"
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<xs:schema xmlns:xs=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:dc=3D"http://purl.org/dc/elements/1.0" =
elementFormDefault=3D"unqualified">
<xs:annotation>
<xs:documentation> OSISCore_PostRome.xsd <p>
<date>2002-05-06</date>
<version>1.0.PR.1</version>
This is the first complete revision of the OSIS schema since the =
meetings in Rome. I have attempted to use XML comments to allow the =
original text to remain along side the changes and have inserted a =
number of comments based upon the discussions in Rome. I will also =
prepare a clean version of the new schema for use in =
authoring/conversion, as this one is more suited for discussion of the =
various changes.</p>
<p> Note that I have substantially reorganized the schema to =
(hopefully) make it easier to follow. New organization starts with the =
high level containers, osisText for example, as the ultimate container =
element (name subject to debate/change), which contains a header =
(primarily OEB/Dublin Core elements, that replace our title/titlePart =
elements. Most of the elements in the metadata header are optional. That =
is followed by the usual suspects, front, body and back. I then follow =
with the larger divisions, front, body and back. Those large divisions =
are followed by the various elements and content models for those =
elements. After all the structural stuff, then I have the simpleTypes =
and other material.</p>
<p>Among the more significant changes are the loss of milestones and =
their replacement with segmentation of elements that bear next and =
previous attributes. The reasoning for this change was that boundary =
crossing elements are the exception and not the rule, hence only those =
cases should require unusual markup, as opposed to requiring milestones =
for all possible crossing elements. Since elements require a known =
context (unlike milestones) it will be possible to use the key/keyref =
mechanism for validation of these references.</p>
</xs:documentation>
</xs:annotation>
<xs:element name=3D"osisText">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<p>Header and body elements are required and in that sequence. =
Front and back are optional (front primarily optional to allow quick =
start on encoding, most texts will have one.</p>
<p>Rome changes: Added header, loses title/titlePart (within =
divs/books/chaps/etc. becomes recursive head). Made front optional to =
allow quick start to encoding. Header has Dublin Core materials drawn =
from OEB and the role attribute cut down to ten (10) possible roles. See =
the final section of the schema for roles and other simple type =
declarations.</p>
<p>Attribute changes: note that attributes now distinguish both the =
work and refSys for a text.</p>
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref=3D"header"/>
<xs:element ref=3D"front" minOccurs=3D"0"/>
<xs:element ref=3D"body"/>
<xs:element ref=3D"back" minOccurs=3D"0"/>
</xs:sequence>
<xs:attribute name=3D"work" type=3D"osisWork" use=3D"optional"/>
<xs:attribute name=3D"refSys" type=3D"osisRef" use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:simpleType name=3D"osisWork">
<xs:restriction base=3D"xs:string"/>
</xs:simpleType>
<xs:simpleType name=3D"osisRef">
<xs:restriction base=3D"xs:string"/>
</xs:simpleType>
<!-- Note that syntax for osisWork and osisRef need to be written, =
Steve mongo regex? -->
<!-- Need namespace declarations for Dublin Core elements as well -->
<xs:element name=3D"header">
<xs:annotation>
<xs:documentation>
<p>Rome changes: Most of this information was in front and required =
in the earlier version of OSIS. Have moved the metadata information into =
the header element and made most of it optional. Only title required. =
Note that we recommned revisionDesc be used and if it is, it does have =
required sub-elements of date and resp. </p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"Contributor" minOccurs=3D"0"/>
<xs:element ref=3D"Title"/>
<xs:element ref=3D"Creator" minOccurs=3D"0"/>
<xs:element ref=3D"Subject" minOccurs=3D"0"/>
<xs:element ref=3D"Description" minOccurs=3D"0"/>
<xs:element ref=3D"Publisher" minOccurs=3D"0"/>
<xs:element ref=3D"Date" minOccurs=3D"0"/>
<xs:element ref=3D"Type" minOccurs=3D"0"/>
<xs:element ref=3D"Format" minOccurs=3D"0"/>
<xs:element ref=3D"Identifier" minOccurs=3D"0"/>
<xs:element ref=3D"Source" minOccurs=3D"0"/>
<xs:element ref=3D"Language" minOccurs=3D"0"/>
<xs:element ref=3D"Relation" minOccurs=3D"0"/>
<xs:element ref=3D"Coverage" minOccurs=3D"0"/>
<xs:element ref=3D"Rights" minOccurs=3D"0"/>
<xs:element ref=3D"revisionDesc" minOccurs=3D"0"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"Contributor">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Title">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Creator">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"resp" type=3D"xs:string" use=3D"required"/>
<xs:attribute name=3D"role" type=3D"role" use=3D"required"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Subject">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Description">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Publisher">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Date">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Type">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Format">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Identifier">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Source">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Language">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Relation">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Coverage">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"Rights">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"revisionDesc">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"date"/>
<xs:element ref=3D"resp"/>
<xs:group ref=3D"phraseGroup" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"revisionDesc"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"front">
<xs:annotation>
<xs:documentation>
<p>Note that with the addition of the header element, the various =
sub-elements such as titleGroup, author, date, copyright, publisher, =
pubPlace, revisionDesc have been removed. Not really compatible with TEI =
anyway. Now contains only div and global attributes. Note that div is =
recursive and contains generic content. Note that title is recursive so =
can have subtitles and the like.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"title" minOccurs=3D"0"/>
<xs:element ref=3D"div" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"body">
<xs:annotation>
<xs:documentation>
<p>Major Rome changes were the elimination of the titleGroup, since =
that information is carried in the header. The div element contains a =
recursive header for title type information that should be recorded in =
the body.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"title" minOccurs=3D"0"/>
<xs:element ref=3D"div" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"body"/>
<xs:attributeGroup ref=3D"inReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"back">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"title" minOccurs=3D"0"/>
<xs:element ref=3D"div" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"back"/>
<xs:attributeGroup ref=3D"inReferenceAttributes"/>
</xs:complexType>
</xs:element>
<!-- end of main structural elements of header, front, body and back =
-->
<!-- Begin listing of lower level elements and their content groups -->
<xs:element name=3D"abbr">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"expansion" type=3D"xs:string" =
use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"blockQuote">
<xs:annotation>
<xs:documentation>
<p>My notes indicate salute, note, p, phrase-class, =
close-salute-signed. Should all these be separate elements in the =
sequence or should close contain salute-signed? Have modeled it that way =
but open to suggestions.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"salute" minOccurs=3D"0"/>
<xs:element ref=3D"p" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"speaker" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"close" minOccurs=3D"0"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"catchWord">
<xs:complexType mixed=3D"true">
<xs:sequence>
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"close">
<xs:annotation>
<xs:documentation>
<p>Note that both salute and signed contain phrase-class =
elements.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType mixed=3D"true">
<xs:sequence>
<xs:element ref=3D"salute" minOccurs=3D"0"/>
<xs:element ref=3D"signed" minOccurs=3D"0"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"date">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"calendar" type=3D"calendar" use=3D"optional" =
default=3D"ISO"/>
<xs:attribute name=3D"value" use=3D"optional"/>
<xs:attribute name=3D"TEIform" fixed=3D"date"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name=3D"calendar">
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"Chinese"/>
<xs:enumeration value=3D"Gregorian"/>
<xs:enumeration value=3D"Islamic"/>
<xs:enumeration value=3D"ISO"/>
<xs:enumeration value=3D"Jewish"/>
<xs:enumeration value=3D"Julian"/>
</xs:restriction>
</xs:simpleType>
<xs:element name=3D"div">
<xs:complexType>
<xs:choice>
<xs:sequence maxOccurs=3D"unbounded">
<xs:element ref=3D"div" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"p" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"figure" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"lineGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"salute" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"speech" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<!-- <xs:element ref=3D"closer" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/> -->
</xs:sequence>
<xs:sequence maxOccurs=3D"unbounded">
<xs:element ref=3D"div" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"verse" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"figure" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"lineGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"salute" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"speech" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<!-- <xs:element ref=3D"closer" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/> -->
</xs:sequence>
</xs:choice>
<xs:attribute name=3D"lang" type=3D"languageType" use=3D"optional"/>
<xs:attribute name=3D"type" type=3D"divType" use=3D"optional"/>
<xs:attribute name=3D"divTitle" type=3D"xs:string" use=3D"optional"/>
<xs:attributeGroup ref=3D"inReferenceAttributes"/>
<xs:attributeGroup ref=3D"segmentAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"div"/>
</xs:complexType>
</xs:element>
<xs:simpleType name=3D"divType">
<xs:union memberTypes=3D"divsOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name=3D"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=3D"xs:string">
<xs:enumeration value=3D"appendix"/>
<xs:enumeration value=3D"book"/>
<xs:enumeration value=3D"chapter"/>
<xs:enumeration value=3D"concordance"/>
<xs:enumeration value=3D"glossary"/>
</xs:restriction>
</xs:simpleType>
<xs:element name=3D"divineName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"figure">
<xs:complexType>
<xs:sequence>
<xs:element name=3D"caption" minOccurs=3D"0"/>
</xs:sequence>
<xs:attribute name=3D"src" type=3D"xs:string" use=3D"required"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"foreign">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"head">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"head" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"inscription">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"item">
<xs:complexType mixed=3D"true">
<xs:sequence maxOccurs=3D"unbounded">
<xs:element ref=3D"label" type=3D"xs:string" minOccurs=3D"0"/>
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"label">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"line">
<xs:complexType mixed=3D"true">
<xs:sequence maxOccurs=3D"unbounded">
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"lineGroup">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"lineGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"line" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"list">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"list" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"head" minOccurs=3D"0"/>
<xs:element ref=3D"item" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"mentioned">
<xs:complexType mixed=3D"true">
<xs:sequence>
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"milestone">
<xs:annotation>
<xs:documentation>
<p>Added to make explicit the shadown milestone requested by BobP. =
Don't think you need a loc attribute with the inReferenceAttribute group =
but am open to comments. Since you have the ref attribute in =
inRefAttributes. May want to add the generic n attribute so people can =
make pages, etc.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attributeGroup ref=3D"inReferenceAttributes"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"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 "x-". 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=3D"xs:string">
<xs:attribute name=3D"nameType" type=3D"nameType" =
use=3D"required"/>
<xs:attribute name=3D"regular" type=3D"xs:string" =
use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name=3D"namesOSIS">
<xs:annotation>
<xs:documentation>
<p>Enumerated list of name types commonly found in biblical =
texts.</p>
<p>The attribute nonhuman was inserted to allow the marking of names =
that are not encoded with the element divineName. The divineName element =
was introduced to treat name occurences that are treated differently, =
i.e., the setting of Lord in small caps, to represent a name in the =
original text. Rather than attempt to enumerate all the varying =
traditions for such practices, the divineName element simply recognizes =
it and allows encoders to follow that practice (or not) as they =
desire.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"geographic"/>
<xs:enumeration value=3D"holiday"/>
<xs:enumeration value=3D"nonhuman"/>
<xs:enumeration value=3D"person"/>
<xs:enumeration value=3D"ritual"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"nameType">
<xs:union memberTypes=3D"namesOSIS attributeExtension"/>
</xs:simpleType>
<xs:element name=3D"note">
<xs:annotation>
<xs:documentation>
<p>Note that note is now recursive, which allows the elimination of =
notePart. Has enumerated list of note types.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType mixed=3D"true">
<xs:sequence maxOccurs=3D"unbounded">
<xs:element ref=3D"note" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"catchWord" minOccurs=3D"0"/>
<xs:element ref=3D"p" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"reading" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attribute name=3D"ID" type=3D"xs:ID" use=3D"optional"/>
<xs:attribute name=3D"lang" type=3D"languageType" use=3D"optional"/>
<xs:attribute name=3D"n" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"resp" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"type" type=3D"noteType" use=3D"required"/>
<xs:attribute name=3D"TEIform" fixed=3D"note"/>
</xs:complexType>
</xs:element>
<xs:simpleType name=3D"noteType">
<xs:union memberTypes=3D"notesOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name=3D"notesOSIS">
<xs:annotation>
<xs:documentation>
<p>Enumerated list of note types for biblical texts. This list can =
be extended using the <x-> extension in front of other note types =
added by users.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"allusion"/>
<xs:enumeration value=3D"alternative"/>
<xs:enumeration value=3D"background"/>
<xs:enumeration value=3D"citation"/>
<xs:enumeration value=3D"devotional"/>
<xs:enumeration value=3D"exegesis"/>
<xs:enumeration value=3D"explanation"/>
<xs:enumeration value=3D"study"/>
<xs:enumeration value=3D"translation"/>
<xs:enumeration value=3D"variant"/>
</xs:restriction>
</xs:simpleType>
<xs:element name=3D"p">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"reading">
<xs:complexType mixed=3D"true">
<xs:sequence maxOccurs=3D"unbounded">
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"reference">
<xs:annotation>
<xs:documentation>
<p>Note otPassage and ntProphecy have been dropped as elements. =
Actually references, inter-textual for post-modernists, and should be =
marked as such. Can use extensible type attribute to denote a typology =
of references. I have added the target attribute as xs:string but we may =
(or may not) want to force some validation on that attribute. Tend to =
favor not, since we don't know what reference someone might wish to =
point to and validity is their problem.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"referenceTo" type=3D"referenceType" =
use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name=3D"referenceType">
<xs:union memberTypes=3D"referenceOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name=3D"referenceOSIS">
<xs:annotation>
<xs:documentation>
<p>Partial list reference types for biblical texts. This list can be =
extended using the <x-> extension in front of other note types =
added by users.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"allusion"/>
<xs:enumeration value=3D"paraphrase"/>
<xs:enumeration value=3D"quotation"/>
</xs:restriction>
</xs:simpleType>
<xs:element name=3D"salute">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"who" type=3D"xs:string"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"seg">
<xs:annotation>
<xs:documentation>
<p>Decided to not abuse the seg element from TEI as a milestone. =
Returned to its traditional role of marking arbitrary segments of text =
(although it must properly nest). Should give us a little more =
flexibility in allowing markup of phrase level stuff we have not thought =
of up to this point.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType mixed=3D"true">
<xs:sequence>
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name=3D"signed">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"who" type=3D"xs:string"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"speech">
<xs:complexType>
<xs:sequence>
<xs:element ref=3D"speaker" minOccurs=3D"0"/>
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"speaker">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"who" type=3D"xs:string"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name=3D"title">
<xs:complexType>
<xs:sequence maxOccurs=3D"unbounded">
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attribute name=3D"TEIform" fixed=3D"title"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"transChange">
<xs:annotation>
<xs:documentation>
<p>Bad name but all we could think of, please suggest better! Takes =
the place of ampRead, supplied, changedTenes. Supply types to enumerate =
added, deleted, amplified, changed, moved, other possibles, =
sourceComparison, sourceTrace, sourceMatch, transChange. Have not =
enumerated all in the list below but just a couple to act as place =
holders while we work out the scope of this element.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType mixed=3D"true">
<xs:sequence>
<xs:element ref=3D"note" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"w" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attribute name=3D"resp" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"transChange" type=3D"transChangeType" =
use=3D"optional"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:simpleType name=3D"transChangeType">
<xs:union memberTypes=3D"nonLitOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name=3D"transChangeOSIS">
<xs:annotation>
<xs:documentation>
<p>Partial list of translation change types for biblical texts. This =
list can be extended using the <x-> extension in front of other =
types added by users.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string">
<xs:enumeration value=3D"added"/>
<xs:enumeration value=3D"amplified"/>
<xs:enumeration value=3D"changed"/>
<xs:enumeration value=3D"deleted"/>
<xs:enumeration value=3D"moved"/>
</xs:restriction>
</xs:simpleType>
<xs:element name=3D"verse">
<xs:complexType mixed=3D"true">
<xs:sequence minOccurs=3D"0" maxOccurs=3D"unbounded">
<xs:group ref=3D"phraseGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
</xs:sequence>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
<xs:attributeGroup ref=3D"segmentAttributes"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name=3D"w">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=3D"xs:string">
<xs:attribute name=3D"POS" type=3D"attributeExtension" =
use=3D"optional"/>
<xs:attribute name=3D"morph" type=3D"attributeExtension" =
use=3D"optional"/>
<xs:attribute name=3D"lemma" type=3D"attributeExtension" =
use=3D"optional"/>
<xs:attribute name=3D"gloss" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"xlit" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"TEIform" fixed=3D"w"/>
<xs:attributeGroup ref=3D"globalAttributes"/>
<xs:attributeGroup ref=3D"outReferenceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- end new element listing -->
<!-- Global Attributes and simpleTypes -->
<xs:simpleType name=3D"attributeExtension">
<xs:annotation>
<xs:documentation>
<p>Where attribute values are declared, users can extend the allowed =
values by prepending the string "x-" 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=3D"xs:string">
<xs:pattern value=3D"x-([^\s]+)"/>
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name=3D"globalAttributes">
<xs:attribute name=3D"ews" type=3D"xsXkey" use=3D"optional"/>
<xs:attribute name=3D"ID" type=3D"xs:ID" use=3D"optional"/>
<xs:attribute name=3D"lang" type=3D"languageType" use=3D"optional"/>
<xs:attribute name=3D"type" type=3D"xs:string" use=3D"optional"/>
</xs:attributeGroup>
<xs:attributeGroup name=3D"inReferenceAttributes">
<xs:attribute name=3D"ref" type=3D"Define" use=3D"required"/>
<xs:attribute name=3D"refSys" type=3D"Define" use=3D"optional"/>
<xs:attribute name=3D"work" type=3D"Define" use=3D"optional"/>
</xs:attributeGroup>
<xs:attributeGroup name=3D"outReferenceAttributes">
<xs:attribute name=3D"ref" type=3D"refType" use=3D"optional"/>
</xs:attributeGroup>
<xs:attributeGroup name=3D"segmentAttributes">
<xs:attribute name=3D"next" type=3D"xs:string" use=3D"optional"/>
<xs:attribute name=3D"prev" type=3D"xs:string" use=3D"optional"/>
</xs:attributeGroup>
<!-- Element Groups -->
<xs:group name=3D"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=3D"abbr" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"blockQuote" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"divineName" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"foreign" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"inscription" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"lineGroup" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"list" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"mentioned" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"milestone" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"name" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"note" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"reference" minOccurs=3D"0" =
maxOccurs=3D"unbounded"/>
<xs:element ref=3D"seg" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"speaker" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"title" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xs:element ref=3D"w" minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xs:sequence>
</xs:group>
<!-- SimpleType Declarations -->
<!-- Role simpleType for the header element -->
<!--</xs:simpleType> -->
<xs:simpleType name=3D"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=3D"xs:string">
<xs:enumeration value=3D"art">
<xs:annotation>
<xs:documentation>Artist: Use for a person (e.g., a painter) who =
conceives, and perhaps also implements, an original graphic design or =
work of art, </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"aut">
<xs:annotation>
<xs:documentation>Author: Use for a person or corporate body =
chiefly responsiblefor the intellectual or artistic content of a work, =
usually printed text. This term may also be used when more than one =
person or body bears such responsibility.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"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=3D"aui">
<xs:annotation>
<xs:documentation>Author of introduction, etc.: Use for a person or =
corporate body responsible for an introduction, preface, foreword, or =
other critical introductory matter, but who is not the chief =
author.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"clb">
<xs:annotation>
<xs:documentation>Collaborator: Use for a person or corporate body =
that takes a limited part in the elaboration of a work of another person =
or corporate body that brings complements (e.g., appendices, notes) to =
the work.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"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=3D"com">
<xs:annotation>
<xs:documentation>Compiler: Use for a person who produces a work or =
publication by selecting and putting together material from the works of =
various persons or bodies.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"ctb">
<xs:annotation>
<xs:documentation>Contributor: Use for one whose work has been =
contributed to a larger work, such as an anthology, serial publication, =
or other compilation of individual works. Do not use for someone whose =
sole function in relation to a work is as author, editor, compiler or =
translator.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"edt">
<xs:annotation>
<xs:documentation>Editor: Use for a person who prepares for =
publication a work not primarily his/her own, such as by elucidating =
text, adding introductory or other critical matter, or technically =
directing an editorial staff.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value=3D"trl">
<xs:annotation>
<xs:documentation>Translator: Use for a person who renders a text =
from one language into another, or from an older form of a language into =
the modern form.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=3D"languageType">
<xs:annotation>
<xs:documentation>Temp Def. By Todd</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string"/>
</xs:simpleType>
<xs:simpleType name=3D"xsXkey">
<xs:annotation>
<xs:documentation>Temp Def. By Todd</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string"/>
</xs:simpleType>
<xs:simpleType name=3D"nonLitOSIS">
<xs:annotation>
<xs:documentation>Temp Def. By Todd</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string"/>
</xs:simpleType>
<xs:simpleType name=3D"Define">
<xs:annotation>
<xs:documentation>Temp Def. By Todd</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string"/>
</xs:simpleType>
<xs:simpleType name=3D"refType">
<xs:annotation>
<xs:documentation>Temp Def. By Todd</xs:documentation>
</xs:annotation>
<xs:restriction base=3D"xs:string"/>
</xs:simpleType>
<xs:element name=3D"resp" type=3D"xs:string"/>
</xs:schema>
------=_NextPart_000_000D_01C1F52A.005AD970--