Name
pattern&pattern —
interleave
pattern
Synopsis
pattern
(“&”pattern
)+
Restrictions
pattern
May be included in
(pattern)
, attribute
,
datatypeName param exceptPattern
,
element
, list
,
mixed
, pattern&pattern
,
pattern*
, pattern+
,
pattern,pattern
, pattern?
,
pattern|pattern
XML syntax equivalent
interleave
Description
The interleave
pattern
“interleaves” subpatterns; it
allows their leaves to be mixed in any relative order.
interleave
is about more than defining unordered
groups, as can be seen in the following example. Consider element
a
and the ordered group of element
b1
and b2
. An unordered group
of these two patterns allows only element a
followed by elements b1
and b2
or elements b1
and b2
followed
by element a
. An interleave
of
these two patterns does allow these two combinations but also element
b1
followed by a
followed by
b2
: a combination in which element
a
has been interleaved between elements
b1
and b2
.
The interleave
behavior is the behavior applied to
attribute
patterns even when they are embedded in
(ordered) group
patterns. The reason for this is
that XML 1.0 specifies that the relative order of attributes
isn’t significant.
Another case where interleave
patterns are often
needed is to describe mixed-content models: content models where
text
is interleaved between elements. A shortcut
(the mixed
pattern) has been defined for this
case.
Any number of patterns may be combined using the
&
operator when using this construct; however,
different operators (,|
&
) can’t be mixed ...
Get RELAX NG now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.