the openjade project. xmldev 99 conference didier ph martin talva corporation. openjade founder,...
TRANSCRIPT
The OpenJade Project.The OpenJade Project.
XMLDev 99 conferenceXMLDev 99 conference
Didier PH MartinDidier PH MartinTalva Corporation. OpenJade founder, lead. Talva Corporation. OpenJade founder, lead.
AgendaAgenda
OriginsOrigins OpenJade todayOpenJade today GoalsGoals OpenJade ArchitectureOpenJade Architecture OpenJade conceptsOpenJade concepts RelationshipsRelationships DSSSL Next generationDSSSL Next generation
OriginsOrigins
Based on Jade created by James Based on Jade created by James ClarkClark
Given to the DSSSL user group by Given to the DSSSL user group by JamesJames
A development team formed from A development team formed from the DSSSL user communitythe DSSSL user community
OpenJade todayOpenJade today A growing development teamA growing development team Is a DSSSL engine, but we have no Is a DSSSL engine, but we have no
problems to use the code base for problems to use the code base for mixed DSSSL/XSL implementations. mixed DSSSL/XSL implementations. Interested?Interested?
Is C++ based.Is C++ based. We are documenting the internalsWe are documenting the internals We are implementing the missing We are implementing the missing
parts we think are importantparts we think are important
If very fast…and is improvingIf very fast…and is improving
OpenJade todayOpenJade today
An international design and An international design and development teamdevelopment team SwedenSweden GermanyGermany IsraelIsrael USAUSA CanadaCanada
We need more help. Interested?
OpenJade wants you
OPenJade TodayOPenJade Today
Special projectsSpecial projects BraiFo (a Braille Formatter)BraiFo (a Braille Formatter) Template experimentTemplate experiment
Several Web Site using OpenJade Several Web Site using OpenJade to generate HTML pages from XMLto generate HTML pages from XML
Publishers using OpenJade to Publishers using OpenJade to format SGML/XML documents into format SGML/XML documents into printed formats.printed formats.
OpenJade TodayOpenJade Today
What we learnedWhat we learned We should not try to create constructs We should not try to create constructs
better expressed by procedural better expressed by procedural language (resist to the temptation of language (resist to the temptation of putting everything in tags simply putting everything in tags simply because we have an XML/SGML because we have an XML/SGML parser)parser)
Our home pageOur home page
http://www.netfolder.com/DSSSLhttp://www.netfolder.com/DSSSL
We will move toWe will move to
http://www.openjade.orghttp://www.openjade.org
GoalsGoals
Improve OpenJade XML supportImprove OpenJade XML support Document, document, documentDocument, document, document Cooperate with different Cooperate with different
platforms/toolkitsplatforms/toolkits Offer APIsOffer APIs Make it more accessibleMake it more accessible
OpenJade architectureOpenJade architecture
SGML/XML parser
Grove engine
Scheme engineScript languages JavaScript, PerlScript, PythonScript, VBScript
XSL engine?
API
API
MIF RTF HTML Tex PDF SGML XML
API
OpenJade architectureOpenJade architecture
SGML/XML parser
Grove engine
Scheme engineScript languages JavaScript, PerlScript, PythonScript, VBScript
XSL engine?
API
API
MIF RTF HTML Tex PDF SGML XML
API
OpenJade ArhitectureOpenJade Arhitecture
C++ basedC++ basedExpat (the fatest)Expat (the fatest)MicrosoftMicrosoft
Java basedJava based IBMIBMDataChannelDataChannelOthers…Others…
SGML /XML Parser interface
DOM based parsers are, in some ways, simplified GROVE
engines.
Goal? interface with DOM based parsers
OpenJade ArchitectureOpenJade Architecture
Goal:Goal: Link for more sophisticated Grove EnginesLink for more sophisticated Grove Engines
Goal: publish an API for Grove/DOM interfacing
CORBA IDL, DCOM IDL.
OpenJade architectureOpenJade architecture
SGML/XML parser
Grove engine
Scheme engineScript languages JavaScript, PerlScript, PythonScript, VBScript
XSL engine?
API
API
MIF RTF HTML Tex PDF SGML XML
API
OpenJade ArchitectureOpenJade Architecture
Goal:Goal: Add new SGML/XML processing Add new SGML/XML processing
languageslanguages Add incoming and outgoing Add incoming and outgoing
SGML/XML processingSGML/XML processing CandidatesCandidates
Xscripts (rule based language using Xscripts (rule based language using VBScript, JavaScript, PerlScrip, Python VBScript, JavaScript, PerlScrip, Python Script languagesScript languages
XSL (MITRE C++ engine?)XSL (MITRE C++ engine?) Next generation DSSSLNext generation DSSSL
OpenJade architectureOpenJade architecture
SGML/XML parser
Grove engine
Scheme engineScript languages JavaScript, PerlScript, PythonScript, VBScript
XSL engine?
API
API
MIF RTF HTML Tex PDF SGML XML
API
OpenJade ArchitectureOpenJade Architecture
FormattersFormatters A rich collection of FormattersA rich collection of Formatters
MIFMIF RTFRTF SGMLSGML XMLXML HTML+CSSHTML+CSS PDFPDF FOTFOT
Add new onesAdd new ones
OpenJade ConceptsOpenJade Concepts
Collection of ObjectsCollection of Objects Visual ObjectsVisual Objects
A visual layout model with Flow A visual layout model with Flow based layout (absolute positioning based layout (absolute positioning is the next step).is the next step).
Aural ObjectsAural Objects Tactile ObjectsTactile Objects
Objects accessible from different Objects accessible from different expression languagesexpression languages
Rule based processingRule based processing
RelationshipsRelationships
Linux Communities and ISVsLinux Communities and ISVs Debian LinuxDebian Linux SUSE Linux SUSE Linux Red Hat?Red Hat? NetFolder (The SGL/XML Kit)NetFolder (The SGL/XML Kit)
DSSSL Next generationDSSSL Next generation
First StepFirst Step Assemble the knowledge gained in the Assemble the knowledge gained in the
last five 5 yearslast five 5 years Integrate new powerful concept such Integrate new powerful concept such
as:as: Template based rulesTemplate based rules New addressing and queries New addressing and queries
models and languages models and languages
Base our design on a model not on Base our design on a model not on a particular language.a particular language.
DSSSL The Next generationDSSSL The Next generation
Keep The actual featuresKeep The actual features Backward compatibilityBackward compatibility
Start the process from the actual Start the process from the actual OpenJade Community.OpenJade Community.
Make a DSSSL 2 proposal to the Make a DSSSL 2 proposal to the ISO community.ISO community.
OpenJade Next generationOpenJade Next generation
What we learnedWhat we learned We are moving from Object oriented We are moving from Object oriented
processing to data flow processingprocessing to data flow processing We transform data into different kind We transform data into different kind
of objects/different models.of objects/different models. We have to make explicit the model We have to make explicit the model
supported by a transform enginesupported by a transform engine The model should be independent of a The model should be independent of a
particular languageparticular language