Deterministic Content Models ?

Liam R. E. Quin liamquin at
Sat Sep 12 06:31:58 BST 1998

On Fri, 11 Sep 1998, Philippe Le Hégaret wrote:

>  Is (paragraph*)* a determinist content model ?
>  If yes, so I think (a+ | b)* is a deterministic content model too.

Yes, they both are.

The constraint in section 3.3.1 of the XML spec is
    it is an error if an element in the document can match more
    than one occurrence of an element type in the content model.

Hence, a content model can only be non-deterministic in the XML sense
if it has a name that repeats.  For example,
    (a*, a*)
is non-deterministic, because the input <a> could match either "a*" in
the content model.  In the same way,
    (a+, b?, a+)
is bad because <a><a> could match the first "a+" or the first a+,
a missing b between the two elements, and the second <a/> could match
the second a+ in the content model.

Non-terminals are not an issue, so in your example of
although either * could be matched, * is not an element, so this is
still deterministic.

It's generally easier to ignore this error than it is to check it.

I hope this helps.


Liam Quin, GroveWare Inc., Toronto;  The barefoot agitator
l i a m q u i n     at    i n t e r l o g    dot   c o m

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list