blob: d5352b5d20341ce06e5ba7333b80a36acd496478 [file] [log] [blame]
RncFileImpl:Elements.rnc
PsiComment(SINGLE_LINE_COMMENT)('# =========================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# (c) 2004, RenderX ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Author: Alexander Peshkov <peshkov@renderx.com> ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Permission is granted to use this document, copy and ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# modify free of charge, provided that every derived work ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# bear a reference to the present document. ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# This document contains a computer program written in ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL Transformations Language. It is published with no ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# warranty of any kind about its usability, as a mere ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# example of XSL technology. RenderX shall not be ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# considered liable for any damage or loss of data caused ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# by use of this program. ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# =========================================================')
PsiWhiteSpace('\n\n')
DOCUMENT
NS_DECL
PsiElement(KEYWORD_NAMESPACE)('namespace')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('local')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PsiElement(LITERAL)('""')
PsiWhiteSpace('\n')
NS_DECL
PsiElement(KEYWORD_DEFAULT)('default')
PsiWhiteSpace(' ')
PsiElement(KEYWORD_NAMESPACE)('namespace')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('fo')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PsiElement(LITERAL)('"http://www.w3.org/1999/XSL/Format"')
PsiWhiteSpace('\n')
NS_DECL
PsiElement(KEYWORD_NAMESPACE)('namespace')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('rx')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PsiElement(LITERAL)('"http://www.renderx.com/XSL/Extensions"')
PsiWhiteSpace('\n\n')
GRAMMAR_PATTERN
INCLUDE
PsiElement(KEYWORD_INCLUDE)('include')
PsiWhiteSpace(' ')
PsiElement(LITERAL)('"properties.rnc"')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Common content models used by content-bearing elements')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ****************************************************************************************')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('very-basic-inlines')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('character')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('external-graphic')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('instream-foreign-object')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('inline-container')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('leader')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('page-number')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('page-number-citation')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-toggle')
PsiWhiteSpace(' ')
PsiComment(SINGLE_LINE_COMMENT)('#MEMO: To be strict, we have to control that this element is a descendant of an fo:multi-case.')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('page-index')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('begin-index-range')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('end-index-range')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('#NOTE: An absolute-container can be treated both as block and as outline.')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('basic-blocks')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('block')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('block-container')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-and-caption')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('list-block')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('#NOTE: Unlike other out-of-lines fo:footnote can be used only in the context where inlines are permitted')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('out-of-lines-block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('before-float')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('side-float')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('absolute-container')
PsiWhiteSpace(' \n')
DEFINE
PsiElement(IDENTIFIER)('out-of-lines')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('footnote')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('out-of-lines-block')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# As a compromise for intricated inline content model prescribed by XSL FO spec')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# we define two types of inline content:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# first as restrictive as required by spec for descendants of an fo:leader or of an fo:inline')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# child of an fo:footnote (and for some other cases where we believe it is reasonable),')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# it permits inline level elements only, except for descendants of fo:inline-container;')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# second as loose as prescribed by spec for the general cases')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('basic-inlines-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('very-basic-inlines')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('basic-link-inline')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('inline-inline')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('bidi-override-inline')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('basic-inlines')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('very-basic-inlines')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('basic-link')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('inline')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('bidi-override')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# We have three content models for wrappers:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# first one allows inline content only (based on basic-inlines-inline described above);')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# second one requires block-level elements to be at the top of it;')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# third one is for mixed content (general case);')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('wrappers-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch-inline')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties-inline')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper-inline')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('retrieve-marker')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('wrappers-block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch-block')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties-block')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper-block')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('retrieve-marker')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('wrappers')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('retrieve-marker')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# We have two extended content models for inlines:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# first one is stricter, with inline elements only (exception for fo:inline-container descendants)')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# and with no outlines (actually they are bared in main.rnc anyway);')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# second one is loose, with all possible inlines and outlines.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# In general those content models corresponds very well with two possible contexts:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# block context and inline context')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('inlines-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
TEXT_PATTERN
PsiElement(KEYWORD_TEXT)('text')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('basic-inlines-inline')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrappers-inline')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('inlines')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
TEXT_PATTERN
PsiElement(KEYWORD_TEXT)('text')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('basic-inlines')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('out-of-lines')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrappers')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# Content model for blocks including block-level outlines')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('blocks')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('basic-blocks')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrappers-block')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('out-of-lines-block')
PsiWhiteSpace('\n')
PsiComment(SINGLE_LINE_COMMENT)('# Mixed content model - broadest one')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('mix')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('inlines')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('basic-blocks')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Element structure for content-bearing elements')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Block is the base element for all content areas. ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:block')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('block.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('block.content')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('block.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
GROUP_PATTERN
PsiElement(()('(')
PsiWhiteSpace(' ')
CHOICE
REF_PATTERN
PsiElement(IDENTIFIER)('initial-property-set')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiWhiteSpace(' ')
PsiElement())(')')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Block container')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#MEMO: We are forced to create separate element 'absolute-container' in order ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# to satisfy XSL FO spec requirements. Note that this is the *only* place where ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# properties really interfer with element-level structure (well, actually fo:float is the second place). ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# A separate fo:absolute-container is clearly necessary.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Absolutely possitioned block-container cannot contain markers and and outlines.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# It's behaviour is quite similar to the outline elements such as float.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' do not control absolutely positioned container restriction ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# (due to expressions that can result in absolute position)')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' also permits empty block-containers, that is against the spec.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Spec defines fo:block-container content as (%block;)+')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('absolute-container')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
NOT_ALLOWED_PATTERN
PsiElement(KEYWORD_NOTALLOWED)('notAllowed')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('absolute-container-real')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' \n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:block-container')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('absolute-container.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('absolute-container.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('absolute-container.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('block-container')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:block-container')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('block-container.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('block-container.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('block-container.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Inline elements')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Unicode bidi-override')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#MEMO: According to spec this element CAN have block level children except for the cases listed below:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> An fo:bidi-override that is a descendant of an fo:leader or of an fo:inline child ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> of an fo:footnote may not have block-level children, unless it has a nearer ancestor')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> that is an fo:inline-container.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# NOTE: This is contradictory to the description of fo:leader element (6.6.9. fo:leader) that ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# prohibits (some) block-level elements/outlines to be fo:leader descendants')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# no matter if they wrapped in any fo:inline-containers and fo:bidi-override.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# We have two models:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# first (restrictive) used by descendants of an fo:title, fo:leader or of an fo:inline child of an fo:footnote;')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# second (loose) as prescribed by spec for the general cases')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' believes that no block level elements should be allowed in this element in either way. ')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('bidi-override-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:bidi-override')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('bidi-override.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('bidi-override-inline.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('bidi-override-inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('inlines-inline')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('bidi-override')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:bidi-override')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('bidi-override.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('bidi-override.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('bidi-override.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Single character')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('character')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:character')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('character.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Initial property set specifies properties for one or more lines')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('initial-property-set')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:initial-property-set')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('initial-property-set.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' \n ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# External graphic')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('external-graphic')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:external-graphic')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('external-graphic.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# In-stream graphic')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('instream-foreign-object')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:instream-foreign-object')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('instream-foreign-object.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('any')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Inline')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#MEMO: This element used by content model that consists of inlines only')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# with exception for descendants of inline-container')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('inline-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:inline')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('inline.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('inline-inline.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('inline-inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('inlines-inline')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:inline')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('inline.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('inline.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# XSL> An fo:inline that is a child of an fo:footnote may not have block-level children.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> An fo:inline that is a descendant of an fo:leader or of the fo:inline child of ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> an fo:footnote may not have block-level children, unless it has a nearer ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> ancestor that is an fo:inline-container.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#NOTE: This definition is contradictory to the one of the fo:leader since latter prohibits')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# fo:inline-container as a descendant. But it's the definition of fo:leader that should be fixed')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# since content model described above is the only sane content model in the inline context.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# It should be the same for fo:bidi-override. However definition must be adjasted ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# in order to mention fo:title since this element is a typical inline. ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' believes that block elements are allowed here and thoroughly tests for ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# all those tricky exceptions. This behavior seems to be quite inconsisten with the ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# one regarding fo:bidi-override treatment.')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Inline container')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('inline-container')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:inline-container')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('inline-container.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('inline-container.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('inline-container.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Leader')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('leader')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:leader')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('leader.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('leader.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('leader.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('inlines-inline')
PsiElement(*)('*')
PsiWhiteSpace('\n')
PsiComment(SINGLE_LINE_COMMENT)('#MEMO: Following two lines used together with tricky redefinition in main.rnc ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# in order to prevent fo:leader nesting.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#leader.content = notAllowed')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#leader.content-real = inlines-inline*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('#MEMO: We use inline content model here which is consistent with ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# such elements as fo:inline child of fo:footnote. It allows blocks/outlines, but only as a ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# descendant of inline-container. XSL FO spec is quite uneven at this point (and should be fixed).')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# According to spec, this element can contain inline level elements and text, but')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> The content must not contain an fo:leader, fo:inline-container, fo:block-container,')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> fo:float, fo:footnote, or fo:marker either as a direct child or as a descendant.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# NOTE: XSL FO spec DO NOT prohibit blocks or tables as descendants of fo:leader!')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# NOTE: fo:leader constraints are contradictory to those of fo:inline since section "6.6.7. fo:inline" ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# states implicitly that there could be an fo:inline-container that is a descendent of fo:leader.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' respects these constraints partially: it prohibits fo:block-container as a descendant,')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# but permits fo:marker, fo:leader, fo:inline-container, fo:float, fo:footnote.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# It also prohibits use of fo:block as descendant.')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Page Number')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('page-number')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:page-number')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('page-number.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Page number citation')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('page-number-citation')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:page-number-citation')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('page-number-citation.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' \n ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Atomic elements for index ranges markup')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('begin-index-range')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('rx:begin-index-range')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('begin-index-range.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('end-index-range')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('rx:end-index-range')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('end-index-range.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Page number list - index entry')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('page-index')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('rx:page-index')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('page-index.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('page-index.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
PsiComment(SINGLE_LINE_COMMENT)('#MEMO: Currently page-index must contain at least one rx:index-item element, ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# empty content is allowed for backward compatibility.')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('page-index.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('index-item')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('index-item')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('rx:index-item')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('index-item.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Formatting objects for tables.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ****************************************************************************************')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Table & Caption is a wrapper to all the stuff pertinent to a')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# given table. It generates a block consisting of two subblocks:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# one for the caption, another one for the table itself. The')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# placement of these two blocks is controlled by the')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'caption-side' property: if caption-side="before"|"after" (or')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# their absolute orientation equivalents), the two blocks are')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# drawn one after another; if it is "start"|"end", then the')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# caption is displayed on the correspondent side of the table.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# In this case, the relative alignment of the two blocks is given')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# by the 'relative-align'/'display-align' property.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-and-caption')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-and-caption')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-and-caption.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' \n ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-and-caption.content')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-and-caption.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
OPTIONAL
REF_PATTERN
PsiElement(IDENTIFIER)('table-caption')
PsiElement(?)('?')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Table caption is an area container.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-caption')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-caption')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-caption.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-caption.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-caption.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace(' \n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# fo:table is the basic element for all tables. All the contents')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# placed inside it is distributed over a single rectangular grid')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# of rows and columns.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table.attlist')
PsiElement(,)(',')
PsiWhiteSpace('\n ')
REF_PATTERN
PsiElement(IDENTIFIER)('table.content')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace('\n ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('table-column')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace('\n ')
OPTIONAL
REF_PATTERN
PsiElement(IDENTIFIER)('table-header')
PsiElement(?)('?')
PsiElement(,)(',')
PsiWhiteSpace('\n ')
OPTIONAL
REF_PATTERN
PsiElement(IDENTIFIER)('table-footer')
PsiElement(?)('?')
PsiElement(,)(',')
PsiWhiteSpace('\n ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('table-body')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Table column specifies common properties to ascribe to all')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# cells in a column *or a group of columns*. Note that, if both')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'number-columns-repeated' and 'number-columns-spanned' exceed')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 1, the column counter is increased by 'number-columns-spanned'.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# it means that you only set properties for columns:')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'column-number'')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'column-number' + 'number-columns-spanned'')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'column-number' + 2 * 'number-columns-spanned'')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# and so on, leaving default properties for intermediate columns.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-column')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-column')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-column.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Table header, table footer, and table body are wrappers for')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# groups of rows. They contain either one or more fo:table-rows,')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# or one or more fo:table-cells; in the latter case, row breaks')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# are specified in the cells by 'starts-row'/'ends-row'.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# All these elements are identical both in the content structure')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# and in the attributes.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('row-group')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
GROUP_PATTERN
PsiElement(()('(')
CHOICE
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('table-row')
PsiElement(+)('+')
PsiWhiteSpace(' ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('table-cell')
PsiElement(+)('+')
PsiElement())(')')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-header')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-header')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-header.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-header.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-header.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('row-group')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('table-footer')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-footer')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-footer.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-footer.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-footer.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('row-group')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('table-body')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-body')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-body.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-body.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-body.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('row-group')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Table row.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-row')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-row')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-row.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-row.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-row.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('table-cell')
PsiElement(+)('+')
PsiWhiteSpace('\n')
PsiComment(SINGLE_LINE_COMMENT)('#MEMO: We are more strict here, so this note is about 'Folint': ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' permits empty fo:table-row, that is against the spec.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL FO spec defines fo:table-row content as (table-cell+)')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Table cell.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-cell')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:table-cell')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('table-cell.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('table-cell.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('table-cell.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace('\n')
PsiComment(SINGLE_LINE_COMMENT)('#MEMO: We are more strict here, so this note is about 'Folint':')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' permits empty table-cells that is against the spec. Spec defines fo:table-cell')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# content as (%block;)+')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Note that 'Folint' is quite consistent regarding this matter - it simillary allows empty ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# block-containers and table-rows')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Formatting objects for lists.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# List block is a block, with some extra features to control the')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# disposition of list items.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('list-block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:list-block')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('list-block.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('list-block.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('list-block.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('list-item')
PsiElement(+)('+')
PsiWhiteSpace(' \n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# List item is a coupling of item label and item body.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('list-item')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:list-item')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('list-item.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' \n ')
REF_PATTERN
PsiElement(IDENTIFIER)('list-item.content')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('list-item.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('list-item-label')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('list-item-body')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# List item label and list item body')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('list-item-label')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:list-item-label')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('list-item-label.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('list-item-label.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('list-item-label.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('list-item-body')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:list-item-body')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('list-item-body.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('list-item-body.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('list-item-body.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace('\n')
PsiComment(SINGLE_LINE_COMMENT)('#MEMO: We are more strict here, so this note is about 'Folint':')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' permits empty fo:list-item-label/body, that is clearly the spec.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Spec defines fo:list-item-label/body content as (%block;)+')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('#****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Out-of-lines.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Floats and footnotes resemble containers. Accordingly, we treat')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# them as block sequences.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#MEMO: We do not allows absolutely positioned container as an outline descendant.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' is loose here - it do not check this condition.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#MEMO: We are forced to create two types of floats: side-floats and before-floats')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# because they have different restrictions (side-floats can appear in static content, ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# before-floats can't bear 'clear' property)')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# NOTE: 'Folint' does not allows any floats inside absolutely positioned containers too.')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('side-float')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
NOT_ALLOWED_PATTERN
PsiElement(KEYWORD_NOTALLOWED)('notAllowed')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('side-float-real')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:float')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('side-float.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('float.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('before-float')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
NOT_ALLOWED_PATTERN
PsiElement(KEYWORD_NOTALLOWED)('notAllowed')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('before-float-real')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:float')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('before-float.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('float.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('float.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# XSL> It is an error if the fo:footnote occurs as a descendant of a flow that is not assigned')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> to a region-body, or of an fo:block-container that generates absolutely positioned areas.')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('footnote')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
NOT_ALLOWED_PATTERN
PsiElement(KEYWORD_NOTALLOWED)('notAllowed')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('footnote-real')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:footnote')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('footnote.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('footnote.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
PsiComment(SINGLE_LINE_COMMENT)('# XSL> An fo:inline that is a child of an fo:footnote may not have block-level children.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> An fo:inline that is a descendant of an fo:leader or of the fo:inline child of ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> an fo:footnote may not have block-level children, unless it has a nearer ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# XSL> ancestor that is an fo:inline-container.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# We do check here that first inline have no block-level children/descendants unlless ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# they are wrapped into an inline-container.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# 'Folint' does the same.')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('footnote.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('inline-inline')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('footnote-body')
PsiWhiteSpace(' \n\n')
DEFINE
PsiElement(IDENTIFIER)('footnote-body')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:footnote-body')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('footnote-body.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('footnote-body.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('footnote-body.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Simple link. From the formatting point of view, it's nothing')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# but a regular inline sequence.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# This elment is for separate 'inline' content model')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('basic-link-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:basic-link')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('basic-link.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('basic-link-inline.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('basic-link-inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('inlines-inline')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('basic-link')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:basic-link')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('basic-link.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('basic-link.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('basic-link.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Wrappers and Markers.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Wrapper. This may be useful but it seriously complicates validation of')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# content models for blocks and inlines.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#There are 3 different kind of wrappers for different contexts')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('wrapper-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:wrapper')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper-inline.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('wrapper-inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('inlines-inline')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('wrapper-block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:wrapper')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper-block.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('wrapper-block.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('wrapper')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:wrapper')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('wrapper.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('marker')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Marker.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('marker')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
NOT_ALLOWED_PATTERN
PsiElement(KEYWORD_NOTALLOWED)('notAllowed')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('marker-real')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:marker')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('marker.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('marker.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('marker.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Marker retrieval.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# We are more strict here making retrieve-class-name attribute a mandatory, ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# but marker with no retrieve-class-name is meaningless.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('retrieve-marker')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
NOT_ALLOWED_PATTERN
PsiElement(KEYWORD_NOTALLOWED)('notAllowed')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('retrieve-marker-real')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:retrieve-marker')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('retrieve-marker.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Multistate stuff.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# All those elements are practically unused and XSL content model invloved is ')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# intricated. Therefor validation is not absolutely strict here.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ****************************************************************************************')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Switch. This is a pure logical operator; no formatting may be')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# conveyed through it.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#Thera are 3 different kind of multi-switch (because there are 3 kinds of multi-case)')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-switch-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-switch')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch-inline.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-switch-inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case-inline')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('multi-switch-block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-switch')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch-block.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-switch-block.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case-block')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('multi-switch')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-switch')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-switch.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-switch.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case')
PsiElement(+)('+')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Single case. Block-level formatting may be conveyed.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#Thera are 3 different kind of multi-case (similar to fo:wrapper)')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-case-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-case')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case-inline.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-case-inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('inlines-inline')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('multi-case-block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-case')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case-block.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-case-block.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('blocks')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
DEFINE
PsiElement(IDENTIFIER)('multi-case')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-case')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-case.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-case.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Toggle. This is a typical inline.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#MEMO: This element is only permitted as a descendant of an fo:multi-case.')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-toggle')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-toggle')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-toggle.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-toggle.content')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-toggle.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
ZERO_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('mix')
PsiElement(*)('*')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Multi-properties.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#Thera are 3 different kind of multi-properties (similar to fo:wrapper)')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-properties-inline')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-properties')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties-inline.content')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-properties-inline.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-property-set')
PsiElement(+)('+')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper-inline')
PsiWhiteSpace(' \n\n')
DEFINE
PsiElement(IDENTIFIER)('multi-properties-block')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-properties')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties-block.content')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-properties-block.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-property-set')
PsiElement(+)('+')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper-block')
PsiWhiteSpace(' \n\n')
DEFINE
PsiElement(IDENTIFIER)('multi-properties')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-properties')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('multi-properties.content')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-properties.content')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace(' ')
SEQUENCE
ONE_OR_MORE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-property-set')
PsiElement(+)('+')
PsiElement(,)(',')
PsiWhiteSpace(' ')
REF_PATTERN
PsiElement(IDENTIFIER)('wrapper')
PsiWhiteSpace(' \n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# Multi property set.')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('multi-property-set')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
NAME
PsiElement(PREFIXED_NAME)('fo:multi-property-set')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
SEQUENCE
REF_PATTERN
PsiElement(IDENTIFIER)('multi-property-set.attlist')
PsiElement(,)(',')
PsiWhiteSpace(' ')
EMPTY_PATTERN
PsiElement(KEYWORD_EMPTY)('empty')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiWhiteSpace('\n\n')
PsiComment(SINGLE_LINE_COMMENT)('# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# "Match anything" definition, used by fo:instream-foreign-object')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n# ===============================================================')
PsiComment(SINGLE_LINE_COMMENT_CONTINUE)('\n#MEMO: Should we exclude elements which belongs to fo: namespace?')
PsiWhiteSpace('\n')
DEFINE
PsiElement(IDENTIFIER)('any')
PsiWhiteSpace(' ')
PsiElement(=)('=')
PsiWhiteSpace('\n ')
ZERO_OR_MORE
GROUP_PATTERN
PsiElement(()('(')
CHOICE
PATTERN
PsiElement(KEYWORD_ELEMENT)('element')
PsiWhiteSpace(' ')
NAME_CLASS
PsiElement(*)('*')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace('\n ')
SEQUENCE
ZERO_OR_MORE
PATTERN
PsiElement(KEYWORD_ATTRIBUTE)('attribute')
PsiWhiteSpace(' ')
NAME_CLASS
PsiElement(*)('*')
PsiWhiteSpace(' ')
PsiElement({)('{')
PsiWhiteSpace(' ')
TEXT_PATTERN
PsiElement(KEYWORD_TEXT)('text')
PsiWhiteSpace(' ')
PsiElement(})('}')
PsiElement(*)('*')
PsiElement(,)(',')
PsiWhiteSpace('\n ')
REF_PATTERN
PsiElement(IDENTIFIER)('any')
PsiWhiteSpace('\n ')
PsiElement(})('}')
PsiWhiteSpace('\n ')
PsiElement(|)('|')
PsiWhiteSpace(' ')
TEXT_PATTERN
PsiElement(KEYWORD_TEXT)('text')
PsiElement())(')')
PsiElement(*)('*')