Приветствую.
Возникла идея поупражняться с Reactive Extensions.
Напервый взгляд они отлично подойдут для валидации Xml файла который читается SAX парсером..
т.е. на выходе мы имеем кучу событий о том что элемент начался и закончился и т.п.
Первая мысль была написать кучу "Plan" типа
bookElementStarted.And(AuthorElementStarted).And(AutorNameStarted).Then...
типа правильный план...
И пришлось бы написать такие же неправильные планы...
Но возникли вопросы...
вот Xml
<Library>
<Book>
<Author>
<AutorName/>
</Autor>
</Book>
</Library>
Но ведь может быть и так...
<Library>
<Book>
<SomeStupidElement/>
<Author>
<AutorName/>
</Autor>
</Book>
</Library>
и я не хочу чтобы план который я описал вверху проходил такие xml данные.
т.е. простая последовательность событий не подходит... хотелось бы...
вставить условия что событие в плане должно быть первым обязательно... я не уверен что это возможно..
так как звучит бредово
bookElementStarted.Not(SomeStupidElementStarted).And(AuthorElementStarted).And(AutorNameStarted).
Сразу оговорюсь... в реальности я делаю валидатор не XML данных а у меня свой SAX подобный ридер дерева.
Но суть это не меняет.
Заранее спасибо за овтеты.
В качестве дополнения. Мне получается надо реализовать State машину на Rx. но не простую которая движется только вперед...