mixed — Pattern for mixed content models
element mixed { ( attribute ns { text }?, attribute datatypeLibrary { xsd:anyURI }?, attribute * - (rng:* | local:*) { text }* ), ( ( element * - rng:* { ... }* ) & ( element element { ... } | element attribute { ... } | element group { ... } | element interleave { ... } | element choice { ... } | element optional { ... } | element zeroOrMore { ... } | element oneOrMore { ... } | element list { ... } | element mixed { ... } | element ref { ... } | element parentRef { ... } | element empty { ... } | element text { ... } | element value { ... } | element data { ... } | element notAllowed { ... } | element externalRef { ... } | element grammar { ... } )+ ) }
attribute
, choice
,
define
, element
,
except
, group
,
interleave
, list
,
mixed
, oneOrMore
,
optional
, start
,
zeroOrMore
The mixed
pattern is a shortcut for
interleave
with an embedded
text
pattern. It describes unordered content
models in which a text node may be included before and after each
element. Note that RELAX NG doesn’t allow the
addition of constraints on these text nodes.
The limitations of interleave
apply here:
The mixed
pattern can’t be used
within a list
.
Elements within a mixed
pattern
can’t have overlapping name classes.
There must no other text
pattern in each set of
patterns combined by mixed
.
<element name="title"> <mixed> <attribute name="xml:lang"/> <zeroOrMore> <element name="a"> <attribute name="href"/> <text/> </element> </zeroOrMore> </mixed> </element>
This is equivalent to:
<element name="title"> <interleave> <text/> <group> <attribute name="xml:lang"/> <zeroOrMore> <element name="a"> <attribute name="href"/> <text/> </element> </zeroOrMore> </group> </interleave> </element>
which itself is equivalent to:
<element name="title"> <interleave> <text/> <attribute name="xml:lang"/> <zeroOrMore> <element name="a"> <attribute name="href"/> <text/> </element> </zeroOrMore> </interleave> </element>
13.59.108.176