namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace rng = "http://relaxng.org/ns/structure/1.0"

# Schema generated 2008-11-01T14:14:38Z
# Edition: 1.2.0. Last updated on October 31st 2008.
# Copyright 2008 TEI Consortium.
# This is free software; you can redistribute it and/or
#	    modify it under the terms of the GNU General Public
#	    License as published by the Free Software Foundation;
#	    either version 2 of the License, or (at your option) any
#	    later version.
# This material is distributed in the hope that it will be
#	    useful, but without any warranty; without even the implied
#	    warranty of merchantability or 
#	    fitness for a particular
#	    purpose. See the GNU General Public License for more
#	    details.
# A copy of the GNU General Public
#	    License is stored on the TEI web site
#	    along with this file; you can also contact the Free
#	    Software Foundation, Inc., 59 Temple Place, Suite 330,
#	    Boston, MA 02111-1307, USA, for a copy.
# For information about the TEI, including contact
#		details, consult the TEI web
#	      site at http://www.tei-c.org/. 
#		Verse structures

# Definitions from module verse

# Set global predeclared macros

# Set predeclared macros

# 0. predeclared macros

# 1. classes
att.metrical.attributes =
  att.metrical.attribute.met,
  att.metrical.attribute.real,
  att.metrical.attribute.rhyme,
  empty
att.metrical.attribute.met =
  ## (metrical structure, conventional) contains a user-specified encoding for the conventional
  ## metrical structure of the element.
  attribute met { xsd:token }?
att.metrical.attribute.real =
  ## (metrical structure, realized) contains a user-specified encoding for the actual realization
  ## of the conventional metrical structure applicable to the element.
  attribute real { xsd:token }?
att.metrical.attribute.rhyme =
  ## (rhyme scheme) specifies the rhyme scheme applicable to a group of verse lines.
  attribute rhyme { xsd:token }?
att.enjamb.attributes = att.enjamb.attribute.enjamb, empty
att.enjamb.attribute.enjamb =
  ## (enjambement) indicates that the end of a verse line is marked by enjambement.
  ## Sample values include: 1] no; 2] yes; 3] weak; 4] strong
  attribute enjamb { data.enumerated }?
# 2. elements

caesura =
  ## marks the point at which a metrical line may be divided.
  element caesura { caesura.content, caesura.localattributes }
caesura.content = empty
caesura.localattributes = att.global.attributes, empty

metDecl =
  ## (metrical notation declaration) documents the notation employed to represent a metrical
  ##   pattern when this is specified as the value of a met,
  ##   real, or rhyme attribute on any structural
  ##   element of a metrical text (e.g. lg, l, or
  ##   seg).
  element metDecl { metDecl.content, metDecl.localattributes }
metDecl.content = (model.pLike | model.noteLike)+ | metSym+
metDecl.localattributes =
  att.global.attributes,
  att.declarable.attributes,
  ## indicates whether the notation conveys the abstract
  ##       metrical form, its actual prosodic realization, or the rhyme
  ##       scheme, or some combination thereof.
  [ a:defaultValue = "met real" ]
  attribute type {
    list {
      (
       ## (met attribute) declaration applies to the abstract metrical form
       ##	  recorded on the met attribute
       "met" | ## (real attribute) declaration applies to the actual realization of the
         ##	  conventional metrical structure recorded on the
         ##	  real attribute
         "real" | ## (rhyme attribute) declaration applies to the rhyme scheme
         ##	  recorded on the rhyme attribute
         "rhyme"),
      (
       ## (met attribute) declaration applies to the abstract metrical form
       ##	  recorded on the met attribute
       "met" | ## (real attribute) declaration applies to the actual realization of the
         ##	  conventional metrical structure recorded on the
         ##	  real attribute
         "real" | ## (rhyme attribute) declaration applies to the rhyme scheme
         ##	  recorded on the rhyme attribute
         "rhyme")?,
      (
       ## (met attribute) declaration applies to the abstract metrical form
       ##	  recorded on the met attribute
       "met" | ## (real attribute) declaration applies to the actual realization of the
         ##	  conventional metrical structure recorded on the
         ##	  real attribute
         "real" | ## (rhyme attribute) declaration applies to the rhyme scheme
         ##	  recorded on the rhyme attribute
         "rhyme")?
    }
  }?,
  ## (regular expression pattern) specifies a regular expression defining any value that
  ##	is legal for this notation.
  attribute pattern { data.pattern }?,
  empty

metSym =
  ## (metrical notation symbol) documents the intended significance of a particular character or
  ## character sequence within a metrical notation, either explicitly or in
  ## terms of other symbol elements in the same metDecl.
  element metSym { metSym.content, metSym.localattributes }
metSym.content = macro.phraseSeq.limited
metSym.localattributes =
  att.global.attributes,
  ## specifies the character or character sequence being documented.
  attribute value {
    list { data.word+ }
  },
  ## specifies whether the symbol is defined in terms of other
  ## symbols (terminal is set to false) or in prose
  ## (terminal is set to true).
  [ a:defaultValue = "true" ] attribute terminal { data.truthValue }?,
  empty

rhyme =
  ## marks the rhyming part of  a metrical line.
  element rhyme { rhyme.content, rhyme.localattributes }
rhyme.content = macro.paraContent
rhyme.localattributes =
  att.global.attributes,
  att.typed.attributes,
  ## provides a label to identify which part of a rhyme
  ##	scheme this rhyming string instantiates.
  attribute label { data.word }?,
  empty
# 3. macros
