home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- This DTD has been developed in order to validate XSL FO documents
- conformant to XSL Recommendation of October 15, 2001. The namespace
- prefix is
-
- xmlns:fo="http://www.w3.org/1999/XSL/Format".
-
- This DTD also makes provision for few extensions to XSL Rec, put
- into a separate namespace:
-
- xmlns:rx="http://www.renderx.com/XSL/Extensions".
-
- Please e-mail your comments to Nikolai Grigoriev <grig@renderx.com>
-
- © RenderX, 1999-2002.
-
- -->
- <!-- *******************************************************************
-
- This DTD was written in mind to validate testcases for the new XSL FO
- draft. Therefore, it is restrictive with respect to the Recommendation:
- some rare XSL FO features have been dropped in order to validate others
- more reliably. Unless a document intentionally uses some of the
- functionality listed below in the introductory notes, it shall be
- conformant to this DTD in order to be a valid XSL FO document.
-
- INTRODUCTORY NOTES
-
- 1. XSL FO are hard to validate by a DTD: attributes are universally
- inheritable due to the adoption of the 'inherit' value from CSS2; and
- even for the content model, presence of universal wrappers like fo:wrapper
- makes it impossible to trace a neat distinction between inline-level and
- block-level content. Therefore, this version of the DTD cannot reliably
- detect inconsistencies in attribute sets: real checks are performed
- only for empty inline elements and top-level elements (fo:layout-master-set
- and its descendants).
-
- 2. The contents of the fo:instream-foreign-object element is hardwired to
- be an SVG graphic. To validate it, this DTD includes an SVG DTD as an
- external entity.
-
- DEVIATIONS FROM THE DRAFT
-
- 1. Content model for <fo:layout-master-set> is made more strict:
- at least one fo:simple-page-master should be present. (I think this
- is more like a correction to the Recommendation, rather than
- a deviation from it).
-
- 2. In XSL 1.0, page and region-body margins may be expressed in terms
- of space-*. This does not make much sense, as far as no stacked
- constraint may occur. For this reason, I have disabled spaces
- in this context, leaving only plain old CSS margins.
-
- 3. Attributes of elements inside fo:layout-master-set may have a value
- of 'inherit'. However, I have disabled the occurrence of such attributes
- on parent elements: inheriting them buys us little in terms of
- conciseness, but is error-prone in the initial phase.
-
- 4. Table-omit-{header|footer}-at-break is added a value of 'inherit',
- to align it with the rest of table attributes. (If table-layout may have
- it, why these two should not?)
-
- 5. Text-align has a closed list of values, neglecting the <string> value
- type. The reason is practical: many stylesheet writers are used to write
- "centered" and "justified", whereas the correct values for this version
- of the draft are "center" and "justify"; catching this error in the DTD
- turned out to be useful. Moreover, <string> values are poorly described
- in the draft (nothing but a reference to CSS2), and are unlikely to be
- implemented soon. (Ultimate reason: changing the attribute value back to
- CDATA is a matter of few seconds ;-)).
-
- 6. Only basic values for writing-mode are included.
-
- 7. Several extension elements and properties are added to enable
- functionality missing from the Proposed Recommendation:
-
- rx:background-content-height
- rx:background-content-width
- rx:background-scaling
-
- These properties are exact analogs of 'content-height', 'content-width'
- and 'scaling' but apply to the background image.
-
- rx:outline
- rx:bookmark
- rx:bookmark-label
-
- These elements implement PDF bookmarks.
-
- rx:meta-info
- rx:meta-field
-
- These elements pass meta-information about the document.
-
- rx:page-device
-
- This element permits passing parameters to setpagedevice
- operator in PostScript
-
-
- ******************************************************************** -->
- <!-- *************************************************************** -->
- <!-- Include external DTDs for foreign objects -->
- <!-- *************************************************************** -->
- <!--
- <!ENTITY % instream-foreign-object-dtd
- PUBLIC "-//W3C//DTD SVG 1.0//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
- %instream-foreign-object-dtd;
- -->
- <!-- *************************************************************** -->
- <!-- Entity definitions for groups of formatting objects -->
- <!-- *************************************************************** -->
- <!ENTITY % basic-inlines "
- fo:bidi-override
- | fo:character
- | fo:external-graphic
- | fo:instream-foreign-object
- | fo:inline
- | fo:inline-container
- | fo:leader
- | fo:page-number
- | fo:page-number-citation
- | fo:basic-link
- | fo:multi-toggle
- ">
- <!ENTITY % basic-blocks "
- fo:block
- | fo:block-container
- | fo:table-and-caption
- | fo:table
- | fo:list-block
- ">
- <!ENTITY % out-of-lines "
- fo:footnote
- | fo:float
- ">
- <!ENTITY % wrappers "
- fo:multi-switch
- | fo:multi-properties
- | fo:wrapper
- | fo:marker
- | fo:retrieve-marker
- ">
- <!ENTITY % inlines "
- #PCDATA
- | %basic-inlines;
- | %out-of-lines;
- | %wrappers;
- ">
- <!ENTITY % blocks "
- %basic-blocks;
- | %out-of-lines;
- | %wrappers;
- ">
- <!ENTITY % mixed-level "
- #PCDATA
- | %basic-inlines;
- | %basic-blocks;
- | %out-of-lines;
- | %wrappers;
- ">
- <!-- *************************************************************** -->
- <!-- Entity definitions for common groups of properties -->
- <!-- This grouping reflects properties cooccurrence, rather than -->
- <!-- property semantics. It does not correspond to grouping in the -->
- <!-- draft. -->
- <!-- *************************************************************** -->
- <!-- Accessibility Properties -->
- <!ENTITY % accessibility-properties "
- source-document CDATA #IMPLIED
- role CDATA #IMPLIED
- ">
- <!-- Relative Position Properties -->
- <!-- 'position' shorthand property also makes part of this group -->
- <!ENTITY % relative-position-properties "
- relative-position ( auto | static | relative | inherit ) #IMPLIED
- position ( static | relative | absolute | fixed | inherit) #IMPLIED
- top CDATA #IMPLIED
- right CDATA #IMPLIED
- bottom CDATA #IMPLIED
- left CDATA #IMPLIED
- ">
- <!-- Absolute or Relative Position Properties -->
- <!-- There is no object that can be positioned only absolutely. -->
- <!-- Therefore, absolute and relative positioning properties are -->
- <!-- grouped together -->
- <!ENTITY % absolute-or-relative-position-properties "
- absolute-position ( auto | absolute | fixed | inherit ) #IMPLIED
- %relative-position-properties;
- ">
- <!-- Aural Properties -->
- <!-- 'cue' and 'pause' shorthand properties are also included -->
- <!ENTITY % aural-properties "
- azimuth CDATA #IMPLIED
- cue CDATA #IMPLIED
- cue-after CDATA #IMPLIED
- cue-before CDATA #IMPLIED
- elevation CDATA #IMPLIED
- pause CDATA #IMPLIED
- pause-after CDATA #IMPLIED
- pause-before CDATA #IMPLIED
- pitch CDATA #IMPLIED
- pitch-range CDATA #IMPLIED
- play-during CDATA #IMPLIED
- richness CDATA #IMPLIED
- speak ( normal | none | spell-out | inherit ) #IMPLIED
- speak-header ( once | always | inherit ) #IMPLIED
- speak-numeral ( digits | continuous | inherit ) #IMPLIED
- speak-punctuation ( code | none | inherit ) #IMPLIED
- speech-rate CDATA #IMPLIED
- stress CDATA #IMPLIED
- voice-family CDATA #IMPLIED
- volume CDATA #IMPLIED
- ">
- <!-- Common Border, Padding, and Background Properties -->
- <!-- Relative shorthand properties are also included -->
- <!ENTITY % border-padding-background-properties "
- background CDATA #IMPLIED
- background-attachment ( scroll | fixed | inherit ) #IMPLIED
- background-color CDATA #IMPLIED
- background-image CDATA #IMPLIED
- background-position CDATA #IMPLIED
- background-position-vertical CDATA #IMPLIED
- background-position-horizontal CDATA #IMPLIED
- background-repeat ( repeat | repeat-x | repeat-y
- | no-repeat | inherit ) #IMPLIED
- rx:background-content-height CDATA #IMPLIED
- rx:background-content-width CDATA #IMPLIED
- rx:background-scaling ( uniform | non-uniform) #IMPLIED
- border CDATA #IMPLIED
- border-after-color CDATA #IMPLIED
- border-after-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-after-width CDATA #IMPLIED
- border-after-width.length CDATA #IMPLIED
- border-after-width.conditionality ( discard | retain) #IMPLIED
- border-before-color CDATA #IMPLIED
- border-before-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-before-width CDATA #IMPLIED
- border-before-width.length CDATA #IMPLIED
- border-before-width.conditionality ( discard | retain) #IMPLIED
- border-bottom CDATA #IMPLIED
- border-bottom-color CDATA #IMPLIED
- border-bottom-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-bottom-width CDATA #IMPLIED
- border-bottom-width.length CDATA #IMPLIED
- border-bottom-width.conditionality ( discard | retain) #IMPLIED
- border-color CDATA #IMPLIED
- border-end-color CDATA #IMPLIED
- border-end-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-end-width CDATA #IMPLIED
- border-end-width.length CDATA #IMPLIED
- border-end-width.conditionality ( discard | retain) #IMPLIED
- border-left CDATA #IMPLIED
- border-left-color CDATA #IMPLIED
- border-left-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-left-width CDATA #IMPLIED
- border-left-width.length CDATA #IMPLIED
- border-left-width.conditionality ( discard | retain) #IMPLIED
- border-right CDATA #IMPLIED
- border-right-color CDATA #IMPLIED
- border-right-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-right-width CDATA #IMPLIED
- border-right-width.length CDATA #IMPLIED
- border-right-width.conditionality ( discard | retain) #IMPLIED
- border-start-color CDATA #IMPLIED
- border-start-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-start-width CDATA #IMPLIED
- border-start-width.length CDATA #IMPLIED
- border-start-width.conditionality ( discard | retain) #IMPLIED
- border-style CDATA #IMPLIED
- border-top CDATA #IMPLIED
- border-top-color CDATA #IMPLIED
- border-top-style ( none | hidden | dotted | dashed
- | solid | double | groove | ridge
- | inset | outset | inherit ) #IMPLIED
- border-top-width CDATA #IMPLIED
- border-top-width.length CDATA #IMPLIED
- border-top-width.conditionality ( discard | retain) #IMPLIED
- border-width CDATA #IMPLIED
- padding CDATA #IMPLIED
- padding-after CDATA #IMPLIED
- padding-after.length CDATA #IMPLIED
- padding-after.conditionality ( discard | retain) #IMPLIED
- padding-before CDATA #IMPLIED
- padding-before.length CDATA #IMPLIED
- padding-before.conditionality ( discard | retain) #IMPLIED
- padding-bottom CDATA #IMPLIED
- padding-bottom.length CDATA #IMPLIED
- padding-bottom.conditionality ( discard | retain) #IMPLIED
- padding-end CDATA #IMPLIED
- padding-end.length CDATA #IMPLIED
- padding-end.conditionality ( discard | retain) #IMPLIED
- padding-left CDATA #IMPLIED
- padding-left.length CDATA #IMPLIED
- padding-left.conditionality ( discard | retain) #IMPLIED
- padding-right CDATA #IMPLIED
- padding-right.length CDATA #IMPLIED
- padding-right.conditionality ( discard | retain) #IMPLIED
- padding-start CDATA #IMPLIED
- padding-start.length CDATA #IMPLIED
- padding-start.conditionality ( discard | retain) #IMPLIED
- padding-top CDATA #IMPLIED
- padding-top.length CDATA #IMPLIED
- padding-top.conditionality ( discard | retain) #IMPLIED
- ">
- <!-- Border Precedence Properties for tables -->
- <!ENTITY % border-precedence-properties "
- border-after-precedence CDATA #IMPLIED
- border-before-precedence CDATA #IMPLIED
- border-end-precedence CDATA #IMPLIED
- border-start-precedence CDATA #IMPLIED
- ">
- <!-- Box Size Properties -->
- <!ENTITY % box-size-properties "
- height CDATA #IMPLIED
- min-height CDATA #IMPLIED
- max-height CDATA #IMPLIED
- width CDATA #IMPLIED
- min-width CDATA #IMPLIED
- max-width CDATA #IMPLIED
- inline-progression-dimension CDATA #IMPLIED
- inline-progression-dimension.minimum CDATA #IMPLIED
- inline-progression-dimension.optimum CDATA #IMPLIED
- inline-progression-dimension.maximum CDATA #IMPLIED
- block-progression-dimension CDATA #IMPLIED
- block-progression-dimension.minimum CDATA #IMPLIED
- block-progression-dimension.optimum CDATA #IMPLIED
- block-progression-dimension.maximum CDATA #IMPLIED
- ">
- <!-- Common Area Properties -->
- <!ENTITY % area-properties "
- clip CDATA #IMPLIED
- overflow ( visible | hidden | scroll | auto
- | error-if-overflow | inherit ) #IMPLIED
- display-align ( auto | before | center | after | inherit ) #IMPLIED
- reference-orientation ( 0 | 90 | 180 | 270 | -90 | -180 | -270 | inherit ) #IMPLIED
- writing-mode ( lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit ) #IMPLIED
- ">
- <!-- Common Font Properties -->
- <!-- 'font' shorthand property is also included -->
- <!ENTITY % font-properties "
- font CDATA #IMPLIED
- font-selection-strategy (auto | character-by-character | inherit) #IMPLIED
- font-family CDATA #IMPLIED
- font-size CDATA #IMPLIED
- font-size-adjust CDATA #IMPLIED
- font-stretch (normal | wider | narrower
- | ultra-condensed | extra-condensed | condensed
- | semi-condensed | semi-expanded | expanded
- | extra-expanded | ultra-expanded | inherit) #IMPLIED
- font-style ( normal | italic | oblique | backslant | inherit) #IMPLIED
- font-variant ( normal | small-caps | inherit ) #IMPLIED
- font-weight (normal | bold | bolder | lighter | inherit
- | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900) #IMPLIED
- ">
- <!-- Common Hyphenation Properties - Inline -->
- <!-- 'xml:lang' shorthand property is also included -->
- <!ENTITY % hyphenation-properties-inline "
- country CDATA #IMPLIED
- language CDATA #IMPLIED
- script CDATA #IMPLIED
- xml:lang CDATA #IMPLIED
- hyphenate ( false | true | inherit ) #IMPLIED
- hyphenation-character CDATA #IMPLIED
- hyphenation-push-character-count CDATA #IMPLIED
- hyphenation-remain-character-count CDATA #IMPLIED
- ">
- <!-- Common Hyphenation Properties - Block -->
- <!ENTITY % hyphenation-properties-block "
- hyphenation-keep ( auto | column | page | inherit ) #IMPLIED
- hyphenation-ladder-count CDATA #IMPLIED
- %hyphenation-properties-inline;
- ">
- <!-- Common CSS Margin Properties -->
- <!-- 'margin' shorthand property is also included -->
- <!ENTITY % margin-properties-CSS "
- margin CDATA #IMPLIED
- margin-bottom CDATA #IMPLIED
- margin-left CDATA #IMPLIED
- margin-right CDATA #IMPLIED
- margin-top CDATA #IMPLIED
- ">
- <!-- Common Margin Properties - Block -->
- <!ENTITY % margin-properties-block "
- %margin-properties-CSS;
- space-after CDATA #IMPLIED
- space-after.minimum CDATA #IMPLIED
- space-after.optimum CDATA #IMPLIED
- space-after.maximum CDATA #IMPLIED
- space-after.precedence CDATA #IMPLIED
- space-after.conditionality ( retain | discard ) #IMPLIED
- space-before CDATA #IMPLIED
- space-before.minimum CDATA #IMPLIED
- space-before.optimum CDATA #IMPLIED
- space-before.maximum CDATA #IMPLIED
- space-before.precedence CDATA #IMPLIED
- space-before.conditionality ( retain | discard ) #IMPLIED
- start-indent CDATA #IMPLIED
- end-indent CDATA #IMPLIED
- ">
- <!-- Common Margin Properties - Inline -->
- <!ENTITY % margin-properties-inline "
- %margin-properties-block;
- space-start CDATA #IMPLIED
- space-start.minimum CDATA #IMPLIED
- space-start.optimum CDATA #IMPLIED
- space-start.maximum CDATA #IMPLIED
- space-start.precedence CDATA #IMPLIED
- space-start.conditionality ( retain | discard ) #IMPLIED
- space-end CDATA #IMPLIED
- space-end.minimum CDATA #IMPLIED
- space-end.optimum CDATA #IMPLIED
- space-end.maximum CDATA #IMPLIED
- space-end.precedence CDATA #IMPLIED
- space-end.conditionality ( retain | discard ) #IMPLIED
- ">
- <!-- Area Alignment Properties - inline -->
- <!-- 'vertical-align' shorthand is added -->
- <!ENTITY % area-alignment-properties-inline "
- alignment-adjust CDATA #IMPLIED
- alignment-baseline ( auto | baseline | before-edge | text-before-edge
- | middle | central | after-edge | text-after-edge
- | top | text-top | bottom | text-bottom
- | ideographic | alphabetic | hanging
- | mathematical | inherit ) #IMPLIED
- baseline-shift CDATA #IMPLIED
- dominant-baseline ( auto | use-script | no-change
- | reset-size | ideographic | alphabetic
- | hanging | mathematical | central | middle
- | text-after-edge | text-before-edge |inherit ) #IMPLIED
- vertical-align CDATA #IMPLIED
- ">
- <!-- Line Height Properties -->
- <!ENTITY % line-height-properties "
- line-height CDATA #IMPLIED
- line-height.minimum CDATA #IMPLIED
- line-height.optimum CDATA #IMPLIED
- line-height.maximum CDATA #IMPLIED
- line-height.precedence CDATA #IMPLIED
- line-height.conditionality ( retain | discard ) #IMPLIED
- line-height-shift-adjustment CDATA #IMPLIED
- ">
- <!-- Line Related Properties -->
- <!-- [!] <string> values are temporarily excluded from text-align -->
- <!ENTITY % line-related-properties "
- text-align ( start | center | end | justify
- | inside | outside | left | right | inherit ) #IMPLIED
- text-align-last ( relative | start | center | end | justify
- | inside | outside | left | right | inherit ) #IMPLIED
- text-indent CDATA #IMPLIED
- last-line-end-indent CDATA #IMPLIED
- line-stacking-strategy ( line-height | font-height
- | max-height | inherit ) #IMPLIED
- linefeed-treatment ( ignore | preserve | treat-as-space
- | treat-as-zero-width-space | inherit ) #IMPLIED
- white-space ( normal | pre | nowrap | inherit ) #IMPLIED
- white-space-treatment ( ignore | preserve
- | ignore-if-before-linefeed | ignore-if-after-linefeed
- | ignore-if-surrounding-linefeed | inherit ) #IMPLIED
- white-space-collapse ( false | true | inherit ) #IMPLIED
- wrap-option ( no-wrap | wrap | inherit ) #IMPLIED
- unicode-bidi ( normal | embed | bidi-override | inherit ) #IMPLIED
- direction ( ltr | rtl | inherit ) #IMPLIED
- ">
- <!-- Character Properties -->
- <!ENTITY % character-properties "
- letter-spacing CDATA #IMPLIED
- letter-spacing.minimum CDATA #IMPLIED
- letter-spacing.optimum CDATA #IMPLIED
- letter-spacing.maximum CDATA #IMPLIED
- letter-spacing.precedence CDATA #IMPLIED
- letter-spacing.conditionality ( retain | discard ) #IMPLIED
- word-spacing CDATA #IMPLIED
- word-spacing.minimum CDATA #IMPLIED
- word-spacing.optimum CDATA #IMPLIED
- word-spacing.maximum CDATA #IMPLIED
- word-spacing.precedence CDATA #IMPLIED
- word-spacing.conditionality ( retain | discard ) #IMPLIED
- treat-as-word-space ( auto | true | false | inherit ) #IMPLIED
- text-decoration NMTOKENS #IMPLIED
- score-spaces ( true | false | inherit ) #IMPLIED
- text-shadow CDATA #IMPLIED
- text-transform ( capitalize | uppercase | lowercase
- | none | inherit ) #IMPLIED
- suppress-at-line-break ( auto | suppress | retain | inherit ) #IMPLIED
- text-altitude CDATA #IMPLIED
- text-depth CDATA #IMPLIED
- glyph-orientation-horizontal ( 0 | 90 | 180 | 270 | -90 | -180 | -270
- | 0deg | 90deg | 180deg | 270deg
- |-90deg | -180deg | -270deg | inherit ) #IMPLIED
- glyph-orientation-vertical ( 0 | 90 | 180 | 270 | -90 | -180 | -270
- | 0deg | 90deg | 180deg | 270deg
- |-90deg | -180deg | -270deg | inherit ) #IMPLIED
- %font-properties;
- %line-height-properties;
- ">
- <!-- Common Keeps and Breaks Properties - Atomic objects -->
- <!-- 'page-break-*' shorthand properties are also included -->
- <!ENTITY % keeps-and-breaks-properties-atomic "
- break-after ( auto | column | page
- | even-page | odd-page | inherit ) #IMPLIED
- break-before ( auto | column | page
- | even-page | odd-page | inherit ) #IMPLIED
- keep-with-next CDATA #IMPLIED
- keep-with-next.within-line CDATA #IMPLIED
- keep-with-next.within-column CDATA #IMPLIED
- keep-with-next.within-page CDATA #IMPLIED
- keep-with-previous CDATA #IMPLIED
- keep-with-previous.within-line CDATA #IMPLIED
- keep-with-previous.within-column CDATA #IMPLIED
- keep-with-previous.within-page CDATA #IMPLIED
- page-break-after ( auto | always | avoid
- | left | right | inherit ) #IMPLIED
- page-break-before ( auto | always | avoid
- | left | right | inherit ) #IMPLIED
- ">
- <!-- Common Keeps and Breaks Properties - Inline -->
- <!-- 'page-break-inside' shorthand property is also included -->
- <!ENTITY % keeps-and-breaks-properties-inline "
- %keeps-and-breaks-properties-atomic;
- keep-together CDATA #IMPLIED
- keep-together.within-line CDATA #IMPLIED
- keep-together.within-column CDATA #IMPLIED
- keep-together.within-page CDATA #IMPLIED
- page-break-inside ( avoid | auto | inherit ) #IMPLIED
- ">
- <!-- Common Keeps and Breaks Properties - Block -->
- <!ENTITY % keeps-and-breaks-properties-block "
- %keeps-and-breaks-properties-inline;
- orphans CDATA #IMPLIED
- widows CDATA #IMPLIED
- ">
- <!-- Leader and Rule Properties -->
- <!ENTITY % leader-properties "
- leader-alignment ( none | reference-area | page | inherit ) #IMPLIED
- leader-pattern ( space | rule | dots
- | use-content | inherit ) #IMPLIED
- leader-pattern-width CDATA #IMPLIED
- leader-length CDATA #IMPLIED
- leader-length.minimum CDATA #IMPLIED
- leader-length.optimum CDATA #IMPLIED
- leader-length.maximum CDATA #IMPLIED
- rule-style ( none | dotted | dashed | solid | double
- | groove | ridge | inherit ) #IMPLIED
- rule-thickness CDATA #IMPLIED
- ">
- <!-- Table Properties -->
- <!-- 'border-spacing' shorthand property is also included -->
- <!-- 'inherit' property added to table-omit-...er-at-break -->
- <!ENTITY % table-properties "
- border-collapse ( collapse | collapse-with-precedence | separate | inherit ) #IMPLIED
- border-spacing CDATA #IMPLIED
- border-separation CDATA #IMPLIED
- border-separation.inline-progression-direction CDATA #IMPLIED
- border-separation.block-progression-direction CDATA #IMPLIED
- caption-side ( before | after | start | end
- | top | bottom | left | right | inherit ) #IMPLIED
- empty-cells ( show | hide | inherit ) #IMPLIED
- table-layout ( auto | fixed | inherit ) #IMPLIED
- table-omit-header-at-break ( true | false | inherit ) #IMPLIED
- table-omit-footer-at-break ( true | false | inherit ) #IMPLIED
- ">
- <!-- List Properties -->
- <!ENTITY % list-properties "
- provisional-distance-between-starts CDATA #IMPLIED
- provisional-label-separation CDATA #IMPLIED
- ">
- <!-- Float Properties -->
- <!ENTITY % float-properties "
- float ( before | start | end | left | right | none | inherit ) #IMPLIED
- clear ( start | end | left | right | both | none | inherit ) #IMPLIED
- intrusion-displace ( auto | none | line | indent | block | inherit ) #IMPLIED
- ">
- <!-- Visibility Properties -->
- <!ENTITY % visibility-properties "
- visibility ( visible | hidden | collapse | inherit ) #IMPLIED
- z-index CDATA #IMPLIED
- ">
- <!-- =============================================================== -->
- <!-- Set of all inheritable properties. This includes attributes -->
- <!-- marked as inheritable in the PR, as well as all features that -->
- <!-- may assume a value of "inherit" (because all such features are -->
- <!-- also permitted at parent elements). By XSL PR design, this set -->
- <!-- comprises nearly all attributes. -->
- <!-- =============================================================== -->
- <!ENTITY % inheritable-properties "
- color CDATA #IMPLIED
- relative-align ( before | baseline | inherit ) #IMPLIED
- span ( none | all | inherit ) #IMPLIED
-
- %accessibility-properties;
- %absolute-or-relative-position-properties;
- %border-padding-background-properties;
- %border-precedence-properties;
- %aural-properties;
- %box-size-properties;
- %margin-properties-inline;
- %area-properties;
- %area-alignment-properties-inline;
- %character-properties;
- %table-properties;
- %list-properties;
- %float-properties;
- %line-related-properties;
- %leader-properties;
- %keeps-and-breaks-properties-block;
- %hyphenation-properties-block;
- %visibility-properties;
- ">
- <!-- =============================================================== -->
- <!-- Common property subsets. -->
- <!-- =============================================================== -->
- <!-- Properties for every block that may contain text children -->
- <!ENTITY % block-properties "
- id CDATA #IMPLIED
- %inheritable-properties;
- ">
- <!-- Properties for nonempty inline elements -->
- <!ENTITY % inline-properties "
- id CDATA #IMPLIED
- %inheritable-properties;
- ">
- <!-- Properties for empty inline elements that contain characters -->
- <!ENTITY % empty-inline-properties "
- id CDATA #IMPLIED
- color CDATA #IMPLIED
- %accessibility-properties;
- %aural-properties;
- %relative-position-properties;
- %area-alignment-properties-inline;
- %character-properties;
- %border-padding-background-properties;
- %hyphenation-properties-inline;
- %visibility-properties;
- ">
- <!-- Properties for graphical inline elements -->
- <!ENTITY % graphic-properties "
- id CDATA #IMPLIED
- content-type CDATA #IMPLIED
-
- %accessibility-properties;
- %relative-position-properties;
- %aural-properties;
- %border-padding-background-properties;
- %margin-properties-inline;
- %area-alignment-properties-inline;
- %box-size-properties;
- %font-properties;
- %line-height-properties;
- %keeps-and-breaks-properties-atomic;
-
- content-height CDATA #IMPLIED
- content-width CDATA #IMPLIED
- display-align ( auto | before | center | after | inherit ) #IMPLIED
- overflow ( visible | hidden | scroll | auto
- | error-if-overflow | inherit ) #IMPLIED
- scaling ( uniform | non-uniform | inherit ) #IMPLIED
- scaling-method ( auto | integer-pixels
- | resample-any-method | inherit ) #IMPLIED
- text-align ( start | center | end | justify
- | inside | outside | left | right | inherit ) #IMPLIED
- ">
- <!-- *************************************************************** -->
- <!-- Content models and attributes -->
- <!-- -->
- <!-- A. Element structure for top-level elements -->
- <!-- *************************************************************** -->
- <!-- =============================================================== -->
- <!-- Root element. Contains everything, generates nothing. It has an -->
- <!-- id, a FO namespace prefix declaration, and other namespace -->
- <!-- declarations if used. It can also bear inheritable properties, -->
- <!-- passed further to fo:flows/fo:static-contents. Inheritable -->
- <!-- properties from fo:layout-master-set are banned in this version -->
- <!-- of the DTD. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:root (rx:meta-info?, rx:page-device?, fo:layout-master-set, fo:declarations?, rx:outline?, fo:page-sequence+)>
- <!ATTLIST fo:root
- xmlns:fo CDATA #REQUIRED
- xmlns:rx CDATA #IMPLIED
- xmlns:svg CDATA #IMPLIED
- media-usage (auto | paginate | bounded-in-one-dimension | unbounded) #IMPLIED
- %inheritable-properties;
- >
- <!-- =============================================================== -->
- <!-- Document meta information - RenderX extension -->
- <!-- =============================================================== -->
- <!ELEMENT rx:meta-info (rx:meta-field+)>
- <!ATTLIST rx:meta-info
- xmlns:rx CDATA #IMPLIED
- >
- <!ELEMENT rx:meta-field EMPTY>
- <!ATTLIST rx:meta-field
- name CDATA #REQUIRED
- value CDATA #REQUIRED
- >
- <!ELEMENT rx:page-device EMPTY>
- <!ATTLIST rx:page-device
- input-tray CDATA #IMPLIED
- output-tray CDATA #IMPLIED
- manual-feed (true | false) #IMPLIED
- duplex (true | false) #IMPLIED
- mirror-print (true | false) #IMPLIED
- negative-print (true | false) #IMPLIED
- collate (true | false) #IMPLIED
- number-copies CDATA #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Color profile declarations -->
- <!-- =============================================================== -->
- <!ELEMENT fo:declarations (fo:color-profile+)>
- <!ELEMENT fo:color-profile EMPTY>
- <!ATTLIST fo:color-profile
- src CDATA #REQUIRED
- color-profile-name CDATA #REQUIRED
- rendering-intent CDATA #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Bookmarks - RenderX extension -->
- <!-- =============================================================== -->
- <!ELEMENT rx:outline (rx:bookmark+)>
- <!ATTLIST rx:outline
- xmlns:rx CDATA #IMPLIED
- >
- <!ELEMENT rx:bookmark (rx:bookmark-label, rx:bookmark*)>
- <!ATTLIST rx:bookmark
- internal-destination CDATA #IMPLIED
- external-destination CDATA #IMPLIED
- initial-state (open | closed) #IMPLIED
- >
- <!ELEMENT rx:bookmark-label (#PCDATA)>
- <!-- =============================================================== -->
- <!-- Layout-master-set. Contains a set of page-masters. Neither of -->
- <!-- its descendants generates any area, so no inherited elements -->
- <!-- can be specified on it or on its children. -->
- <!-- Content model made more strict than in the draft, to enforce -->
- <!-- that a page-sequence-master be always accompanied by at least -->
- <!-- one simple-page-master. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:layout-master-set (fo:page-sequence-master*, fo:simple-page-master, (fo:simple-page-master | fo:page-sequence-master)*)>
- <!-- =============================================================== -->
- <!-- Page sequence master -->
- <!-- =============================================================== -->
- <!ELEMENT fo:page-sequence-master ((fo:single-page-master-reference | fo:repeatable-page-master-reference | fo:repeatable-page-master-alternatives)+)>
- <!ATTLIST fo:page-sequence-master
- master-name CDATA #REQUIRED
- >
- <!-- =============================================================== -->
- <!-- Sequence specifiers are predefined sequences of page masters -->
- <!-- that are used by page sequence master to construct a desired -->
- <!-- page collection. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:single-page-master-reference EMPTY>
- <!ATTLIST fo:single-page-master-reference
- master-reference CDATA #REQUIRED
- >
- <!ELEMENT fo:repeatable-page-master-reference EMPTY>
- <!ATTLIST fo:repeatable-page-master-reference
- master-reference CDATA #REQUIRED
- maximum-repeats CDATA #IMPLIED
- >
- <!ELEMENT fo:repeatable-page-master-alternatives (fo:conditional-page-master-reference+)>
- <!ATTLIST fo:repeatable-page-master-alternatives
- maximum-repeats CDATA #IMPLIED
- >
- <!ELEMENT fo:conditional-page-master-reference EMPTY>
- <!ATTLIST fo:conditional-page-master-reference
- master-reference CDATA #REQUIRED
- page-position (first | last | rest | any | inherit) #IMPLIED
- odd-or-even (odd | even | any | inherit) #IMPLIED
- blank-or-not-blank (blank | not-blank | any | inherit) #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Simple page master defines a page layout. It does not -->
- <!-- explicitly generate any content. Most of its properties are -->
- <!-- local except for writing-mode and reference-orientation that -->
- <!-- are inherited by the underlying region-* objects. -->
- <!-- =============================================================== -->
- <!-- NOTE. We could think about a common background/padding/border -->
- <!-- for every page instance generated by the page master. For such -->
- <!-- a scope, we may add borders/padding/background to its features. -->
- <!-- However, in the current version this is ruled out explicitly by -->
- <!-- the XSL specs. -->
- <!ELEMENT fo:simple-page-master (fo:region-body, fo:region-before?, fo:region-after?, fo:region-start?, fo:region-end?)>
- <!ATTLIST fo:simple-page-master
- %margin-properties-CSS;
- master-name CDATA #REQUIRED
- page-height CDATA #IMPLIED
- page-width CDATA #IMPLIED
- size CDATA #IMPLIED
- reference-orientation (0 | 90 | 180 | 270 | -90 | -180 | -270 | inherit) #IMPLIED
- writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED
- >
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- Regions. The page instance is divided into subareas, whose -->
- <!-- properties are described by the five region-* elements. These -->
- <!-- elements by themselves do not generate any content. -->
- <!-- Reference-orientation and writing-mode may be inherited from -->
- <!-- the page master; all other features are local. -->
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!ENTITY % region-properties "
- %border-padding-background-properties;
- %area-properties;
-
- region-name CDATA #IMPLIED
- ">
- <!-- =============================================================== -->
- <!-- Body region: middle of the page. Unlike side regions, this one -->
- <!-- may have multiple columns. -->
- <!-- [!] We have restricted margin properties to be margin-only, -->
- <!-- allowing no spaces. This is done because no clear semantics -->
- <!-- can be ascribed to single components of a space vector. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:region-body EMPTY>
- <!ATTLIST fo:region-body
- %region-properties;
- %margin-properties-CSS;
- column-count CDATA #IMPLIED
- column-gap CDATA #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Side regions: page edges. These regions have extent and -->
- <!-- precedence that is used to arbitrate corner conflicts. Side -->
- <!-- regions are viewed as frames, and may not have margins. -->
- <!-- Extent made obligatory: its default value of 0.0pt does not -->
- <!-- make much sense. -->
- <!-- =============================================================== -->
- <!ENTITY % side-region-properties "
- %region-properties;
- extent CDATA #REQUIRED
- precedence ( true | false | inherit ) #IMPLIED
- ">
- <!ELEMENT fo:region-before EMPTY>
- <!ATTLIST fo:region-before
- %side-region-properties;
- >
- <!ELEMENT fo:region-after EMPTY>
- <!ATTLIST fo:region-after
- %side-region-properties;
- >
- <!ELEMENT fo:region-start EMPTY>
- <!ATTLIST fo:region-start
- %side-region-properties;
- >
- <!ELEMENT fo:region-end EMPTY>
- <!ATTLIST fo:region-end
- %side-region-properties;
- >
- <!-- =============================================================== -->
- <!-- Page sequence defines the order of choosing page masters to -->
- <!-- accomodate all the contents generated by its fo:flow and -->
- <!-- fo:static-content children, and the way of numbering them. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:page-sequence (fo:title?, fo:static-content*, fo:flow)>
- <!ATTLIST fo:page-sequence
- id CDATA #IMPLIED
- master-reference CDATA #REQUIRED
- initial-page-number CDATA #IMPLIED
- force-page-count (auto | even | odd | end-on-even | end-on-odd | no-force | inherit) #IMPLIED
- format CDATA #IMPLIED
- letter-value (auto | alphabetic | traditional) #IMPLIED
- grouping-separator CDATA #IMPLIED
- grouping-size CDATA #IMPLIED
- %inheritable-properties;
- >
- <!-- =============================================================== -->
- <!-- Title may not contain out-of-lines. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:title (#PCDATA | %basic-inlines; | %wrappers;)*>
- <!ATTLIST fo:title
- %inheritable-properties;
- >
- <!-- *************************************************************** -->
- <!-- B. Element structure for content-bearing elements -->
- <!-- *************************************************************** -->
- <!-- =============================================================== -->
- <!-- Flows. They are just sequences of blocks. 'flow-name' feature -->
- <!-- defines linkage of the flow to a region in the page master. -->
- <!-- =============================================================== -->
- <!ENTITY % flow-properties "
- id CDATA #IMPLIED
- flow-name CDATA #REQUIRED
- %inheritable-properties;
- ">
- <!ELEMENT fo:static-content (%blocks;)+>
- <!ATTLIST fo:static-content
- %flow-properties;
- >
- <!ELEMENT fo:flow (%blocks;)+>
- <!ATTLIST fo:flow
- %flow-properties;
- >
- <!-- =============================================================== -->
- <!-- Block is the base element for all content areas. Besides -->
- <!-- properties used to format the block itself, it also conveys -->
- <!-- formatting information to its inline-level children. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:block (#PCDATA | fo:initial-property-set | %basic-inlines; | %basic-blocks; | %out-of-lines; | %wrappers;)*>
- <!ATTLIST fo:block
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- Block container -->
- <!-- =============================================================== -->
- <!ELEMENT fo:block-container (%blocks;)+>
- <!ATTLIST fo:block-container
- %block-properties;
- >
- <!-- *************************************************************** -->
- <!-- Inline elements -->
- <!-- *************************************************************** -->
- <!-- =============================================================== -->
- <!-- Unicode bidi-override -->
- <!-- =============================================================== -->
- <!ELEMENT fo:bidi-override (%inlines;)*>
- <!ATTLIST fo:bidi-override
- %inline-properties;
- >
- <!-- =============================================================== -->
- <!-- Single character -->
- <!-- =============================================================== -->
- <!ELEMENT fo:character EMPTY>
- <!ATTLIST fo:character
- character CDATA #REQUIRED
- %empty-inline-properties;
- >
- <!-- =============================================================== -->
- <!-- Initial property set specifies properties for one or more lines -->
- <!-- =============================================================== -->
- <!ELEMENT fo:initial-property-set EMPTY>
- <!ATTLIST fo:initial-property-set
- %empty-inline-properties;
- >
- <!-- =============================================================== -->
- <!-- External graphic -->
- <!-- =============================================================== -->
- <!ELEMENT fo:external-graphic EMPTY>
- <!ATTLIST fo:external-graphic
- %graphic-properties;
- src CDATA #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- In-stream graphic -->
- <!-- =============================================================== -->
- <!ELEMENT fo:instream-foreign-object ANY>
- <!ATTLIST fo:instream-foreign-object
- %graphic-properties;
- >
- <!-- =============================================================== -->
- <!-- Inline -->
- <!-- =============================================================== -->
- <!ELEMENT fo:inline (%mixed-level;)*>
- <!ATTLIST fo:inline
- %inline-properties;
- >
- <!-- =============================================================== -->
- <!-- Inline container -->
- <!-- =============================================================== -->
- <!ELEMENT fo:inline-container (%blocks;)*>
- <!ATTLIST fo:inline-container
- %inline-properties;
- >
- <!-- =============================================================== -->
- <!-- Leader -->
- <!-- =============================================================== -->
- <!ELEMENT fo:leader (%inlines;)*>
- <!ATTLIST fo:leader
- %inline-properties;
- >
- <!-- =============================================================== -->
- <!-- Page Number -->
- <!-- =============================================================== -->
- <!ELEMENT fo:page-number EMPTY>
- <!ATTLIST fo:page-number
- %empty-inline-properties;
- >
- <!-- =============================================================== -->
- <!-- Page number citation -->
- <!-- =============================================================== -->
- <!ELEMENT fo:page-number-citation EMPTY>
- <!ATTLIST fo:page-number-citation
- %empty-inline-properties;
- ref-id CDATA #REQUIRED
- >
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- Formatting objects for tables. -->
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- =============================================================== -->
- <!-- Table & Caption is a wrapper to all the stuff pertinent to a -->
- <!-- given table. It generates a block consisting of two subblocks: -->
- <!-- one for the caption, another one for the table itself. The -->
- <!-- placement of these two blocks is controlled by the -->
- <!-- 'caption-side' property: if caption-side="before"|"after" (or -->
- <!-- their absolute orientation equivalents), the two blocks are -->
- <!-- drawn one after another; if it is "start"|"end", then the -->
- <!-- caption is displayed on the correspondent side of the table. -->
- <!-- In this case, the relative alignment of the two blocks is given -->
- <!-- by the 'relative-align'/'display-align' property. -->
- <!-- -->
- <!-- =============================================================== -->
- <!ELEMENT fo:table-and-caption (fo:table-caption?, fo:table)>
- <!ATTLIST fo:table-and-caption
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- Table caption is an area container. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:table-caption (%blocks;)+>
- <!ATTLIST fo:table-caption
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- fo:table is the basic element for all tables. All the contents -->
- <!-- placed inside it is distributed over a single rectangular grid -->
- <!-- of rows and columns. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:table (fo:table-column*, fo:table-header?, fo:table-footer?, fo:table-body+)>
- <!ATTLIST fo:table
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- Table column specifies common properties to ascribe to all -->
- <!-- cells in a column *or a group of columns*. Note that, if both -->
- <!-- 'number-columns-repeated' and 'number-columns-spanned' exceed -->
- <!-- 1, the column counter is increased by 'number-columns-spanned'. -->
- <!-- it means that you only set properties for columns: -->
- <!-- 'column-number' -->
- <!-- 'column-number' + 'number-columns-spanned' -->
- <!-- 'column-number' + 2 * 'number-columns-spanned' -->
- <!-- and so on, leaving default properties for intermediate columns. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:table-column EMPTY>
- <!ATTLIST fo:table-column
- column-number CDATA #IMPLIED
- column-width CDATA #IMPLIED
- number-columns-repeated CDATA #IMPLIED
- number-columns-spanned CDATA #IMPLIED
- %inheritable-properties;
- >
- <!-- =============================================================== -->
- <!-- Table header, table footer, and table body are wrappers for -->
- <!-- groups of rows. They contain either one or more fo:table-rows, -->
- <!-- or one or more fo:table-cells; in the latter case, row breaks -->
- <!-- are specified in the cells by 'starts-row'/'ends-row'. -->
- <!-- All these elements are identical both in the content structure -->
- <!-- and in the attributes. -->
- <!-- =============================================================== -->
- <!ENTITY % row-group " fo:table-row+ | fo:table-cell+ ">
- <!ELEMENT fo:table-header (%row-group;)>
- <!ATTLIST fo:table-header
- id CDATA #IMPLIED
- %inheritable-properties;
- >
- <!ELEMENT fo:table-footer (%row-group;)>
- <!ATTLIST fo:table-footer
- id CDATA #IMPLIED
- %inheritable-properties;
- >
- <!ELEMENT fo:table-body (%row-group;)>
- <!ATTLIST fo:table-body
- id CDATA #IMPLIED
- %inheritable-properties;
- >
- <!-- =============================================================== -->
- <!-- Table row. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:table-row (fo:table-cell+)>
- <!ATTLIST fo:table-row
- id CDATA #IMPLIED
- %inheritable-properties;
- >
- <!-- =============================================================== -->
- <!-- Table cell. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:table-cell (%blocks;)+>
- <!ATTLIST fo:table-cell
- %block-properties;
- column-number CDATA #IMPLIED
- ends-row (true | false) #IMPLIED
- number-columns-spanned CDATA #IMPLIED
- number-rows-spanned CDATA #IMPLIED
- starts-row (true | false) #IMPLIED
- >
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- Formatting objects for lists. -->
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- =============================================================== -->
- <!-- List block is a block, with some extra features to control the -->
- <!-- disposition of list items. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:list-block (fo:list-item+)>
- <!ATTLIST fo:list-block
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- List item is a coupling of item label and item body. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:list-item (fo:list-item-label, fo:list-item-body)>
- <!ATTLIST fo:list-item
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- List item label and list item body -->
- <!-- =============================================================== -->
- <!ELEMENT fo:list-item-label (%blocks;)+>
- <!ATTLIST fo:list-item-label
- %block-properties;
- >
- <!ELEMENT fo:list-item-body (%blocks;)+>
- <!ATTLIST fo:list-item-body
- %block-properties;
- >
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- Out-of-lines. -->
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- =============================================================== -->
- <!-- Floats and footnotes resemble containers. Accordingly, we treat -->
- <!-- them as block sequences. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:float (%blocks;)+>
- <!ATTLIST fo:float
- %block-properties;
- >
- <!ELEMENT fo:footnote (fo:inline, fo:footnote-body)>
- <!ATTLIST fo:footnote
- %block-properties;
- >
- <!ELEMENT fo:footnote-body (%blocks;)+>
- <!ATTLIST fo:footnote-body
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- Simple link. From the formatting point of view, it's nothing -->
- <!-- but a regular inline sequence. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:basic-link (%mixed-level;)*>
- <!ATTLIST fo:basic-link
- %inline-properties;
- external-destination CDATA #IMPLIED
- internal-destination CDATA #IMPLIED
- indicate-destination (true | false) #IMPLIED
- show-destination (replace | new) #IMPLIED
- destination-placement-offset CDATA #IMPLIED
- target-processing-context CDATA #IMPLIED
- target-presentation-context CDATA #IMPLIED
- target-stylesheet CDATA #IMPLIED
- >
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- Wrappers and Markers. -->
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- =============================================================== -->
- <!-- Wrapper. This may be useful but breaks every effort to validate -->
- <!-- content models for blocks and inlines. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:wrapper (%mixed-level;)*>
- <!ATTLIST fo:wrapper
- id CDATA #IMPLIED
- %inheritable-properties;
- >
- <!-- =============================================================== -->
- <!-- Marker. This element may embrace any content but cannot pass -->
- <!-- properties to its children; so, it may not have features other -->
- <!-- than marker-class-name. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:marker (%mixed-level;)*>
- <!ATTLIST fo:marker
- marker-class-name CDATA #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Marker retrieval. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:retrieve-marker EMPTY>
- <!ATTLIST fo:retrieve-marker
- retrieve-class-name CDATA #IMPLIED
- retrieve-position (first-starting-within-page | first-including-carryover | last-starting-within-page | last-ending-within-page) #IMPLIED
- retrieve-boundary (page | page-sequence | document) #IMPLIED
- >
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- Multistate stuff. This section is the least developed in the -->
- <!-- whole DTD, and most solutions are arbitrary. We beg thy pardon. -->
- <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
- <!-- =============================================================== -->
- <!-- Switch. This is a pure logical operator; no formatting may be -->
- <!-- conveyed through it. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:multi-switch (fo:multi-case)+>
- <!ATTLIST fo:multi-switch
- %inheritable-properties;
- id CDATA #IMPLIED
- auto-restore (true | false) #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Single case. Block-level formatting may be conveyed. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:multi-case (%mixed-level;)*>
- <!ATTLIST fo:multi-case
- %inheritable-properties;
- id CDATA #IMPLIED
- starting-state CDATA #IMPLIED
- case-name CDATA #IMPLIED
- case-title CDATA #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Toggle. This is a typical inline. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:multi-toggle (%inlines;)*>
- <!ATTLIST fo:multi-toggle
- %inheritable-properties;
- id CDATA #IMPLIED
- switch-to CDATA #IMPLIED
- >
- <!-- =============================================================== -->
- <!-- Multi-properties is listed among block-level elements. -->
- <!-- Formatting common to all property sets can be specified here; -->
- <!-- we expect it to be block-level only. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:multi-properties (fo:multi-property-set+, fo:wrapper)>
- <!ATTLIST fo:multi-properties
- %block-properties;
- >
- <!-- =============================================================== -->
- <!-- Multi property set. Since these are properties of a -->
- <!-- fo:multi-properties that is considered a block, we accept only -->
- <!-- block properties here. -->
- <!-- =============================================================== -->
- <!ELEMENT fo:multi-property-set EMPTY>
- <!ATTLIST fo:multi-property-set
- %block-properties;
- active-state (link | visited | active | hover | focus) #REQUIRED
- >
-