SlideShare a Scribd company logo
1 of 47
Download to read offline
Structured Content Rocks! 
Integration of eXist-db with Plone 
Andreas Jung/@MacYET 
ZOPYX • www.zopyx.com 
Plone Conference 2014 • Bristol, UK
Python, Plone, Zope nerd 
Publishing wizard 
Dinosaur of Zope (Paul Everitt)
Agenda
Agenda 
‣ XML-based publication workflows 
‣ context: 
‣ DOCX ➝ XML conversion 
‣ XML➝ PDF/EPub conversion 
‣ Integration of Plone with XML database eXist-db 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
What is Structured Content? 
‣ XML of course 
‣ HTML is not suitable for publishing purposes in general 
‣ XML Schemas or Document Type Definition for 
‣ defining the exact structure of a document 
‣ syntactical and semantical validation 
‣ industry standard in the publishing world 
‣ defacto exchange format with third-party applications 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
What is 
? 
‣ A NoSQL Document Database and Application platform 
‣ Open-source XML database written in Java 
‣ stores documents: XML/HTML 
‣ stores arbitrary (binary) data (DOCX, PDF, images, …) 
‣ XML technology: XPath 3, XForms, XSLT 2, XQuery 3, XUpdate 
‣ comes with Lucence for fulltext indexing 
‣ open for all related Java XML technology 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Why 
? 
‣ Hierarchical storage model (collections -> folders) 
‣ Content and scripts accessible through WebDAV 
‣ Scripting using XQuery 
‣ XQuery scripts callable through REST API 
‣ Scripts results serializable to JSON, HTML, XML 
‣ Very good experience during evaluation period 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
How do we use 
‣ storing XML documents 
‣ indexing XML documents 
‣ searching XML documents 
‣ aggregation of XML documents 
‣ manipulation of XML documents 
? 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Onkopedia project? 
‣ www.dgho-onkopedia.de 
www.onkopedia-guidelines.info 
‣ Plone project since 2010 
‣ Portal for medical guidelines for diagnosis and 
treatment of hematology and oncology diseases 
‣ DOCX ➝ HTML ➝ PDF (Produce & Publish) 
‣ Owned by Deutsche Gesellschaft für Hämatologie und 
Medizinische Onkologie in cooperation with further 
medical societies (AT, CH) 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Current editorial workflow 
Word -> XHTML 
(OpenOffice, webservice) 
Editorial fine-tuning for 
images, imagemaps, linking 
Conversion to EPUB and PDF 
Publishing 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Reasons for switching to XML 
‣ HTML not suitable for further requirements 
‣ implementation too tight coupled to Plone 
‣ a lot of fragile and workaround code for Plone 
‣ need for better production-safety 
‣ need for better automated production 
‣ interfaces and APIs for external systems 
requested by other vendors 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Content structure 
inside eXist-db
root 
de 
en 
onkopedia 
my-onkopedia 
onkopedia-p 
knowledge-database 
mammakarzinom-der-frau 
mammakarzinom-des-mannes 
mammakarzinom-der-frau 
… 
… 
onkopedia 
draft 
current 
archive 
source 
xml 
html 
media 
pdf 
incoming.docx 
index.xml 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
Version 25.03.2012 
Version 01.04.2013 
Version 07.08.2014 
my-onkopedia 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf
onkopedia 
onkopedia 
mammakarzinom-der-frau 
mammakarzinom-des-mannes 
mammakarzinom-der-frau 
… 
draft 
current 
archive 
source 
xml 
html 
media 
pdf 
incoming.docx 
index.xml 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Version 25.03.2012 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf
onkopedia 
onkopedia 
mammakarzinom-der-frau 
mammakarzinom-des-mannes 
mammakarzinom-der-frau 
… 
draft 
current 
archive 
source 
xml 
html 
media 
pdf 
incoming.docx 
index.xml 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Version 25.03.2012 
Publish 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf
mammakarzinom-der-frau 
draft 
current 
archive 
html 
media 
pdf 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Version 25.03.2012 
Version 01.04.2013 
Version 07.08.2014 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Archive
root 
de 
en 
onkopedia 
my-onkopedia 
onkopedia-p 
knowledge-database 
mammakarzinom-der-frau 
mammakarzinom-des-mannes 
mammakarzinom-der-frau 
… 
… 
onkopedia 
draft 
current 
archive 
source 
xml 
html 
media 
pdf 
incoming.docx 
index.xml 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
Version 25.03.2012 
Version 01.04.2013 
Version 07.08.2014 
my-onkopedia 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf
How to map this into Plone?
root 
de 
en 
onkopedia 
my-onkopedia 
onkopedia-p 
knowledge-database 
mammakarzinom-der-frau 
mammakarzinom-des-mannes 
mammakarzinom-der-frau 
… 
… 
onkopedia 
draft 
current 
archive 
source 
xml 
html 
media 
pdf 
incoming.docx 
index.xml 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
Version 25.03.2012 
Version 01.04.2013 
Version 07.08.2014 
my-onkopedia 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf
de 
en 
my-onkopedia 
onkopedia-p 
knowledge-database 
mammakarzinom-des-mannes 
mammakarzinom-der-frau 
… 
onkopedia 
draft 
current 
archive 
source 
xml 
html 
media 
pdf 
incoming.docx 
index.xml 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Version 25.03.2012 
Version 01.04.2013 
Version 07.08.2014 
Connector 
Connector 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Connector 
http://host/de/my-onkopedia/mammakarzinom-der-frau/archive/version-25.03.2014/@@view/xml/index.xml
de 
en 
my-onkopedia 
onkopedia-p 
knowledge-database 
mammakarzinom-des-mannes 
mammakarzinom-der-frau 
… 
onkopedia 
draft 
current 
archive 
source 
xml 
html 
media 
pdf 
incoming.docx 
index.xml 
index.html 
1.jpg 
2.jpg 
… 
index.pdf 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Version 25.03.2012 
Version 01.04.2013 
Version 07.08.2014 
source incoming.docx 
xml index.xml 
html index.html 
media 
1.jpg 
2.jpg 
… 
pdf index.pdf 
Connector 
http://host/de/my-onkopedia/mammakarzinom-der-frau/archive/version-25.03.2014/@@view/xml/index.xml
zopyx.existdb 
‣ Plone content-type (Dexterity) 
‣ maps a subtree from eXist-db into Plone (similar to Reflecto) 
‣ traversal support 
‣ UI for managing collections (add, remove, rename) 
‣ ACE editor integration 
‣ pluggable view registry for eXist-db content (by-suffix) 
‣ ZIP import/export 
‣ support for XQuery scripts called through the RESTXQ layer of eXist-db 
‣ persistent per-connector logging 
‣ small and extensible 
‣ Plone security & rights management apply on the connector level 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Use cases and anti patterns 
‣ Use cases: 
‣ Mapping existing collections of XML documents and 
associated resources into Plone 
‣ Building supplementary (web) applications and 
functionality on top of XML collections 
‣ Anti patterns: 
‣ not a general storage replacement for content-types 
‣ not a transparent storage like AttributeStorage, 
SQLStorage (AT) etc. 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Architecture 
Onkopedia Onkopedia Editor (Intern) 
Produce & Publish 
XML to PDF 
Guidelines (XML) REST API 
Addendums (XML) 
Query Server 
Word2XML 
Plone 
CMS 
DGHO 
Member Database 
DOCX 
Authentication 
Onkopedia Site Visitor 
Onkopedia Site Visitor 
XML, Assets 
Authorization 
Onkopedia Editor (Intern) 
Onkopedia Editor (Intern) 
PDF, EPUB 
HTML, XML + CSS 
XQuery 
XML, HTML, JSON 
Mac 
Assets (Images, Styles) 
XML Editing, Assets Editing 
PDF 
DOCX 
XML Editing, Assets Editing 
WebDAV 
WebDAV 
Windows 
JSON 
HTML 
XQuery XML 
WebDAV 
External Systems 
Clinical systems 
Medical applications 
Medical databases 
HTTP 
eXist-db 
XML database 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Onkopedia Onkopedia Editor (Intern) 
Produce & Publish 
XML to PDF 
Word2XML 
Plone 
CMS 
DOCX 
Authentication 
Onkopedia Site Visitor 
XML, Assets 
Authorization 
PDF, EPUB 
HTML, XML + CSS 
JSON 
HTML 
XQuery XML 
WebDAV 
Onkopedia Editor (Intern) 
Onkopedia Site Visitor 
Onkopedia Editor (Intern)
Produce & Publish 
XML to PDF 
Query Server 
Word2XML 
Onkopedia Site Visitor 
Editor Onkopedia Plone 
CMS 
DGHO 
Member Database 
DOCX 
Authentication 
XML, Assets 
Authorization 
PDF, EPUB 
HTML, XML + CSS 
XQuery 
XML, HTML, JSON 
Mac 
XML Editing, Assets Editing 
XML Editing, Assets Editing 
WebDAV 
WebDAV 
Windows 
JSON 
HTML 
XQuery XML 
WebDAV 
Onkopedia Site Visitor 
Onkopedia Editor HTTP 
Guidelines (XML) REST API 
Addendums (XML) 
Assets (Images, Styles) 
PDF 
DOCX 
eXist-db 
XML database
Produce & Publish 
XML to PDF 
Query Server 
Onkopedia Site Visitor 
Editor Onkopedia Plone 
CMS 
XML, Assets 
Authorization 
PDF, EPUB 
HTML, XML + CSS 
XQuery 
XML, HTML, JSON 
Mac 
XML Editing, Assets Editing 
XML Editing, Assets Editing 
WebDAV 
WebDAV 
JSON 
HTML 
XQuery XML 
WebDAV 
Onkopedia Site Visitor 
Onkopedia Editor External Systems 
Clinical systems 
Medical applications 
Medical databases 
HTTP 
Guidelines (XML) REST API 
Addendums (XML) 
Assets (Images, Styles) 
PDF 
DOCX 
eXist-db 
XML database
Architecture 
Onkopedia Onkopedia Editor (Intern) 
Produce & Publish 
XML to PDF 
Guidelines (XML) REST API 
Addendums (XML) 
Query Server 
Word2XML 
Plone 
CMS 
DGHO 
Member Database 
DOCX 
Authentication 
Onkopedia Site Visitor 
Onkopedia Site Visitor 
XML, Assets 
Authorization 
Onkopedia Editor (Intern) 
Onkopedia Editor (Intern) 
PDF, EPUB 
HTML, XML + CSS 
XQuery 
XML, HTML, JSON 
Mac 
Assets (Images, Styles) 
XML Editing, Assets Editing 
PDF 
DOCX 
XML Editing, Assets Editing 
WebDAV 
WebDAV 
Windows 
JSON 
HTML 
XQuery XML 
WebDAV 
External Systems 
Clinical systems 
Medical applications 
Medical databases 
HTTP 
eXist-db 
XML database 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Hidden gem: 
pyfilesystem
pyfilesystem 
‣ unified Python API for accessing different 
filesystems 
‣ local 
‣ WebDAV 
‣ Dropbox 
‣ SFTP/SSH 
‣ S3 
‣ (Plone) 
‣ Write portable code independent of the 
underlaying FS 
‣ the filesystem is just a configuration option 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
pyfilesystem 
from fs.contrib.davfs import davfs 
handle = DAVFS(„http://host/existdb/webdavdb“) 
files = handle.listdir() 
with handle.open(„foo.txt“, „w“) as fp: 
fp.write(„hello world“) 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Conclusion 
‣ much better production-safety through XML by applying 
validations, schema/DTD checks etc. 
‣ replaced tons of Plone-specific and fragile Plone code 
‣ well-defined DOCX ➝ XML conversion workflow 
‣ much smaller code base 
‣ easy to build Plone-XML apps on top of zopyx.existdb 
www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
Questions?

More Related Content

Viewers also liked

XML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.comXML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.comAndreas Jung
 
Pragmatic plone projects
Pragmatic plone projectsPragmatic plone projects
Pragmatic plone projectsAndreas Jung
 
State Of Zope Linuxtag 2008
State Of Zope Linuxtag 2008State Of Zope Linuxtag 2008
State Of Zope Linuxtag 2008Andreas Jung
 
Plone4Universities
Plone4UniversitiesPlone4Universities
Plone4UniversitiesAndreas Jung
 
Pragmatische Plone Projekte
Pragmatische Plone ProjektePragmatische Plone Projekte
Pragmatische Plone ProjekteAndreas Jung
 
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...Andreas Jung
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeAndreas Jung
 
Pragmatic plone projects
Pragmatic plone projectsPragmatic plone projects
Pragmatic plone projectsAndreas Jung
 
Making Py Pi Sux Less Key
Making Py Pi Sux Less KeyMaking Py Pi Sux Less Key
Making Py Pi Sux Less KeyAndreas Jung
 
Producing high-quality documents with Plone
Producing high-quality documents with PloneProducing high-quality documents with Plone
Producing high-quality documents with PloneAndreas Jung
 
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinProduce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinAndreas Jung
 
CSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesCSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesAndreas Jung
 
Python mongo db-training-europython-2011
Python mongo db-training-europython-2011Python mongo db-training-europython-2011
Python mongo db-training-europython-2011Andreas Jung
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will DieAndreas Jung
 
Why we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL DatabaseWhy we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL DatabaseAndreas Jung
 
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...Andreas Jung
 
Dzug Zope Optimized
Dzug Zope OptimizedDzug Zope Optimized
Dzug Zope OptimizedAndreas Jung
 
Eggs, Buildouts und andere Wunderlichkeiten
Eggs, Buildouts und andere WunderlichkeitenEggs, Buildouts und andere Wunderlichkeiten
Eggs, Buildouts und andere WunderlichkeitenAndreas Jung
 
Onkopedia - ein medizinisches Fachportal auf Basis von Plone
Onkopedia  - ein medizinisches Fachportal auf Basis von PloneOnkopedia  - ein medizinisches Fachportal auf Basis von Plone
Onkopedia - ein medizinisches Fachportal auf Basis von PloneAndreas Jung
 
Konfigurationsgesteuerte Buildouts Dzug 2008
Konfigurationsgesteuerte Buildouts   Dzug 2008Konfigurationsgesteuerte Buildouts   Dzug 2008
Konfigurationsgesteuerte Buildouts Dzug 2008Andreas Jung
 

Viewers also liked (20)

XML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.comXML Director - the technical foundation of onkopedia.com
XML Director - the technical foundation of onkopedia.com
 
Pragmatic plone projects
Pragmatic plone projectsPragmatic plone projects
Pragmatic plone projects
 
State Of Zope Linuxtag 2008
State Of Zope Linuxtag 2008State Of Zope Linuxtag 2008
State Of Zope Linuxtag 2008
 
Plone4Universities
Plone4UniversitiesPlone4Universities
Plone4Universities
 
Pragmatische Plone Projekte
Pragmatische Plone ProjektePragmatische Plone Projekte
Pragmatische Plone Projekte
 
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
Onkopedia - Ein medizinisches Leitlinienportal auf dem Weg zu XML-basierten P...
 
Frequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last timeFrequently asked questions answered frequently - but now for the last time
Frequently asked questions answered frequently - but now for the last time
 
Pragmatic plone projects
Pragmatic plone projectsPragmatic plone projects
Pragmatic plone projects
 
Making Py Pi Sux Less Key
Making Py Pi Sux Less KeyMaking Py Pi Sux Less Key
Making Py Pi Sux Less Key
 
Producing high-quality documents with Plone
Producing high-quality documents with PloneProducing high-quality documents with Plone
Producing high-quality documents with Plone
 
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinProduce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
 
CSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesCSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniques
 
Python mongo db-training-europython-2011
Python mongo db-training-europython-2011Python mongo db-training-europython-2011
Python mongo db-training-europython-2011
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will Die
 
Why we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL DatabaseWhy we love ArangoDB. The hunt for the right NosQL Database
Why we love ArangoDB. The hunt for the right NosQL Database
 
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
Produce & Publish V 2.0 - Authoring Environment - Single-Source Multi-Channel...
 
Dzug Zope Optimized
Dzug Zope OptimizedDzug Zope Optimized
Dzug Zope Optimized
 
Eggs, Buildouts und andere Wunderlichkeiten
Eggs, Buildouts und andere WunderlichkeitenEggs, Buildouts und andere Wunderlichkeiten
Eggs, Buildouts und andere Wunderlichkeiten
 
Onkopedia - ein medizinisches Fachportal auf Basis von Plone
Onkopedia  - ein medizinisches Fachportal auf Basis von PloneOnkopedia  - ein medizinisches Fachportal auf Basis von Plone
Onkopedia - ein medizinisches Fachportal auf Basis von Plone
 
Konfigurationsgesteuerte Buildouts Dzug 2008
Konfigurationsgesteuerte Buildouts   Dzug 2008Konfigurationsgesteuerte Buildouts   Dzug 2008
Konfigurationsgesteuerte Buildouts Dzug 2008
 

Similar to Plone Integration with eXist-db - Structured Content rocks

Phpconf taiwan-2012
Phpconf taiwan-2012Phpconf taiwan-2012
Phpconf taiwan-2012Hash Lin
 
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
 
Madcap Case Study from Write2Users, Denmark
Madcap Case Study from Write2Users, DenmarkMadcap Case Study from Write2Users, Denmark
Madcap Case Study from Write2Users, DenmarkWrite2Users
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
HTML5 and Beyond
HTML5 and BeyondHTML5 and Beyond
HTML5 and Beyonddynamis
 
Is 12 Factor App Right About Logging
Is 12 Factor App Right About LoggingIs 12 Factor App Right About Logging
Is 12 Factor App Right About LoggingPhil Wilkins
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introductiondynamis
 
Change by HTML5
Change by HTML5Change by HTML5
Change by HTML5dynamis
 
FluentD for end to end monitoring
FluentD for end to end monitoringFluentD for end to end monitoring
FluentD for end to end monitoringPhil Wilkins
 
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)Sergio Fernández
 
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...Crossref
 
