code-srv-test/dita-ot-3.6/plugins/org.oasis-open.dita.techcomm.v2_0/rng/technicalContent/conceptMod.rng
2021-03-23 22:38:58 +00:00

224 lines
8.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="urn:oasis:names:tc:dita:rng:vocabularyModuleDesc.rng"
schematypens="http://relaxng.org/ns/structure/1.0"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:dita="http://dita.oasis-open.org/architecture/2005/"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<moduleDesc xmlns="http://dita.oasis-open.org/architecture/2005/">
<moduleTitle>DITA Concept</moduleTitle>
<headerComment xml:space="preserve"><![CDATA[
=============================================================
HEADER
=============================================================
MODULE: DITA Concept
VERSION: 2.0
DATE: [[[Release date]]]
PURPOSE: Define elements and specialization atttributes
for Concepts
=============================================================
=============================================================
PUBLIC DOCUMENT TYPE DEFINITION
TYPICAL INVOCATION
Refer to this file by the following public identifier or an
appropriate system identifier
PUBLIC "-//OASIS//ELEMENTS DITA 2.0 Concept//EN"
Delivered as file "concept.mod"
=============================================================
(C) Copyright OASIS Open 2005, 2009.
(C) Copyright IBM Corporation 2001, 2004.
All Rights Reserved.
UPDATES:
=============================================================
]]></headerComment>
<moduleMetadata>
<moduleType>topic</moduleType>
<moduleShortName>concept</moduleShortName>
<modulePublicIds>
<dtdMod>-//OASIS//ELEMENTS DITA<var presep=" " name="ditaver"/> Concept//EN</dtdMod>
<dtdEnt>-//OASIS//ENTITIES DITA<var presep=" " name="ditaver"/> Concept//EN</dtdEnt>
<rngMod>urn:oasis:names:tc:dita:rng:conceptMod.rng<var presep=":" name="ditaver"/></rngMod>
</modulePublicIds>
</moduleMetadata>
</moduleDesc>
<div>
<a:documentation>TOPIC NESTING OVERRIDES</a:documentation>
<define name="concept-info-types">
<ref name="info-types"/>
</define>
</div>
<div>
<a:documentation>ELEMENT TYPE NAME PATTERNS</a:documentation>
<define name="concept">
<ref name="concept.element"/>
</define>
<define name="conbody">
<ref name="conbody.element"/>
</define>
<define name="conbodydiv">
<ref name="conbodydiv.element"/>
</define>
</div>
<div>
<a:documentation>COMMON CONTENT MODEL PATTERNS</a:documentation>
<!-- Matching body.cnt but remove example -->
<define name="conbody.cnt">
<choice>
<ref name="basic.block.noexample"/>
<ref name="data.elements.incl"/>
<ref name="draft-comment"/>
<ref name="foreign.unknown.incl"/>
<ref name="required-cleanup"/>
</choice>
</define>
</div>
<div>
<a:documentation>ELEMENT TYPE DECLARATIONS</a:documentation>
<div>
<a:documentation> LONG NAME: Concept </a:documentation>
<define name="concept.content">
<ref name="title"/>
<optional>
<ref name="titlealts"/>
</optional>
<optional>
<choice>
<ref name="abstract"/>
<ref name="shortdesc"/>
</choice>
</optional>
<optional>
<ref name="prolog"/>
</optional>
<optional>
<ref name="conbody"/>
</optional>
<optional>
<ref name="related-links"/>
</optional>
<zeroOrMore>
<ref name="concept-info-types"/>
</zeroOrMore>
</define>
<define name="concept.attributes">
<attribute name="id">
<data type="ID"/>
</attribute>
<ref name="conref-atts"/>
<ref name="select-atts"/>
<ref name="localization-atts"/>
<optional>
<attribute name="outputclass"/>
</optional>
</define>
<define name="concept.element">
<element name="concept" dita:longName="Concept">
<a:documentation>The &lt;concept> element is the top-level element for a topic that answers the question what is? Concepts provide background information that users must know before they can
successfully work with a product or interface. Often, a concept is an extended definition of a major abstraction such as a process or function. It might also have an example or a graphic,
but generally the structure of a concept is fairly simple. Category: Concept elements</a:documentation>
<ref name="concept.attlist"/>
<ref name="concept.content"/>
</element>
</define>
<define name="concept.attlist" combine="interleave">
<ref name="concept.attributes"/>
<ref name="arch-atts"/>
<ref name="specializations-att"/>
</define>
<define name="idElements" combine="choice">
<ref name="concept.element"/>
</define>
</div>
<div>
<a:documentation> LONG NAME: Concept Body </a:documentation>
<define name="conbody.content">
<zeroOrMore>
<ref name="conbody.cnt"/>
</zeroOrMore>
<zeroOrMore>
<choice>
<ref name="section"/>
<ref name="example"/>
<ref name="conbodydiv"/>
</choice>
</zeroOrMore>
</define>
<define name="conbody.attributes">
<ref name="id-atts"/>
<ref name="localization-atts"/>
<optional>
<attribute name="base"/>
</optional>
<ref name="base-attribute-extensions"/>
<optional>
<attribute name="outputclass"/>
</optional>
</define>
<define name="conbody.element">
<element name="conbody" dita:longName="Concept Body">
<a:documentation>The &lt;conbody> element is the main body-level element for a concept. Like the &lt;body> element of a general &lt;topic>, &lt;conbody> allows paragraphs, lists, and other
elements as well as sections and examples. But &lt;conbody> has a constraint that a section or an example can be followed only by other sections or examples. Category: Concept
elements</a:documentation>
<ref name="conbody.attlist"/>
<ref name="conbody.content"/>
</element>
</define>
<define name="conbody.attlist" combine="interleave">
<ref name="conbody.attributes"/>
</define>
</div>
<div>
<a:documentation> LONG NAME: Concept Body division </a:documentation>
<define name="conbodydiv.content">
<zeroOrMore>
<choice>
<ref name="example"/>
<ref name="section"/>
</choice>
</zeroOrMore>
</define>
<define name="conbodydiv.attributes">
<ref name="univ-atts"/>
</define>
<define name="conbodydiv.element">
<element name="conbodydiv" dita:longName="Concept Body division">
<a:documentation>The &lt;conbodydiv> element is similar to the &lt;bodydiv> element in that it provides an informal container for content that may be grouped within a concept. There are no
additional semantics attached to the conbodydiv element; it is purely a grouping element provided to help organize content.</a:documentation>
<ref name="conbodydiv.attlist"/>
<ref name="conbodydiv.content"/>
</element>
</define>
<define name="conbodydiv.attlist" combine="interleave">
<ref name="conbodydiv.attributes"/>
</define>
</div>
</div>
<div>
<a:documentation>SPECIALIZATION ATTRIBUTE DECLARATIONS</a:documentation>
<define name="concept.attlist" combine="interleave">
<optional>
<attribute name="class" a:defaultValue="- topic/topic concept/concept "/>
</optional>
</define>
<define name="conbody.attlist" combine="interleave">
<optional>
<attribute name="class" a:defaultValue="- topic/body concept/conbody "/>
</optional>
</define>
<define name="conbodydiv.attlist" combine="interleave">
<optional>
<attribute name="class" a:defaultValue="- topic/bodydiv concept/conbodydiv "/>
</optional>
</define>
</div>
</grammar>