SlideShare a Scribd company logo
XML PIPELINES
USING STYLUS STUDIO
OUTLINES
• Building workflow applications with XML (data integration)
• XPROC the W3C xml pipeline language
• XPROC implementations
• XPROC graphical design tools
• Stylus studio pipeline editor and processor
• XML PIPELINES with stylus studio in details
• Conclusions
BUILDING WORKFLOW APPLICATIONS
WITH XML (BY DR. MICHAEL KAY)
• “XML fits very well with workflow applications, because it's natural to think of
them in terms of documents. In fact, I think it's such a good fit that I think one
should often design an application as an XML-based workflow where we
might have adopted a completely different approach in the past.”
• “Generally when we do the initial modeling for an application we split it into
two parts: the data model and the process model. Sometimes we focus more
on one, sometimes more on the other. One of the difficulties is often in seeing
how the two models relate to each other.”
• “the XML approach to information management is a half-way house between
the rigid discipline of the traditional database approach, and the
uncontrolled chaos of the email-and-spreadsheet culture. But that doesn't
mean it's a messy compromise: on the contrary, I would argue that it gives you
the best of both worlds”
WHAT IS XPROC?
• XProc is an XML Pipeline Language
• XProc enables you to declaratively express the
activities you want to perform on XML documents
• XProc is a W3C recommendation (2010)
• http://www.w3.org/TR/xproc/
BENEFITS OF XPROC?
• XProc takes care of orchestrating all the activities
• XProc is a standard way of expressing processing
activities
• Since an XProc document is an XML document, you
can send it around, transform it, mine it, store it, just
like any other XML document
XPROC USE CASES
• XProc’s goal is to promote an interoperable and
standard approach to the processing of XML
documents. Some of the XPROC Use Cases are
listed below:
• Apply a sequence of operations to XML documents.
• Parse XML, validate it against a schema, and then apply an
XSLT transformation.
• Combine multiple XML documents (document
aggregation).
• Interact with Web services.
• Use metadata retrieval
XPROC PIPELINE EXAMPLE
• The following pipeline
validates the input
against a schema
depending on a version
attribute, then applies
an XSLT.
XPROC PIPELINE EXAMPLE
THE NEED FOR XPROC
• XProc’s declarative format, combined with the simplicity of
thinking in terms of pipelines, will mean that non-technical people
can be involved in writing and maintaining processing workflows.
• XProc, in many configurations, is amenable to streaming, whereas
other approaches to control XML processes are not (for
example, XSLT).
• XProc steps focus on performing specific operations, which over
time should experience greater optimization (in an XProc
processor used by many) versus one-off code that you or I write
(used by few).
• XProc's standard step library and extensibility mechanisms
position XProc to be an all-encompassing solution.
• Structured data (such as XProc markup) is typically easier to reuse
than structured code.
• One of XProc's inspirations is UNIX® pipelines, which hopefully all
can agree is a good thing!
XPROC IMPLEMENTATIONS
• Calabash maintained by Norman Walsh
• Calumet, EMC’s XProc implementation
• QuiXProc, Innovimax's (GPL) version in Java
implementing Streaming and Parallel
processing
• Tubular (LGPL) maintained by Herve Quiroz
• xprocxq, XQuery implementation on top of
eXist
XPROC GRAPHICAL TOOLS
• The EMC XProc Designer is graphical tool for
designing XML Processing pipelines
according to the W3C standard Xproc.

• The stylus studio Pipeline editor
EMC XPROC DESIGNER
• Is a graphical tool for designing XML Processing
pipelines according to the W3C standard Xproc.
• Intuitive design of XProc pipelines using Drag and Drop
• On-the-fly validation of pipelines
• Pipeline execution using the embedded EMC Documentum
XProc Engine
• Compliant to the W3C XProc specification
• On-line Help
EMC XPROC DESIGNER : KNOWN ISSUES
• The EMC XProc Designer is currently an early access
release and there are known issues and missing
features, including:
• Currently unsupported XProc constructs:
• p:import

•
•
•
•

Only basic support for authoring inline content
Limited support for namespaces
Not all static XProc errors are checked for
Currently the XProc Designer is available as a browser
application only.
EMC XPROC DESIGNER : ROADMAP
• The EMC XProc Designer is currently an early access
release and there are known issues and missing
features.
•
•
•
•
•
•
•

