<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="guttext">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="markupmeta"/>
        <xs:element ref="play"/>
        <xs:element ref="endgutmeta"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="markupmeta">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title"/>
        <xs:element ref="gutdate"/>
        <xs:element ref="textnum"/>
        <xs:element ref="para"/>
        <xs:element ref="gutfilename"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="gutdate" type="xs:string"/>
  <xs:element name="textnum" type="xs:integer"/>
  <xs:element name="para" type="xs:string"/>
  <xs:element name="gutfilename" type="xs:string"/>
  <xs:element name="play">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="frontmatter"/>
        <xs:element ref="playbody"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="frontmatter">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="titlepage"/>
        <xs:element ref="personae"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="titlepage">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="pubinfo"/>
        <xs:element ref="title"/>
        <xs:element ref="author"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="pubinfo" type="xs:integer"/>
  <xs:element name="author" type="xs:string"/>
  <xs:element name="personae">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title"/>
        <xs:element maxOccurs="unbounded" ref="pgroup"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="pgroup">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="title"/>
        <xs:element ref="persona"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <xs:element name="persona" type="xs:string"/>
  <xs:element name="playbody">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="scene"/>
        <xs:element maxOccurs="unbounded" ref="act"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="act">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="title"/>
        <xs:element maxOccurs="unbounded" ref="scene"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:integer"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="endgutmeta" type="xs:string"/>
  <xs:element name="title" type="xs:string"/>
  <xs:element name="scene">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="scndesc"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="stagedir"/>
          <xs:element ref="title"/>
          <xs:element ref="speech"/>
        </xs:choice>
        <xs:element minOccurs="0" ref="note"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:integer"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="scndesc" type="xs:string"/>
  <xs:element name="speech">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="stagedir"/>
        <xs:element ref="line"/>
        <xs:element ref="speaker"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <xs:element name="line">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="stagedir"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="speaker" type="xs:string"/>
  <xs:element name="note" type="xs:string"/>
  <xs:element name="stagedir" type="xs:string"/>
</xs:schema>
