54
AD110 AD110 DXL: Working with Domino Data in XML DXL: Working with Domino Data in XML Ned Batchelder, Iris Associates Ned Batchelder, Iris Associates Dave Schlesinger, Lotus Development Dave Schlesinger, Lotus Development

DXL: Working with Domino Data in XML

Embed Size (px)

Citation preview

Page 1: DXL: Working with Domino Data in XML

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

Page 2: DXL: Working with Domino Data in XML

AgendaAgenda

What is DXL?What is DXL?Design principlesDesign principlesStatusStatusToolsToolsDemosDemosQuestionsQuestions

Page 3: DXL: Working with Domino Data in XML

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

Page 4: DXL: Working with Domino Data in XML

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

Page 5: DXL: Working with Domino Data in XML

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

Page 6: DXL: Working with Domino Data in XML

DXL UsesDXL Uses

ExportExportImportImportModificationModificationExternal ToolExternal Tool

Page 7: DXL: Working with Domino Data in XML

Use: ExportUse: Export

DXLNSF

Data exported from NSF as DXLData exported from NSF as DXL

DominoDomino

The World

Page 8: DXL: Working with Domino Data in XML

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

Page 9: DXL: Working with Domino Data in XML

Use: ImportUse: Import

External DXL imported into NSFExternal DXL imported into NSF

DXL NSFThe World

DominoDomino

Page 10: DXL: Working with Domino Data in XML

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

Page 11: DXL: Working with Domino Data in XML

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

Page 12: DXL: Working with Domino Data in XML

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

Page 13: DXL: Working with Domino Data in XML

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

Page 14: DXL: Working with Domino Data in XML

DXL GoalsDXL Goals

CompleteCompleteLosslessLosslessApproachableApproachableTransformableTransformableExtensibleExtensible

Page 15: DXL: Working with Domino Data in XML

Goal: CompleteGoal: Complete

Express all Domino dataExpress all Domino datadocumentsdocumentsdesign elementsdesign elementseverything elseeverything else

Page 16: DXL: Working with Domino Data in XML

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

Page 17: DXL: Working with Domino Data in 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!!

Page 18: DXL: Working with Domino Data in XML

Goal: TransformableGoal: Transformable

Should be transformable with XSLTShould be transformable with XSLTinto other XMLinto other XMLinto other DXLinto other DXLinto HTMLinto HTML

Page 19: DXL: Working with Domino Data in XML

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

Page 20: DXL: Working with Domino Data in XML

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

Page 21: DXL: Working with Domino Data in XML

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>

Page 22: DXL: Working with Domino Data in XML

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

Page 23: DXL: Working with Domino Data in XML

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

Page 24: DXL: Working with Domino Data in XML

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

Page 25: DXL: Working with Domino Data in XML

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

Page 26: DXL: Working with Domino Data in XML

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

Page 27: DXL: Working with Domino Data in XML

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

Page 28: DXL: Working with Domino Data in XML

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

Page 29: DXL: Working with Domino Data in XML

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

Page 30: DXL: Working with Domino Data in XML

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

Page 31: DXL: Working with Domino Data in XML

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

Page 32: DXL: Working with Domino Data in XML

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

Page 33: DXL: Working with Domino Data in XML

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

Page 34: DXL: Working with Domino Data in XML

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

Page 35: DXL: Working with Domino Data in XML

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

Page 36: DXL: Working with Domino Data in XML

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

Page 37: DXL: Working with Domino Data in XML

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

Page 38: DXL: Working with Domino Data in XML

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

Page 39: DXL: Working with Domino Data in XML

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

Page 40: DXL: Working with Domino Data in XML

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

Page 41: DXL: Working with Domino Data in XML

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

Page 42: DXL: Working with Domino Data in XML

DemosDemos

Design synopsisDesign synopsisAnalysisAnalysisDocument importDocument importGlobal search-and-replaceGlobal search-and-replace5.03 Book demo5.03 Book demo

Page 43: DXL: Working with Domino Data in XML

Design Synopsis DemoDesign Synopsis Demo

Export design informationExport design informationTransform into a readable pageTransform into a readable page

NSFExport DXL LotusXSL HTML

XSLXSL

XSL

Page 44: DXL: Working with Domino Data in XML

Design Analysis DemoDesign Analysis Demo

Export design informationExport design informationTransform into a reportTransform into a report

NSFExport DXL XSLT HTML

XSLXSL

XSL

Page 45: DXL: Working with Domino Data in XML

Document Import Demo Document Import Demo

Page 46: DXL: Working with Domino Data in XML

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

Page 47: DXL: Working with Domino Data in XML

DXL DXLImport

Document Import Demo Document Import Demo (continued)(continued)

Import DXL into Domino using DXLImportImport DXL into Domino using DXLImport

NSF

Page 48: DXL: Working with Domino Data in XML

Search and Replace DemoSearch and Replace Demo

Page 49: DXL: Working with Domino Data in XML

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

Page 50: DXL: Working with Domino Data in XML

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

Page 51: DXL: Working with Domino Data in XML

Books DemoBooks Demo

DXLNSF

XSLT

XSL

DominoDomino

Document mailed as XMLDocument mailed as XML

XML

The World

Page 52: DXL: Working with Domino Data in XML

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

Page 53: DXL: Working with Domino Data in XML

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

Page 54: DXL: Working with Domino Data in XML

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