Webinar file gateway
Webinar file gatewayWebinar file gateway
Webinar file gatewayWSO2
 
HTML to ODT to XML to PDF to …
HTML to ODT to XML to PDF to …HTML to ODT to XML to PDF to …
HTML to ODT to XML to PDF to …Tobias Schlitt
 
Participatory Digital Library
Participatory Digital LibraryParticipatory Digital Library
Participatory Digital LibraryDLFCLIR
 
NSA for Enterprises Log Analysis Use Cases
NSA for Enterprises   Log Analysis Use Cases NSA for Enterprises   Log Analysis Use Cases
NSA for Enterprises Log Analysis Use Cases WSO2
 

Similar to Plone Integration with eXist-db - Structured Content rocks (20)

Phpconf taiwan-2012
Phpconf taiwan-2012Phpconf taiwan-2012
Phpconf taiwan-2012
 
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...
 
Madcap Case Study from Write2Users, Denmark
Madcap Case Study from Write2Users, DenmarkMadcap Case Study from Write2Users, Denmark
Madcap Case Study from Write2Users, Denmark
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
10 xrd-software
10 xrd-software10 xrd-software
10 xrd-software
 
10 xrd-software
10 xrd-software10 xrd-software
10 xrd-software
 
ebs xml.ppt
ebs xml.pptebs xml.ppt
ebs xml.ppt
 
