blob: 79228da6f43beeafd267e848eabd3316fb878a7c [file] [log] [blame]
# =============================================================
# HEADER
# =============================================================
# MODULE: DITA Map
# 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 Map//EN"
# Delivered as file "map.mod"
# =============================================================
# SYSTEM: Darwin Information Typing Architecture (DITA)
#
# PURPOSE: Declaring the elements and specialization
# attributes for the DITA Maps
#
# 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: Corrected public ID in the comment above
# 2005.11.15 RDA: Removed old declaration for topicreftypes
# entity
# 2006.06.06 RDA: Removed default locktitle="yes" from
# %topicref-atts-no-toc;
# Remove keyword declaration
# Add reference to commonElements
# Add title element to map
# Add data element to topicmeta
# Remove shortdesc declaration
# 2006.06.07 RDA: Make universal attributes universal
# (DITA 1.1 proposal #12)
# 2006.06.14 RDA: Add dir attribute to localization-atts
# 2006.06.14 RDA: Add outputclass attribute to most elemetns
# =============================================================
# =============================================================
# 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
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace ditaarch = "http://dita.oasis-open.org/architecture/2005/"
arch-atts =
[ a:defaultValue = "1.1" ]
attribute ditaarch:DITAArchVersion { string "1.1" }?
# =============================================================
# ELEMENT NAME ENTITIES
# =============================================================
anchor = anchor.element
linktext = linktext.element
navref = navref.element
relcell = relcell.element
relcolspec = relcolspec.element
relheader = relheader.element
relrow = relrow.element
reltable = reltable.element
searchtitle = searchtitle.element
shortdesc = shortdesc.element
topicmeta = topicmeta.element
# =============================================================
# ENTITY DECLARATIONS FOR ATTRIBUTE VALUES
# =============================================================
# DATE FORMAT
# Copied into metaDecl.mod
# <!ENTITY % date-format 'CDATA' >
# =============================================================
# COMMON ATTLIST SETS
# =============================================================
topicref-atts =
attribute collection-type {
"choice" | "unordered" | "sequence" | "family"
}?,
attribute type { text }?,
attribute scope { "local" | "peer" | "external" }?,
attribute locktitle { "yes" | "no" }?,
attribute format { text }?,
attribute linking {
"none" | "normal" | "sourceonly" | "targetonly"
}?,
attribute toc { "yes" | "no" }?,
attribute print { "yes" | "no" | "printonly" }?,
attribute search { "yes" | "no" }?,
attribute chunk { text }?
topicref-atts-no-toc =
attribute collection-type {
"choice" | "unordered" | "sequence" | "family"
}?,
attribute type { text }?,
attribute scope { "local" | "peer" | "external" }?,
attribute locktitle { "yes" | "no" }?,
attribute format { text }?,
attribute linking {
"targetonly" | "sourceonly" | "normal" | "none"
}?,
[ a:defaultValue = "no" ] attribute toc { "yes" | "no" }?,
attribute print { "yes" | "no" | "printonly" }?,
attribute search { "yes" | "no" }?,
attribute chunk { text }?
# =============================================================
# MODULES CALLS
# =============================================================
# Content elements common to map and topic
include "commonElements.mod.rnc"
# MetaData Elements
include "metaDecl.mod.rnc"
# =============================================================
# DOMAINS ATTRIBUTE OVERRIDE
# =============================================================
# =============================================================
# ELEMENT DECLARATIONS
# =============================================================
# LONG NAME: Map
map.element =
element map {
map.attlist,
title?,
topicmeta?,
(navref | anchor | topicref | reltable | data.elements.incl)*
}
map.attlist &=
attribute title { text }?,
attribute id { xsd:ID }?,
attribute conref { text }?,
attribute anchorref { text }?,
attribute outputclass { text }?,
localization-atts,
arch-atts,
[ a:defaultValue = "(map mapgroup-d) (topic indexing-d)" ]
attribute domains { text }?,
topicref-atts,
select-atts
# LONG NAME: Navigation Reference
navref.element = element navref { navref.attlist, empty }
navref.attlist &=
univ-atts,
attribute outputclass { text }?,
attribute mapref { text }?
# LONG NAME: Topic Reference
topicref.element =
element topicref {
topicref.attlist,
topicmeta?,
(topicref | navref | anchor | data.elements.incl)*
}
topicref.attlist &=
attribute navtitle { text }?,
attribute href { text }?,
attribute keyref { text }?,
attribute query { text }?,
attribute copy-to { text }?,
attribute outputclass { text }?,
topicref-atts,
univ-atts
# LONG NAME: Anchor
anchor.element = element anchor { anchor.attlist, empty }
anchor.attlist &=
attribute outputclass { text }?,
localization-atts,
attribute id { xsd:ID },
attribute conref { text }?,
select-atts
# LONG NAME: Relationship Table
reltable.element =
element reltable { reltable.attlist, topicmeta?, relheader?, relrow+ }
reltable.attlist &=
attribute title { text }?,
attribute outputclass { text }?,
topicref-atts-no-toc,
univ-atts
# LONG NAME: Relationship Header
relheader.element = element relheader { relheader.attlist, relcolspec+ }
relheader.attlist &= univ-atts
# LONG NAME: Relationship Column Specification
relcolspec.element =
element relcolspec { relcolspec.attlist, topicmeta? }
relcolspec.attlist &=
attribute outputclass { text }?,
topicref-atts,
univ-atts
# LONG NAME: Relationship Table Row
relrow.element = element relrow { relrow.attlist, relcell* }
relrow.attlist &=
attribute outputclass { text }?,
univ-atts
# LONG NAME: Relationship Table Cell
relcell.element =
element relcell { relcell.attlist, (topicref | data.elements.incl)* }
relcell.attlist &=
attribute outputclass { text }?,
topicref-atts,
univ-atts
# LONG NAME: Topic Metadata
topicmeta.element =
element topicmeta {
topicmeta.attlist,
linktext?,
searchtitle?,
shortdesc?,
author*,
source?,
publisher?,
copyright*,
critdates?,
permissions?,
audience*,
category*,
keywords*,
prodinfo*,
othermeta*,
resourceid*,
(data.elements.incl | foreign.unknown.incl)*
}
topicmeta.attlist &=
attribute lockmeta { "yes" | "no" }?,
univ-atts
# LONG NAME: Link Text
linktext.element = element linktext { linktext.attlist, words.cnt* }
linktext.attlist &=
attribute outputclass { text }?,
univ-atts
# LONG NAME: Search Title
searchtitle.element =
element searchtitle { searchtitle.attlist, words.cnt* }
searchtitle.attlist &=
attribute outputclass { text }?,
univ-atts
# LONG NAME: Short Description
# <!ELEMENT shortdesc (%words.cnt;)* >
# =============================================================
# SPECIALIZATION ATTRIBUTE DECLARATIONS
# =============================================================
map.attlist &=
global-atts,
[ a:defaultValue = "- map/map " ] attribute class { text }?
navref.attlist &=
global-atts,
[ a:defaultValue = "- map/navref " ] attribute class { text }?
topicref.attlist &=
global-atts,
[ a:defaultValue = "- map/topicref " ] attribute class { text }?
anchor.attlist &=
global-atts,
[ a:defaultValue = "- map/anchor " ] attribute class { text }?
reltable.attlist &=
global-atts,
[ a:defaultValue = "- map/reltable " ] attribute class { text }?
relheader.attlist &=
global-atts,
[ a:defaultValue = "- map/relheader " ] attribute class { text }?
relcolspec.attlist &=
global-atts,
[ a:defaultValue = "- map/relcolspec " ] attribute class { text }?
relrow.attlist &=
global-atts,
[ a:defaultValue = "- map/relrow " ] attribute class { text }?
relcell.attlist &=
global-atts,
[ a:defaultValue = "- map/relcell " ] attribute class { text }?
topicmeta.attlist &=
global-atts,
[ a:defaultValue = "- map/topicmeta " ] attribute class { text }?
linktext.attlist &=
global-atts,
[ a:defaultValue = "- map/linktext " ] attribute class { text }?
searchtitle.attlist &=
global-atts,
[ a:defaultValue = "- map/searchtitle " ] attribute class { text }?
# Shortdesc in topic uses topic/shortdesc so this one must be
# included, even though the element is common.
shortdesc.attlist &=
global-atts,
[ a:defaultValue = "- map/shortdesc " ] attribute class { text }?
# ================== End DITA Map =============================