xml in mozilla

Category: Entertainment

Presentation Description

No description available.


Presentation Transcript


XML in the Mozilla Architecture Shalabh Chaturvedi Persistent Systems Pvt Ltd Pune shalabh@pspl.co.in


Outline What is Mozilla? XUL (XML Based User Interface Language) RDF (Resource Description Format) XUL Templates - Mixing XUL and RDF Possibilities


Mozilla Story 1998 1999 2000


Mozilla Design Front end or Chrome drawn using GUI toolkits platform specific Web page drawn by a layout engine A web browser Bitter truth: maintaining front ends on multiple platforms is painful What if : Code could be written only once? Creating GUIs could be as simple as web pages? The layout engine also rendered the chrome?


Specification for the user interface What is XUL ? gecko A Graphical User Interface The layout engine


XUL Elements <menubar>, <menu>, <menupopup>, <menuitem> <tabcontrol>, <tab>, <tabpanel>, <tabbox> Elements exist for all common UI widgets Look and feel can be changed using CSS Not yet a W3C Specification (many more…)


RDF Resource Description Framework Defines a data model for describing resources Suited to particular kind of information Data Model Resources Properties Statements XML Serialization Syntax


RDF Data Model Tintin Three statements about a resource ‘Tintin’ Snowy Capt Haddock Thomson Prof Calculus hasPet rdf:type hasFriends rdf:seq brown colourOfHair


Combining XUL and RDF RDF datasource : collection of RDF statements Within mozilla all data is represented as RDF datasources RDF in Mozilla XUL XUL Templates Defines the user interface Pull data from RDF datasources into XUL elements Generate XUL elements dynamically


The Big Picture Datasource (collection of rdf statements) XUL (with templates) mozilla Dynamic Content


XUL Templates A <template> <rule> <conditions> … <action> B C uri=“?x” D A B C (1) C (2) C (3) D Template Content produced Note: A, B, C and D are XUL elements


XUL Template Example <menu datasources="tintin.rdf" ref="urn:tintin"> <template> <rule> <conditions> <content uri="?uri" /> <triple subject="?uri" predicate="http://my.homepage.com/tintin#hasFriends" object="?friends" /> <member container="?friends" child="?friend" /> <triple subject="?friend" predicate="http://my.homepage.com/tintin#name" object="?name" /> </conditions> <action> <menupopup> <menuitem uri="?friend" value="?name" /> </menupopup> </action> </rule> </template> </menu>


Possibilities Cross platform distributed applications The big XML advantage - interoperability Examples existing today Mozilla web browser, mail client, editor XMLTerm (terminal) MozInvaders (space invaders game) ZopeStudio (management console) many more...


References Mozilla and applications http://www.mozilla.org/ http://dmoz.org/ (search for ‘XUL’) http://www.mozdev.org/ XUL http://www.mozilla.org/docs/ http://www.mozilla.org/xpfe/xulref/ RDF http://www.w3.org/RDF/ http://www.mozilla.org/rdf/doc/ http://entwickler.com/mozine/doc/rdf-slides/


RDF-XML Example <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:my="http://my.homepage.com/tintin#” > <rdf:Description about="urn:tintin"> <my:hasFriends> <rdf:Seq> <rdf:li><rdf:Description my:name=”Capt Haddock" /></rdf:li> <rdf:li><rdf:Description my:name=”Thomson" /></rdf:li> <rdf:li><rdf:Description my:name=”Prof Calculus" /></rdf:li> </rdf:Seq> </nc:hasFriends> </rdf:Description> </rdf:RDF>


More about XUL Easy and fast development Scriptable using DOM Overlays Templates for dynamic content XBL for extensibility Cross platform

authorStream Live Help