HTML5 and Beyond
HTML5 and BeyondHTML5 and Beyond
HTML5 and Beyond
 
Is 12 Factor App Right About Logging
Is 12 Factor App Right About LoggingIs 12 Factor App Right About Logging
Is 12 Factor App Right About Logging
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
 
Change by HTML5
Change by HTML5Change by HTML5
Change by HTML5
 
FluentD for end to end monitoring
FluentD for end to end monitoringFluentD for end to end monitoring
FluentD for end to end monitoring
 
OpenOfficeorg Mouse
OpenOfficeorg MouseOpenOfficeorg Mouse
OpenOfficeorg Mouse
 
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)
 
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
CrossRef How-to: A Technical Introduction to the Basics of CrossRef, Chuck Ko...
 
Webinar file gateway
Webinar file gatewayWebinar file gateway
Webinar file gateway
 
HTML to ODT to XML to PDF to …
HTML to ODT to XML to PDF to …HTML to ODT to XML to PDF to …
HTML to ODT to XML to PDF to …
 
Participatory Digital Library
Participatory Digital LibraryParticipatory Digital Library
Participatory Digital Library
 
NSA for Enterprises Log Analysis Use Cases
NSA for Enterprises   Log Analysis Use Cases NSA for Enterprises   Log Analysis Use Cases
NSA for Enterprises Log Analysis Use Cases
 
