SlideShare a Scribd company logo
XSLT
Improvements
Oxygen Users Meetup, Prague, 2017
© 2017 Syncro Soft SRL. All rights reserved.
Octavian Nadolu, Syncro Soft
octavian_nadolu@oxygenxml.com
@OctavianNadolu
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
Overview
● XSLT 3.0 updates
● XPath/XQuery 3.1
● Checks for the XSLT code
● Saxon update
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
Updated the XSLT 3.0 Support
● Text Value Templates
● Initial Template
● Shadow Attributes
w3.org/TR/xslt-30
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XSLT 3.0 Text Value Templates
● Oxygen offers built-in support for XSLT 3.0 Text Value
Templates
● Content completion to present the variables and
parameters
● Syntax highlighting
w3.org/TR/xslt-30/#text-value-templates
<xsl:function name="f:sum" expand-text="yes" as="xs:integer">
<xsl:param name="x" as="xs:integer"/>
<xsl:param name="y" as="xs:integer"/>
{$x + $y}
</xsl:function>
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XSLT 3.0 Initial Template
● Support for xsl:initial-template
w3.org/TR/xslt-30/#invoking-initial-template
<xsl:template name="xsl:initial-template">
<xsl:value-of select="f:sum(4, 5)"/>
</xsl:template>
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XSLT 3.0 Shadow Attributes
● Support for shadow attributes
● Content completion
● Documentation
w3.org/TR/xslt-30/#shadow-attributes
<xsl:param name="output-method" static="yes" select="'xml'"/>
<xsl:output _method="{$output-method}"/>
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XPath/XQuery 3.1
● Validation
● Execution
● Syntax highlight
– Maps: w3.org/TR/xpath-31/#id-maps
– Arrays: w3.org/TR/xpath-31/#id-arrays
– Lookup operator (?): w3.org/TR/xpath-31/#id-lookup
– Simple Map operator (!):
w3.org/TR/xpath-31/#id-map-operator
map { 'first' : 'Jenna', 'last' : 'Scott' }?first
array { "licorice", "ginger" }(1)
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XSLT Code Checks
● Code quality assurance
– [XSLTFramework]/sch/xsltCodeQA.sch
● Bad practice checks
– [XSLTFramework]/sch/xsltBadPractices.sch
● Documentation checks
– [XSLTFramework]/sch/xsltDocCheck.sch
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XSLT Code Quality Assurance
● Check if an xsl:attribute contains variables or
parameters in the text part
● Fixes
– Insert 'xsl:value-of' element (for XSLT 1.0/2.0)
– Insert Text Value Template (for XSLT 3.0)
<xsl:attribute name="margin-right">$page-margin-inside</xsl:attribute>
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XSLT Bad Practice Checks
● XPath expression from attributes references
elements with the same name as
variables/params defined in the context
● XPath expression from the text value template
references elements with the same name as
variables/params defined in the context
<xsl:param name="lang" select="'en'"/>
….
<xsl:variable name="persons" select="person/name[@language=lang]"/>
<xsl:variable name="persons" select="//person/name"/>
...
<xsl:message expand-text="true">{persons/given}</xsl:message>
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
XSLT Documentation Checks
● Report the undocumented template
– Add documentation for parameter(s)
– Add documentation for parameter(s) in the whole
document
● Report the parameters that are documented but
not present in the template
– Add missing parameter(s)
– Delete unbound documentation parameter(s)
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
Improved Refactoring Support
● Extract template - detects parameters more
accurately
● Extract function - allows you to use parts of an
XPath expression to create new functions
● Convert xsl:if into xsl:choose - converts one or
more xsl:if element blocks into one or more xsl:when
blocks
oxygenxml.com/doc/ug-editor/topics/xslt-refactoring-actions.html
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
Compile XSL Stylesheet
● Tool to Compile XSL Stylesheet Export Files as an
XML file called a stylesheet export file (sef)
oxygenxml.com/ug-editor/topics/compile-xsl-for-saxon.html
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
Debugger Editors are Dockable
● XSLT and XQuery Debugger editors and views are
now dockable
● You can rearrange the workspace according to your
preference
● Debugger layout option allows you to stack the editors
horizontal or vertical
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
Saxon Update
● We keep updating Saxon
– Saxon 9.7.0.19 in <oXygen/> 19.1
– Saxon 9.8.0.5 available as <oXygen/> add-on
– Saxon 9.8.0.8 update in progress <oXygen/> 20.0
www.saxonica.com
XSLT ImprovementsXSLT Improvements
Copyright @ Syncro Soft, 2018. All rights reserved.
<oXygen/> XML Editor
http://www.oxygenxml.com
octavian_nadolu@oxygenxml.com
@OctavianNadolu
THANK YOU!
Any questions?