Importing pipeline libraries
Better support for opening 3rd party pipelines
Support for local step declarations and recursive pipelines
Better support for authoring XPath expressions
Visual debugger
Round trip text editing - visual design
Usability improvements
THE STYLUS STUDIO XML PIPELINE
TOOL
• is a powerful XML application design tool that lets
software architects design XML data services at a
higher and more integrated level, rather than
manually editing individual
stylesheets, queries, schemas, Web services.
• allows developers to quickly and easily model their
entire application as a sequence of XML processing
operations:
• A typical XML application might involve converting legacy
data into an XML format, validating the resulting XML
document, then transforming it to HTML.
STYLUS STUDIO XML PIPELINE EDITOR
IN DETAILS
• Helps create and generate code for xml pipelines
• Pipeline=Applications that perform a series of linked
xml processing operations:
• XQuery , XSLT, and xml conversion and validation

• Nodes represent xml operations, and application
processing,
• Lines between nodes, represent flow of data from
on node to another. They are called pipes.
STYLUS STUDIO XML PIPELINE EDITOR
STYLUS STUDIO XML PIPELINE EDITOR
• An xml pipeline
example that
converts a text file
and an EDI file to
xml, and uses xslt
and xquery, to
create html and pdf
reports.
INPUT FILES
booksXML.txt
•
•
•
•

•

•

•

"isbn"|"title"|"manufacturer"|"releaseDate"
"0070498873"|"Implementing CDF Channels"|"McGrawHill Osborne Media"|"06 March, 1998"
"007134621X"|"Inside XML DTDs: Scientific and
Technical"|"McGraw-Hill Companies"|"25 June, 1999"
"0071371885"|"XML: eCommerce Solutions for Business
and IT Managers"|"McGraw-Hill Trade"|"12
March, 2001"
"0071418733"|"XML for Wireless
Communications"|"McGraw-Hill Professional
Publishing"|"30 September, 2003"
"0071418741"|"XML for Wireless Communication with
CDROM (McGraw Hill Developers)"|"McGraw-Hill
Companies"|"August, 2003"
"007141956X"|"Teach Yourself HTML Publishing on the
World Wide Web"|"McGraw-Hill"|"14 January, 2003"

order.edi
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

UNA:+.? '
UNB+UNOC:4+STYLUSSTUDIO:1+DATADIRECT:1+20051107:1159+6002'
UNH+SSDD1+ORDERS:D:03B:UN:EAN008'
BGM+220+BKOD99+9'
DTM+137:20051107:102'
NAD+BY+5412345000176::9'
NAD+SU+4012345000094::9'
LIN+1+1+0764569104:IB'
QTY+1:25'
FTX+AFM+1++XPath 2.0 Programmer?'s Reference'
LIN+2+1+0764569090:IB'
QTY+1:25'
FTX+AFM+1++XSLT 2.0 Programmer?'s Reference'
LIN+3+1+1861004656:IB'
QTY+1:16'
FTX+AFM+1++Java Server Programming'
LIN+4+1+0596006756:IB'
QTY+1:10'
FTX+AFM+1++Enterprise Service Bus'
UNS+S'
CNT+2:4'
UNT+22+SSDD1'
UNZ+1+6002'
EXECUTION OF THE PIPELINE
OUTPUT: HTML AND PDF REPORTS
HOW TO CREATE A PIPELINE
• You can create a node in a pipeline, by dragging
an icon from the toolbox, dropping it on the
pipeline canvas, then specifying its properties.
• Usually it is quicker to drop an existing xml
document on the canvas.
• If we open the XQuery file we
dropped(createFullOrder.xquey), we can see it
declares two global external variables, $ediorder,
and $allBooks,
createFullOrder.xquey
• declare variable $ediOrder as document-node(element(*, xs:untyped)) external;
declare variable $allBooks as document-node(element(*, xs:untyped)) external;
<root>
•
{
•
for $GROUP_28 in $ediOrder/EDIFACT/ORDERS/GROUP_28,
•
$row in $allBooks/table/row
•
where $GROUP_28/LIN/LIN03/LIN0301/text() = $row/isbn/text()
•
return
•
<book>
•
<title>
•
{$row/title/text()}
•
</title>
•
<quantity>
•
{$GROUP_28/QTY/QTY01/QTY0102/text()}
•
</quantity>
•
<ISBN>
•
{$GROUP_28/LIN/LIN03/LIN0301/text()}
•
</ISBN>
•
</book>
•
}
NODES PROPERTIES
createFullOrder.xquey -> SCENARIO

