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

# HEADER

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

# MODULE:    DITA Programming Domain Entities

# VERSION:   1.1

# DATE:      November 2005

#

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

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

# PUBLIC DOCUMENT TYPE DEFINITION

# TYPICAL INVOCATION

#

# Refer to this file by the following public identifier or an 
#       appropriate system identifier 
# PUBLIC "-//OASIS//ENTITIES DITA Programming Domain//EN"
#       Delivered as file "programmingDomain.ent"

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

# SYSTEM:     Darwin Information Typing Architecture (DITA)

#

# PURPOSE:    Declaring the substitution context and domain

# entity declarations for the programming 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

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

pr-d-ph = codeph.element | synph.element
pr-d-pre = codeblock.element
pr-d-keyword = option.element | parmname.element | apiname.element
pr-d-fig = syntaxdiagram.element
pr-d-dl = parml.element
# =============================================================

# DOMAIN ENTITY DECLARATION

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

# ================== End Programming Domain Entities ==========