More Related Content

Similar to XSLT 3.0 Improvements - XML Prague 2018

XSLT
XSLTXSLT
Rendering XML Documents
Rendering XML DocumentsRendering XML Documents
Rendering XML Documents
yht4ever
 
transforming xml using xsl and xslt
transforming xml using xsl and xslttransforming xml using xsl and xslt
transforming xml using xsl and xslt
Hemant Suthar
 
Xsl xslt
Xsl  xsltXsl  xslt
Xsl xslt
Dr.Saranya K.G
 
Learning XSLT
Learning XSLTLearning XSLT
Learning XSLT
Overdue Books LLC
 
Overview of XSL, XPath and XSL-FO
Overview of XSL, XPath and XSL-FOOverview of XSL, XPath and XSL-FO
Overview of XSL, XPath and XSL-FOSuite Solutions
 
Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4
Stephan Schmidt
 
Xpath tutorial
Xpath tutorialXpath tutorial
Xpath tutorial
Ashoka Vanjare
 
XSL- XSLT.pdf
XSL- XSLT.pdfXSL- XSLT.pdf
XSL- XSLT.pdf
KGSCSEPSGCT
 
Service Oriented Architecture - Unit II
Service Oriented Architecture - Unit IIService Oriented Architecture - Unit II
Service Oriented Architecture - Unit II
Roselin Mary S
 
Xml part5
Xml part5Xml part5
Xml part5
NOHA AW
 
Xslt by asfak mahamud
Xslt by asfak mahamudXslt by asfak mahamud
Xslt by asfak mahamud
Asfak Mahamud
 
Xslt mule
Xslt   muleXslt   mule
Xslt mule
Sindhu VL
 
eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
Serhii Kartashov
 
XPATH_XSLT-1.pptx
XPATH_XSLT-1.pptxXPATH_XSLT-1.pptx
XPATH_XSLT-1.pptx
BalasundaramSr
 
"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slides"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slides
Russell Ward
 
Xslt
XsltXslt
Xslt attributes
Xslt attributesXslt attributes
Xslt attributes
Sindhu VL
 

Similar to XSLT 3.0 Improvements - XML Prague 2018 (20)

XSLT
XSLTXSLT
XSLT
 
Rendering XML Documents
Rendering XML DocumentsRendering XML Documents
Rendering XML Documents
 
transforming xml using xsl and xslt
transforming xml using xsl and xslttransforming xml using xsl and xslt
transforming xml using xsl and xslt
 
26xslt
26xslt26xslt
26xslt
 
Xsl xslt
Xsl  xsltXsl  xslt
Xsl xslt
 
Learning XSLT
Learning XSLTLearning XSLT
Learning XSLT
 
Overview of XSL, XPath and XSL-FO
Overview of XSL, XPath and XSL-FOOverview of XSL, XPath and XSL-FO
Overview of XSL, XPath and XSL-FO
 
Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4
 
Xpath tutorial
Xpath tutorialXpath tutorial
Xpath tutorial
 
XSL- XSLT.pdf
XSL- XSLT.pdfXSL- XSLT.pdf
XSL- XSLT.pdf
 
Service Oriented Architecture - Unit II
Service Oriented Architecture - Unit IIService Oriented Architecture - Unit II
Service Oriented Architecture - Unit II
 
Xml part5
Xml part5Xml part5
Xml part5
 
Xslt by asfak mahamud
Xslt by asfak mahamudXslt by asfak mahamud
Xslt by asfak mahamud
 
Xslt mule
Xslt   muleXslt   mule
Xslt mule
 
eXtensible Markup Language (XML)
eXtensible Markup Language (XML)eXtensible Markup Language (XML)
eXtensible Markup Language (XML)
 
Xslt
XsltXslt
Xslt
 
XPATH_XSLT-1.pptx
XPATH_XSLT-1.pptxXPATH_XSLT-1.pptx
XPATH_XSLT-1.pptx
 
"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slides"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slides
 
Xslt
XsltXslt
Xslt
 
Xslt attributes
Xslt attributesXslt attributes
Xslt attributes
 

More from Octavian Nadolu

Verify Content With Artificial Intelligence
Verify Content With Artificial IntelligenceVerify Content With Artificial Intelligence
Verify Content With Artificial Intelligence
Octavian Nadolu
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
YAML Editing and Validation In Oxygen
YAML Editing and Validation In OxygenYAML Editing and Validation In Oxygen
YAML Editing and Validation In Oxygen
Octavian Nadolu
 