PROPERTIES

• These variables represent text and EDI data converted to xml using
stylus studio adapters URLs.
• So stylus studio converted those to an xml node, one for each
datasource, and connected them to the xquery we just added to
our pipeline.

• doc('converter:CSV:sep=%7C:first=yes?file:///c:/pipelines/order/booksXML.txt')
• doc('converter:EDI?file:///c:/pipelines/order/order.edi')
XQUERY OUTPUT FILE
CONFIGURATION
• Let’s save our pipeline, and specify an output URL
to quickly check the XML data aggregated by our
Xquery.
• Notice the change of colour of the ports on the
nodes when they are given default values.
• Copy to URL: result.xml
XQUERY OUTPUT
• Notice that the xml contains title data from the
converted text file, and ISBN and order info, from
the converted EDI.
• Next we will add an xslt node, to process the
aggregated xml data and create an html report.
EXECUTION FRAMEWORK
• By connecting the output of the xquery output to the input of the xslt
node, we are instructing the xml pipeline, to pass the aggregated xml
data to the XSLT node for additional processing.
• Before testing this step, let us check (scenario properties) if our xml
pipeline uses the processes we expect to find in our production
environment,
TESTING AND VIEWING THE OUTPUT
• We need to specify an additional output URL to the XSLT
output port, before testing, and as expected, it generates an
html report (result.html), designed using the stylus studio xml
publisher .
• Finally let us add the Xquery document that generates the
XSL-FO.
• Because that xquery document was specified to perform postprocessing on the xsl-fo it generates, stylus studio automatically
creates an xsl-fo node.
• We use the same output from the createFullOrder xquery node, as the
input for this step of processing.

• If we test our xml pipeline now, we see it generates both html
and pdf reports, from converted text and EDI data sources.
XML PIPELINE: CODE GENERATION
• You can
easily
generate
java
code, and
compile and
run that
code, before
deploying it
in a
application
XML PIPELINE: CODE GENERATION
DEBUGGING
• With a Built-in debugger that supports cross
language debugging, stylus studio has all the xml
pipeline developping covered.

More Related Content

Similar to XML Pipelines

The XML Forms Architecture
The XML Forms ArchitectureThe XML Forms Architecture
The XML Forms Architecture
iText Group nv
 
XML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorXML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processor
jimfuller2009
 
Linq To XML Overview
Linq To XML OverviewLinq To XML Overview
Linq To XML Overview
Dale Hawthorne
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
Antonio García-Domínguez
 
Java Web Services
Java Web ServicesJava Web Services
Java Web Services
Jussi Pohjolainen
 
Unit iv xml dom
Unit iv xml domUnit iv xml dom
Unit iv xml dom
smitha273566
 
Oracle.xml.publisher
Oracle.xml.publisherOracle.xml.publisher
Oracle.xml.publisher
yu kwong yiu wilson
 
OASIS OAXAL Presentation
OASIS OAXAL PresentationOASIS OAXAL Presentation
OASIS OAXAL Presentation
Andrzej Zydroń MBCS
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 Bucharest
Andreas Jung
 
Fyp presentation 2 (SQL Converter)
Fyp presentation 2 (SQL Converter)Fyp presentation 2 (SQL Converter)
Fyp presentation 2 (SQL Converter)
Muhammad Shafiq
 
Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5
Dr. Ahmed Al Zaidy
 
Xml data transformation
Xml data transformationXml data transformation
Xml data transformation
Raghu nath
 
XML in software development
XML in software developmentXML in software development
XML in software development
Lars Marius Garshol
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application Development
Andrew Coleman
 
Breitfelder Incorporating XML into a Standards Environment
Breitfelder Incorporating XML into a Standards EnvironmentBreitfelder Incorporating XML into a Standards Environment
Breitfelder Incorporating XML into a Standards Environment
National Information Standards Organization (NISO)
 
Intro to Web Standards
Intro to Web StandardsIntro to Web Standards
Intro to Web Standards
Jussi Pohjolainen
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
José Román Martín Gil
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Jerry SILVER
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynote
jimfuller2009
 
