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/. 
#		Transcribed Speech

# Definitions from module spoken

# Set global predeclared macros

# Set predeclared macros

# 0. predeclared macros

# 1. classes
att.duration.attributes =
  att.duration.w3c.attributes, att.duration.iso.attributes, empty
model.global.spoken =
  pause | vocal | kinesic | incident | writing | shift
model.global.spoken_sequence =
  pause, vocal, kinesic, incident, writing, shift
model.global.spoken_sequenceOptional =
  pause?, vocal?, kinesic?, incident?, writing?, shift?
model.global.spoken_sequenceOptionalRepeatable =
  pause*, vocal*, kinesic*, incident*, writing*, shift*
model.global.spoken_sequenceRepeatable =
  pause+, vocal+, kinesic+, incident+, writing+, shift+
model.recordingPart = model.dateLike | respStmt | equipment | broadcast
model.recordingPart_sequence =
  model.dateLike, respStmt, equipment, broadcast
model.recordingPart_sequenceOptional =
  model.dateLike?, respStmt?, equipment?, broadcast?
model.recordingPart_sequenceOptionalRepeatable =
  model.dateLike*, respStmt*, equipment*, broadcast*
model.recordingPart_sequenceRepeatable =
  model.dateLike+, respStmt+, equipment+, broadcast+
model.divPart.spoken = u
model.divPart.spoken_sequence = u
model.divPart.spoken_sequenceOptional = u?
model.divPart.spoken_sequenceOptionalRepeatable = u*
model.divPart.spoken_sequenceRepeatable = u+
# 2. elements

broadcast =
  ## describes a broadcast used as the source of a spoken text.
  element broadcast { broadcast.content, broadcast.localattributes }
broadcast.content = model.pLike+ | model.biblLike | recording
broadcast.localattributes =
  att.global.attributes, att.declarable.attributes, empty

equipment =
  ## provides technical details of the equipment and media used for
  ## an audio or video recording used as the source for a spoken text.
  element equipment { equipment.content, equipment.localattributes }
equipment.content = model.pLike+
equipment.localattributes =
  att.global.attributes, att.declarable.attributes, empty

incident =
  ## any phenomenon or occurrence, not necessarily vocalized or
  ## communicative, for example incidental noises or other events affecting
  ## communication.
  element incident { incident.content, incident.localattributes }
incident.content = model.glossLike*
incident.localattributes =
  att.global.attributes,
  att.timed.attributes,
  att.typed.attributes,
  att.ascribed.attributes,
  empty

kinesic =
  ## any communicative phenomenon, not necessarily vocalized, for
  ##   example a gesture, frown, etc.
  element kinesic { kinesic.content, kinesic.localattributes }
kinesic.content = model.glossLike*
kinesic.localattributes =
  att.global.attributes,
  att.timed.attributes,
  att.typed.attributes,
  att.ascribed.attributes,
  ## indicates whether or not the phenomenon is
  ##       repeated.
  [ a:defaultValue = "false" ] attribute iterated { data.xTruthValue }?,
  empty

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

recording =
  ## (recording event) details of an audio or video recording event
  ## used as the source of a spoken text, either directly or from
  ## a public broadcast. 
  element recording { recording.content, recording.localattributes }
recording.content = model.pLike+ | model.recordingPart*
recording.localattributes =
  att.global.attributes,
  att.declarable.attributes,
  att.duration.attributes,
  ## the kind of recording.
  [ a:defaultValue = "audio" ]
  attribute type {
    ## audio recording
    "audio" | ## audio and video recording
      "video"
  }?,
  empty

recordingStmt =
  ## (recording statement) describes a set of recordings used as the basis for transcription of a
  ## spoken text.
  element recordingStmt {
    recordingStmt.content, recordingStmt.localattributes
  }
recordingStmt.content = model.pLike+ | recording+
recordingStmt.localattributes = att.global.attributes, empty

scriptStmt =
  ## (script statement) contains a citation giving details of the script used for
  ## a spoken text.
  element scriptStmt { scriptStmt.content, scriptStmt.localattributes }
scriptStmt.content = model.pLike+ | model.biblLike
scriptStmt.localattributes =
  att.global.attributes, att.declarable.attributes, empty

shift =
  ## marks the point at which some paralinguistic feature of a series of
  ## utterances by any one speaker changes.
  element shift { shift.content, shift.localattributes }
shift.content = empty
shift.localattributes =
  att.global.attributes,
  att.ascribed.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

u =
  ## (utterance) a stretch of speech usually preceded and followed by
  ## silence or by a change of speaker.
  element u { u.content, u.localattributes }
u.content = (text | model.gLike | model.phrase | model.global)*
u.localattributes =
  att.global.attributes,
  att.timed.attributes,
  att.declaring.attributes,
  att.ascribed.attributes,
  ## (transition) 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

vocal =
  ## any vocalized but not necessarily lexical phenomenon, for
  ##   example voiced pauses, non-lexical backchannels, etc.
  element vocal { vocal.content, vocal.localattributes }
vocal.content = model.glossLike*
vocal.localattributes =
  att.global.attributes,
  att.timed.attributes,
  att.ascribed.attributes,
  att.typed.attributes,
  ## indicates whether or not the phenomenon is repeated.
  [ a:defaultValue = "false" ] attribute iterated { data.xTruthValue }?,
  empty

writing =
  ## a passage of written text revealed to participants in the
  ##   course of a spoken text.
  element writing { writing.content, writing.localattributes }
writing.content = macro.paraContent
writing.localattributes =
  att.global.attributes,
  att.ascribed.attributes,
  att.typed.attributes,
  att.timed.attributes,
  ## points to a bibliographic citation in the header giving
  ##	a full description of the source or script of the
  ##	writing.
  attribute source { data.code }?,
  ## indicates whether the writing is revealed all at once or
  ##	gradually.
  attribute gradual { data.xTruthValue }?,
  empty
# 3. macros
