Sequences
In practice, a content specification that lists exactly
one child element is rare. Most elements contain either parsed
character data or (at least potentially) multiple child elements.
The simplest way to indicate multiple child elements is to separate
them with commas. This is called a sequence. It indicates that the
named elements must appear in the specified order. For example, this
element declaration says that a name
element must contain exactly one
first_name
child element followed
by exactly one last_name
child
element:
<!ELEMENT name (first_name, last_name)>
Given this declaration, this name
element is valid:
<name> <first_name>Madonna</first_name> <last_name>Cicconne</last_name> </name>
However, this one is not valid because it flips the order of two elements:
<name> <last_name>Cicconne</last_name> <first_name>Madonna</first_name> </name>
This element is invalid because it omits the last_name
element:
<name> <first_name>Madonna</first_name> </name>
This one is invalid because it adds a middle_name
element:
<name> <first_name>Madonna</first_name> <middle_name>Louise</middle_name> <last_name>Cicconne</last_name> </name>
Get XML in a Nutshell, 3rd Edition 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.