RELAX NG by Eric van der Vlist will be published by O'Reilly & Associates (ISBN: 0596004214)

You are welcome to use our annotation system to give your feedback.


Name

mixed — Pattern for mixed content models

Class:

pattern

Synopsis

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 { ... }
      )+
   )
}

May be included in:

attribute, choice, define, element, except, group, interleave, list, mixed, oneOrMore, optional, start, zeroOrMore.

Compact syntax equivalent:

mixed

Description:

The mixed pattern is a shortcut for interleave with an embedded text pattern. It describes unordered content models where a text node may be included before and after each element. Note that RELAX NG does not allow the addition of constraints on these text nodes.

Restrictions:

The limitations of interleave apply here:

  • The mixed pattern cannot be used within a list.

  • Elements within a mixed pattern cannot have overlapping name classes.

  • There must no other text pattern in each set of patterns combined by mixed.

Example:

    <element name="title">
     <mixed>
      <attribute name="xml:lang"/>
      <zeroOrMore>
       <element name="a">
        <attribute name="href"/>
        <text/>
       </element>
      </zeroOrMore>
     </mixed>
    </element>
 
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>


			

Attributes:

datatypeLibrary

The datatypeLibrary attribute defines the default datatype library. The value of datatypeLibrary is inherited.

ns

The ns attribute defines the default namespace for the elements defined in a portion of a schema. The value of ns is inherited.


You are welcome to use our annotation system to give your feedback.
[Annotations for this page]
All text is copyright Eric van der Vlist, Dyomedea. During development, I give permission for non-commercial copying for educational and review purposes. After publication, all text will be released under the Free Software Foundation GFDL.