[osis-core] Error on identifier (colon required to match regex)

Patrick Durusau osis-core@bibletechnologieswg.org
Sat, 25 Oct 2003 07:48:17 -0400


Troy,

type on identifier is defined as:

<xs:attribute name="type" type="osisGenType"/>

Which calls the regex you mention below.

I removed the enumeration of values and replaced it with the regex, 
which allows you to declare the identifier in a work.

The reason for the error is that the regex requires OSIS: and not simply 
OSIS. The reasoning was that usually an identifier will be used in a 
number of places with more parts of the identifier following and so the 
need to enforce the ":" separator.

Will this be a problem? Note we get the same behavior with type on 
subject, i.e., incorrect DEWEY, correct DEWEY:.

In a way it does call the user's attention to the proper use of the 
identifier itself as being identifier + colon.

This also requires identifier + colon in Lemma, Morph and POS, but we 
are used to seeing them there anyway.

Comments?

Hope everyone is having a great day!

Patrick

Troy A. Griffitts wrote:
> Hey guys.  Here's the report on the run of the latest schema against my 
> latest encoding of the NASB:
> 
> [scribe@troyslaptop msv]$ java -jar msv.jar ./osisCore.xsd ./nasb.xml
> start parsing a grammar.
> validating ./nasb.xml
> Error at line:7, column:45 of file:///space/home/scribe/msv/./nasb.xml
>   attribute "type" has a bad value: the value does not match the regular 
> expression 
> "((((\p{L}|\p{N}|_)+)(\.(\p{L}|\p{N}|_))*:)((((\p{L})|(\p{N}))+)(((\.(\p{L}|\p{N}|_)+)*))?))". 
> 
> 
> the document is NOT valid.
> 
> it fails on this line:
>                     <identifier type="OSIS">Bible.NASB</identifier>
> 
> 
> Here's the head of the doc:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <osis xmlns="http://www.bibletechnologies.net/2003/OSIS/namespace" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> xsi:schemaLocation="http://www.bibletechnologies.net/2003/OSIS/namespace 
> osisCore.1.9.xsd">
>      <osisText osisIDWork="nasb" xml:lang="en">
>           <header>
>                <work osisWork="nasb">
>                     <title>NEW AMERICAN STANDARD BIBLE</title>
>                     <identifier type="OSIS">Bible.NASB</identifier>
>                     <rights>Copyright (C) 
> 1960,1962,1963,1968,1971,1972,1973,1975,1977,1995 by THE LOCKMAN 
> FOUNDATION</rights>
>                     <refSystem>Bible</refSystem>
>                </work>
>                <work osisWork="strongs">
>                </work>
>           </header>
> 
> 
> <div type="book" osisID="Matt"><title type="main" 
> subType="x-Book">MATTHEW</title>
> <chapter osisID="Matt.1"><title type="sub" subType="x-Chapter">CHAPTER 
> 1</title>
> <title type="sub" subType="x-Section">The Genealogy of Jesus the 
> Messiah</title>
> <verse osisID="Matt.1.1"><w lemma="strongs:G976">The <note 
> type="explanation" osisID="Matt.1.1.note.1" n="1"></note>record</w> <w 
> lemma="strongs:G1078">of the genealogy</w> <w lemma="strongs:G2424">of 
> <note type="explanation" osisID="Matt.1.1.note.2" n="2"></note>Jesus</w> 
> <note type="explanation" osisID="Matt.1.1.note.3" n="3"></note><w 
> lemma="strongs:G5547">the Messiah</w>, <note type="crossReference" 
> osisID="Matt.1.1.xref.A" n="A"></note><w lemma="strongs:G5207">the 
> son</w> <w lemma="strongs:G1160b">of David</w>, <note 
> type="crossReference" osisID="Matt.1.1.xref.B" n="B"></note><w 
> lemma="strongs:G5207">the son</w> <w lemma="strongs:G11">of Abraham</w>:
> <milestone type="line" subType="x-PM"/></verse><verse 
> osisID="Matt.1.2"><w lemma="strongs:G11">Abraham</w> <note 
> type="explanation" osisID="Matt.1.2.note.1" n="1"></note><w 
> lemma="strongs:G1080">was the father</w> <w lemma="strongs:G2464">of 
> Isaac</w>, <note type="explanation" osisID="Matt.1.2.note.2" 
> n="2"></note><w lemma="strongs:G2464">Isaac</w> <w 
> lemma="strongs:G1080">the father</w> <w lemma="strongs:G2384">of 
> Jacob</w>, <w lemma="strongs:G2384">and Jacob</w> <w 
> lemma="strongs:G1080">the father</w> <w lemma="strongs:G2455">of <note 
> type="explanation" osisID="Matt.1.2.note.3" n="3"></note>Judah</w> <w 
> lemma="strongs:G80">and his brothers</w>.
> </verse><verse osisID="Matt.1.3"><w lemma="strongs:G2455">Judah</w> <w 
> lemma="strongs:G1080">was the father</w> <w lemma="strongs:G5329">of 
> Perez</w> <w lemma="strongs:G2196">and Zerah</w> <w 
> lemma="strongs:G2283">by Tamar</w>, <note type="crossReference" 
> osisID="Matt.1.3.xref.A" n="A"></note><w lemma="strongs:G5329">Perez</w> 
> <w lemma="strongs:G1080">was the father</w> <w lemma="strongs:G2074">of 
> Hezron</w>, <w lemma="strongs:G2074">and Hezron</w> <w 
> lemma="strongs:G1080">the father</w> <w lemma="strongs:G689">of <note 
> type="explanation" osisID="Matt.1.3.note.1" n="1"></note>Ram</w>.
> 
> Patrick Durusau wrote:
> 
>> Guys,
>>
>> Getting closer all the time!
>>
>> Note that I have added an enumerated type on <seg> of otPassage. That 
>> allows Troy to avoid default rendering of quotes but also allows me to 
>> avoid trying to add another content model when I am already tired.
>>
>> Should Troy's analysis of usage prove accurate, which it very well 
>> may, we may need to revisit this issue for this type of passage and 
>> others. For my part, if "the very stones would cry out," the Rolling 
>> Stones that is, we may need to revisit this issue. ;-)
>>
>> I think this is about as close as I can get today. Please run your 
>> various texts against it and let me know the results.
>>
>> Really do appreciate all the hard work!
>>
>> Hope everyone is having a great day!
>>
>> Patrick
>>
>>
>> ------------------------------------------------------------------------
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <xs:schema 
>> targetNamespace="http://www.bibletechnologies.net/2003/OSIS/namespace" 
>> xmlns="http://www.bibletechnologies.net/2003/OSIS/namespace" 
>> xmlns:xs="http://www.w3.org/2001/XMLSchema" 
>> elementFormDefault="qualified" attributeFormDefault="unqualified" 
>> xml:lang="en">
>>
>>     <xs:import namespace="http://www.w3.org/XML/1998/namespace" 
>> schemaLocation="http://www.w3.org/2001/xml.xsd"/>
>>
>>     <xs:annotation>
>>
>>         <xs:documentation>
>>
>>             <p>Welcome to the OSIS 2.0 schema for encoding biblical 
>> literature! This schema is designed as the common set of elements 
>> necessary to encode bibles and related literature in XML. It provides 
>> all the functions needed by most users and modules with enhanced 
>> abilities are being developed to work with this schema. The user will 
>> be able to learn a core set of elements, the ones in this schema, and 
>> then leverage that knowledge by adding the appropriate elements from 
>> the additional modules if necessary. This is a revision of the OSIS 
>> 1.5 schema. There have been a number of changes and modifications to 
>> make the schema more flexible.</p>
>>
>>             <p>Among the major changes are:</p>
>>
>>             <p> 1) The basic hierarchy of an OSIS encoded document is 
>> that of &lt;div&gt;/&lt;p&gt;. Recognizing that many users would 
>> prefer the semantics of &lt;div&gt; type=book, &lt;chapter&gt;, 
>> &lt;verse&gt;, elements for those divisions have been included. It is 
>> always possible to derive the div/chapter/verse division from the 
>> div/p hierarchy but the converse is not true. Therefore, the div/p 
>> hierarchy has priority and all other elements break if they must cross 
>> the boundaries of those elements. To make the breaking of those 
>> elements easier, the revised OSIS schema allows &lt;abbr&gt;, 
>> &lt;chapter&gt;, &lt;closer&gt;, &lt;div&gt;, &lt;foreign&gt;, 
>> &lt;l&gt;, &lt;lg&gt;, &lt;q&gt;, &lt;salute&gt;, &lt;seg&gt;, 
>> &lt;signed&gt;, &lt;speech&gt;, &lt;verse&gt;, to be encoded as empty 
>> elements, bearing an sID on the starting empty element and eID of the 
>> same value on the ending empty element. The sID and eID, allows 
>> identification of whether the empty element is a beginning or ending
> 
> milestone, which may be important for processing for display or in XML 
> fragment situations. In some cases, even though the schema technically 
> permits a &lt;chapter&gt; element as a child of &lt;verse&gt; for 
> example, it is constrained in prose to appear only as the empty element 
> milestone version of that element. This was required due to the modern 
> practice of ignoring the classic book/chapter/verse divisioning of the 
> text while retaining the older division for reference purposes.</p>
> 
>>
>>             <p> 2) Numerous &lt;div&gt; types have been added, such as 
>> afterword, front, map, etc. See the simpleType: osisDivs.</p>
>>
>>             <p> 3) Since this schema is intended for use with biblical 
>> texts, an attribute to allow elements to be marked as canonical has 
>> been added. By default, the canonical attribute has been set to true, 
>> for verses and false for notes and titles. Whether a portion of text 
>> is canonical or not, is inherited from its container element. Thus, 
>> all text found in a verse, is canonical, while all the text within a 
>> note (or its subelements) is not. The title and head elements may 
>> contain text that is canonical or may be material added by a 
>> translator.</p>
>>
>>             <p>The core elements that would be used for encoding a 
>> Bible or related text number 45 (excluding the header and large 
>> container elements such as osisText. This is less than HTML 3.2, which 
>> to date is one of the most widely used markup languages. It is 
>> suggested that beginning users start with one of the sample documents 
>> and suggested passages to begin using the core element set for basic 
>> markup. Once you have mastered the basic uses of the core set, you can 
>> move onto using some of the optional attributes and features of the 
>> core set.</p>
>>
>>             <p>The OSIS family of schemas is definitely a work in 
>> progress and is supported by both the American Bible Society and the 
>> Society of Biblical literature, with additional contributions from the 
>> United Bible Society and SIL, as well as tireless efforts of numerous 
>> volunteers. While freely available for all purposes, it is requested 
>> that use of the schemas be acknowledged as appropriate and that 
>> problems or suggestions for improvements be forwarded to the project.</p>
>>
>>             <p>The OSIS schemas were written by a small core of 
>> technical and content experts who volunteered large blocks of time for 
>> this project: Steve DeRose (sderose@acm.org), co-chair of the Bible 
>> Technologies Group (co-sponsored by the ABS and SBL), Kees De Blois, 
>> co-chair of the Bible Technologies Group (kdeblois@solcon.nl), Troy 
>> Griffitts (scribe@crosswire.org), Chris Little 
>> (chrislit@crosswire.org), Todd Tillinghast 
>> (todd@contentframeworks.com), Harry Plantinga (hplantin@calvin.edu), 
>> Eric Albright (eric-allison_albright@sil.org), Kirk Lowery 
>> (klowery@wts.edu), and Patrick Durusau 
>> (Patrick.Durusau@sbl-site.org).</p>
>>
>>             <p>Outside of the core technical team, special thanks go 
>> to Adina Hamik (ABS), Bob Hodgson (ABS), John Walter (ABS) and Mike 
>> Perez (eABS) for their organization of both domestic and international 
>> meetings of the OSIS project and their unflagging support for its 
>> efforts.</p>
>>
>>             <p>While the history of the OSIS project is ongoing, users 
>> should be aware of the pivotal role of Dennis Drescher 
>> (Dennis_Drescher@sil.org) in his organization of a breakfast meeting 
>> at XML 2000 on Bible encoding that lead to the formation of the Bible 
>> Technologies Group and hence the OSIS project.</p>
>>
>>             <p>The fundamental goal of the OSIS project is to provide 
>> a common format that supports multiple visions of and purposes for 
>> Bibles and related texts. By pooling the interests of the wide variety 
>> of communities interested in biblical texts, the OSIS project seeks to 
>> provide the basis for tools and texts that will benefit all of these 
>> diverse communities.</p>
>>
>>             <p>The lastest version of the OSIS schema and user 
>> documentation can always be found at: http://www.bibletechnologies.org 
>> and comments can be forewarded to the OSIS Technical Editors, Patrick 
>> Durusau, Patrick.Durusau@sbl-site.org or Steve DeRose, 
>> sderose@acm.org.</p>
>>
>>         </xs:documentation>
>>
>>     </xs:annotation>
>>
>>     <xs:element name="osis" type="osisCT"/>
>>
>>     <xs:complexType name="osisCT">
>>
>>         <xs:choice>
>>
>>             <xs:element name="osisCorpus" type="osisCorpusCT" 
>> minOccurs="0"/>
>>
>>             <xs:element name="osisText" type="osisTextCT" minOccurs="0"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="TEIform" fixed="TEI.2"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="osisCorpusCT">
>>
>>         <xs:sequence maxOccurs="unbounded">
>>
>>             <xs:element name="header" type="headerCT" minOccurs="0"/>
>>
>>             <xs:element name="titlePage" type="titlePageCT" 
>> minOccurs="0" maxOccurs="1"/>
>>
>>             <xs:element name="osisText" type="osisTextCT"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="TEIform" fixed="teiCorpus.2"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="osisTextCT">
>>
>>         <xs:sequence>
>>
>>             <xs:element name="header" type="headerCT"/>
>>
>>             <xs:element name="titlePage" type="titlePageCT" 
>> minOccurs="0" maxOccurs="1"/>
>>
>>             <xs:element name="div" type="divCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="annotateRef" type="annotateRefType" 
>> use="optional"/>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional" default="true"/>
>>
>>                 <xs:attribute name="ID" type="xs:ID" use="optional"/>
>>
>>         <xs:attribute name="osisID" type="osisIDType" use="optional"/>
>>
>>         <xs:attribute name="osisIDWork" type="osisWorkType" 
>> use="required"/>
>>
>>         <xs:attribute name="osisRefWork" type="osisWorkType" 
>> use="optional" default="Bible"/>
>>
>>         <xs:attribute name="type" type="attributeExtension" 
>> use="optional"/>
>>
>>         <xs:attribute name="subType" type="attributeExtension" 
>> use="optional"/>
>>
>>         <xs:attribute ref="xml:lang" use="required"/>
>>
>>         <xs:attribute ref="xml:space" default="default"/>
>>
>>         <xs:attribute name="TEIform" fixed="text"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="headerCT">
>>
>>         <xs:sequence>
>>
>>             <xs:element name="revisionDesc" type="revisionDescCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="work" type="workCT" maxOccurs="unbounded"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="TEIform" fixed="teiHeader"/>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional" default="false"/>
>>
>>     </xs:complexType>
>>
>>     <!-- elements for header, with exceptions of title and head which 
>> are found with regular OSIS elements -->
>>
>>     <xs:complexType name="actorCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="who" type="xs:string" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="actor"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="castGroupCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="head" type="headCT"/>
>>
>>             <xs:element name="castItem" type="castItemCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="castGroup"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="castItemCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="actor" type="actorCT"/>
>>
>>             <xs:element name="role" type="roleCT"/>
>>
>>             <xs:element name="roleDesc" type="roleDescCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="castItem"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="castListCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="castGroup" type="castGroupCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="castList"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="contributorCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="file-as" type="xs:string" 
>> use="optional"/>
>>
>>                 <xs:attribute name="role" type="roleType" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>   
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="coverageCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="creatorCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attribute name="role" type="roleType" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="descriptionCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="formatCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="identifierCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithoutType"/>
>>
>>                 <xs:attribute name="type" type="osisGenType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="languageCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attribute name="use" type="languageUsage"/>
>>                 <xs:attributeGroup ref="globalWithoutType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="publisherCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="refSystemCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="relationCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="revisionDescCT">
>>
>>         <xs:sequence>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="p" type="pCT" maxOccurs="unbounded"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="revisionDesc"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="rightsCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="roleCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="role"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="roleDescCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="roleDesc"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="subjectCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="type" type="osisGenType" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithoutType"/>   
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="sourceCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                     <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="scopeCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="osisRefType">
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="teiHeaderCT" mixed="true">
>>
>>         <xs:sequence>
>>
>>             <xs:any processContents="skip" maxOccurs="unbounded"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="TEIform" fixed="teiHeader"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="typeCT">
>>
>>         <xs:simpleContent>
>>
>>             <xs:extension base="xs:string">
>>
>>                     <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="type" type="typeType" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithoutType"/>
>>
>>             </xs:extension>
>>
>>         </xs:simpleContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="workCT">
>>
>>         <xs:sequence>
>>
>>             <xs:element name="title" type="titleCT" minOccurs="0"/>
>>
>>             <xs:element name="contributor" type="contributorCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="creator" type="creatorCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="subject" type="subjectCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="date" type="dateCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="description" type="descriptionCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="publisher" type="publisherCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="type" type="typeCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="format" type="formatCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="identifier" type="identifierCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="source" type="sourceCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="language" type="languageCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="relation" type="relationCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="coverage" type="coverageCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="rights" type="rightsCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="scope" type="scopeCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:element name="castList" type="castListCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>             <xs:element name="teiHeader" type="teiHeaderCT" 
>> minOccurs="0"/>
>>
>>             <xs:element name="refSystem" type="refSystemCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="osisWork" type="osisWorkType" 
>> use="required"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>     </xs:complexType>
>>
>>     <!-- end of header elements -->
>>
>>     <!-- beginning of elements that occur within <div>, the main OSIS 
>> container element under <osisText> -->
>>
>>     <xs:complexType name="aCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="href" type="xs:string" use="required"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="abbrCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="expansion" type="xs:string" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="abbr"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="captionCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="TEIform" fixed="figDesc"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="catchWordCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="inscription" type="inscriptionCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="list" type="listCT"/>
>>
>>             <xs:element name="mentioned" type="mentionedCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="speaker" type="speakerCT"/>
>>
>>             <xs:element name="title" type="titleCT"/>
>>
>>             <xs:element name="transChange" type="transChangeCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="osisRef" type="osisRefType" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="cellCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="figure" type="figureCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="inscription" type="inscriptionCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="lg" type="lgCT"/>
>>
>>             <xs:element name="list" type="listCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="p" type="pCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="salute" type="saluteCT"/>
>>
>>             <xs:element name="seq" type="segCT"/>
>>
>>             <xs:element name="signed" type="signedCT"/>
>>
>>             <xs:element name="speaker" type="speakerCT"/>
>>
>>             <xs:element name="speech" type="speechCT"/>
>>
>>             <xs:element name="table" type="tableCT"/>
>>
>>             <xs:element name="title" type="titleCT"/>
>>
>>             <xs:element name="transChange" type="transChangeCT"/>
>>
>>             <xs:element name="verse" type="verseCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="role" type="tableRole" use="optional" 
>> default="data"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="cell"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="chapterCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="div" type="divCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="figure" type="figureCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="inscription" type="inscriptionCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="lg" type="lgCT"/>
>>
>>                     <xs:element name="list" type="listCT"/>
>>
>>                     <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="p" type="pCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="salute" type="saluteCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="signed" type="signedCT"/>
>>
>>                     <xs:element name="speaker" type="speakerCT"/>
>>
>>                     <xs:element name="speech" type="speechCT"/>
>>
>>                     <xs:element name="table" type="tableCT"/>
>>
>>                     <xs:element name="title" type="titleCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="verse" type="verseCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="chapterTitle" type="xs:string" 
>> use="optional"/>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="osisRef" type="osisRefType" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="div"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="closerCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="lg" type="lgCT"/>
>>
>>                     <xs:element name="list" type="listCT"/>
>>
>>                     <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="p" type="pCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="signed" type="signedCT"/>
>>
>>                     <xs:element name="speaker" type="speakerCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="verse" type="verseCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="closer"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="dateCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="event" type="eventType" use="optional"/>
>>
>>         <xs:attribute name="type" type="calendar" use="optional" 
>> default="ISO"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="date"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="divCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>             <xs:sequence>
>>
>>                 <xs:element name="titlePage" type="titlePageCT" 
>> minOccurs="0" maxOccurs="1"/>
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="chapter" type="chapterCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="div" type="divCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="figure" type="figureCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="inscription" type="inscriptionCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="lg" type="lgCT"/>
>>
>>                     <xs:element name="list" type="listCT"/>
>>
>>                     <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="p" type="pCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="salute" type="saluteCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="signed" type="signedCT"/>
>>
>>                     <xs:element name="speaker" type="speakerCT"/>
>>
>>                     <xs:element name="speech" type="speechCT"/>
>>
>>                     <xs:element name="table" type="tableCT"/>
>>
>>                     <xs:element name="title" type="titleCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="verse" type="verseCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 </xs:sequence>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> default="false" use="optional"/>
>>
>>                 <xs:attribute name="osisRef" type="osisRefType" 
>> use="optional"/>
>>
>>                 <xs:attribute name="scope" type="osisRefType" 
>> use="optional"/>
>>
>>                 <xs:attribute name="type" type="divType" use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithoutType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="div"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="divineNameCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="figureCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="caption" type="captionCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="alt" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="osisRef" type="osisRefType" use="optional"/>
>>
>>         <xs:attribute name="src" type="xs:string"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="figure"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="foreignCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="title" type="titleCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="foreign"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="headCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="head" type="headCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="head"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="hiCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="type" type="hiType" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="hi"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="indexCT">
>>
>>     <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="index" type="xs:string" use="required"/>
>>
>>         <xs:attribute name="level1" type="xs:string" use="required"/>
>>
>>         <xs:attribute name="level2" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="level3" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="level4" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="see" type="xs:string" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="index"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="inscriptionCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="speaker" type="speakerCT"/>
>>
>>             <xs:element name="speech" type="speechCT"/>
>>
>>             <xs:element name="title" type="titleCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="itemCT" mixed="true">
>>
>>         <xs:sequence minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="label" type="labelCT" minOccurs="0"/>
>>
>>             <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                 <xs:element name="a" type="aCT"/>
>>
>>                 <xs:element name="abbr" type="abbrCT"/>
>>
>>                 <xs:element name="date" type="dateCT"/>
>>
>>                 <xs:element name="divineName" type="divineNameCT"/>
>>
>>                 <xs:element name="foreign" type="foreignCT"/>
>>
>>                 <xs:element name="hi" type="hiCT"/>
>>
>>                 <xs:element name="index" type="indexCT"/>
>>
>>                 <xs:element name="lg" type="lgCT"/>
>>
>>                 <xs:element name="list" type="listCT"/>
>>
>>                 <xs:element name="lb" type="lbCT"/>
>>
>>                 <xs:element name="milestone" type="milestoneCT"/>
>>
>>                 <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>                 <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                 <xs:element name="name" type="nameCT"/>
>>
>>                 <xs:element name="note" type="noteCT"/>
>>
>>                 <xs:element name="p" type="pCT"/>
>>
>>                 <xs:element name="q" type="qCT"/>
>>
>>                 <xs:element name="reference" type="referenceCT"/>
>>
>>                 <xs:element name="seg" type="segCT"/>
>>
>>                 <xs:element name="title" type="titleCT"/>
>>
>>                 <xs:element name="transChange" type="transChangeCT"/>
>>
>>                 <xs:element name="verse" type="verseCT"/>
>>
>>                 <xs:element name="w" type="wCT"/>
>>
>>             </xs:choice>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="role" type="xs:string" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="item"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="labelCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="transChange" type="transChangeCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="role" type="xs:string" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="label"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="lCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="chapter" type="chapterCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="speaker" type="speakerCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="verse" type="verseCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="level" type="xs:positiveInteger" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="l"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="lbCT">
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="milestone"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="lgCT" mixed="false">
>>
>>         <xs:complexContent>
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="chapter" type="chapterCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="l" type="lCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="lg" type="lgCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="verse" type="verseCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="lg"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="listCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="chapter" type="chapterCT"/>
>>
>>             <xs:element name="head" type="headCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="item" type="itemCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="list" type="listCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="verse" type="verseCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="list"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="mentionedCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="transChange" type="transChangeCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="mentioned"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="milestoneCT">
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="type" type="milestonePt"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="milestone"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="milestoneEndCT">
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="type" type="milestoneSe"/>
>>
>>         <xs:attribute name="start" type="xs:string" use="required"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="milestone"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="milestoneStartCT">
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="end" type="xs:string" use="required"/>
>>
>>         <xs:attribute name="type" type="milestoneSe"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="milestone"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="nameCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="regular" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="type" type="nameType" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="name"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="noteCT" mixed="true">
>>
>>         <xs:sequence>
>>
>>             <xs:element name="note" type="noteCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>             <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                 <xs:element name="a" type="aCT"/>
>>
>>                 <xs:element name="abbr" type="abbrCT"/>
>>
>>                 <xs:element name="catchWord" type="catchWordCT"/>
>>
>>                 <xs:element name="date" type="dateCT"/>
>>
>>                 <xs:element name="divineName" type="divineNameCT"/>
>>
>>                 <xs:element name="figure" type="figureCT"/>
>>
>>                 <xs:element name="foreign" type="foreignCT"/>
>>
>>                 <xs:element name="hi" type="hiCT"/>
>>
>>                 <xs:element name="index" type="indexCT"/>
>>
>>                 <xs:element name="inscription" type="inscriptionCT"/>
>>
>>                 <xs:element name="lb" type="lbCT"/>
>>
>>                 <xs:element name="lg" type="lgCT"/>
>>
>>                 <xs:element name="list" type="listCT"/>
>>
>>                 <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                 <xs:element name="milestone" type="milestoneCT"/>
>>
>>                 <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>                 <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                 <xs:element name="name" type="nameCT"/>
>>
>>                 <xs:element name="p" type="pCT"/>
>>
>>                 <xs:element name="q" type="qCT"/>
>>
>>                 <xs:element name="rdg" type="rdgCT"/>
>>
>>                 <xs:element name="reference" type="referenceCT"/>
>>
>>                 <xs:element name="seg" type="segCT"/>
>>
>>                 <xs:element name="table" type="tableCT"/>
>>
>>                 <xs:element name="title" type="titleCT"/>
>>
>>                 <xs:element name="verse" type="verseCT"/>
>>
>>                 <xs:element name="w" type="wCT"/>
>>
>>             </xs:choice>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional" default="false"/>
>>
>>         <xs:attribute name="osisRef" type="osisRefType" use="optional"/>
>>
>>         <xs:attribute name="type" type="noteType" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="note"/>
>>
>>     </xs:complexType>
>>
>>
>>     <xs:complexType name="pCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="catchWord" type="catchWordCT"/>
>>
>>             <xs:element name="chapter" type="chapterCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="figure" type="figureCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="inscription" type="inscriptionCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="lg" type="lgCT"/>
>>
>>             <xs:element name="list" type="listCT"/>
>>
>>             <xs:element name="mentioned" type="mentionedCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="rdg" type="rdgCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="salute" type="saluteCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="signed" type="signedCT"/>
>>
>>             <xs:element name="speaker" type="speakerCT"/>
>>
>>             <xs:element name="speech" type="speechCT"/>
>>
>>             <xs:element name="table" type="tableCT"/>
>>
>>             <xs:element name="title" type="titleCT"/>
>>
>>             <xs:element name="transChange" type="transChangeCT"/>
>>
>>             <xs:element name="verse" type="verseCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="p"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="qCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="inscription" type="inscriptionCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="lg" type="lgCT"/>
>>
>>                     <xs:element name="list" type="listCT"/>
>>
>>                     <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="p" type="pCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="salute" type="saluteCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="signed" type="signedCT"/>
>>
>>                     <xs:element name="speaker" type="speakerCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="verse" type="verseCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="level" type="xs:string" 
>> use="optional"/>
>>
>>                 <xs:attribute name="osisRef" type="osisRefType" 
>> use="optional"/>
>>
>>                 <xs:attribute name="type" type="quoteType" 
>> use="optional"/>
>>
>>                 <xs:attribute name="who" type="xs:string" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithoutType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="q"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="rdgCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="lg" type="lgCT"/>
>>
>>             <xs:element name="list" type="listCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="p" type="pCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="transChange" type="transChangeCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="rdg"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="referenceCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="title" type="titleCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional" default="false"/>
>>
>>         <xs:attribute name="osisRef" type="osisRefType" use="optional"/>
>>
>>         <xs:attribute name="type" type="referenceType" use="optional" />
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="rowCT">
>>
>>         <xs:sequence>
>>
>>             <xs:element name="cell" type="cellCT" maxOccurs="unbounded"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="role" type="tableRole" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="row"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="saluteCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="lg" type="lgCT"/>
>>
>>                     <xs:element name="list" type="listCT"/>
>>
>>                     <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="p" type="pCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="speaker" type="speakerCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="verse" type="verseCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="salute"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="segCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attribute name="type" type="segType" use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithoutType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="seg"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="signedCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="signed"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="speakerCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="who" type="xs:string" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="sp"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="speechCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:sequence>
>>
>>                     <xs:element name="speech" type="speechCT" 
>> minOccurs="0" maxOccurs="unbounded"/>
>>
>>                     <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                         <xs:element name="a" type="aCT"/>
>>
>>                         <xs:element name="abbr" type="abbrCT"/>
>>
>>                         <xs:element name="chapter" type="chapterCT"/>
>>
>>                         <xs:element name="date" type="dateCT"/>
>>
>>                         <xs:element name="divineName" 
>> type="divineNameCT"/>
>>
>>                         <xs:element name="foreign" type="foreignCT"/>
>>
>>                         <xs:element name="hi" type="hiCT"/>
>>
>>                         <xs:element name="index" type="indexCT"/>
>>
>>                         <xs:element name="inscription" 
>> type="inscriptionCT"/>
>>
>>                         <xs:element name="lb" type="lbCT"/>
>>
>>                         <xs:element name="lg" type="lgCT"/>
>>
>>                         <xs:element name="list" type="listCT"/>
>>
>>                         <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                         <xs:element name="milestone" type="milestoneCT"/>
>>
>>                         <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                         <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                         <xs:element name="name" type="nameCT"/>
>>
>>                         <xs:element name="note" type="noteCT"/>
>>
>>                         <xs:element name="p" type="pCT"/>
>>
>>                         <xs:element name="q" type="qCT"/>
>>
>>                         <xs:element name="reference" type="referenceCT"/>
>>
>>                         <xs:element name="salute" type="saluteCT"/>
>>
>>                         <xs:element name="seg" type="segCT"/>
>>
>>                         <xs:element name="signed" type="signedCT"/>
>>
>>                         <xs:element name="speaker" type="speakerCT"/>
>>
>>                         <xs:element name="table" type="tableCT"/>
>>
>>                         <xs:element name="title" type="titleCT"/>
>>
>>                         <xs:element name="transChange" 
>> type="transChangeCT"/>
>>
>>                         <xs:element name="verse" type="verseCT"/>
>>
>>                         <xs:element name="w" type="wCT"/>
>>
>>                     </xs:choice>
>>
>>                 </xs:sequence>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>                 <xs:attribute name="TEIform" fixed="speech"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="tableCT">
>>
>>         <xs:sequence>
>>
>>             <xs:element name="head" type="headCT" minOccurs="0"/>
>>
>>             <xs:element name="row" type="rowCT" minOccurs="0" 
>> maxOccurs="unbounded"/>
>>
>>         </xs:sequence>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="cols" type="xs:positiveInteger" 
>> use="optional"/>
>>
>>         <xs:attribute name="rows" type="xs:positiveInteger" 
>> use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="table"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="titleCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="figure" type="figureCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="inscription" type="inscriptionCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="lg" type="lgCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="q" type="qCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="title" type="titleCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional" default="false"/>
>>
>>         <xs:attribute name="short" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="type" type="osisTitleType" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>         <xs:attribute name="TEIform" fixed="title"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="titlePageCT">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                 <xs:element name="title" type="titleCT"/>
>>
>>             <xs:element name="contributor" type="contributorCT"/>
>>
>>             <xs:element name="creator" type="creatorCT"/>
>>
>>             <xs:element name="subject" type="subjectCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="description" type="descriptionCT"/>
>>
>>             <xs:element name="publisher" type="publisherCT"/>
>>
>>             <xs:element name="type" type="typeCT"/>
>>
>>             <xs:element name="format" type="formatCT"/>
>>
>>             <xs:element name="identifier" type="identifierCT"/>
>>
>>             <xs:element name="source" type="sourceCT"/>
>>
>>             <xs:element name="language" type="languageCT"/>
>>
>>             <xs:element name="relation" type="relationCT"/>
>>
>>             <xs:element name="coverage" type="coverageCT"/>
>>
>>             <xs:element name="p" type="pCT"/>
>>
>>             <xs:element name="figure" type="figureCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         </xs:complexType>
>>
>>     <xs:complexType name="transChangeCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="abbr" type="abbrCT"/>
>>
>>             <xs:element name="date" type="dateCT"/>
>>
>>             <xs:element name="divineName" type="divineNameCT"/>
>>
>>             <xs:element name="foreign" type="foreignCT"/>
>>
>>             <xs:element name="hi" type="hiCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="lb" type="lbCT"/>
>>
>>             <xs:element name="milestone" type="milestoneCT"/>
>>
>>             <xs:element name="milestoneEnd" type="milestoneEndCT"/>
>>
>>             <xs:element name="milestoneStart" type="milestoneStartCT"/>
>>
>>             <xs:element name="name" type="nameCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="reference" type="referenceCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>             <xs:element name="w" type="wCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="type" type="changeType" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithoutType"/>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="verseCT" mixed="true">
>>
>>         <xs:complexContent mixed="true">
>>
>>             <xs:extension base="milestoneable">
>>
>>                 <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>                     <xs:element name="a" type="aCT"/>
>>
>>                     <xs:element name="abbr" type="abbrCT"/>
>>
>>                     <xs:element name="chapter" type="chapterCT"/>
>>
>>                     <xs:element name="date" type="dateCT"/>
>>
>>                     <xs:element name="divineName" type="divineNameCT"/>
>>
>>                     <xs:element name="foreign" type="foreignCT"/>
>>
>>                     <xs:element name="hi" type="hiCT"/>
>>
>>                     <xs:element name="index" type="indexCT"/>
>>
>>                     <xs:element name="inscription" type="inscriptionCT"/>
>>
>>                     <xs:element name="lb" type="lbCT"/>
>>
>>                     <xs:element name="list" type="listCT"/>
>>
>>                     <xs:element name="mentioned" type="mentionedCT"/>
>>
>>                     <xs:element name="milestone" type="milestoneCT"/>
>>
>>                     <xs:element name="milestoneEnd" 
>> type="milestoneEndCT"/>
>>
>>                     <xs:element name="milestoneStart" 
>> type="milestoneStartCT"/>
>>
>>                     <xs:element name="name" type="nameCT"/>
>>
>>                     <xs:element name="note" type="noteCT"/>
>>
>>                     <xs:element name="q" type="qCT"/>
>>
>>                     <xs:element name="reference" type="referenceCT"/>
>>
>>                     <xs:element name="seg" type="segCT"/>
>>
>>                     <xs:element name="speaker" type="speakerCT"/>
>>
>>                     <xs:element name="title" type="titleCT"/>
>>
>>                     <xs:element name="transChange" type="transChangeCT"/>
>>
>>                     <xs:element name="w" type="wCT"/>
>>
>>                 </xs:choice>
>>
>>                 <xs:attribute name="canonical" type="xs:boolean" 
>> use="optional" default="true"/>
>>
>>                 <xs:attributeGroup ref="globalWithType"/>
>>
>>             </xs:extension>
>>
>>         </xs:complexContent>
>>
>>     </xs:complexType>
>>
>>     <xs:complexType name="wCT" mixed="true">
>>
>>         <xs:choice minOccurs="0" maxOccurs="unbounded">
>>
>>             <xs:element name="a" type="aCT"/>
>>
>>             <xs:element name="index" type="indexCT"/>
>>
>>             <xs:element name="note" type="noteCT"/>
>>
>>             <xs:element name="seg" type="segCT"/>
>>
>>         </xs:choice>
>>
>>         <xs:attribute name="canonical" type="xs:boolean" use="optional"/>
>>
>>         <xs:attribute name="gloss" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="lemma" type="osisGenType" use="optional"/>
>>
>>         <xs:attribute name="morph" type="osisGenType" use="optional"/>
>>
>>         <xs:attribute name="POS" type="osisGenType" use="optional"/>
>>
>>         <xs:attribute name="src" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="xlit" type="xs:string" use="optional"/>
>>
>>         <xs:attributeGroup ref="globalWithType"/>
>>
>>         <xs:attribute name="TEIform" fixed="w"/>
>>
>>     </xs:complexType>
>>
>>     <!-- attributes -->
>>
>>     <xs:attributeGroup name="globalWithType">
>>
>>         <xs:attribute name="annotateRef" type="annotateRefType" 
>> use="optional"/>
>>
>>         <xs:attribute name="annotateWork" type="xs:string" 
>> use="optional"/>
>>
>>         <xs:attribute name="annotateType" type="annotationType" 
>> use="optional"/>
>>
>>         <xs:attribute name="ID" type="xs:ID" use="optional"/>
>>
>>         <xs:attribute name="osisID" type="osisIDType" use="optional"/>
>>
>>         <xs:attribute name="resp" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="type" type="attributeExtension" 
>> use="optional"/>
>>
>>         <xs:attribute name="subType" type="attributeExtension" 
>> use="optional"/>
>>
>>         <xs:attribute name="n" type="xs:string" use="optional"/>
>>
>>         <xs:attribute ref="xml:lang" use="optional"/>
>>
>>         <xs:attribute ref="xml:space" use="optional"/>
>>
>>         <xs:attribute name="script" type="osisScripts" use="optional"/>
>>
>>     </xs:attributeGroup>
>>
>>     <xs:attributeGroup name="globalWithoutType">
>>
>>         <xs:attribute name="annotateRef" type="annotateRefType" 
>> use="optional"/>
>>
>>         <xs:attribute name="annotateWork" type="xs:string" 
>> use="optional"/>
>>
>>         <xs:attribute name="annotateType" type="annotationType" 
>> use="optional"/>
>>
>>         <xs:attribute name="ID" type="xs:ID" use="optional"/>
>>
>>         <xs:attribute name="osisID" type="osisIDType" use="optional"/>
>>
>>         <xs:attribute name="resp" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="subType" type="attributeExtension" 
>> use="optional"/>
>>
>>         <xs:attribute name="n" type="xs:string" use="optional"/>
>>
>>         <xs:attribute ref="xml:lang" use="optional"/>
>>
>>         <xs:attribute ref="xml:space" use="optional"/>
>>
>>         <xs:attribute name="script" type="osisScripts" use="optional"/>
>>
>>     </xs:attributeGroup>
>>
>>     <!-- complex types -->
>>
>>     <xs:complexType name="milestoneable">
>>
>>         <xs:attribute name="sID" type="xs:string" use="optional"/>
>>
>>         <xs:attribute name="eID" type="xs:string" use="optional"/>
>>
>>     </xs:complexType>
>>
>>     <!-- OSIS regexes -->
>>
>> <xs:simpleType name="osisGenRegex">
>>
>>     <xs:restriction base="xs:string">
>>
>>         <xs:pattern 
>> value="((((\p{L}|\p{N}|_)+)(\.(\p{L}|\p{N}|_))*:)((((\p{L})|(\p{N}))+)(((\.(\p{L}|\p{N}|_)+)*))?))"/> 
>>
>>
>>     </xs:restriction>
>>
>>     </xs:simpleType>
>>
>> <xs:simpleType name="osisIDRegex">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:pattern 
>> value="(((\p{L}|\p{N}|_)+)((\.(\p{L}|\p{N}|_)+)*)?:)?((\p{L}|\p{N}|_)+)((\.(\p{L}|\p{N}|_)+)*)?(!((\p{L}|\p{N}|_)+)((\.(\p{L}|\p{N}|_)+)*)?)?"/> 
>>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>> <xs:simpleType name="osisRefRegex">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:pattern 
>> value="(((\p{L}|\p{N}|_)+)((\.(\p{L}|\p{N}|_)+)*)?:)?((\p{L}|\p{N}|_)+)(\.(\p{L}|\p{N}|_)*)*(!((\p{L}|\p{N}|_)+)((\.(\p{L}|\p{N}|_)+)*)?)?(@(cp\[(\p{Nd})*\]|s\[(\p{L}|\p{N})+\](\[(\p{N})+\])?))?(\-((((\p{L}|\p{N}|_)+)(\.(\p{L}|\p{N}|_)*)*)+)(!((\p{L}|\p{N}|_)+)((\.(\p{L}|\p{N}|_)+)*)?)?(@(cp\[(\p{Nd})*\]|s\[(\p{L}|\p{N})+\](\[(\p{N})+\])?))?)?"/> 
>>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>> <xs:simpleType name="osisScripts">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:pattern value="([A-Z][a-z]{3}|x-[A-Za-z0-9]+)"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>> <xs:simpleType name="osisWorkType">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:pattern 
>> value="((\p{L}|\p{N}|_)+)((\.(\p{L}|\p{N}|_)+)*)?"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <!-- simple types -->
>>
>>     <xs:simpleType name="annotateRefType">
>>
>>                <xs:list itemType="osisAnnotateRefType"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="annotationType">
>>
>>         <xs:union memberTypes="osisAnnotation attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <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="changeType">
>>
>>         <xs:union memberTypes="osisChanges attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="divType">
>>
>>         <xs:union memberTypes="osisDivs attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="eventType">
>>
>>         <xs:union memberTypes="osisEvents attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="hiType">
>>
>>          <xs:union memberTypes="osisHi attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="languageUsage">
>>
>>         <xs:union memberTypes="osisLanguageUsage attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="milestonePt">
>>
>>         <xs:union memberTypes="osisMilestonePt attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="milestoneSe">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="abbr"/>
>>
>>             <xs:enumeration value="chapter"/>
>>
>>             <xs:enumeration value="closer"/>
>>
>>             <xs:enumeration value="div"/>
>>
>>             <xs:enumeration value="foreign"/>
>>
>>             <xs:enumeration value="l"/>
>>
>>             <xs:enumeration value="lg"/>
>>
>>             <xs:enumeration value="q"/>
>>
>>             <xs:enumeration value="salute"/>
>>
>>             <xs:enumeration value="seg"/>
>>
>>             <xs:enumeration value="signed"/>
>>
>>             <xs:enumeration value="speech"/>
>>
>>             <xs:enumeration value="verse"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="nameType">
>>
>>         <xs:union memberTypes="osisNames attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="noteType">
>>
>>         <xs:union memberTypes="osisNotes attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="quoteType">
>>
>>         <xs:union memberTypes="osisQuotes attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="referenceType">
>>
>>         <xs:union memberTypes="osisReferences attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="segType">
>>
>>         <xs:union memberTypes="osisSegs attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="typeType">
>>
>>         <xs:union memberTypes="osisType attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisAnnotateRefType">
>>
>>                <xs:union memberTypes="osisRefRegex osisGenRegex"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisAnnotation">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="commentary"/>
>>
>>             <xs:enumeration value="exposition"/>
>>
>>             <xs:enumeration value="meditation"/>
>>
>>             <xs:enumeration value="outline"/>
>>
>>             <xs:enumeration value="rebuttal"/>
>>
>>             <xs:enumeration value="sermon"/>
>>
>>             <xs:enumeration value="studyGuide"/>
>>
>>             <xs:enumeration value="translation"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisChanges">
>>
>>         <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:enumeration value="tenseChange"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisDivs">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="acknowledgement"/>
>>
>>             <xs:enumeration value="afterword"/>
>>
>>             <xs:enumeration value="annotant"/>
>>
>>             <xs:enumeration value="appendix"/>
>>
>>             <xs:enumeration value="article"/>
>>
>>             <xs:enumeration value="back"/>
>>
>>             <xs:enumeration value="body"/>
>>
>>             <xs:enumeration value="book"/>
>>
>>             <xs:enumeration value="bookGroup"/>
>>
>>             <xs:enumeration value="chapter"/>
>>
>>             <xs:enumeration value="colophon"/>
>>
>>             <xs:enumeration value="commentary"/>
>>
>>             <xs:enumeration value="concordance"/>
>>
>>             <xs:enumeration value="coverPage"/>
>>
>>             <xs:enumeration value="dedication"/>
>>
>>             <xs:enumeration value="devotional"/>
>>
>>             <xs:enumeration value="entry"/>
>>
>>             <xs:enumeration value="front"/>
>>
>>             <xs:enumeration value="gazetteer"/>
>>
>>             <xs:enumeration value="glossary"/>
>>
>>             <xs:enumeration value="imprimatur"/>
>>
>>             <xs:enumeration value="index"/>
>>
>>             <xs:enumeration value="introduction"/>
>>
>>             <xs:enumeration value="majorSection"/>
>>
>>             <xs:enumeration value="map"/>
>>
>>             <xs:enumeration value="outline"/>
>>
>>             <xs:enumeration value="paragraph"/>
>>
>>             <xs:enumeration value="part"/>
>>
>>             <xs:enumeration value="preface"/>
>>
>>             <xs:enumeration value="section"/>
>>
>>             <xs:enumeration value="subSection"/>
>>
>>             <xs:enumeration value="summary"/>
>>
>>             <xs:enumeration value="titlePage"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisEvents">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="edition"/>
>>
>>             <xs:enumeration value="eversion"/>
>>
>>             <xs:enumeration value="imprint"/>
>>
>>             <xs:enumeration value="original"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisGenType">
>>
>>                <xs:list itemType="osisGenRegex"/>
>>
>>     </xs:simpleType>
>>
>>
>>
>>     <xs:simpleType name="osisHi">
>>
>>          <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="bold"/>
>>
>>             <xs:enumeration value="illuminated"/>
>>
>>             <xs:enumeration value="italic"/>
>>
>>             <xs:enumeration value="line-through"/>
>>
>>             <xs:enumeration value="normal"/>
>>
>>             <xs:enumeration value="small-caps"/>
>>
>>             <xs:enumeration value="underline"/>
>>
>>          </xs:restriction>
>>
>>     </xs:simpleType>
>>     <xs:simpleType name="osisIDType">
>>
>>                <xs:list itemType="osisIDRegex"/>
>>
>>     </xs:simpleType>
>>
>>     
>>
>>         <xs:simpleType name="osisLanguageUsage">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="base"/>
>>
>>             <xs:enumeration value="didactic"/>
>>
>>             <xs:enumeration value="interlinear"/>
>>
>>             <xs:enumeration value="original"/>
>>
>>             <xs:enumeration value="quotation"/>
>>
>>             <xs:enumeration value="source"/>
>>
>>             <xs:enumeration value="target"/>
>>
>>             <xs:enumeration value="translation"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisLemma">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="Strong"/>
>>
>>             <xs:enumeration value="GK"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisMilestonePt">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="column"/>
>>
>>             <xs:enumeration value="cQuote"/>
>>
>>             <xs:enumeration value="footer"/>
>>
>>             <xs:enumeration value="halfLine"/>
>>
>>             <xs:enumeration value="header"/>
>>
>>             <xs:enumeration value="line"/>
>>
>>             <xs:enumeration value="pb"/>
>>
>>             <xs:enumeration value="screen"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisNames">
>>
>>         <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="osisNotes">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="allusion"/>
>>
>>             <xs:enumeration value="alternative"/>
>>
>>             <xs:enumeration value="background"/>
>>
>>             <xs:enumeration value="citation"/>
>>
>>             <xs:enumeration value="crossReference"/>
>>
>>             <xs:enumeration value="devotional"/>
>>
>>             <xs:enumeration value="encoder"/>
>>
>>             <xs:enumeration value="exegesis"/>
>>
>>             <xs:enumeration value="explanation"/>
>>
>>             <xs:enumeration value="speaker"/>
>>
>>             <xs:enumeration value="study"/>
>>
>>             <xs:enumeration value="translation"/>
>>
>>             <xs:enumeration value="variant"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisQuotes">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="block"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisReferences">
>>
>>                <xs:restriction base="xs:string">
>>
>>                  <xs:enumeration value="annotateRef"/>
>>
>>                  <xs:enumeration value="parallel"/>
>>
>>             </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisRefType">
>>
>>                <xs:list itemType="osisRefRegex"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisRoles">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="adp"/>
>>
>>             <xs:enumeration value="ann"/>
>>
>>             <xs:enumeration value="art"/>
>>
>>             <xs:enumeration value="aut"/>
>>
>>             <xs:enumeration value="aqt"/>
>>
>>             <xs:enumeration value="aft"/>
>>
>>             <xs:enumeration value="aui"/>
>>
>>             <xs:enumeration value="bnd"/>
>>
>>             <xs:enumeration value="bdd"/>
>>
>>             <xs:enumeration value="bkd"/>
>>
>>             <xs:enumeration value="bkp"/>
>>
>>             <xs:enumeration value="bjd"/>
>>
>>             <xs:enumeration value="bpd"/>
>>
>>             <xs:enumeration value="ctg"/>
>>
>>             <xs:enumeration value="clb"/>
>>
>>             <xs:enumeration value="cmm"/>
>>
>>             <xs:enumeration value="cwt"/>
>>
>>             <xs:enumeration value="com"/>
>>
>>             <xs:enumeration value="ctb"/>
>>
>>             <xs:enumeration value="cre"/>
>>
>>             <xs:enumeration value="edt"/>
>>
>>             <xs:enumeration value="encoder"/>
>>
>>             <xs:enumeration value="ilu"/>
>>
>>             <xs:enumeration value="ill"/>
>>
>>             <xs:enumeration value="pbl"/>
>>
>>             <xs:enumeration value="trl"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisSegs">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="otPassage"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="roleType">
>>
>>         <xs:union memberTypes="osisRoles attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisTitles">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="acrostic"/>
>>
>>             <xs:enumeration value="continued"/>
>>
>>             <xs:enumeration value="main"/>
>>
>>             <xs:enumeration value="parallel"/>
>>
>>             <xs:enumeration value="psalm"/>
>>
>>             <xs:enumeration value="sub"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisTitleType">
>>
>>         <xs:union memberTypes="osisTitles attributeExtension"/>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="osisType">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="OSIS"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>>     <xs:simpleType name="tableRole">
>>
>>         <xs:restriction base="xs:string">
>>
>>             <xs:enumeration value="label"/>
>>
>>             <xs:enumeration value="data"/>
>>
>>         </xs:restriction>
>>
>>     </xs:simpleType>
>>
>> </xs:schema>
>>
> 
> _______________________________________________
> osis-core mailing list
> osis-core@bibletechnologieswg.org
> http://www.bibletechnologieswg.org/mailman/listinfo/osis-core
> 


-- 
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
Patrick.Durusau@sbl-site.org
Chair, V1 - Text Processing: Office and Publishing Systems Interface
Co-Editor, ISO 13250, Topic Maps -- Reference Model

Topic Maps: Human, not artificial, intelligence at work!