Constrained Child Nodes  
<!ELEMENT name (child_node_regexp)[? | * | +]>

XML provides a simple regular-expression syntax that can be used to limit the order and number of child elements within a parent element. This language includes the following operators:

Operator

Meaning

Name

Matches an element of the given name

( )

Groups expressions for processing as sets of sequences (using the comma as a separator) or choices (using | as a separator)

?

Indicates that the preceding name or expression can occur zero or one times at this point in the document

*

Indicates that the preceding name or expression can occur zero or more times at this point in the document

+

Indicates that the preceding name or expression must occur one or more times at this point in the document