FW: [osis-core] New Regex for osisRef with test file

Patrick Durusau osis-core@bibletechnologieswg.org
Wed, 17 Sep 2003 15:54:16 -0400


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

Todd,

Probably did not attach, am cc:ing the list.

Hope you are having a great day!

Patrick

Todd Tillinghast wrote:
> I did not get any attachments.
> 
> Todd
> 
> -----Original Message-----
> From: osis-core-admin@bibletechnologieswg.org
> [mailto:osis-core-admin@bibletechnologieswg.org] On Behalf Of Patrick
> Durusau
> Sent: Wednesday, September 17, 2003 12:54 PM
> To: osis-core@bibletechnologieswg.org
> Subject: [osis-core] New Regex for osisRef with test file
> 
> Guys,
> 
> New osisRef with the new grain syntax attached with test file.
> 
> Validates in XMLSpy.
> 
> Working on the rest of the additions and modifications to the schema.
> 
> Let me know if there are any problems with it. Will put it in last.
> 
> Hope everyone is having a great day!
> 
> Patrick
> 


-- 
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!

--------------050207000103040602070001
Content-Type: text/xml;
 name="osisRegexTest.xml"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="osisRegexTest.xml"

<?xml version="1.0" encoding="UTF-8"?>

<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Patrick Durusau (Society of Biblical Literature) -->

<text xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Working\OSIS_Dallas\OSISCore\Regex_Test\osisRegexTest.xsd">

<div type="concordance">

<head>osisIDs</head>

<p osisID="Matt.1.1">Matt.1.1</p>

<p osisID="KJV.Bible:Matt.1.1">KJV.Bible:Matt.1.1</p>

<p osisID="Matt.1.2 Matt.1.3 Matt.1.4 Matt.1.5 Matt.1.6">Matt.1.2 Matt.1.3 Matt.1.4 Matt.1.5 Matt.1.6</p>

<p osisID="Matt.1.1!a">Matt.1.1!a</p>

 </div>

<div type="x-a.b">

<head>osisRefs</head>

<p osisRef="Bible">kjv:</p>

<p osisRef="Matt.1.1">Matt.1.1</p>

<p osisRef="KJV.Bible:Matt.1.1">KJV.Bible:Matt.1.1</p>

<p osisRef="Matt.1.1@cp[65]">Matt.1.1@cp[65]</p>

<p osisRef="Matt.1.1@s[Messiah]">Matt.1.1@s[Messiah]</p> 

<p osisRef="Matt.1.2-Matt.1.7">Matt.1.2-Matt.1.7</p>

<p osisRef="Matt.1.6@s[David][2]">Matt.1.6@s[David]</p>

<p osisRef="Matt.1.6@s[David]-Matt.1.11@s[Babylon][2]">Matt.1.6@s[David]-Matt.1.11@s[Babylon]</p>

<p osisRef="Matt.1.1!a">Matt.1.1!a</p>

 </div>

<div>

<head>date</head>

<p date="2003">2003</p>

<p date="-2003">-2003</p>

<p date="~2003">~2003</p>

<p date="~-2003">~-2003</p>

<p date="2003:06">2003:06</p>

<p date="-2003:06">-2003:06</p>

<p date="~2003:06">~2003:06</p>

<p date="2003:06:09">2003:06:09</p>

<p date="-2003:06:09">-2003:06:09</p>

<p date="T06:09">T06:09</p>

<p date="T06:09:10">T06:09:10</p>

<p date="T06">T06</p>

<p date="T~Martins">T~Martins</p>

 </div>

</text>


--------------050207000103040602070001
Content-Type: text/xml;
 name="osisRegexTest.xsd"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="osisRegexTest.xsd"

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

	elementFormDefault="unqualified">

<xs:annotation>

	<xs:documentation>

		<p>This is the OSIS schema for checking regex expressions. The base element is &lt;text&gt; which can be followed by an unlimited number of &lt;p&gt; elements which may have attributes of osisWork, osisID and osisRef, which are the three main regex expressions in the OSIS schema.</p>

	</xs:documentation>

</xs:annotation>



<xs:element name="text">

<xs:complexType>

		<xs:sequence maxOccurs="unbounded">

			<xs:element ref="div"/>

		</xs:sequence>

	    </xs:complexType>

</xs:element>



<xs:element name="div">

<xs:complexType>

	      <xs:sequence>

	         <xs:element ref="head" maxOccurs="1"/>

		 <xs:element ref="p" maxOccurs="unbounded"/>

              </xs:sequence>

	      <xs:attribute name="type" type="divType" use="optional"/>

</xs:complexType>

</xs:element>



<xs:element name="head">

<xs:complexType mixed="true"/>

</xs:element>



<xs:element name="p">

<xs:complexType mixed="true">

		<xs:attribute name="osisID" type="osisIDType" use="optional"/>

		<xs:attribute name="osisRef" type="osisRefType" use="optional"/>

		<xs:attribute name="date" type="osisDateType" use="optional"/>

	    </xs:complexType>

</xs:element>



<xs:simpleType name="osisIDType">

	 <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}|_)+)*)?)?((\s(((\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="osisRefType">

	 <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="osisDateType">

	 <xs:restriction base="xs:string">

<xs:pattern value="(~)?(-)?([0-9]{4})?(:([0-9]{2}))?(:([0-9]{2}))?(T((([0-9]{2})?(:[0-9]{2})?(:[0-9]{2})?)|~([\c]*)))?"/>

	 </xs:restriction>

</xs:simpleType>



<xs:simpleType name="attributeExtension">



	<xs:restriction base="xs:string">



		<xs:pattern value="x-([^\s])+"/>



	</xs:restriction>



</xs:simpleType>



<xs:simpleType name="divType">



	<xs:union memberTypes="osisDivs attributeExtension"/>



</xs:simpleType>



<xs:simpleType name="osisDivs">



	<xs:restriction base="xs:string">



		<xs:enumeration value="acknowledgement"/>



		<xs:enumeration value="afterword"/>



		<xs:enumeration value="appendix"/>



		<xs:enumeration value="back"/>



		<xs:enumeration value="body"/>



		<xs:enumeration value="book"/>



		<xs:enumeration value="bookGroup"/>



		<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="preface"/>



		<xs:enumeration value="section"/>



		<xs:enumeration value="subSection"/>



		<xs:enumeration value="titlePage"/>



	</xs:restriction>



</xs:simpleType>





</xs:schema>
--------------050207000103040602070001--