Upload
dominion
View
2.613
Download
0
Tags:
Embed Size (px)
Citation preview
AD110AD110DXL: Working with Domino Data in XMLDXL: Working with Domino Data in XML
Ned Batchelder, Iris AssociatesNed Batchelder, Iris AssociatesDave Schlesinger, Lotus DevelopmentDave Schlesinger, Lotus Development
AgendaAgenda
What is DXL?What is DXL?Design principlesDesign principlesStatusStatusToolsToolsDemosDemosQuestionsQuestions
What is DXL?What is DXL?
Domino XML LanguageDomino XML LanguageDomino data expressed in XMLDomino data expressed in XMLA universal format for Domino dataA universal format for Domino data
<document form='Memo'><document form='Memo'><document form='Memo'><document form='Memo'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'>
<created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created></noteinfo></noteinfo></noteinfo></noteinfo><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Sent'><item name='Sent'><item name='Sent'><item name='Sent'>
<datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'><run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!
</par></richtext></item></par></richtext></item></par></richtext></item></par></richtext></item></document></document></document></document>
Why DXL?Why DXL?
XML is good for describing informationXML is good for describing informationXML is easy to work withXML is easy to work with
widely available toolswidely available toolspowerful declarative toolspowerful declarative tools
XML schemas are "APIs" to dataXML schemas are "APIs" to dataXML is a good way to work with Domino data: DXLXML is a good way to work with Domino data: DXL
DXL UsesDXL Uses
ExportExportImportImportModificationModificationExternal ToolExternal Tool
Use: ExportUse: Export
DXLNSF
Data exported from NSF as DXLData exported from NSF as DXL
DominoDomino
The World
Use: ExportUse: Export
DXLNSF
XSLT
XSL
XML orHTML
Data exported from NSF as DXLData exported from NSF as DXLOptionally transformed via XSLTOptionally transformed via XSLT
DominoDomino
The World
Use: ImportUse: Import
External DXL imported into NSFExternal DXL imported into NSF
DXL NSFThe World
DominoDomino
Use: ImportUse: Import
External DXL imported into NSFExternal DXL imported into NSFCould have been transformed from other XML Could have been transformed from other XML
DXL NSF
XSL
XMLThe World XSLT
DominoDomino
Use: ModificationUse: Modification
Data exported to DXLData exported to DXLDXL modified (in whatever way you like)DXL modified (in whatever way you like)Data imported back into NSFData imported back into NSF
DXL
NSF
DXL
Modification
Use: External ToolUse: External Tool
Third-party tool uses DXL to create Domino Third-party tool uses DXL to create Domino contentcontent
NSF
DXL
DXL
Tool
Use: External ToolUse: External Tool
Third-party tool uses DXL to create Domino Third-party tool uses DXL to create Domino contentcontentPrivate information can be stored as wellPrivate information can be stored as well
NSF
DXL
DXL
Tool
DXL GoalsDXL Goals
CompleteCompleteLosslessLosslessApproachableApproachableTransformableTransformableExtensibleExtensible
Goal: CompleteGoal: Complete
Express all Domino dataExpress all Domino datadocumentsdocumentsdesign elementsdesign elementseverything elseeverything else
Goal: LosslessGoal: Lossless
Preserve as much information as possiblePreserve as much information as possibleGet Domino data out to the worldGet Domino data out to the worldGet data into DominoGet data into DominoEnable round-tripping through XMLEnable round-tripping through XML
Goal: ApproachableGoal: Approachable
A Domino developer would be able to read (and A Domino developer would be able to read (and write) itwrite) itYou don't have to worry about "Domino secrets"You don't have to worry about "Domino secrets"No more specially-named items!!No more specially-named items!!
Goal: TransformableGoal: Transformable
Should be transformable with XSLTShould be transformable with XSLTinto other XMLinto other XMLinto other DXLinto other DXLinto HTMLinto HTML
Goals: ExtensibleGoals: Extensible
Third-party tools should be able to round-trip Third-party tools should be able to round-trip through Dominothrough DominoFuture features should be accommodatedFuture features should be accommodated
DXL Non-GoalsDXL Non-Goals
DXL cannot be directly displayed in a browserDXL cannot be directly displayed in a browserit isn't HTMLit isn't HTML
DXL is not stored in NSFDXL is not stored in NSFit isn't on-diskit isn't on-disk
Domino app semantics won't be built with XSLDomino app semantics won't be built with XSLit doesn't replace HTTPit doesn't replace HTTP
DXL Challenges: Levels of RepresentationDXL Challenges: Levels of Representation
An appointment...An appointment......is really a mail memo......is really a mail memo......which is actually a document......which is actually a document......which is implemented as a note....which is implemented as a note.So: <appointment> or <memo> or <document> or So: <appointment> or <memo> or <document> or <note>?<note>?Answer: <document>Answer: <document>
DXL Challenges: Rich TextDXL Challenges: Rich Text
Needs to be understandableNeeds to be understandableNeeds to represent all of Domino rich textNeeds to represent all of Domino rich textUse HTML?Use HTML?Encode CD records?Encode CD records?Answer: our own tag languageAnswer: our own tag language
<document form='Memo'><document form='Memo'><document form='Memo'><document form='Memo'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'>
<created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created></noteinfo></noteinfo></noteinfo></noteinfo><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Sent'><item name='Sent'><item name='Sent'><item name='Sent'>
<datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'><run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!
</par></richtext></item></par></richtext></item></par></richtext></item></par></richtext></item></document></document></document></document>
<document form='Memo'><document form='Memo'><document form='Memo'><document form='Memo'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'>
<created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created></noteinfo></noteinfo></noteinfo></noteinfo><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Sent'><item name='Sent'><item name='Sent'><item name='Sent'>
<datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'><run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!
</par></richtext></item></par></richtext></item></par></richtext></item></par></richtext></item></document></document></document></document>
<document form='Memo'><document form='Memo'><document form='Memo'><document form='Memo'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'>
<created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created></noteinfo></noteinfo></noteinfo></noteinfo><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Sent'><item name='Sent'><item name='Sent'><item name='Sent'>
<datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'><run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!
</par></richtext></item></par></richtext></item></par></richtext></item></par></richtext></item></document></document></document></document>
<document form='Memo'><document form='Memo'><document form='Memo'><document form='Memo'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'>
<created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created></noteinfo></noteinfo></noteinfo></noteinfo><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Sent'><item name='Sent'><item name='Sent'><item name='Sent'>
<datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'><run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!
</par></richtext></item></par></richtext></item></par></richtext></item></par></richtext></item></document></document></document></document>
<document form='Memo'><document form='Memo'><document form='Memo'><document form='Memo'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'>
<created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created></noteinfo></noteinfo></noteinfo></noteinfo><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Sent'><item name='Sent'><item name='Sent'><item name='Sent'>
<datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'><run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!
</par></richtext></item></par></richtext></item></par></richtext></item></par></richtext></item></document></document></document></document>
<document form='Memo'><document form='Memo'><document form='Memo'><document form='Memo'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'><noteinfo unid='9C93469B4BFC2081852567AE00559882'>
<created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created><created><datetime>19991205T091500,00-04</datetime></created></noteinfo></noteinfo></noteinfo></noteinfo><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Subject'><text>XML Talk</text></item><item name='Sent'><item name='Sent'><item name='Sent'><item name='Sent'>
<datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><datetime dst='true'>19991205T091500,00-04</datetime></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='From'><text>Ned Batchelder</text></item><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext><item name='Body'><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'><run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!<run><font style='italic'>Please</run> come to my talk!
</par></richtext></item></par></richtext></item></par></richtext></item></par></richtext></item></document></document></document></document>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></richtext></body></par></richtext></body></par></richtext></body></par></richtext></body>
</form></form></form></form>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></richtext></body></par></richtext></body></par></richtext></body></par></richtext></body>
</form></form></form></form>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code></code></code></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></richtext></body></par></richtext></body></par></richtext></body></par></richtext></body>
</form></form></form></form>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code></code></code></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></richtext></body></par></richtext></body></par></richtext></body></par></richtext></body>
</form></form></form></form>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></richtext></body></par></richtext></body></par></richtext></body></par></richtext></body>
</form></form></form></form>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></par></par></par></richtext></body></richtext></body></richtext></body></richtext></body>
</form></form></form></form>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></richtext></body></par></richtext></body></par></richtext></body></par></richtext></body>
</form></form></form></form>
<form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><form name='Mini Doc' default='true' mailable='true'><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><noteinfo>...</noteinfo><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'><code event='windowtitle'>
<formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><formula>@If(@IsNewDoc; "New Memo"; Subject)</formula></code><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><actionbar><action .../>...</actionbar><body><richtext><body><richtext><body><richtext><body><richtext>
<par def='1'><par def='1'><par def='1'><par def='1'>Subject: Subject: Subject: Subject: <field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'><field type='text' kind='editable' name='Subject'>
<code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><code event='defaultvalue'><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code><formula>"New Document"</formula></code>
</field></field></field></field></par></richtext></body></par></richtext></body></par></richtext></body></par></richtext></body>
</form></form></form></form>
Status: SchemaStatus: Schema
In progessIn progessThe schema is not doneThe schema is not done
IT WILL CHANGE!!!IT WILL CHANGE!!!We want your feedbackWe want your feedback
Status: ProductStatus: Product
Some DXL is available todaySome DXL is available today?ReadViewEntries (5.02)?ReadViewEntries (5.02)Document.generateXML (5.03)Document.generateXML (5.03)Those parts of the schema won't change!Those parts of the schema won't change!
Lots more in future feature releasesLots more in future feature releases
ToolsTools
DXLExport: output DXL from NSF dataDXLExport: output DXL from NSF dataDXLImport: input DXL into NSFDXLImport: input DXL into NSFThese tools are available on an unsupported basis These tools are available on an unsupported basis nownow
notes.net/dxlnotes.net/dxlRun on 5.0Run on 5.0
DXLExportDXLExport
Translates NSF into DXLTranslates NSF into DXLHandles database, documents, rich text, forms, Handles database, documents, rich text, forms, viewsviewsUninterpreted stuff is dumped rawUninterpreted stuff is dumped rawExample:Example:
DXLExport db.nsf Memo -o memo.dxlDXLExport db.nsf Memo -o memo.dxl
DXLImportDXLImport
Imports DXL into NSFImports DXL into NSFHandles database, documents, rich textHandles database, documents, rich textExample:Example:
DXLImport docs.dxl -d db.nsfDXLImport docs.dxl -d db.nsf
DemosDemos
Design synopsisDesign synopsisAnalysisAnalysisDocument importDocument importGlobal search-and-replaceGlobal search-and-replace5.03 Book demo5.03 Book demo
Design Synopsis DemoDesign Synopsis Demo
Export design informationExport design informationTransform into a readable pageTransform into a readable page
NSFExport DXL LotusXSL HTML
XSLXSL
XSL
Design Analysis DemoDesign Analysis Demo
Export design informationExport design informationTransform into a reportTransform into a report
NSFExport DXL XSLT HTML
XSLXSL
XSL
Document Import Demo Document Import Demo
DocDemoXML
LotusXSL
HTML
Document Import DemoDocument Import Demo
Transform "DocDemo" XML to both DXL and Transform "DocDemo" XML to both DXL and HTML using LotusXSL (Xalan)HTML using LotusXSL (Xalan)
Using HTML only to view document outside of DominoUsing HTML only to view document outside of Domino
DXL
XSL
DXL DXLImport
Document Import Demo Document Import Demo (continued)(continued)
Import DXL into Domino using DXLImportImport DXL into Domino using DXLImport
NSF
Search and Replace DemoSearch and Replace Demo
Search and Replace DemoSearch and Replace Demo
Export Domino document to DXL using Export Domino document to DXL using DXLExportDXLExport
DXLDXLExportNSF
Modify DXL file using text editorModify DXL file using text editor
DXL'Text
EditorDXL
DXL' DXLImport
Search and Replace Demo Search and Replace Demo (continued)(continued)
Import modified DXL back into Domino using Import modified DXL back into Domino using DXLImportDXLImport
NSF
Books DemoBooks Demo
DXLNSF
XSLT
XSL
DominoDomino
Document mailed as XMLDocument mailed as XML
XML
The World
SummarySummary
DXL brings the power of XML to Domino DXL brings the power of XML to Domino informationinformationWe've already started putting it in the productWe've already started putting it in the productThe future will have much moreThe future will have much moreGive us your opinionsGive us your opinions
DownloadDownload
Get it from Get it from http://notes.net/dxlhttp://notes.net/dxlWhat you get:What you get:
DXL Schema (DTD)DXL Schema (DTD)DXLExport.exeDXLExport.exeDXLImport.exeDXLImport.exeSamplesSamples
Feedback in the notes.net ForumFeedback in the notes.net Forum
Questions?Questions?
Other sessions:Other sessions:AD101: The Wide Angle View of XML at LotusAD101: The Wide Angle View of XML at LotusAD109: Exploiting XML in DominoAD109: Exploiting XML in Domino
Visit the lab!Visit the lab!Download from Download from http://notes.net/dxlhttp://notes.net/dxl