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

# Schema generated 2006-01-30T20:23:54Z
# Copyright 2005 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.
# You should have received a copy of the GNU General Public
#	    License along with this file; if not, write to the Free
#	    Software Foundation, Inc., 59 Temple Place, Suite 330,
#	    Boston, MA 02111-1307, USA.
# To contact the TEI Consortium use the following addresses.
#	    For general (non-technical) enquiries: 
#		  target="mailto:info@tei-c.org"/>info@tei-c.orgFor membership enquiries: membership@tei-c.orgFor technical enquiries, particularly about the
#		Guidelines, DTDs, schemas, or software available from
#		the TEI-C: editors@tei-c.orgFor up to date information, consult the TEI web site at http://www.tei-c.org/P5

# Definitions from module spoken

# Set predeclared macros
mix.spoken |= model.divPart.spoken
# 0. predeclared macros
mix.spoken |= model.divPart.spoken
# 1. classes
model.divPart.spoken = notAllowed
# 2. elements

event =
  ## (Event) any phenomenon or occurrence, not necessarily vocalized or
  ## communicative, for example incidental noises or other events affecting
  ## communication.
  element event { event.content, event.attributes }
event.content = macro.glossSeq
event.attributes =
  att.global.attributes,
  att.timed.attributes,
  att.ascribed.attributes,
  ## indicates whether or not the phenomenon is repeated.
  [ a:defaultValue = "false" ]
  attribute iterated {
    ## (the phenomenon is repeated. ) 
    "true" | ## (the phenomenon is atomic. ) 
      "false" | ## (unknown or unmarked.) 
      "unknown"
  }?,
  empty
model.divPart.spoken |= event

kinesic =
  ## (Non-vocalized quasi-lexical) any communicative phenomenon, not necessarily vocalized, for
  ## example a gesture, frown, etc.
  element kinesic { kinesic.content, kinesic.attributes }
kinesic.content = macro.glossSeq
kinesic.attributes =
  att.global.attributes,
  att.timed.attributes,
  att.ascribed.attributes,
  ## indicates
  ## whether or not the phenomenon is repeated.
  [ a:defaultValue = "false" ]
  attribute iterated {
    ## (the phenomenon is repeated.
    ##     ) 
    "true" | ## (the phenomenon is atomic.
      ##     ) 
      "false" | ## (unknown or unmarked.
      ##     ) 
      "unknown"
  }?,
  empty
model.divPart.spoken |= kinesic

pause =
  ## a pause either between or within utterances.
  element pause { pause.content, pause.attributes }
pause.content = empty
pause.attributes =
  att.global.attributes,
  att.timed.attributes,
  att.typed.attributes,
  att.ascribed.attributes,
  empty
model.divPart.spoken |= pause

shift =
  ## (Shift) marks the point at which some paralinguistic feature of a series of
  ## utterances by any one speaker changes.
  element shift { shift.content, shift.attributes }
shift.content = empty
shift.attributes =
  att.global.attributes,
  ## a
  ## paralinguistic feature.
  attribute feature {
    ## (speed of utterance.
    ##     ) 
    "tempo" | ## (loudness.
      ##     ) 
      "loud" | ## (pitch range.
      ##     ) 
      "pitch" | ## (tension or stress pattern.
      ##     ) 
      "tension" | ## (rhythmic qualities.
      ##     ) 
      "rhythm" | ## (voice quality.
      ##     ) 
      "voice"
  }?,
  ## specifies the new state of the paralinguistic feature specified.
  [ a:defaultValue = "normal" ] attribute new { data.enumerated }?,
  empty
model.divPart.spoken |= shift

u =
  ## (utterance) a stretch of speech usually preceded and followed by
  ## silence or by a change of speaker.
  element u { u.content, u.attributes }
u.content =
  (text
   | model.gLike
   | model.phrase
   | model.divPart.spoken
   | model.global)*
u.attributes =
  att.global.attributes,
  att.timed.attributes,
  att.declaring.attributes,
  att.ascribed.attributes,
  ## indicates the nature of the transition between this utterance
  ##           and the previous one.
  [ a:defaultValue = "smooth" ]
  attribute trans {
    ## (this  utterance begins without unusual pause or rapidity.) 
    "smooth" | ## (this utterance begins with a markedly shorter pause than normal.) 
      "latching" | ## (this utterance begins before the previous one has finished.) 
      "overlap" | ## (this utterance begins after a noticeable pause.) 
      "pause"
  }?,
  empty
model.divPart.spoken |= u

vocal =
  ## (Vocalized semi-lexical) any vocalized but not necessarily lexical phenomenon, for example
  ## voiced pauses, non-lexical backchannels, etc.
  element vocal { vocal.content, vocal.attributes }
vocal.content = macro.glossSeq
vocal.attributes =
  att.global.attributes,
  att.timed.attributes,
  att.ascribed.attributes,
  ## indicates whether or not the phenomenon is repeated.
  [ a:defaultValue = "false" ]
  attribute iterated {
    ## (the phenomenon is repeated.
    ##     ) 
    "true" | ## (the phenomenon is atomic.
      ##     ) 
      "false" | ## (unknown or unmarked.
      ##    ) 
      "unknown"
  }?,
  empty
model.divPart.spoken |= vocal

writing =
  ## (Writing) a passage of written text revealed to participants in the course
  ## of a spoken text.
  element writing { writing.content, writing.attributes }
writing.content = macro.paraContent
writing.attributes =
  att.global.attributes,
  att.ascribed.attributes,
  ## categorizes the kind of writing in some way, for example
  ##       as a subtitle, noticeboard etc.
  attribute type { data.enumerated }?,
  ## points to a bibliographic citation in the header giving
  ##       a full description of the source or script of the writing.
  attribute script { data.code }?,
  ## indicates whether the writing is revealed all at once or
  ##         gradually.
  attribute gradual {
    ## (the writing is revealed gradually.) 
    "true" | ## (the writing is revealed all at once.) 
      "false" | ## (unknown or unmarked.) 
      "unknown"
  }?,
  empty
model.divPart.spoken |= writing
# 3. macros
