[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xml-dev] interleave algorithm?
- From: Kohsuke KAWAGUCHI <email@example.com>
- To: Gary Stephenson <firstname.lastname@example.org>, email@example.com
- Date: Tue, 16 Oct 2001 18:29:54 -0700
> I managed to cobble together a validating XML parser ( in Xbase++ ) without
> much difficulty by modelling classes for each of the different types of
> content models, and compiling the DTD into a list of instances of these
> classes . Roughly, content-model classes have validate methods that accept
> as their single parameter the dom element to be validated. An element
> validates itself by first validating all its child elements, and then calling
> its content model's validate method. I assume (but am not entirely sure)
> that in fact I have constructed a sort of finite automaton, but I had no
> theoretical conception in this regard whilst programming it.
I'm guessing that the strategy you employed is known as "the back track
There is an implementation of TREX (which is very similar to RELAX NG)
in Python at http://pytrex.sourceforge.net/ which uses the same
backtrack algorithm, so I think this would help you.
However, still I'm not sure how you implement it.
You wrote you pass a DOM element to the content model class (I guess
these are like Choice, Group, Interleave, ... ) But these content model
classes should accept (or reject) a sequence of DOM Nodes, instead of
one DOM element.