# =============================================================

# HEADER

# =============================================================

# MODULE:    DITA Task

# VERSION:   1.1

# DATE:      June 2006

#

# =============================================================

# =============================================================

# PUBLIC DOCUMENT TYPE DEFINITION

# TYPICAL INVOCATION

#

# Refer to this file by the following public identifier or an 
#       appropriate system identifier 
# PUBLIC "-//OASIS//ELEMENTS DITA Task//EN"
#       Delivered as file "task.mod"

# =============================================================

# SYSTEM:     Darwin Information Typing Architecture (DITA)

#

# PURPOSE:    Declaring the elements and specialization

# attributes for the DITA Tasks

#

# ORIGINAL CREATION DATE:

# March 2001

#

# (C) Copyright OASIS Open 2005, 2006.

# (C) Copyright IBM Corporation 2001, 2004.

# All Rights Reserved.

#

# UPDATES:

# 2005.11.15 RDA: Removed old declaration for

# taskClasses entity

# 2005.11.15 RDA: Corrected LONG NAME for chdeschd

# 2006.06.06 RDA: Changed model of choice to listitem.cnt

# for completeness

# 2006.06.07 RDA: Added <abstract> element

# 2006.06.07 RDA: Make universal attributes universal

# (DITA 1.1 proposal #12)

# =============================================================

# =============================================================

# ARCHITECTURE ENTITIES

# =============================================================

# default namespace prefix for DITAArchVersion attribute can be
# overridden through predefinition in the document type shell

# must be instanced on each topic type

# =============================================================

# SPECIALIZATION OF DECLARED ELEMENTS

# =============================================================

# =============================================================

# ELEMENT NAME ENTITIES

# =============================================================

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

taskbody = taskbody.element
steps = steps.element
steps-unordered = steps-unordered.element
step = step.element
cmd = cmd.element
substeps = substeps.element
substep = substep.element
tutorialinfo = tutorialinfo.element
info = info.element
stepxmp = stepxmp.element
stepresult = stepresult.element
choices = choices.element
choice = choice.element
result = result.element
prereq = prereq.element
postreq = postreq.element
context = context.element
choicetable = choicetable.element
chhead = chhead.element
chrow = chrow.element
choptionhd = choptionhd.element
chdeschd = chdeschd.element
choption = choption.element
chdesc = chdesc.element
# =============================================================

# SHARED ATTRIBUTE LISTS

# =============================================================

# Provide an alternative set of univ-atts 
# that allows importance to be redefined 
# locally
univ-atts-no-importance-task =
  id-atts,
  filter-atts,
  attribute rev { text }?,
  attribute status { "new" | "changed" | "deleted" | "unchanged" }?,
  localization-atts
task-info-types = info-types
# =============================================================

# DOMAINS ATTRIBUTE OVERRIDE

# =============================================================

# =============================================================

# ELEMENT DECLARATIONS

# =============================================================

# LONG NAME: Task
task.element =
  element task {
    task.attlist,
    title,
    titlealts?,
    (shortdesc | abstract)?,
    prolog?,
    taskbody?,
    related-links?,
    task-info-types*
  }
task.attlist &=
  attribute id { xsd:ID },
  attribute conref { text }?,
  select-atts,
  localization-atts,
  arch-atts,
  attribute outputclass { text }?,
  [
    a:defaultValue =
      "(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                          (topic ut-d) (topic indexing-d)"
  ]
  attribute domains { text }?
# LONG NAME: Task Body
taskbody.element =
  element taskbody {
    taskbody.attlist,
    prereq?,
    context?,
    (steps | steps-unordered)?,
    result?,
    example?,
    postreq?
  }
taskbody.attlist &=
  id-atts,
  localization-atts,
  attribute outputclass { text }?
# LONG NAME: Prerequisites
prereq.element = element prereq { prereq.attlist, section.notitle.cnt* }
prereq.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Context
context.element =
  element context { context.attlist, section.notitle.cnt* }
context.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Steps
steps.element = element steps { steps.attlist, step+ }
steps.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Steps: Unordered
steps-unordered.element =
  element steps-unordered { steps-unordered.attlist, step+ }
steps-unordered.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Step
step.element =
  element step {
    step.attlist,
    cmd,
    (info | substeps | tutorialinfo | stepxmp | choicetable | choices)*,
    stepresult?
  }
step.attlist &=
  attribute importance { "optional" | "required" }?,
  univ-atts-no-importance-task,
  attribute outputclass { text }?
# ATTLIST step          
# importance (optional | required)          #IMPLIED

