SlideShare a Scribd company logo
D3ML Session
Falk Hartmann
Research Associate, SAP AG
Requirements
What is needed?
-A running DA/DM/AM
-A browser (Firefox with User Agent Switcher + IE)
(http://localhost:8888/static)
-An editor supporting XML (JEdit, Eclipse & WTP plugin)
-A CAE
-An MWA

© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 2

2
Open questions

3

What is the code to replace the current links (i.e.: next, previous,
home) shown at the bottom of the page by big icons or buttons?
⇒ Currently hard-coded in the AdaptionManager
What is the code to navigate page by page instead line by line in the
procedure (i.e.: could we create new icons or buttons)?
⇒ Has been done by SBS
What is the code to scale an image in order to display it correctly on
several devices (laptop, PDA, etc.)?
⇒ Images are now scaled to the width of the display device

© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 3
Summary Example (1)

4

What is the code to generate an overview of the procedure (e.g.
some kind of summary with hyperlinks for example)?
⇒ Add summary to procedure.xtl
<section id="summary">
<span class="phase_name">Summary</span><br/>
<ul>
<xtl:for-each select="phases">
<li>
<a>
<xtl:attribute name="href"
select="translate(concat('#',name),' ','_')"/>
<xtl:text select="name"/>
</a>
</li>
</xtl:for-each>
</ul>
</section>
© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 4
Summary Example (2)
⇒ Furthermore, the sections need named anchors
<section id="general_warnings">
<!-- GENERAL WARNINGS AREA -->
<xtl:for-each
select="phases[name='General warnings']">
<a>
<xtl:attribute name="id"
select="translate(name,' ','_')"/>
</a>
<xtl:call-macro name="INFO_ASSET"/>
</xtl:for-each>
<!-- END GENERAL WARNINGS AREA -->
</section>
⇒ Treat the other sections respectively

© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 5

5
Adaptation Example (1)

6

What is the code to adapt the layout of a piece of text according to
the following rendering hints?
⇒Add macro to procedure.xtl
<xtl:macro name="IMPORTANCE">
<xtl:if select="
count(allMetadata/*[name()='Important'] ) > 0">
<xtl:attribute name="style" select="color:red;"
realm="id"/>
</xtl:if>
<xtl:if select="
count(allMetadata/*[name()='Important'] ) = 0
and count( allMetadata/*[name()='Relatively
Important'] ) > 0">
<xtl:attribute name="style" select="color:blue;"
realm="id"/>
</xtl:if>
</xtl:macro>
© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 6
Adaptation Example (2)
⇒ Use the macro
<span class="instruction_name">
<xtl:call-macro name="IMPORTANCE"/>
<xtl:text select="name"/>
</span>

© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 7

7
Layout Container Example (1)

8

How to create a general warnings sections specifically for the PDA
that shows only warnings and cautions?
⇒ Clone and modify the section "general_warnings"
<section id="simplified_general_warnings">
<!-- GENERAL WARNINGS AREA -->
<xtl:for-each select="phases[
name='General warnings']">
<a>
<xtl:attribute name="id"
select="translate(name,' ','_')"/>
</a>
<xtl:call-macro name="SIMPLIFIED_INFO_ASSET"/>
</xtl:for-each>
<!-- END GENERAL WARNINGS AREA -->
</section>

© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 8
Layout Container Example (2)

9

⇒ Clone and modify the macro "INFO_ASSET"
<xtl:macro name="SIMPLIFIED_INFO_ASSET">
<div>
<xtl:for-each
select="contentAssets[type=('warning'|'caution')]">
<xtl:call-macro name="INFO_ASSET_CONTENT"/>
</xtl:for-each>
<xtl:for-each
select="assetReferences[type=('warning'|'caution')]">
<xtl:call-macro name="INFO_ASSET_CONTENT"/>
</xtl:for-each>
</div>
</xtl:macro>

© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 9
Layout Container Example (3)

10

⇒ Use the new section in an alternative layout container
<!-- … -->
<sel:when expr="outputMethod() = 'visual' and
device-height() &lt; 400">
<d3ml:layout-container>
<d3ml:frame paginate="true">
<d3ml:content-ref ref="#general_info"/>
<d3ml:content-ref
ref="#simplified_general_warnings"/>
<xtl:for-each select="phases[
name!='General warnings']">
<d3ml:content-ref>
<xtl:attribute name="ref" select="concat('#',id)"/>
</d3ml:content-ref>
</xtl:for-each>
</d3ml:frame>
</d3ml:layout-container>
</sel:when>
© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 10
That’s it.

<xtl:for-each select="questions/*">
<xtl:text select="answer()"/>
</xtl:for-each>

© SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 11

11

More Related Content

Viewers also liked

IRI BCG Google eCommerce Cobranded_FINAL2
IRI BCG Google eCommerce Cobranded_FINAL2IRI BCG Google eCommerce Cobranded_FINAL2
IRI BCG Google eCommerce Cobranded_FINAL2
Ben Sprecher
 
Risikomanagement in der Softwareentwicklung
Risikomanagement in der SoftwareentwicklungRisikomanagement in der Softwareentwicklung
Risikomanagement in der Softwareentwicklung
Falk Hartmann
 
Technologieraum übergreifende Programmierung
Technologieraum übergreifende ProgrammierungTechnologieraum übergreifende Programmierung
Technologieraum übergreifende Programmierung
Falk Hartmann
 
Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von KommunikationsprotokollenProtocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von KommunikationsprotokollenFalk Hartmann
 
Risiko Management in der Softwareentwicklung
Risiko Management in der SoftwareentwicklungRisiko Management in der Softwareentwicklung
Risiko Management in der Softwareentwicklung
Falk Hartmann
 
An Introduction to AngularJS
An Introduction to AngularJSAn Introduction to AngularJS
An Introduction to AngularJS
Falk Hartmann
 
Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittFalk Hartmann
 
House of Fraser case study with Poq and Demandware
House of Fraser case study with Poq and DemandwareHouse of Fraser case study with Poq and Demandware
House of Fraser case study with Poq and Demandware
Michael Langguth
 
Demandware tco webinar final 12122012
Demandware tco webinar final 12122012Demandware tco webinar final 12122012
Demandware tco webinar final 12122012
Thomas Roider
 
Steps to apply for Passport Services
Steps to apply for Passport ServicesSteps to apply for Passport Services
Steps to apply for Passport Services
passportindia
 
E commerce
E commerceE commerce
E commerce
siddhesh khadse
 

Viewers also liked (11)

IRI BCG Google eCommerce Cobranded_FINAL2
IRI BCG Google eCommerce Cobranded_FINAL2IRI BCG Google eCommerce Cobranded_FINAL2
IRI BCG Google eCommerce Cobranded_FINAL2
 
Risikomanagement in der Softwareentwicklung
Risikomanagement in der SoftwareentwicklungRisikomanagement in der Softwareentwicklung
Risikomanagement in der Softwareentwicklung
 
Technologieraum übergreifende Programmierung
Technologieraum übergreifende ProgrammierungTechnologieraum übergreifende Programmierung
Technologieraum übergreifende Programmierung
 
Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von KommunikationsprotokollenProtocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
Protocol Engineering: Beschreibung und Entwicklung von Kommunikationsprotokollen
 
Risiko Management in der Softwareentwicklung
Risiko Management in der SoftwareentwicklungRisiko Management in der Softwareentwicklung
Risiko Management in der Softwareentwicklung
 
An Introduction to AngularJS
An Introduction to AngularJSAn Introduction to AngularJS
An Introduction to AngularJS
 
Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen Schritt
 
House of Fraser case study with Poq and Demandware
House of Fraser case study with Poq and DemandwareHouse of Fraser case study with Poq and Demandware
House of Fraser case study with Poq and Demandware
 
Demandware tco webinar final 12122012
Demandware tco webinar final 12122012Demandware tco webinar final 12122012
Demandware tco webinar final 12122012
 
Steps to apply for Passport Services
Steps to apply for Passport ServicesSteps to apply for Passport Services
Steps to apply for Passport Services
 
E commerce
E commerceE commerce
E commerce
 

Similar to D3ML Session

Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
CHOOSE
 
Dax Declarative Api For Xml
Dax   Declarative Api For XmlDax   Declarative Api For Xml
Dax Declarative Api For Xml
Lars Trieloff
 
Mazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml ToolsMazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml Tools
CardinaleWay Mazda
 
AD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLAD215 - Practical Magic with DXL
AD215 - Practical Magic with DXL
Stephan H. Wissel
 
Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4
Stephan Schmidt
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
Zvi Avraham
 
PMML - Predictive Model Markup Language
PMML - Predictive Model Markup LanguagePMML - Predictive Model Markup Language
PMML - Predictive Model Markup Language
aguazzel
 
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Intel® Software
 
treeview
treeviewtreeview
treeview
tutorialsruby
 
treeview
treeviewtreeview
treeview
tutorialsruby
 
AdvancedXPath
AdvancedXPathAdvancedXPath
AdvancedXPath
Suite Solutions
 
Developing web apps using Erlang-Web
Developing web apps using Erlang-WebDeveloping web apps using Erlang-Web
Developing web apps using Erlang-Web
fanqstefan
 
Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2
Rajeev Rastogi (KRR)
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native Compilation
PGConf APAC
 
CustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsCustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputs
Suite Solutions
 
Project Portfolio - Transferable Skills
Project Portfolio - Transferable SkillsProject Portfolio - Transferable Skills
Project Portfolio - Transferable Skills
tuleyb
 
Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...
Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...
Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...
Databricks
 
Implementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoCImplementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoC
jimfuller2009
 
Ontopia Code Camp
Ontopia Code CampOntopia Code Camp
Ontopia Code Camp
Lars Marius Garshol
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
Aman Kohli
 

Similar to D3ML Session (20)

Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
 
Dax Declarative Api For Xml
Dax   Declarative Api For XmlDax   Declarative Api For Xml
Dax Declarative Api For Xml
 
Mazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml ToolsMazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml Tools
 
AD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLAD215 - Practical Magic with DXL
AD215 - Practical Magic with DXL
 
Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
 
PMML - Predictive Model Markup Language
PMML - Predictive Model Markup LanguagePMML - Predictive Model Markup Language
PMML - Predictive Model Markup Language
 
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
Fast Insights to Optimized Vectorization and Memory Using Cache-aware Rooflin...
 
treeview
treeviewtreeview
treeview
 
treeview
treeviewtreeview
treeview
 
AdvancedXPath
AdvancedXPathAdvancedXPath
AdvancedXPath
 
Developing web apps using Erlang-Web
Developing web apps using Erlang-WebDeveloping web apps using Erlang-Web
Developing web apps using Erlang-Web
 
Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native Compilation
 
CustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsCustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputs
 
Project Portfolio - Transferable Skills
Project Portfolio - Transferable SkillsProject Portfolio - Transferable Skills
Project Portfolio - Transferable Skills
 
Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...
Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...
Accelerating Deep Learning Training with BigDL and Drizzle on Apache Spark wi...
 
Implementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoCImplementing the Genetic Algorithm in XSLT: PoC
Implementing the Genetic Algorithm in XSLT: PoC
 
Ontopia Code Camp
Ontopia Code CampOntopia Code Camp
Ontopia Code Camp
 
Being HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on PurposeBeing HAPI! Reverse Proxying on Purpose
Being HAPI! Reverse Proxying on Purpose
 

Recently uploaded

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 

Recently uploaded (20)

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 

D3ML Session

  • 2. Requirements What is needed? -A running DA/DM/AM -A browser (Firefox with User Agent Switcher + IE) (http://localhost:8888/static) -An editor supporting XML (JEdit, Eclipse & WTP plugin) -A CAE -An MWA © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 2 2
  • 3. Open questions 3 What is the code to replace the current links (i.e.: next, previous, home) shown at the bottom of the page by big icons or buttons? ⇒ Currently hard-coded in the AdaptionManager What is the code to navigate page by page instead line by line in the procedure (i.e.: could we create new icons or buttons)? ⇒ Has been done by SBS What is the code to scale an image in order to display it correctly on several devices (laptop, PDA, etc.)? ⇒ Images are now scaled to the width of the display device © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 3
  • 4. Summary Example (1) 4 What is the code to generate an overview of the procedure (e.g. some kind of summary with hyperlinks for example)? ⇒ Add summary to procedure.xtl <section id="summary"> <span class="phase_name">Summary</span><br/> <ul> <xtl:for-each select="phases"> <li> <a> <xtl:attribute name="href" select="translate(concat('#',name),' ','_')"/> <xtl:text select="name"/> </a> </li> </xtl:for-each> </ul> </section> © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 4
  • 5. Summary Example (2) ⇒ Furthermore, the sections need named anchors <section id="general_warnings"> <!-- GENERAL WARNINGS AREA --> <xtl:for-each select="phases[name='General warnings']"> <a> <xtl:attribute name="id" select="translate(name,' ','_')"/> </a> <xtl:call-macro name="INFO_ASSET"/> </xtl:for-each> <!-- END GENERAL WARNINGS AREA --> </section> ⇒ Treat the other sections respectively © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 5 5
  • 6. Adaptation Example (1) 6 What is the code to adapt the layout of a piece of text according to the following rendering hints? ⇒Add macro to procedure.xtl <xtl:macro name="IMPORTANCE"> <xtl:if select=" count(allMetadata/*[name()='Important'] ) > 0"> <xtl:attribute name="style" select="color:red;" realm="id"/> </xtl:if> <xtl:if select=" count(allMetadata/*[name()='Important'] ) = 0 and count( allMetadata/*[name()='Relatively Important'] ) > 0"> <xtl:attribute name="style" select="color:blue;" realm="id"/> </xtl:if> </xtl:macro> © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 6
  • 7. Adaptation Example (2) ⇒ Use the macro <span class="instruction_name"> <xtl:call-macro name="IMPORTANCE"/> <xtl:text select="name"/> </span> © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 7 7
  • 8. Layout Container Example (1) 8 How to create a general warnings sections specifically for the PDA that shows only warnings and cautions? ⇒ Clone and modify the section "general_warnings" <section id="simplified_general_warnings"> <!-- GENERAL WARNINGS AREA --> <xtl:for-each select="phases[ name='General warnings']"> <a> <xtl:attribute name="id" select="translate(name,' ','_')"/> </a> <xtl:call-macro name="SIMPLIFIED_INFO_ASSET"/> </xtl:for-each> <!-- END GENERAL WARNINGS AREA --> </section> © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 8
  • 9. Layout Container Example (2) 9 ⇒ Clone and modify the macro "INFO_ASSET" <xtl:macro name="SIMPLIFIED_INFO_ASSET"> <div> <xtl:for-each select="contentAssets[type=('warning'|'caution')]"> <xtl:call-macro name="INFO_ASSET_CONTENT"/> </xtl:for-each> <xtl:for-each select="assetReferences[type=('warning'|'caution')]"> <xtl:call-macro name="INFO_ASSET_CONTENT"/> </xtl:for-each> </div> </xtl:macro> © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 9
  • 10. Layout Container Example (3) 10 ⇒ Use the new section in an alternative layout container <!-- … --> <sel:when expr="outputMethod() = 'visual' and device-height() &lt; 400"> <d3ml:layout-container> <d3ml:frame paginate="true"> <d3ml:content-ref ref="#general_info"/> <d3ml:content-ref ref="#simplified_general_warnings"/> <xtl:for-each select="phases[ name!='General warnings']"> <d3ml:content-ref> <xtl:attribute name="ref" select="concat('#',id)"/> </d3ml:content-ref> </xtl:for-each> </d3ml:frame> </d3ml:layout-container> </sel:when> © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 10
  • 11. That’s it. <xtl:for-each select="questions/*"> <xtl:text select="answer()"/> </xtl:for-each> © SAP AG 2006, An Architecture for an XML-Template Engine… / Falk Hartmann / 11 11