Tech 802: Data, Databases & XML
Tech 802: Data, Databases & XMLTech 802: Data, Databases & XML
Tech 802: Data, Databases & XML
somisguided
 

Similar to XML Pipelines (20)

The XML Forms Architecture
The XML Forms ArchitectureThe XML Forms Architecture
The XML Forms Architecture
 
XML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorXML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processor
 
Linq To XML Overview
Linq To XML OverviewLinq To XML Overview
Linq To XML Overview
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
Java Web Services
Java Web ServicesJava Web Services
Java Web Services
 
Unit iv xml dom
Unit iv xml domUnit iv xml dom
Unit iv xml dom
 
Oracle.xml.publisher
Oracle.xml.publisherOracle.xml.publisher
Oracle.xml.publisher
 
OASIS OAXAL Presentation
OASIS OAXAL PresentationOASIS OAXAL Presentation
OASIS OAXAL Presentation
 
Building bridges - Plone Conference 2015 Bucharest
Building bridges   - Plone Conference 2015 BucharestBuilding bridges   - Plone Conference 2015 Bucharest
Building bridges - Plone Conference 2015 Bucharest
 
Fyp presentation 2 (SQL Converter)
Fyp presentation 2 (SQL Converter)Fyp presentation 2 (SQL Converter)
Fyp presentation 2 (SQL Converter)
 
Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5Chapter 1 Getting Started with HTML5
Chapter 1 Getting Started with HTML5
 
Xml data transformation
Xml data transformationXml data transformation
Xml data transformation
 
XML in software development
XML in software developmentXML in software development
XML in software development
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application Development
 
Breitfelder Incorporating XML into a Standards Environment
Breitfelder Incorporating XML into a Standards EnvironmentBreitfelder Incorporating XML into a Standards Environment
Breitfelder Incorporating XML into a Standards Environment
 
Intro to Web Standards
Intro to Web StandardsIntro to Web Standards
Intro to Web Standards
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynote
 
Tech 802: Data, Databases & XML
Tech 802: Data, Databases & XMLTech 802: Data, Databases & XML
Tech 802: Data, Databases & XML
 

Recently uploaded

High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 

Recently uploaded (20)

High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 

