[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xml-dev] Ambiguous Content Model
- From: Rick Jelliffe <ricko@allette.com.au>
- To: xml-dev@lists.xml.org
- Date: Fri, 05 Oct 2001 04:55:42 +1000
From: "Mark Endicott" <MEndicott@telapoint.com>
> It appears to me that (A,B)*, A? isn't impossible. Wouldn't this lead to the
> following list of possible child elements?
>
> (no children)
> A
> A, B
> A, B, A
> A, B, A, B
> A, B, A, B, A
> ...
The ambiguity comes from a restriction which lets us use simple state machines
to implement parsing a content model: we read one element and decide which
state to go to next.
If the grammar at the top is implemented as a state machine, the first
transition has two A choices: this is ambiguity.
There are various things we could do: we could take the lexically first choice
in content model; we could rewrite the ambiguous content model into an
unambiguous one (often not difficult); we could allow a lookahead to the
possible states after the current As and then lookahead in the document
to the element after the current one; we could implement a weaker
validation which allows (a, b?)*.
Or we could give up the ambiguity restruction and implement a different kind of
validator: for example instead of a state machine, we could use a Petri net
and follow multiple paths.
Cheers
Rick Jelliffe