Oxygen JSON Editor
Oxygen JSON EditorOxygen JSON Editor
Oxygen JSON Editor
Octavian Nadolu
 
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Octavian Nadolu
 
OpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in OxygenOpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in Oxygen
Octavian Nadolu
 
Validating XML and JSON Documents Using Oxygen Scripting
 Validating XML and JSON Documents Using Oxygen Scripting Validating XML and JSON Documents Using Oxygen Scripting
Validating XML and JSON Documents Using Oxygen Scripting
Octavian Nadolu
 
OpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and DocumentingOpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and Documenting
Octavian Nadolu
 
JSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPIJSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPI
Octavian Nadolu
 
Create an Design JSON Schema
Create an Design JSON SchemaCreate an Design JSON Schema
Create an Design JSON Schema
Octavian Nadolu
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge Scripts
Octavian Nadolu
 
JSON Schema Design
JSON Schema DesignJSON Schema Design
JSON Schema Design
Octavian Nadolu
 
Schematron For Non-XML Languages
Schematron For Non-XML LanguagesSchematron For Non-XML Languages
Schematron For Non-XML Languages
Octavian Nadolu
 
JSON and JSON Schema in Oxygen
JSON and JSON Schema in OxygenJSON and JSON Schema in Oxygen
JSON and JSON Schema in Oxygen
Octavian Nadolu
 
HTML5 Editing Validation
HTML5 Editing ValidationHTML5 Editing Validation
HTML5 Editing Validation
Octavian Nadolu
 
Documentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO SchematronDocumentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO Schematron
Octavian Nadolu
 
Introduction to Schematron
Introduction to SchematronIntroduction to Schematron
Introduction to Schematron
Octavian Nadolu
 
Hands on JSON
Hands on JSONHands on JSON
Hands on JSON
Octavian Nadolu
 
JSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and ConvertJSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and Convert
Octavian Nadolu
 

More from Octavian Nadolu (20)

Verify Content With Artificial Intelligence
Verify Content With Artificial IntelligenceVerify Content With Artificial Intelligence
Verify Content With Artificial Intelligence
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
YAML Editing and Validation In Oxygen
YAML Editing and Validation In OxygenYAML Editing and Validation In Oxygen
YAML Editing and Validation In Oxygen
 
Oxygen JSON Editor
Oxygen JSON EditorOxygen JSON Editor
Oxygen JSON Editor
 
Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...Leveraging the Power of AI and Schematron for Content Verification and Correc...
Leveraging the Power of AI and Schematron for Content Verification and Correc...
 
OpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in OxygenOpenAPI/AsyncAPI Support in Oxygen
OpenAPI/AsyncAPI Support in Oxygen
 
Validating XML and JSON Documents Using Oxygen Scripting
 Validating XML and JSON Documents Using Oxygen Scripting Validating XML and JSON Documents Using Oxygen Scripting
Validating XML and JSON Documents Using Oxygen Scripting
 
OpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and DocumentingOpenAPI Editing, Testing, and Documenting
OpenAPI Editing, Testing, and Documenting
 
JSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPIJSON, JSON Schema, and OpenAPI
JSON, JSON Schema, and OpenAPI
 
Create an Design JSON Schema
Create an Design JSON SchemaCreate an Design JSON Schema
Create an Design JSON Schema
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge Scripts
 
JSON Schema Design
JSON Schema DesignJSON Schema Design
JSON Schema Design
 
Schematron For Non-XML Languages
Schematron For Non-XML LanguagesSchematron For Non-XML Languages
Schematron For Non-XML Languages
 
JSON and JSON Schema in Oxygen
JSON and JSON Schema in OxygenJSON and JSON Schema in Oxygen
JSON and JSON Schema in Oxygen
 
HTML5 Editing Validation
HTML5 Editing ValidationHTML5 Editing Validation
HTML5 Editing Validation
 
Documentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO SchematronDocumentation Quality Assurance with ISO Schematron
Documentation Quality Assurance with ISO Schematron
 
Introduction to Schematron
Introduction to SchematronIntroduction to Schematron
Introduction to Schematron
 
Hands on JSON
Hands on JSONHands on JSON
Hands on JSON
 
JSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and ConvertJSON Edit, Validate, Query, Transform, and Convert
JSON Edit, Validate, Query, Transform, and Convert
 

Recently uploaded

Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 

Recently uploaded (20)

Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 