Oracle.xml.publisher
Oracle.xml.publisherOracle.xml.publisher
Oracle.xml.publisher
 

More from Andreas Jung

State of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdfState of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdfAndreas Jung
 
Typesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 NamurTypesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 NamurAndreas Jung
 
Onkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 DresdenOnkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 DresdenAndreas Jung
 
Plone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, BelgiumPlone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, BelgiumAndreas Jung
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaAndreas Jung
 
Plone migrations using plone.restapi
Plone migrations using plone.restapiPlone migrations using plone.restapi
Plone migrations using plone.restapiAndreas Jung
 
Plone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST APIPlone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST APIAndreas Jung
 
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...Andreas Jung
 
Generierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSSGenerierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSSAndreas Jung
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsAndreas Jung
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsAndreas Jung
 
The Plone and The Blockchain
The Plone and The BlockchainThe Plone and The Blockchain
The Plone and The BlockchainAndreas Jung
 
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCsContent Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCsAndreas Jung
 
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.Andreas Jung
 
Produce & Publish Cloud Edition
Produce & Publish Cloud EditionProduce & Publish Cloud Edition
Produce & Publish Cloud EditionAndreas Jung
 
zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013Andreas Jung
 

More from Andreas Jung (16)

State of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdfState of PrintCSS - MarkupUK 2023.pdf
State of PrintCSS - MarkupUK 2023.pdf
 
Typesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 NamurTypesense Plone Integration Plone Conference 2022 Namur
Typesense Plone Integration Plone Conference 2022 Namur
 
Onkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 DresdenOnkopedia - Plone Tagung 2020 Dresden
Onkopedia - Plone Tagung 2020 Dresden
 
Plone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, BelgiumPlone 5.2 migration at University Ghent, Belgium
Plone 5.2 migration at University Ghent, Belgium
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
 
Plone migrations using plone.restapi
Plone migrations using plone.restapiPlone migrations using plone.restapi
Plone migrations using plone.restapi
 
Plone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST APIPlone Migrationen mit Plone REST API
Plone Migrationen mit Plone REST API
 
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
Plone im Einsatz bei der Universität des Saarländes als Shop-System und Gefah...
 
Generierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSSGenerierung von PDF aus XML/HTML mit PrintCSS
Generierung von PDF aus XML/HTML mit PrintCSS
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCs
 
Creating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCsCreating Content Together - Plone Integration with SMASHDOCs
Creating Content Together - Plone Integration with SMASHDOCs
 
The Plone and The Blockchain
The Plone and The BlockchainThe Plone and The Blockchain
The Plone and The Blockchain
 
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCsContent Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
Content Gemeinsam Erstellen: Integration Plone mit SMASHDOCs
 
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
PDF Generierung mit XML/HTML und CSS - was die Tools können und was nicht.
 
