<section>
elementIn this scenario, an information architect wants to redefine
the attributes for the <section>
element. He wants to make the
@id
attribute required and omit the @spectitle
attribute.
<!-- ============================================================= -->
<!-- CONSTRAINED TOPIC ENTITIES -->
<!-- ============================================================= -->
<!ENTITY section-constraints
"(topic idRequired-section-c)"
>
<!-- Declares the entities referenced in the constrained content -->
<!-- model. -->
<!ENTITY % conref-atts
'conref CDATA #IMPLIED
conrefend CDATA #IMPLIED
conaction (mark|pushafter|pushbefore|pushreplace|-dita-use-conref-target) #IMPLIED
conkeyref CDATA #IMPLIED' >
<!ENTITY % filter-atts
'props CDATA #IMPLIED
platform CDATA #IMPLIED
product CDATA #IMPLIED
audience CDATA #IMPLIED
otherprops CDATA #IMPLIED
%props-attribute-extensions;' >
<!ENTITY % select-atts
'%filter-atts;
base CDATA #IMPLIED
%base-attribute-extensions;
importance (default|deprecated|high|low|normal|obsolete|optional|
recommended|required|urgent|-dita-use-conref-target) #IMPLIED
rev CDATA #IMPLIED
status (changed|deleted|unchanged|-dita-use-conref-target) #IMPLIED' >
<!ENTITY % localization-atts
'translate (no|yes|-dita-use-conref-target) #IMPLIED
xml:lang CDATA #IMPLIED
dir (lro|ltr|rlo|rtl|-dita-use-conref-target) #IMPLIED' >
<!-- Declares the constrained content model. Original definition -->
<!-- included %univ-atts;, spectitle, and outputclass; now includes-->
<!-- individual pieces of univ-atts, to make ID required. -->
<!ENTITY % section.attributes
"id CDATA #REQUIRED
%conref-atts;
%select-atts;
%localization-atts;
outputclass CDATA #IMPLIED">
<section>
. If he did not do so, none of the attributes that are
declared in the %conref-atts;
,
%select-atts;
, or
%localization-atts;
parameter entities would be
available on the <section>
element. Furthermore, since the
%select-atts;
parameter entity references the
%filter-atts;
parameter entity, the
%filter-atts;
must be declared and it must precede
the declaration for the %select-atts;
parameter entity.
The
%props-attribute-extensions;
and
%base-attribute-extensions;
parameter entities do
not need to be declared in the constraint module, because they are declared in the
document-type shells before the inclusion of the constraint module.