xml in mozilla

Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide1: 

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

Slide2: 

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

Slide3: 

Mozilla Story 1998 1999 2000

Slide4: 

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?

Slide5: 

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

Slide6: 

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…)

Slide7: 

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

Slide8: 

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

Slide9: 

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

Slide10: 

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

Slide11: 

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

Slide12: 

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>

Slide13: 

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...

Slide14: 

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/

Slide15: 

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>

Slide16: 

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