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

# HEADER

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

# MODULE:    DITA Software Domain Entities

# 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//ENTITIES DITA Software Domain//EN"
#       Delivered as file "softwareDomain.ent"

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

# SYSTEM:     Darwin Information Typing Architecture (DITA)

#

# PURPOSE:    Declaring the substitution context and domain

# entity declarations for the software domain

#

# 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: Updated these comments to match template

# 2005.11.15 RDA: Corrected the "Delivered as" system ID

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

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

# ELEMENT EXTENSION ENTITY DECLARATIONS

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

sw-d-pre = msgblock.element
sw-d-ph =
  filepath.element
  | msgph.element
  | userinput.element
  | systemoutput.element
sw-d-keyword = cmdname.element | msgnum.element | varname.element
# =============================================================

# DOMAIN ENTITY DECLARATION

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

# ================== End Software Domain Entities =============
