<?xml version="1.0" encoding="UTF-8"?>
<!-- The Panacea TO definition based on the XML Corpus Encoding Standard 
	XCES Revision 0.4 Common definitons of model groups, attributes, attribute 
	groups, and types. -->
<xs:schema targetNamespace="http://www.xces.org/schema/2003"
	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xces="http://www.xces.org/schema/2003"
	elementFormDefault="qualified" attributeFormDefault="unqualified"
	version="1.0.4">
	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
		schemaLocation="http://www.w3.org/2009/01/xml.xsd" />
	<xs:include schemaLocation="xcesHeader.xsd" />

	<!-- FIXME Use Base Types -->


	<!-- BasicXces Types -->

	<xs:complexType name="panaceaBasicXcesDocType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">A single document,
				containing a cesHeader element, followed by a
				body element.
			</xs:documentation>
		</xs:annotation>

		<xs:sequence>
			<xs:group ref="xces:headerGroup" />
			<xs:element minOccurs="1" maxOccurs="1" name="text"
				type="xces:panaceaBasicXcesTextType" />
		</xs:sequence>
		<xs:attribute default="text" name="type" type="xs:string" />
		<xs:attribute name="version" type="xs:string" use="required" />
	</xs:complexType>

	<xs:complexType name="panaceaBasicXcesTextType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">An individual text.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="1" maxOccurs="1" name="body"
				type="xces:panaceaBasicXcesBodyType" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="panaceaBasicXcesBodyType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">The body of the text in a
				basic xces file.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="1" maxOccurs="unbounded" name="p"
				type="xces:panaceaBasicXcesParType" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="panaceaBasicXcesParType" mixed="false">
	  <xs:annotation>
	    <xs:documentation xml:lang="en">A paragraph containing only text.
	    </xs:documentation>
	  </xs:annotation>
	  <xs:simpleContent>
	    <xs:extension base="xs:string">
	      <xs:attribute name="id" type="xs:ID" use="required" />
	      <xs:attribute name="topic" type="xs:string" />
	      <xs:attribute name="type" >
		<xs:simpleType>
		  <xs:restriction base="xs:string">
		    <xs:enumeration value="listitem"/>
		    <xs:enumeration value="heading"/>
		    <xs:enumeration value="title"/>
		  </xs:restriction>
		</xs:simpleType>
	      </xs:attribute>
	      <xs:attribute name="crawlinfo" >
		<xs:simpleType>
		  <xs:restriction base="xs:string">
		    <xs:enumeration value="ooi-length"/>
		    <xs:enumeration value="ooi-lang"/>
		    <xs:enumeration value="boilerplate"/>
		  </xs:restriction>
		</xs:simpleType>
	      </xs:attribute>		
	    </xs:extension>
	  </xs:simpleContent>
	</xs:complexType>


	<!-- AnnotXces Types -->
	<xs:complexType name="panaceaAnnotXcesDocType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">A single document,
				containing a cesHeader element, followed by a
				body element.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:group ref="xces:headerGroup" />
			<xs:element minOccurs="1" maxOccurs="1" name="text"
				type="xces:panaceaAnnotXcesTextType" />
		</xs:sequence>
		<xs:attribute default="text" name="type" type="xs:string" />
		<xs:attribute name="version" type="xs:string" use="required" />
	</xs:complexType>

	<xs:complexType name="panaceaAnnotXcesTextType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">An individual text.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="1" maxOccurs="1" name="body"
				type="xces:panaceaAnnotXcesBodyType" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="panaceaAnnotXcesBodyType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">The body of the text in a
				basic xces file.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="1" maxOccurs="unbounded" name="p"
				type="xces:panaceaAnnotXcesParType" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="panaceaAnnotXcesParType" mixed="false">
	  <xs:annotation>
	    <xs:documentation xml:lang="en">A paragraph containing only text and sentence elements.
	    </xs:documentation>
	  </xs:annotation>
	  <xs:sequence>
	    <xs:element minOccurs="1" maxOccurs="unbounded" name="s"
			type="xces:panaceaAnnotXcesSentType" />
	  </xs:sequence>
	  <xs:attribute name="id" type="xs:ID" use="required" />
	  <xs:attribute name="topic" type="xs:string" />
	  <xs:attribute name="type" >
	    <xs:simpleType>
	      <xs:restriction base="xs:string">
		<xs:enumeration value="listitem"/>
		<xs:enumeration value="heading"/>
		<xs:enumeration value="title"/>
	      </xs:restriction>
	    </xs:simpleType>
	  </xs:attribute>
	  <xs:attribute name="crawlinfo" >
	    <xs:simpleType>
	      <xs:restriction base="xs:string">
		<xs:enumeration value="ooi-length"/>
		<xs:enumeration value="ooi-lang"/>
		<xs:enumeration value="boilerplate"/>
	      </xs:restriction>
	    </xs:simpleType>
	  </xs:attribute>
	</xs:complexType>


	<xs:complexType name="panaceaAnnotXcesSentType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">A sentence containing one
				or more tokens.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>

			<xs:element minOccurs="1" maxOccurs="unbounded" name="t"
				type="xces:panaceaAnnotXcesTokType" />
		</xs:sequence>
		<xs:attribute name="id" type="xs:ID" use="required" />
		<xs:attribute name="casing">
		  <xs:annotation>
		    <xs:documentation xml:lang="en">Provides details of the casing of the sentence.</xs:documentation>
		  </xs:annotation>
		  <xs:simpleType>
		    <xs:restriction base="xs:string">
		      <xs:enumeration value="sentence"/>
		      <xs:enumeration value="uppercase"/>
		      <xs:enumeration value="titlecase"/>
		      <xs:enumeration value="lowercase"/>
		    </xs:restriction>
		  </xs:simpleType>
		</xs:attribute>
	</xs:complexType>


	<xs:complexType name="panaceaAnnotXcesTokType" mixed="false">
		<xs:annotation>
			<xs:documentation xml:lang="en">A token containing
				an id,
				a word attribute and (optional) attributes tag and lemma
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="id" type="xs:ID" use="required" />
				<xs:attribute name="word" type="xs:string" use="required" />
				<xs:attribute name="type" type="xs:string" />
				<xs:attribute name="tag" type="xs:string" />
				<xs:attribute name="lemma" type="xs:string" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>


</xs:schema>
