[osis-core] key/keyref - Note

Patrick Durusau osis-core@bibletechnologieswg.org
Wed, 28 Aug 2002 13:55:16 -0400


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

Todd,

I just validated a file with the osisID that you propose with no fixes. 
Test files attached. See if it validates for you.

Note the XSD file has only the current version for osisID and not osisRef.

Patrick



Todd Tillinghast wrote:

>Patrick,
>
>osisIDType needs to be a list of the current osisIDType as shown below.
>
>The following is invalid with the current schema:
><p osisID="Matt.1.2 Matt.1.3 Matt.1.4 Matt.1.5 Matt.1.6">
>
><xs:simpleType name="osisIDType">
>	<xs:list itemType="osisIDPrimativeType"/>
></xs:simpleType>
><xs:simpleType name="osisIDPrimativeType">
>	<xs:restriction base="xs:string">
>		<xs:pattern value="long regex"/>
>	</xs:restriction>
></xs:simpleType>
>
>I have Ps.1, Ps.3, and Matt.1 encoded depending on the above fix.
>
>Todd
>

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



--------------010701000307080308080002
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_working\osisRegexTest.xsd">



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

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

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

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

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

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

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

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

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

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

</text>


--------------010701000307080308080002
Content-Type: text/plain;
 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="p"/>

		</xs:sequence>

	    </xs:complexType>

</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="osisWork" type="osisWorkType" 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}|_)+)*)?)*)?"/>

	 </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}|_)+)*)(@(cp:\[(\p{Nd})*\]|s:\[(\p{L}|\p{N}|\s)*\]))?(\-(((\p{L}|\p{N}|_)*)((\.(\p{L}|\p{N}|_)+)*))(@(cp:\[(\p{Nd})*\]|s:\[(\p{L}|\p{N}|\s)*\]))?)?"/>

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



</xs:schema>
--------------010701000307080308080002--