# LONG NAME: Command
cmd.element = element cmd { cmd.attlist, ph.cnt* }
cmd.attlist &=
  attribute keyref { text }?,
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Information
info.element = element info { info.attlist, itemgroup.cnt* }
info.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Sub-steps
substeps.element = element substeps { substeps.attlist, substep+ }
substeps.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Sub-step
substep.element =
  element substep {
    substep.attlist, cmd, (info | tutorialinfo | stepxmp)*, stepresult?
  }
substep.attlist &=
  attribute importance { "optional" | "required" }?,
  univ-atts-no-importance-task,
  attribute outputclass { text }?
# ATTLIST substep       
# importance 
#          (optional | required)            #IMPLIED

# LONG NAME: Tutorial Information
tutorialinfo.element =
  element tutorialinfo { tutorialinfo.attlist, itemgroup.cnt* }
tutorialinfo.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Step Example
stepxmp.element = element stepxmp { stepxmp.attlist, itemgroup.cnt* }
stepxmp.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choices
choices.element = element choices { choices.attlist, choice+ }
choices.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice
choice.element = element choice { choice.attlist, listitem.cnt* }
choice.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice Table
choicetable.element =
  element choicetable { choicetable.attlist, chhead?, chrow+ }
choicetable.attlist &=
  attribute relcolwidth { text }?,
  [ a:defaultValue = "1" ] attribute keycol { xsd:NMTOKEN }?,
  attribute refcols { xsd:NMTOKENS }?,
  attribute spectitle { text }?,
  display-atts,
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice Head
chhead.element = element chhead { chhead.attlist, choptionhd, chdeschd }
chhead.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice Option Head
choptionhd.element =
  element choptionhd { choptionhd.attlist, tblcell.cnt* }
choptionhd.attlist &=
  attribute specentry { text }?,
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice Description Head
chdeschd.element = element chdeschd { chdeschd.attlist, tblcell.cnt* }
chdeschd.attlist &=
  attribute specentry { text }?,
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice Row
chrow.element = element chrow { chrow.attlist, choption, chdesc }
chrow.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice Option
choption.element = element choption { choption.attlist, tblcell.cnt* }
choption.attlist &=
  attribute specentry { text }?,
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Choice Description
chdesc.element = element chdesc { chdesc.attlist, tblcell.cnt* }
chdesc.attlist &=
  attribute specentry { text }?,
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Step Result
stepresult.element =
  element stepresult { stepresult.attlist, itemgroup.cnt* }
stepresult.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Result
result.element = element result { result.attlist, section.notitle.cnt* }
result.attlist &=
  univ-atts,
  attribute outputclass { text }?
# LONG NAME: Post Requirements
postreq.element =
  element postreq { postreq.attlist, section.notitle.cnt* }
postreq.attlist &=
  univ-atts,
  attribute outputclass { text }?
# =============================================================

# SPECIALIZATION ATTRIBUTE DECLARATIONS

# =============================================================
task.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/topic task/task " ]
  attribute class { text }?
taskbody.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/body task/taskbody " ]
  attribute class { text }?
steps.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/ol task/steps " ]
  attribute class { text }?
steps-unordered.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/ul task/steps-unordered " ]
  attribute class { text }?
step.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/li task/step " ] attribute class { text }?
cmd.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/ph task/cmd " ] attribute class { text }?
substeps.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/ol task/substeps " ]
  attribute class { text }?
substep.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/li task/substep " ]
  attribute class { text }?
tutorialinfo.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/itemgroup task/tutorialinfo " ]
  attribute class { text }?
info.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/itemgroup task/info " ]
  attribute class { text }?
stepxmp.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/itemgroup task/stepxmp " ]
  attribute class { text }?
stepresult.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/itemgroup task/stepresult " ]
  attribute class { text }?
choices.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/ul task/choices " ]
  attribute class { text }?
choice.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/li task/choice " ]
  attribute class { text }?
result.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/section task/result " ]
  attribute class { text }?
prereq.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/section task/prereq " ]
  attribute class { text }?
postreq.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/section task/postreq " ]
  attribute class { text }?
context.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/section task/context " ]
  attribute class { text }?
choicetable.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/simpletable task/choicetable " ]
  attribute class { text }?
chhead.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/sthead task/chhead " ]
  attribute class { text }?
chrow.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/strow task/chrow " ]
  attribute class { text }?
choptionhd.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/stentry task/choptionhd " ]
  attribute class { text }?
chdeschd.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/stentry task/chdeschd " ]
  attribute class { text }?
choption.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/stentry task/choption " ]
  attribute class { text }?
chdesc.attlist &=
  global-atts,
  [ a:defaultValue = "- topic/stentry task/chdesc " ]
  attribute class { text }?
# ================== End DITA Task  ===========================
