Zwecks Kompatibilität ist es notwendig, dass Inhaltsmodelle in Elementtyp-Deklarationen deterministisch sind.
SGML benötigt deterministische
Inhaltsmodelle (dort unzweideutig
(unambiguous)
genannt). XML-Prozessoren, die mit
SGML-Systemen konstruiert wurden, können
nicht-deterministische Inhaltsmodelle als Fehler anzeigen.
Zum Beispiel ist das Inhaltsmodell ((b, c) | (b, d)) nicht deterministisch, da der Parser bei einem gegebenen initialen b nicht wissen kann, welches b im Inhaltsmodell dazu passt, ohne vorauszuschauen und nachzusehen, welches Element dem b folgt. In diesem Fall können die zwei Referenzen auf b auf folgende Weise zu einer einzigen Referenz zusammengefasst werden: (b, (c | d)). Ein einleitendes b passt nun eindeutig zu einem Namen im Inhaltsmodell. Der Parser braucht nicht mehr vorauszuschauen, um zu sehen, was folgt. Sowohl c als auch d würden akzeptiert.
Etwas formaler: Ein endlicher Automat kann aus dem Inhaltsmodell unter Verwendung von Standardalgorithmen, etwa Algorithmus 3.5 in Abschnitt 3.9 von Aho, Sethi und Ullman [Aho/Ullman], konstruiert werden. In vielen solcher Algorithmen wird eine Folgemenge für jeden Zustand im regulären Ausdruck (d.h. jedes Blatt im Syntaxbaum des regulären Ausdrucks) konstruiert. Falls ein Zustand eine Folgemenge besitzt, in der mehr als ein Folgezustand mit dem gleichen Elementtyp-Namen markiert ist, dann ist das Inhaltsmodell fehlerhaft und kann als Fehler angezeigt werden.
Es existieren Algorithmen, die es erlauben, viele (aber nicht alle) nicht-deterministischen Inhaltsmodelle automatisch auf äquivalente deterministische Modelle zurückzuführen; siehe Brüggemann-Klein 1991 [Brüggemann-Klein].