40 likes | 228 Views
Active sheet. <xcl:for-each …> <xcl:parse …>. XCL module. Unmarshaling phase. Separated data sets (thread safe). DataSet. DataSet. DataSet. DataSet. ForEachAction. Linked classes. Runtime phase. run(). ForEachAction. run(). ParseAction. run(). ParseAction. run(). Module
E N D
Active sheet <xcl:for-each …> <xcl:parse …> XCL module Unmarshaling phase Separated data sets (thread safe) DataSet DataSet DataSet DataSet ForEachAction Linked classes Runtime phase run() ForEachAction run() ParseAction run() ParseAction run()
Module request <exp:module target="exp" … PI <xcl:active-sheet … <exp:module target="cat" … Module request Catalog lookup <exp:module target="asl" … <exp:module target="xcl" … <cat:uri name="http://www.inria.fr/xml/active-tags/xcl"> <cat:entry key="exp:module" value="xcl/module.exp"/> <cat:entry key="asl:schema" value="xcl/schema.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-tags/exp"> <cat:entry key="exp:module" value="exp/module.exp"/> <cat:entry key="asl:schema" value="exp/schema.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-schema"> <cat:entry key="exp:module" value="asl/module.exp"/> <cat:entry key="asl:schema" value="asl/schema.asl"/> <cat:entry key="asl:schema" value="asl/messages.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-catalog"> <cat:entry key="exp:module" value="catalog/module.exp"/> <cat:entry key="asl:schema" value="catalog/schema.asl"/> </cat:uri> Module request PI Catalog lookup <asl:active-schema target="exp" … • Bootstrap sequence : • minimal EXP (internal) • full EXP module • Catalog module location <asl:active-schema target="cat" … <asl:active-schema target="asl" … <asl:active-schema target="xcl" …
<cat:catalog xmlns:cat="http://www.inria.fr/xml/active-catalog" xmlns:exp="http://www.inria.fr/xml/active-tags/exp" xmlns:asl="http://www.inria.fr/xml/active-schema"> <cat:group xml:base="file:///path/to/active-tags/core/"> <cat:uri name="http://www.inria.fr/xml/active-tags/xcl"> <cat:entry key="exp:module" value="xcl/module.exp"/> <cat:entry key="asl:schema" value="xcl/schema.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-tags/exp"> <cat:entry key="exp:module" value="exp/module.exp"/> <cat:entry key="asl:schema" value="exp/schema.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-schema"> <cat:entry key="exp:module" value="asl/module.exp"/> <cat:entry key="asl:schema" value="asl/schema.asl"/> <cat:entry key="asl:schema" value="asl/messages.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-datatypes"> <cat:entry key="exp:module" value="asl/types/adt/module.exp"/> </cat:uri> <cat:uri name="http://www.w3.org/2001/XMLSchema-datatypes"> <cat:entry key="exp:module" value="asl/types/xs/module.exp"/> </cat:uri> <cat:uri name="http://www.w3.org/XML/1998/namespace"> <cat:entry key="exp:module" value="asl/types/xml/module.exp"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-catalog"> <cat:entry key="exp:module" value="catalog/module.exp"/> <cat:entry key="asl:schema" value="catalog/schema.asl"/> </cat:uri> <cat:uri name="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <cat:entry key="exp:module" value="catalog/oasis-module.exp"/> <cat:entry key="asl:schema" value="catalog/oasis-schema.asl"/> </cat:uri> </cat:group> <cat:group xml:base="file:///path/to/active-tags/modules/"> <cat:uri name="http://www.inria.fr/xml/active-tags/io"> <cat:entry key="exp:module" value="io/module.exp"/> <cat:entry key="asl:schema" value="io/schema.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-tags/serialize"> <cat:entry key="exp:module" value="serialize/module.exp"/> <cat:entry key="asl:schema" value="serialize/schema.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-tags/sys"> <cat:entry key="exp:module" value="sys/module.exp"/> <cat:entry key="asl:schema" value="sys/schema.asl"/> </cat:uri> <cat:uri name="http://www.inria.fr/xml/active-tags/rdbms"> <cat:entry key="exp:module" value="rdbms/module.exp"/> <cat:entry key="asl:schema" value="rdbms/schema.asl"/> </cat:uri> </cat:group> </cat:catalog>
Active tag <acme:foo> <exp:module target="acme"> <exp:element name="foo"... <asl:schema target="acme"> <asl:element name="foo"... bind Module Extensibility Active Schema validate bind supply validate supply Active Catalog <cat:catalog> <cat:uri name="http://acme.com"...