Produce & Publish Cloud Edition
Produce & Publish Cloud EditionProduce & Publish Cloud Edition
Produce & Publish Cloud Edition
 
zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013zopyx.plone migration - Plone Hochschultagung 2013
zopyx.plone migration - Plone Hochschultagung 2013
 

Recently uploaded

A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 

Recently uploaded (20)

A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 

Plone Integration with eXist-db - Structured Content rocks

  • 1. Structured Content Rocks! Integration of eXist-db with Plone Andreas Jung/@MacYET ZOPYX • www.zopyx.com Plone Conference 2014 • Bristol, UK
  • 2.
  • 3. Python, Plone, Zope nerd Publishing wizard Dinosaur of Zope (Paul Everitt)
  • 4.
  • 5.
  • 6.
  • 7.
  • 9. Agenda ‣ XML-based publication workflows ‣ context: ‣ DOCX ➝ XML conversion ‣ XML➝ PDF/EPub conversion ‣ Integration of Plone with XML database eXist-db www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 10. What is Structured Content? ‣ XML of course ‣ HTML is not suitable for publishing purposes in general ‣ XML Schemas or Document Type Definition for ‣ defining the exact structure of a document ‣ syntactical and semantical validation ‣ industry standard in the publishing world ‣ defacto exchange format with third-party applications www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 11. What is ? ‣ A NoSQL Document Database and Application platform ‣ Open-source XML database written in Java ‣ stores documents: XML/HTML ‣ stores arbitrary (binary) data (DOCX, PDF, images, …) ‣ XML technology: XPath 3, XForms, XSLT 2, XQuery 3, XUpdate ‣ comes with Lucence for fulltext indexing ‣ open for all related Java XML technology www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 12. Why ? ‣ Hierarchical storage model (collections -> folders) ‣ Content and scripts accessible through WebDAV ‣ Scripting using XQuery ‣ XQuery scripts callable through REST API ‣ Scripts results serializable to JSON, HTML, XML ‣ Very good experience during evaluation period www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 13. How do we use ‣ storing XML documents ‣ indexing XML documents ‣ searching XML documents ‣ aggregation of XML documents ‣ manipulation of XML documents ? www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 14. Onkopedia project? ‣ www.dgho-onkopedia.de www.onkopedia-guidelines.info ‣ Plone project since 2010 ‣ Portal for medical guidelines for diagnosis and treatment of hematology and oncology diseases ‣ DOCX ➝ HTML ➝ PDF (Produce & Publish) ‣ Owned by Deutsche Gesellschaft für Hämatologie und Medizinische Onkologie in cooperation with further medical societies (AT, CH) www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. Current editorial workflow Word -> XHTML (OpenOffice, webservice) Editorial fine-tuning for images, imagemaps, linking Conversion to EPUB and PDF Publishing www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 25. Reasons for switching to XML ‣ HTML not suitable for further requirements ‣ implementation too tight coupled to Plone ‣ a lot of fragile and workaround code for Plone ‣ need for better production-safety ‣ need for better automated production ‣ interfaces and APIs for external systems requested by other vendors www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 27. root de en onkopedia my-onkopedia onkopedia-p knowledge-database mammakarzinom-der-frau mammakarzinom-des-mannes mammakarzinom-der-frau … … onkopedia draft current archive source xml html media pdf incoming.docx index.xml index.html 1.jpg 2.jpg … index.pdf Version 25.03.2012 Version 01.04.2013 Version 07.08.2014 my-onkopedia source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf
  • 28. onkopedia onkopedia mammakarzinom-der-frau mammakarzinom-des-mannes mammakarzinom-der-frau … draft current archive source xml html media pdf incoming.docx index.xml index.html 1.jpg 2.jpg … index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Version 25.03.2012 source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf
  • 29. onkopedia onkopedia mammakarzinom-der-frau mammakarzinom-des-mannes mammakarzinom-der-frau … draft current archive source xml html media pdf incoming.docx index.xml index.html 1.jpg 2.jpg … index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Version 25.03.2012 Publish source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf
  • 30. mammakarzinom-der-frau draft current archive html media pdf index.html 1.jpg 2.jpg … index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Version 25.03.2012 Version 01.04.2013 Version 07.08.2014 source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Archive
  • 31. root de en onkopedia my-onkopedia onkopedia-p knowledge-database mammakarzinom-der-frau mammakarzinom-des-mannes mammakarzinom-der-frau … … onkopedia draft current archive source xml html media pdf incoming.docx index.xml index.html 1.jpg 2.jpg … index.pdf Version 25.03.2012 Version 01.04.2013 Version 07.08.2014 my-onkopedia source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf
  • 32. How to map this into Plone?
  • 33. root de en onkopedia my-onkopedia onkopedia-p knowledge-database mammakarzinom-der-frau mammakarzinom-des-mannes mammakarzinom-der-frau … … onkopedia draft current archive source xml html media pdf incoming.docx index.xml index.html 1.jpg 2.jpg … index.pdf Version 25.03.2012 Version 01.04.2013 Version 07.08.2014 my-onkopedia source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf
  • 34. de en my-onkopedia onkopedia-p knowledge-database mammakarzinom-des-mannes mammakarzinom-der-frau … onkopedia draft current archive source xml html media pdf incoming.docx index.xml index.html 1.jpg 2.jpg … index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Version 25.03.2012 Version 01.04.2013 Version 07.08.2014 Connector Connector source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Connector http://host/de/my-onkopedia/mammakarzinom-der-frau/archive/version-25.03.2014/@@view/xml/index.xml
  • 35. de en my-onkopedia onkopedia-p knowledge-database mammakarzinom-des-mannes mammakarzinom-der-frau … onkopedia draft current archive source xml html media pdf incoming.docx index.xml index.html 1.jpg 2.jpg … index.pdf source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Version 25.03.2012 Version 01.04.2013 Version 07.08.2014 source incoming.docx xml index.xml html index.html media 1.jpg 2.jpg … pdf index.pdf Connector http://host/de/my-onkopedia/mammakarzinom-der-frau/archive/version-25.03.2014/@@view/xml/index.xml
  • 36. zopyx.existdb ‣ Plone content-type (Dexterity) ‣ maps a subtree from eXist-db into Plone (similar to Reflecto) ‣ traversal support ‣ UI for managing collections (add, remove, rename) ‣ ACE editor integration ‣ pluggable view registry for eXist-db content (by-suffix) ‣ ZIP import/export ‣ support for XQuery scripts called through the RESTXQ layer of eXist-db ‣ persistent per-connector logging ‣ small and extensible ‣ Plone security & rights management apply on the connector level www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 37. Use cases and anti patterns ‣ Use cases: ‣ Mapping existing collections of XML documents and associated resources into Plone ‣ Building supplementary (web) applications and functionality on top of XML collections ‣ Anti patterns: ‣ not a general storage replacement for content-types ‣ not a transparent storage like AttributeStorage, SQLStorage (AT) etc. www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 38. Architecture Onkopedia Onkopedia Editor (Intern) Produce & Publish XML to PDF Guidelines (XML) REST API Addendums (XML) Query Server Word2XML Plone CMS DGHO Member Database DOCX Authentication Onkopedia Site Visitor Onkopedia Site Visitor XML, Assets Authorization Onkopedia Editor (Intern) Onkopedia Editor (Intern) PDF, EPUB HTML, XML + CSS XQuery XML, HTML, JSON Mac Assets (Images, Styles) XML Editing, Assets Editing PDF DOCX XML Editing, Assets Editing WebDAV WebDAV Windows JSON HTML XQuery XML WebDAV External Systems Clinical systems Medical applications Medical databases HTTP eXist-db XML database www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 39. Onkopedia Onkopedia Editor (Intern) Produce & Publish XML to PDF Word2XML Plone CMS DOCX Authentication Onkopedia Site Visitor XML, Assets Authorization PDF, EPUB HTML, XML + CSS JSON HTML XQuery XML WebDAV Onkopedia Editor (Intern) Onkopedia Site Visitor Onkopedia Editor (Intern)
  • 40. Produce & Publish XML to PDF Query Server Word2XML Onkopedia Site Visitor Editor Onkopedia Plone CMS DGHO Member Database DOCX Authentication XML, Assets Authorization PDF, EPUB HTML, XML + CSS XQuery XML, HTML, JSON Mac XML Editing, Assets Editing XML Editing, Assets Editing WebDAV WebDAV Windows JSON HTML XQuery XML WebDAV Onkopedia Site Visitor Onkopedia Editor HTTP Guidelines (XML) REST API Addendums (XML) Assets (Images, Styles) PDF DOCX eXist-db XML database
  • 41. Produce & Publish XML to PDF Query Server Onkopedia Site Visitor Editor Onkopedia Plone CMS XML, Assets Authorization PDF, EPUB HTML, XML + CSS XQuery XML, HTML, JSON Mac XML Editing, Assets Editing XML Editing, Assets Editing WebDAV WebDAV JSON HTML XQuery XML WebDAV Onkopedia Site Visitor Onkopedia Editor External Systems Clinical systems Medical applications Medical databases HTTP Guidelines (XML) REST API Addendums (XML) Assets (Images, Styles) PDF DOCX eXist-db XML database
  • 42. Architecture Onkopedia Onkopedia Editor (Intern) Produce & Publish XML to PDF Guidelines (XML) REST API Addendums (XML) Query Server Word2XML Plone CMS DGHO Member Database DOCX Authentication Onkopedia Site Visitor Onkopedia Site Visitor XML, Assets Authorization Onkopedia Editor (Intern) Onkopedia Editor (Intern) PDF, EPUB HTML, XML + CSS XQuery XML, HTML, JSON Mac Assets (Images, Styles) XML Editing, Assets Editing PDF DOCX XML Editing, Assets Editing WebDAV WebDAV Windows JSON HTML XQuery XML WebDAV External Systems Clinical systems Medical applications Medical databases HTTP eXist-db XML database www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 44. pyfilesystem ‣ unified Python API for accessing different filesystems ‣ local ‣ WebDAV ‣ Dropbox ‣ SFTP/SSH ‣ S3 ‣ (Plone) ‣ Write portable code independent of the underlaying FS ‣ the filesystem is just a configuration option www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 45. pyfilesystem from fs.contrib.davfs import davfs handle = DAVFS(„http://host/existdb/webdavdb“) files = handle.listdir() with handle.open(„foo.txt“, „w“) as fp: fp.write(„hello world“) www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX
  • 46. Conclusion ‣ much better production-safety through XML by applying validations, schema/DTD checks etc. ‣ replaced tons of Plone-specific and fragile Plone code ‣ well-defined DOCX ➝ XML conversion workflow ‣ much smaller code base ‣ easy to build Plone-XML apps on top of zopyx.existdb www.produce-and-publish.com Professional XML Publishing (C) 2014 ZOPYX