PageProcessor core

Release 1.0 - ...

The Xml processing architecture consists of a core Xml processor, Smartsite.Tools.Parsers.XmlProcessor which internally uses an XmlBookmarkReader class, based on XmlTextReader. The XmlProcessor class uses a subscriber model for Xml namespaces and tags.

The PageProcessor architecture

The Smartsite.Runtime.PageProcessor class is responsible for processing Smartsite XML (SXML). It uses the XmlProcessor class internally to process the Xml and uses its subscriber model to attach to the se namespace.

The only interface the XmlProcessor knows of when it processes Smartsite Xml, is the IModuleExec interface. The Module baseclass implements this interface explicitly.

When a tag in the se namespace is encountered, the subscriber is called and must return an object that supports the Smartsite.Tools.IModuleExec interface. When it's closing tag is found, or when the tag is self-closing, the Execute method id called on the given object. This controls the Module lifecycle. The outermost element's module (the RenderTemplate Module) thus lives the longest, and its state can be accessed by all child modules.