XSLT 3.0 Improvements - XML Prague 2018

  • 1. XSLT Improvements Oxygen Users Meetup, Prague, 2017 © 2017 Syncro Soft SRL. All rights reserved. Octavian Nadolu, Syncro Soft octavian_nadolu@oxygenxml.com @OctavianNadolu
  • 2. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. Overview ● XSLT 3.0 updates ● XPath/XQuery 3.1 ● Checks for the XSLT code ● Saxon update
  • 3. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. Updated the XSLT 3.0 Support ● Text Value Templates ● Initial Template ● Shadow Attributes w3.org/TR/xslt-30
  • 4. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XSLT 3.0 Text Value Templates ● Oxygen offers built-in support for XSLT 3.0 Text Value Templates ● Content completion to present the variables and parameters ● Syntax highlighting w3.org/TR/xslt-30/#text-value-templates <xsl:function name="f:sum" expand-text="yes" as="xs:integer"> <xsl:param name="x" as="xs:integer"/> <xsl:param name="y" as="xs:integer"/> {$x + $y} </xsl:function>
  • 5. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XSLT 3.0 Initial Template ● Support for xsl:initial-template w3.org/TR/xslt-30/#invoking-initial-template <xsl:template name="xsl:initial-template"> <xsl:value-of select="f:sum(4, 5)"/> </xsl:template>
  • 6. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XSLT 3.0 Shadow Attributes ● Support for shadow attributes ● Content completion ● Documentation w3.org/TR/xslt-30/#shadow-attributes <xsl:param name="output-method" static="yes" select="'xml'"/> <xsl:output _method="{$output-method}"/>
  • 7. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XPath/XQuery 3.1 ● Validation ● Execution ● Syntax highlight – Maps: w3.org/TR/xpath-31/#id-maps – Arrays: w3.org/TR/xpath-31/#id-arrays – Lookup operator (?): w3.org/TR/xpath-31/#id-lookup – Simple Map operator (!): w3.org/TR/xpath-31/#id-map-operator map { 'first' : 'Jenna', 'last' : 'Scott' }?first array { "licorice", "ginger" }(1)
  • 8. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XSLT Code Checks ● Code quality assurance – [XSLTFramework]/sch/xsltCodeQA.sch ● Bad practice checks – [XSLTFramework]/sch/xsltBadPractices.sch ● Documentation checks – [XSLTFramework]/sch/xsltDocCheck.sch
  • 9. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XSLT Code Quality Assurance ● Check if an xsl:attribute contains variables or parameters in the text part ● Fixes – Insert 'xsl:value-of' element (for XSLT 1.0/2.0) – Insert Text Value Template (for XSLT 3.0) <xsl:attribute name="margin-right">$page-margin-inside</xsl:attribute>
  • 10. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XSLT Bad Practice Checks ● XPath expression from attributes references elements with the same name as variables/params defined in the context ● XPath expression from the text value template references elements with the same name as variables/params defined in the context <xsl:param name="lang" select="'en'"/> …. <xsl:variable name="persons" select="person/name[@language=lang]"/> <xsl:variable name="persons" select="//person/name"/> ... <xsl:message expand-text="true">{persons/given}</xsl:message>
  • 11. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. XSLT Documentation Checks ● Report the undocumented template – Add documentation for parameter(s) – Add documentation for parameter(s) in the whole document ● Report the parameters that are documented but not present in the template – Add missing parameter(s) – Delete unbound documentation parameter(s)
  • 12. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. Improved Refactoring Support ● Extract template - detects parameters more accurately ● Extract function - allows you to use parts of an XPath expression to create new functions ● Convert xsl:if into xsl:choose - converts one or more xsl:if element blocks into one or more xsl:when blocks oxygenxml.com/doc/ug-editor/topics/xslt-refactoring-actions.html
  • 13. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. Compile XSL Stylesheet ● Tool to Compile XSL Stylesheet Export Files as an XML file called a stylesheet export file (sef) oxygenxml.com/ug-editor/topics/compile-xsl-for-saxon.html
  • 14. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. Debugger Editors are Dockable ● XSLT and XQuery Debugger editors and views are now dockable ● You can rearrange the workspace according to your preference ● Debugger layout option allows you to stack the editors horizontal or vertical
  • 15. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. Saxon Update ● We keep updating Saxon – Saxon 9.7.0.19 in <oXygen/> 19.1 – Saxon 9.8.0.5 available as <oXygen/> add-on – Saxon 9.8.0.8 update in progress <oXygen/> 20.0 www.saxonica.com
  • 16. XSLT ImprovementsXSLT Improvements Copyright @ Syncro Soft, 2018. All rights reserved. <oXygen/> XML Editor http://www.oxygenxml.com octavian_nadolu@oxygenxml.com @OctavianNadolu THANK YOU! Any questions?