XML Pipelines

  • 2. OUTLINES • Building workflow applications with XML (data integration) • XPROC the W3C xml pipeline language • XPROC implementations • XPROC graphical design tools • Stylus studio pipeline editor and processor • XML PIPELINES with stylus studio in details • Conclusions
  • 3. BUILDING WORKFLOW APPLICATIONS WITH XML (BY DR. MICHAEL KAY) • “XML fits very well with workflow applications, because it's natural to think of them in terms of documents. In fact, I think it's such a good fit that I think one should often design an application as an XML-based workflow where we might have adopted a completely different approach in the past.” • “Generally when we do the initial modeling for an application we split it into two parts: the data model and the process model. Sometimes we focus more on one, sometimes more on the other. One of the difficulties is often in seeing how the two models relate to each other.” • “the XML approach to information management is a half-way house between the rigid discipline of the traditional database approach, and the uncontrolled chaos of the email-and-spreadsheet culture. But that doesn't mean it's a messy compromise: on the contrary, I would argue that it gives you the best of both worlds”
  • 4. WHAT IS XPROC? • XProc is an XML Pipeline Language • XProc enables you to declaratively express the activities you want to perform on XML documents • XProc is a W3C recommendation (2010) • http://www.w3.org/TR/xproc/
  • 5. BENEFITS OF XPROC? • XProc takes care of orchestrating all the activities • XProc is a standard way of expressing processing activities • Since an XProc document is an XML document, you can send it around, transform it, mine it, store it, just like any other XML document
  • 6. XPROC USE CASES • XProc’s goal is to promote an interoperable and standard approach to the processing of XML documents. Some of the XPROC Use Cases are listed below: • Apply a sequence of operations to XML documents. • Parse XML, validate it against a schema, and then apply an XSLT transformation. • Combine multiple XML documents (document aggregation). • Interact with Web services. • Use metadata retrieval
  • 7. XPROC PIPELINE EXAMPLE • The following pipeline validates the input against a schema depending on a version attribute, then applies an XSLT.
  • 9. THE NEED FOR XPROC • XProc’s declarative format, combined with the simplicity of thinking in terms of pipelines, will mean that non-technical people can be involved in writing and maintaining processing workflows. • XProc, in many configurations, is amenable to streaming, whereas other approaches to control XML processes are not (for example, XSLT). • XProc steps focus on performing specific operations, which over time should experience greater optimization (in an XProc processor used by many) versus one-off code that you or I write (used by few). • XProc's standard step library and extensibility mechanisms position XProc to be an all-encompassing solution. • Structured data (such as XProc markup) is typically easier to reuse than structured code. • One of XProc's inspirations is UNIX® pipelines, which hopefully all can agree is a good thing!
  • 10. XPROC IMPLEMENTATIONS • Calabash maintained by Norman Walsh • Calumet, EMC’s XProc implementation • QuiXProc, Innovimax's (GPL) version in Java implementing Streaming and Parallel processing • Tubular (LGPL) maintained by Herve Quiroz • xprocxq, XQuery implementation on top of eXist
  • 11. XPROC GRAPHICAL TOOLS • The EMC XProc Designer is graphical tool for designing XML Processing pipelines according to the W3C standard Xproc. • The stylus studio Pipeline editor
  • 12. EMC XPROC DESIGNER • Is a graphical tool for designing XML Processing pipelines according to the W3C standard Xproc. • Intuitive design of XProc pipelines using Drag and Drop • On-the-fly validation of pipelines • Pipeline execution using the embedded EMC Documentum XProc Engine • Compliant to the W3C XProc specification • On-line Help
  • 13. EMC XPROC DESIGNER : KNOWN ISSUES • The EMC XProc Designer is currently an early access release and there are known issues and missing features, including: • Currently unsupported XProc constructs: • p:import • • • • Only basic support for authoring inline content Limited support for namespaces Not all static XProc errors are checked for Currently the XProc Designer is available as a browser application only.
  • 14. EMC XPROC DESIGNER : ROADMAP • The EMC XProc Designer is currently an early access release and there are known issues and missing features. • • • • • • • Importing pipeline libraries Better support for opening 3rd party pipelines Support for local step declarations and recursive pipelines Better support for authoring XPath expressions Visual debugger Round trip text editing - visual design Usability improvements
  • 15. THE STYLUS STUDIO XML PIPELINE TOOL • is a powerful XML application design tool that lets software architects design XML data services at a higher and more integrated level, rather than manually editing individual stylesheets, queries, schemas, Web services. • allows developers to quickly and easily model their entire application as a sequence of XML processing operations: • A typical XML application might involve converting legacy data into an XML format, validating the resulting XML document, then transforming it to HTML.
  • 16. STYLUS STUDIO XML PIPELINE EDITOR IN DETAILS • Helps create and generate code for xml pipelines • Pipeline=Applications that perform a series of linked xml processing operations: • XQuery , XSLT, and xml conversion and validation • Nodes represent xml operations, and application processing, • Lines between nodes, represent flow of data from on node to another. They are called pipes.
  • 17. STYLUS STUDIO XML PIPELINE EDITOR
  • 18. STYLUS STUDIO XML PIPELINE EDITOR • An xml pipeline example that converts a text file and an EDI file to xml, and uses xslt and xquery, to create html and pdf reports.
  • 19. INPUT FILES booksXML.txt • • • • • • • "isbn"|"title"|"manufacturer"|"releaseDate" "0070498873"|"Implementing CDF Channels"|"McGrawHill Osborne Media"|"06 March, 1998" "007134621X"|"Inside XML DTDs: Scientific and Technical"|"McGraw-Hill Companies"|"25 June, 1999" "0071371885"|"XML: eCommerce Solutions for Business and IT Managers"|"McGraw-Hill Trade"|"12 March, 2001" "0071418733"|"XML for Wireless Communications"|"McGraw-Hill Professional Publishing"|"30 September, 2003" "0071418741"|"XML for Wireless Communication with CDROM (McGraw Hill Developers)"|"McGraw-Hill Companies"|"August, 2003" "007141956X"|"Teach Yourself HTML Publishing on the World Wide Web"|"McGraw-Hill"|"14 January, 2003" order.edi • • • • • • • • • • • • • • • • • • • • • • • UNA:+.? ' UNB+UNOC:4+STYLUSSTUDIO:1+DATADIRECT:1+20051107:1159+6002' UNH+SSDD1+ORDERS:D:03B:UN:EAN008' BGM+220+BKOD99+9' DTM+137:20051107:102' NAD+BY+5412345000176::9' NAD+SU+4012345000094::9' LIN+1+1+0764569104:IB' QTY+1:25' FTX+AFM+1++XPath 2.0 Programmer?'s Reference' LIN+2+1+0764569090:IB' QTY+1:25' FTX+AFM+1++XSLT 2.0 Programmer?'s Reference' LIN+3+1+1861004656:IB' QTY+1:16' FTX+AFM+1++Java Server Programming' LIN+4+1+0596006756:IB' QTY+1:10' FTX+AFM+1++Enterprise Service Bus' UNS+S' CNT+2:4' UNT+22+SSDD1' UNZ+1+6002'
  • 20. EXECUTION OF THE PIPELINE
  • 21. OUTPUT: HTML AND PDF REPORTS
  • 22. HOW TO CREATE A PIPELINE • You can create a node in a pipeline, by dragging an icon from the toolbox, dropping it on the pipeline canvas, then specifying its properties. • Usually it is quicker to drop an existing xml document on the canvas. • If we open the XQuery file we dropped(createFullOrder.xquey), we can see it declares two global external variables, $ediorder, and $allBooks,
  • 23. createFullOrder.xquey • declare variable $ediOrder as document-node(element(*, xs:untyped)) external; declare variable $allBooks as document-node(element(*, xs:untyped)) external; <root> • { • for $GROUP_28 in $ediOrder/EDIFACT/ORDERS/GROUP_28, • $row in $allBooks/table/row • where $GROUP_28/LIN/LIN03/LIN0301/text() = $row/isbn/text() • return • <book> • <title> • {$row/title/text()} • </title> • <quantity> • {$GROUP_28/QTY/QTY01/QTY0102/text()} • </quantity> • <ISBN> • {$GROUP_28/LIN/LIN03/LIN0301/text()} • </ISBN> • </book> • }
  • 25. createFullOrder.xquey -> SCENARIO PROPERTIES • These variables represent text and EDI data converted to xml using stylus studio adapters URLs. • So stylus studio converted those to an xml node, one for each datasource, and connected them to the xquery we just added to our pipeline. • doc('converter:CSV:sep=%7C:first=yes?file:///c:/pipelines/order/booksXML.txt') • doc('converter:EDI?file:///c:/pipelines/order/order.edi')
  • 26. XQUERY OUTPUT FILE CONFIGURATION • Let’s save our pipeline, and specify an output URL to quickly check the XML data aggregated by our Xquery. • Notice the change of colour of the ports on the nodes when they are given default values. • Copy to URL: result.xml
  • 27. XQUERY OUTPUT • Notice that the xml contains title data from the converted text file, and ISBN and order info, from the converted EDI. • Next we will add an xslt node, to process the aggregated xml data and create an html report.
  • 28. EXECUTION FRAMEWORK • By connecting the output of the xquery output to the input of the xslt node, we are instructing the xml pipeline, to pass the aggregated xml data to the XSLT node for additional processing. • Before testing this step, let us check (scenario properties) if our xml pipeline uses the processes we expect to find in our production environment,
  • 29. TESTING AND VIEWING THE OUTPUT • We need to specify an additional output URL to the XSLT output port, before testing, and as expected, it generates an html report (result.html), designed using the stylus studio xml publisher . • Finally let us add the Xquery document that generates the XSL-FO. • Because that xquery document was specified to perform postprocessing on the xsl-fo it generates, stylus studio automatically creates an xsl-fo node. • We use the same output from the createFullOrder xquery node, as the input for this step of processing. • If we test our xml pipeline now, we see it generates both html and pdf reports, from converted text and EDI data sources.
  • 30. XML PIPELINE: CODE GENERATION • You can easily generate java code, and compile and run that code, before deploying it in a application
  • 31. XML PIPELINE: CODE GENERATION
  • 32. DEBUGGING • With a Built-in debugger that supports cross language debugging, stylus studio has all the xml pipeline developping covered.

Editor's Notes

  1. The save button is therefore disabled. Use View Source to view the source of your pipeline
  2. doc(&apos;converter:CSV:sep=%7C:first=yes?file:///c:/pipelines/order/booksXML.txt&apos;)doc(&apos;converter:EDI?file:///c:/pipelines/order/order.edi&apos;)